Skip to content

Commit 6610497

Browse files
authored
Merge pull request #1 from wbxl2000/copilot/optimize-chinese-translation
Optimize Chinese translations: preserve English proper nouns for domain-specific terms
2 parents e57ced7 + 1340947 commit 6610497

File tree

15 files changed

+113
-113
lines changed

15 files changed

+113
-113
lines changed

README-zh.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424
**12 个递进式课程, 从简单循环到隔离化的自治执行。**
2525
**每个课程添加一个机制。每个机制有一句格言。**
2626

27-
> **s01**   *"One loop & Bash is all you need"* — 一个工具 + 一个循环 = 一个智能体
27+
> **s01**   *"One loop & Bash is all you need"* — 一个工具 + 一个循环 = 一个 Agent
2828
>
2929
> **s02**   *"加一个工具, 只加一个 handler"* — 循环不用动, 新工具注册进 dispatch map 就行
3030
>
3131
> **s03**   *"没有计划的 agent 走哪算哪"* — 先列步骤再动手, 完成率翻倍
3232
>
33-
> **s04**   *"大任务拆小, 每个小任务干净的上下文"* — 子智能体用独立 messages[], 不污染主对话
33+
> **s04**   *"大任务拆小, 每个小任务干净的上下文"* — Subagent 用独立 messages[], 不污染主对话
3434
>
3535
> **s05**   *"用到什么知识, 临时加载什么知识"* — 通过 tool_result 注入, 不塞 system prompt
3636
>
@@ -118,31 +118,31 @@ cd web && npm install && npm run dev # http://localhost:3000
118118
```
119119
第一阶段: 循环 第二阶段: 规划与知识
120120
================== ==============================
121-
s01 Agent 循环 [1] s03 TodoWrite [5]
121+
s01 Agent Loop [1] s03 TodoWrite [5]
122122
while + stop_reason TodoManager + nag 提醒
123123
| |
124-
+-> s02 Tool Use [4] s04 子智能体 [5]
125-
dispatch map: name->handler 每个子智能体独立 messages[]
124+
+-> s02 Tool Use [4] s04 Subagent [5]
125+
dispatch map: name->handler 每个 Subagent 独立 messages[]
126126
|
127127
s05 Skills [5]
128128
SKILL.md 通过 tool_result 注入
129129
|
130130
s06 Context Compact [5]
131-
三层上下文压缩
131+
三层 Context Compact
132132
133133
第三阶段: 持久化 第四阶段: 团队
134134
================== =====================
135-
s07 任务系统 [8] s09 智能体团队 [9]
135+
s07 Task System [8] s09 Agent Teams [9]
136136
文件持久化 CRUD + 依赖图 队友 + JSONL 邮箱
137137
| |
138-
s08 后台任务 [6] s10 团队协议 [12]
138+
s08 Background Tasks [6] s10 Team Protocols [12]
139139
守护线程 + 通知队列 关机 + 计划审批 FSM
140140
|
141-
s11 自治智能体 [14]
141+
s11 Autonomous Agents [14]
142142
空闲轮询 + 自动认领
143143
|
144-
s12 Worktree 隔离 [16]
145-
任务协调 + 按需隔离执行通道
144+
s12 Worktree Isolation [16]
145+
Task 协调 + 按需隔离执行通道
146146
147147
[N] = 工具数量
148148
```
@@ -166,18 +166,18 @@ learn-claude-code/
166166

167167
| 课程 | 主题 | 格言 |
168168
|------|------|------|
169-
| [s01](./docs/zh/s01-the-agent-loop.md) | Agent 循环 | *One loop & Bash is all you need* |
169+
| [s01](./docs/zh/s01-the-agent-loop.md) | Agent Loop | *One loop & Bash is all you need* |
170170
| [s02](./docs/zh/s02-tool-use.md) | Tool Use | *加一个工具, 只加一个 handler* |
171171
| [s03](./docs/zh/s03-todo-write.md) | TodoWrite | *没有计划的 agent 走哪算哪* |
172-
| [s04](./docs/zh/s04-subagent.md) | 子智能体 | *大任务拆小, 每个小任务干净的上下文* |
172+
| [s04](./docs/zh/s04-subagent.md) | Subagent | *大任务拆小, 每个小任务干净的上下文* |
173173
| [s05](./docs/zh/s05-skill-loading.md) | Skills | *用到什么知识, 临时加载什么知识* |
174174
| [s06](./docs/zh/s06-context-compact.md) | Context Compact | *上下文总会满, 要有办法腾地方* |
175-
| [s07](./docs/zh/s07-task-system.md) | 任务系统 | *大目标要拆成小任务, 排好序, 记在磁盘上* |
176-
| [s08](./docs/zh/s08-background-tasks.md) | 后台任务 | *慢操作丢后台, agent 继续想下一步* |
177-
| [s09](./docs/zh/s09-agent-teams.md) | 智能体团队 | *任务太大一个人干不完, 要能分给队友* |
178-
| [s10](./docs/zh/s10-team-protocols.md) | 团队协议 | *队友之间要有统一的沟通规矩* |
179-
| [s11](./docs/zh/s11-autonomous-agents.md) | 自治智能体 | *队友自己看看板, 有活就认领* |
180-
| [s12](./docs/zh/s12-worktree-task-isolation.md) | Worktree + 任务隔离 | *各干各的目录, 互不干扰* |
175+
| [s07](./docs/zh/s07-task-system.md) | Task System | *大目标要拆成小任务, 排好序, 记在磁盘上* |
176+
| [s08](./docs/zh/s08-background-tasks.md) | Background Tasks | *慢操作丢后台, agent 继续想下一步* |
177+
| [s09](./docs/zh/s09-agent-teams.md) | Agent Teams | *任务太大一个人干不完, 要能分给队友* |
178+
| [s10](./docs/zh/s10-team-protocols.md) | Team Protocols | *队友之间要有统一的沟通规矩* |
179+
| [s11](./docs/zh/s11-autonomous-agents.md) | Autonomous Agents | *队友自己看看板, 有活就认领* |
180+
| [s12](./docs/zh/s12-worktree-task-isolation.md) | Worktree + Task Isolation | *各干各的目录, 互不干扰* |
181181

182182
## 学完之后 -- 从理解到落地
183183

@@ -229,4 +229,4 @@ MIT
229229

230230
---
231231

232-
**模型就是智能体。我们的工作就是给它工具, 然后让开。**
232+
**模型就是 Agent。我们的工作就是给它工具, 然后让开。**

docs/zh/s01-the-agent-loop.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# s01: The Agent Loop (智能体循环)
1+
# s01: The Agent Loop (Agent 循环)
22

33
`[ s01 ] s02 > s03 > s04 > s05 > s06 | s07 > s08 > s09 > s10 > s11 > s12`
44

5-
> *"One loop & Bash is all you need"* -- 一个工具 + 一个循环 = 一个智能体
5+
> *"One loop & Bash is all you need"* -- 一个工具 + 一个循环 = 一个 Agent
66
77
## 问题
88

@@ -90,7 +90,7 @@ def agent_loop(query):
9090
messages.append({"role": "user", "content": results})
9191
```
9292

93-
不到 30 行, 这就是整个智能体。后面 11 个章节都在这个循环上叠加机制 -- 循环本身始终不变。
93+
不到 30 行, 这就是整个 Agent。后面 11 个章节都在这个循环上叠加机制 -- 循环本身始终不变。
9494

9595
## 变更内容
9696

docs/zh/s04-subagent.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# s04: Subagents (子智能体)
1+
# s04: Subagents (Subagent)
22

33
`s01 > s02 > s03 > [ s04 ] s05 > s06 | s07 > s08 > s09 > s10 > s11 > s12`
44

5-
> *"大任务拆小, 每个小任务干净的上下文"* -- 子智能体用独立 messages[], 不污染主对话。
5+
> *"大任务拆小, 每个小任务干净的上下文"* -- Subagent 用独立 messages[], 不污染主对话。
66
77
## 问题
88

9-
智能体工作越久, messages 数组越胖。每次读文件、跑命令的输出都永久留在上下文里。"这个项目用什么测试框架?" 可能要读 5 个文件, 但父智能体只需要一个词: "pytest。"
9+
Agent 工作越久, messages 数组越胖。每次读文件、跑命令的输出都永久留在上下文里。"这个项目用什么测试框架?" 可能要读 5 个文件, 但父 Agent 只需要一个词: "pytest。"
1010

1111
## 解决方案
1212

@@ -26,7 +26,7 @@ Parent context stays clean. Subagent context is discarded.
2626

2727
## 工作原理
2828

29-
1. 父智能体有一个 `task` 工具。子智能体拥有除 `task` 外的所有基础工具 (禁止递归生成)。
29+
1. 父 Agent 有一个 `task` 工具。Subagent 拥有除 `task` 外的所有基础工具 (禁止递归生成)。
3030

3131
```python
3232
PARENT_TOOLS = CHILD_TOOLS + [
@@ -40,7 +40,7 @@ PARENT_TOOLS = CHILD_TOOLS + [
4040
]
4141
```
4242

43-
2. 子智能体以 `messages=[]` 启动, 运行自己的循环。只有最终文本返回给父智能体
43+
2. Subagent 以 `messages=[]` 启动, 运行自己的循环。只有最终文本返回给父 Agent
4444

4545
```python
4646
def run_subagent(prompt: str) -> str:
@@ -69,7 +69,7 @@ def run_subagent(prompt: str) -> str:
6969
) or "(no summary)"
7070
```
7171

72-
子智能体可能跑了 30+ 次工具调用, 但整个消息历史直接丢弃。父智能体收到的只是一段摘要文本, 作为普通 `tool_result` 返回。
72+
Subagent 可能跑了 30+ 次工具调用, 但整个消息历史直接丢弃。父 Agent 收到的只是一段摘要文本, 作为普通 `tool_result` 返回。
7373

7474
## 相对 s03 的变更
7575

docs/zh/s05-skill-loading.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# s05: Skills (技能加载)
1+
# s05: Skills (Skill 加载)
22

33
`s01 > s02 > s03 > s04 > [ s05 ] s06 | s07 > s08 > s09 > s10 > s11 > s12`
44

55
> *"用到什么知识, 临时加载什么知识"* -- 通过 tool_result 注入, 不塞 system prompt。
66
77
## 问题
88

9-
你希望智能体遵循特定领域的工作流: git 约定、测试模式、代码审查清单。全塞进系统提示太浪费 -- 10 个技能, 每个 2000 token, 就是 20,000 token, 大部分跟当前任务毫无关系。
9+
你希望 Agent 遵循特定领域的工作流: git 约定、测试模式、代码审查清单。全塞进系统提示太浪费 -- 10 个 Skill, 每个 2000 token, 就是 20,000 token, 大部分跟当前任务毫无关系。
1010

1111
## 解决方案
1212

@@ -29,11 +29,11 @@ When model calls load_skill("git"):
2929
+--------------------------------------+
3030
```
3131

32-
第一层: 系统提示中放技能名称 (低成本)。第二层: tool_result 中按需放完整内容。
32+
第一层: 系统提示中放 Skill 名称 (低成本)。第二层: tool_result 中按需放完整内容。
3333

3434
## 工作原理
3535

36-
1. 每个技能是一个目录, 包含 `SKILL.md` 文件和 YAML frontmatter。
36+
1. 每个 Skill 是一个目录, 包含 `SKILL.md` 文件和 YAML frontmatter。
3737

3838
```
3939
skills/
@@ -43,7 +43,7 @@ skills/
4343
SKILL.md # ---\n name: code-review\n description: Review code\n ---\n ...
4444
```
4545

46-
2. SkillLoader 递归扫描 `SKILL.md` 文件, 用目录名作为技能标识
46+
2. SkillLoader 递归扫描 `SKILL.md` 文件, 用目录名作为 Skill 标识
4747

4848
```python
4949
class SkillLoader:
@@ -82,14 +82,14 @@ TOOL_HANDLERS = {
8282
}
8383
```
8484

85-
模型知道有哪些技能 (便宜), 需要时再加载完整内容 (贵)。
85+
模型知道有哪些 Skill (便宜), 需要时再加载完整内容 (贵)。
8686

8787
## 相对 s04 的变更
8888

8989
| 组件 | 之前 (s04) | 之后 (s05) |
9090
|----------------|------------------|--------------------------------|
9191
| Tools | 5 (基础 + task) | 5 (基础 + load_skill) |
92-
| 系统提示 | 静态字符串 | + 技能描述列表 |
92+
| 系统提示 | 静态字符串 | + Skill 描述列表 |
9393
| 知识库 || skills/\*/SKILL.md 文件 |
9494
| 注入方式 || 两层 (系统提示 + result) |
9595

docs/zh/s06-context-compact.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
77
## 问题
88

9-
上下文窗口是有限的。读一个 1000 行的文件就吃掉 ~4000 token; 读 30 个文件、跑 20 条命令, 轻松突破 100k token。不压缩, 智能体根本没法在大项目里干活
9+
上下文窗口是有限的。读一个 1000 行的文件就吃掉 ~4000 token; 读 30 个文件、跑 20 条命令, 轻松突破 100k token。不压缩, Agent 根本没法在大项目里干活
1010

1111
## 解决方案
1212

docs/zh/s07-task-system.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
s03 的 TodoManager 只是内存中的扁平清单: 没有顺序、没有依赖、状态只有做完没做完。真实目标是有结构的 -- 任务 B 依赖任务 A, 任务 C 和 D 可以并行, 任务 E 要等 C 和 D 都完成。
1010

11-
没有显式的关系, 智能体分不清什么能做、什么被卡住、什么能同时跑。而且清单只活在内存里, 上下文压缩 (s06) 一跑就没了。
11+
没有显式的关系, Agent 分不清什么能做、什么被卡住、什么能同时跑。而且清单只活在内存里, 上下文压缩 (s06) 一跑就没了。
1212

1313
## 解决方案
1414

docs/zh/s08-background-tasks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
77
## 问题
88

9-
有些命令要跑好几分钟: `npm install``pytest``docker build`。阻塞式循环下模型只能干等。用户说 "装依赖, 顺便建个配置文件", 智能体却只能一个一个来
9+
有些命令要跑好几分钟: `npm install``pytest``docker build`。阻塞式循环下模型只能干等。用户说 "装依赖, 顺便建个配置文件", Agent 却只能一个一个来
1010

1111
## 解决方案
1212

docs/zh/s09-agent-teams.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# s09: Agent Teams (智能体团队)
1+
# s09: Agent Teams (Agent 团队)
22

33
`s01 > s02 > s03 > s04 > s05 > s06 | s07 > s08 > [ s09 ] s10 > s11 > s12`
44

55
> *"任务太大一个人干不完, 要能分给队友"* -- 持久化队友 + JSONL 邮箱。
66
77
## 问题
88

9-
子智能体 (s04) 是一次性的: 生成、干活、返回摘要、消亡。没有身份, 没有跨调用的记忆。后台任务 (s08) 能跑 shell 命令, 但做不了 LLM 引导的决策。
9+
Subagent (s04) 是一次性的: 生成、干活、返回摘要、消亡。没有身份, 没有跨调用的记忆。Background Tasks (s08) 能跑 shell 命令, 但做不了 LLM 引导的决策。
1010

11-
真正的团队协作需要三样东西: (1) 能跨多轮对话存活的持久智能体, (2) 身份和生命周期管理, (3) 智能体之间的通信通道
11+
真正的团队协作需要三样东西: (1) 能跨多轮对话存活的持久 Agent, (2) 身份和生命周期管理, (3) Agent 之间的通信通道
1212

1313
## 解决方案
1414

@@ -105,7 +105,7 @@ def _teammate_loop(self, name, role, prompt):
105105
| 组件 | 之前 (s08) | 之后 (s09) |
106106
|----------------|------------------|------------------------------------|
107107
| Tools | 6 | 9 (+spawn/send/read_inbox) |
108-
| 智能体数量 | 单一 | 领导 + N 个队友 |
108+
| Agent 数量 | 单一 | 领导 + N 个队友 |
109109
| 持久化 || config.json + JSONL 收件箱 |
110110
| 线程 | 后台命令 | 每线程完整 agent loop |
111111
| 生命周期 | 一次性 | idle -> working -> idle |

docs/zh/s11-autonomous-agents.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# s11: Autonomous Agents (自治智能体)
1+
# s11: Autonomous Agents (Autonomous Agent)
22

33
`s01 > s02 > s03 > s04 > s05 > s06 | s07 > s08 > s09 > s10 > [ s11 ] s12`
44

@@ -10,7 +10,7 @@ s09-s10 中, 队友只在被明确指派时才动。领导得给每个队友写
1010

1111
真正的自治: 队友自己扫描任务看板, 认领没人做的任务, 做完再找下一个。
1212

13-
一个细节: 上下文压缩 (s06) 后智能体可能忘了自己是谁。身份重注入解决这个问题。
13+
一个细节: Context Compact (s06) 后 Agent 可能忘了自己是谁。身份重注入解决这个问题。
1414

1515
## 解决方案
1616

docs/zh/s12-worktree-task-isolation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
77
## 问题
88

9-
到 s11, 智能体已经能自主认领和完成任务。但所有任务共享一个目录。两个智能体同时重构不同模块 -- A 改 `config.py`, B 也改 `config.py`, 未提交的改动互相污染, 谁也没法干净回滚。
9+
到 s11, Agent 已经能自主认领和完成任务。但所有任务共享一个目录。两个 Agent 同时重构不同模块 -- A 改 `config.py`, B 也改 `config.py`, 未提交的改动互相污染, 谁也没法干净回滚。
1010

1111
任务板管 "做什么" 但不管 "在哪做"。解法: 给每个任务一个独立的 git worktree 目录, 用任务 ID 把两边关联起来。
1212

0 commit comments

Comments
 (0)