Skip to content

Commit 184769f

Browse files
committed
update
1 parent b462e56 commit 184769f

32 files changed

+1302
-425
lines changed

appendices/appendix-a-能力矩阵.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696

9797
### 如果你最看重"统一内核 + 可治理 + 渠道覆盖"
9898

99-
优先看 MicroClaw。它的优势不是任何单项功能最强,而是把 16 个渠道、44 个内置工具、结构化记忆、调度、Subagent 编排、Hooks 策略、A2A/ACP 互操作、控制面和观测统一在一个较清晰的 runtime 里。v0.1.38 的 wave-based 并行工具执行和 session-native subagents 进一步拉开了它与"只能串行调一次模型"的 Demo Agent 的距离。
99+
优先看 MicroClaw。它的优势不是任何单项功能最强,而是把 16 个渠道、44 个内置工具、结构化记忆、调度、Subagent 编排、Hooks 策略、A2A/ACP 互操作、控制面和观测统一在一个较清晰的 runtime 里。Wave-based 并行工具执行和 session-native subagents 进一步拉开了它与"只能串行调一次模型"的 Demo Agent 的距离。
100100

101101
### 如果你最看重"生态广度"
102102

@@ -114,7 +114,7 @@
114114

115115
优先看 NullClaw。它不是最容易上手,但在系统级可裁剪和低开销方向上有独特价值。
116116

117-
## 对 MicroClaw v0.1.38 的定位总结
117+
## 对 MicroClaw 的定位总结
118118

119119
综合 6 份对比研究,MicroClaw 最稳定的优势并不是"功能最多",而是:
120120

appendices/appendix-b-源码导读索引.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
## 目标
44

5-
本附录给出当前 `microclaw/microclaw` 仓库(v0.1.38)的推荐阅读路径。它不是简单列文件名,而是帮助你按"先建立主链路,再进入细节"的顺序读代码。
5+
本附录给出当前 `microclaw/microclaw` 仓库的推荐阅读路径。它不是简单列文件名,而是帮助你按"先建立主链路,再进入细节"的顺序读代码。
66

77
如果你第一次读源码,建议不要从某个具体渠道文件开始,而是先建立"系统怎样启动、怎样处理一次请求、怎样保存状态"的整体心智。
88

99
## 仓库结构总览
1010

11-
v0.1.38 的仓库由 8 个 workspace crate 组成:
11+
仓库由 8 个 workspace crate 组成:
1212

1313
| Crate | 职责 | 关键文件 |
1414
|---|---|---|
@@ -70,7 +70,7 @@ v0.1.38 的仓库由 8 个 workspace crate 组成:
7070

7171
为什么单独把它提升到主链路:
7272

73-
- v0.1.38 引入了 wave-based parallel tool execution,这是理解性能模型的关键
73+
- Wave-based parallel tool execution 是理解性能模型的关键
7474
- 并行执行不是简单的 `join_all`,而是按 concurrency class 分波调度。
7575

7676
你应该关注:
@@ -96,7 +96,7 @@ v0.1.38 的仓库由 8 个 workspace crate 组成:
9696
为什么重要:
9797

9898
- 它决定了 provider 差异如何被隔离在协议层,而不污染统一循环。
99-
- v0.1.38 增加了 per-chat provider/model override,支持运行时动态切换
99+
- 支持 per-chat provider/model override,可在运行时动态切换
100100

101101
### 6. `crates/microclaw-storage/src/db.rs`(6444 行)
102102

@@ -142,7 +142,7 @@ v0.1.38 的仓库由 8 个 workspace crate 组成:
142142
为什么重要:
143143

144144
- 能快速建立"系统到底让 Agent 能做什么"的全局图。
145-
- Subagent 工具族(11 个)是 v0.1.38 的重点新增
145+
- Subagent 工具族(11 个)是重点模块
146146

147147
### 9. `crates/microclaw-tools/src/runtime.rs`(417 行)
148148

@@ -219,7 +219,7 @@ v0.1.38 的仓库由 8 个 workspace crate 组成:
219219

220220
为什么重要:
221221

222-
- Hooks 是 v0.1.38 的策略扩展点。它让你不修改源码就能实现"禁止特定工具"、"修改 LLM 请求"、"审计工具输出"等治理需求。
222+
- Hooks 是策略扩展点。它让你不修改源码就能实现"禁止特定工具"、"修改 LLM 请求"、"审计工具输出"等治理需求。
223223

224224
### 15. `src/run_control.rs`(128 行)
225225

@@ -361,7 +361,7 @@ MCP、Skills、Plugins、Hooks 在不同层解决不同问题。MCP 是外部工
361361

362362
### 错误四:忽略 tool_executor.rs
363363

364-
v0.1.38 引入了并行工具执行,这不是 agent_engine 的内部细节,而是单独抽取的调度模块。如果你只读 agent_engine 而跳过 tool_executor,会漏掉 wave 分区和 concurrency class 的整个设计。
364+
并行工具执行不是 agent_engine 的内部细节,而是单独抽取的调度模块。如果你只读 agent_engine 而跳过 tool_executor,会漏掉 wave 分区和 concurrency class 的整个设计。
365365

366366
### 错误五:把 ACP 和 A2A 混为一谈
367367

appendices/appendix-c-实施模板.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
- 每次准备上线前填写模板 3。
1616
- 一旦发生生产事故,强制填写模板 4。
1717

18-
这些模板的目的不是增加流程,而是把"本应提前讲清楚的事情"结构化下来。v0.1.38 引入了并行工具执行、Subagent 编排、Hooks 策略、ACP/A2A 互操作和 Gateway 服务管理等能力,实施模板也相应覆盖了这些新维度
18+
这些模板的目的不是增加流程,而是把"本应提前讲清楚的事情"结构化下来。MicroClaw 提供了并行工具执行、Subagent 编排、Hooks 策略、ACP/A2A 互操作和 Gateway 服务管理等能力,实施模板也相应覆盖了这些维度
1919

2020
## 模板 1:需求澄清
2121

appendices/appendix-d-最小实现主线.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
4. 并行工具执行的 wave 调度
1313
5. 可落盘、可再次恢复的 session store
1414

15-
只要这 5 件事串起来,你就已经拥有了一个真正意义上的最小 Agent Runtime,而不再只是"调一次模型然后打印结果"的脚本。v0.1.38 把并行工具执行从外挂脚本提升为 runtime 内建调度模型,所以最小实现也必须包含这一层。
15+
只要这 5 件事串起来,你就已经拥有了一个真正意义上的最小 Agent Runtime,而不再只是"调一次模型然后打印结果"的脚本。MicroClaw 把并行工具执行作为 runtime 内建调度模型,所以最小实现也必须包含这一层。
1616

1717
## 先明确什么叫"最小"
1818

@@ -36,7 +36,7 @@
3636

3737
## 第一步:先把运行时边界和 crate 结构钉住
3838

39-
最小实现的第一个目标,不是写模型调用,而是先钉住"运行时手里握着什么"。对应 MicroClaw v0.1.38 的 8 workspace crate 架构,最小骨架只需要 3 层:
39+
最小实现的第一个目标,不是写模型调用,而是先钉住"运行时手里握着什么"。对应 MicroClaw 的 8 workspace crate 架构,最小骨架只需要 3 层:
4040

4141
- 一个模型客户端(对应 `src/llm.rs`
4242
- 一个带 concurrency class 的工具注册表(对应 `crates/microclaw-tools/src/runtime.rs` + `src/tools/mod.rs`
@@ -75,7 +75,7 @@ struct TurnContext {
7575

7676
## 第三步:让模型返回控制语义,支持多工具调用
7777

78-
一个最小 Agent Runtime 真正和普通聊天脚本拉开差距的地方,是模型不再只返回字符串,而是返回受控语义。v0.1.38 的 LLM 适配层必须能一次返回多个工具调用——这是并行执行的前提。最少要区分两种结果:
78+
一个最小 Agent Runtime 真正和普通聊天脚本拉开差距的地方,是模型不再只返回字符串,而是返回受控语义。LLM 适配层必须能一次返回多个工具调用——这是并行执行的前提。最少要区分两种结果:
7979

8080
- `EndTurn(text)`:这一轮可以结束
8181
- `CallTools(vec)`:这一轮要执行一个或多个工具
@@ -93,11 +93,11 @@ enum ModelDecision {
9393
}
9494
```
9595

96-
注意这里从 v0.1.16 的 `CallTool`(单数)变成了 `CallTools(Vec<ToolCall>)`。这不是 API 风格的偏好,而是反映了 MicroClaw v0.1.38 的一个核心设计决策:LLM 可以在一次响应中请求多个工具调用,runtime 负责按 concurrency class 决定哪些并行、哪些串行。
96+
注意这里使用 `CallTools(Vec<ToolCall>)` 而非单个 `CallTool`。这不是 API 风格的偏好,而是反映了 MicroClaw 的一个核心设计决策:LLM 可以在一次响应中请求多个工具调用,runtime 负责按 concurrency class 决定哪些并行、哪些串行。
9797

9898
## 第四步:引入 concurrency class 和 wave 分区
9999

100-
这是 v0.1.38 相对于旧版本的关键新增。每个工具都有一个 concurrency class,决定它能否被并行执行:
100+
每个工具都有一个 concurrency class,决定它能否被并行执行:
101101

102102
```rust
103103
#[derive(Debug, Clone, Copy, PartialEq)]
Lines changed: 100 additions & 3 deletions
Loading

0 commit comments

Comments
 (0)