docs(i18n): use Chinese turn and step terms

This commit is contained in:
Tianyi Cui
2026-07-23 14:20:43 +08:00
parent 157e9a3ee3
commit 46e7330f8f
7 changed files with 14 additions and 14 deletions

View File

@@ -3,4 +3,4 @@
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write
defensive-patterns.md: 349b916df6f7544300dacd578acf42668d9436ac
defensive-patterns.zh.md: 7c99290854e2bbdb4237853717f175d096ec79d9
defensive-patterns.zh.md: 19565f54595195a52d1b49ff487294945171ae2d

View File

@@ -10,11 +10,11 @@
## 跨 seam 契约两侧都要遵守
当一个接口文档记录了两种合法的信号方式时——例如适配器可以通过从 `stream()` 抛出异常来报告失败,也可以通过以 `finish {kind:'error'|'aborted'}` 分片结束流来报告——消费方必须同时处理两种路径,而不是只处理第一个实现恰好使用的那种。依赖库的适配器可能无法在流中途抛出异常,只能走带内路径;如果 agent loop智能体循环只捕获抛出的异常就会把提供方的 401 错误变成一个正常完成的 Turn轮次。请在类型定义处记录契约;通过真实消费方测试每个分支。
当一个接口文档记录了两种合法的信号方式时——例如适配器可以通过从 `stream()` 抛出异常来报告失败,也可以通过以 `finish {kind:'error'|'aborted'}` 分片结束流来报告——消费方必须同时处理两种路径,而不是只处理第一个实现恰好使用的那种。依赖库的适配器可能无法在流中途抛出异常,只能走带内路径;如果 agent loop智能体循环只捕获抛出的异常就会把提供方的 401 错误变成一个正常完成的轮次。请在类型定义处记录契约;通过真实消费方测试每个分支。
## 异步状态不是同步状态
`agent.send()` 不会在返回前翻转状态;后台任务的完成与 Turn 边界存在竞争;`reader.close()` 在 EOF 和 dispose资源释放两种情况下都会触发。切勿基于一个刚刚请求的状态来控制流程——应以实际触发的事件/promise`agent/status``task.done`)驱动生命周期,并观察状态转换(先看到 `running` 再看到 `idle`),而不是把状态当作单次发送的结果:多个排队发送会在同一个 `running` 区间内连续运行多个 Turn而取消或资源释放可能丢弃尚未启动的项。这条守则是双向的如果等待的转换永远不会发生EOF 时没有提交过任何工作 → 永远不会进入 `running`),等待就会挂起——请显式处理「无需等待」的分支。
`agent.send()` 不会在返回前翻转状态;后台任务的完成与轮次边界存在竞争;`reader.close()` 在 EOF 和 dispose资源释放两种情况下都会触发。切勿基于一个刚刚请求的状态来控制流程——应以实际触发的事件/promise`agent/status``task.done`)驱动生命周期,并观察状态转换(先看到 `running` 再看到 `idle`),而不是把状态当作单次发送的结果:多个排队发送会在同一个 `running` 区间内连续运行多个轮次而取消或资源释放可能丢弃尚未启动的项。这条守则是双向的如果等待的转换永远不会发生EOF 时没有提交过任何工作 → 永远不会进入 `running`),等待就会挂起——请显式处理「无需等待」的分支。
## Dispose 必须达到静止,而不仅仅是请求停止

View File

@@ -3,4 +3,4 @@
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write
glossary.md: c1931c0e0c630d05f5bd4fc3f30720f858f1175e
glossary.zh.md: bd44efa1222bde5a4281cbb005543fa3cc6691b4
glossary.zh.md: 951abebc162e2456211437fcd5b27dd57783e9b6

View File

@@ -21,7 +21,7 @@ FIXME(glossary-completeness): 首次发布前扩充本术语表,使其覆盖 S
## 目标
- **目标**:附着在现有会话上的单个持久完成目标,带有按修订号演进的 `active` / `paused` / `blocked` / `complete` 阶段和 Goal Round 上限;`blocked` 保留策略代码与说明。目标是一种状态,不是调度器,也不是一段独立对话;会话日志仍是其真源。
- **Goal Round**:为当前目标接纳的一次续行周期。同会话驱动器将 Goal Round 具体化为一个来源为目标的 [Turn轮次](#turn),其中包含一个或多个 Step步骤;同一会话中无关的人类 Turn 不消耗 Goal Round 上限。<a id="goal-round"></a>
- **Goal Round**:为当前目标接纳的一次续行周期。同会话驱动器将 Goal Round 具体化为一个来源为目标的[轮次](#turn),其中包含一个或多个步骤;同一会话中无关的人类轮次不消耗 Goal Round 上限。<a id="goal-round"></a>
- **目标激活**:续行消费方接纳下一个 Goal Round 的进程本地权限。激活态为 `armed``disarmed`;它有意不参与持久回放,因此恢复和 fork 后,必须由人类随后通过 `/goal` 或模型工具授权恢复变更,自动工作才可开始。
## 人类命令
@@ -32,9 +32,9 @@ FIXME(glossary-completeness): 首次发布前扩充本术语表,使其覆盖 S
## 循环层级
- **Turn**:会话中一次对已接纳输入的排空过程,在模型及其工具停止工作或终止策略介入后结束。<a id="turn"></a>
- **Step**:一次模型请求,以及由模型响应引发的工具执行;一个 Turn 包含一个或多个 Step。<a id="step"></a>
- **Round**:承载一个 Turn 的外层策略迭代,例如一个 [Goal Round](#goal-round) 或一次使用全新 agent 的 Ralph 尝试。Round 计数器归该策略所有,并不统计会话中的每个 Turn。<a id="round"></a>
- **轮次**:会话中一次对已接纳输入的排空过程,在模型及其工具停止工作或终止策略介入后结束。<a id="turn"></a>
- **步骤**:一次模型请求,以及由模型响应引发的工具执行;一个轮次包含一个或多个步骤。<a id="step"></a>
- **Round**:承载一个轮次的外层策略迭代,例如一个 [Goal Round](#goal-round) 或一次使用全新 agent 的 Ralph 尝试。Round 计数器归该策略所有,并不统计会话中的每个轮次。<a id="round"></a>
## Ralph

View File

@@ -52,19 +52,17 @@
| loader | loader | | | |
| manifest | manifest | manifest元数据清单 | | |
| monorepo | monorepo | | | |
| Round | Round | | 回合、目标回合、Ralph 回合 | 领域层级为 Session > Round > Turn轮次 > Step步骤Goal Round 与 Ralph Round 均保留英文。一个 Round 承载一个 Turn一个 Turn 包含一个或多个 Step。 |
| Round | Round | | 回合、目标回合、Ralph 回合 | 领域层级为 Session > Round > Turn轮次 > Step步骤Goal Round 与 Ralph Round 均保留英文。一个 Round 承载一个轮次,一个轮次包含一个或多个步骤。 |
| schema | schema | | | |
| schema DSL | schema DSL | | | |
| seam | seam | | | 与 `extension point` 是不同概念;根据具体语境,可译为`服务边界``可替换点` |
| skill | skill | skill技能 | | |
| spawn | spawn | | | |
| Step | Step | Step步骤 | | 领域层级术语;普通流程或操作步骤不在此列,按中文语境翻译。 |
| steering | steering | steering中途引导 | | |
| task id | task id | | 任务 id | 保留英文 |
| subagent | subagent | | | |
| thinking | thinking | | | API 字段保留英文;描述模型模式时译为`思考` |
| transcript | transcript | transcript文本记录 | | 指会话渲染给用户或编辑器的完整文本,区别于事件日志 |
| Turn | Turn | Turn轮次 | | 领域层级术语;普通非领域用法(如轮流、转向或往返)按中文语境翻译。 |
| waterfall | waterfall | waterfall瀑布式事件 | | |
| wheel | wheel 包 | | | Python 打包格式 |
| worktree | worktree | | | git 工作区概念 |
@@ -166,6 +164,7 @@
| spine | 主干 | | | |
| staged | 暂存 | | | 沿用 git 官方中文翻译 |
| stale | 陈旧 | | 过期 | 与 `fresh``新鲜`)成对;门禁输出中保留英文 `stale` 不翻译;`expired` 才译为`过期` |
| step | 步骤 | | | |
| stream | 流 | | | |
| streaming | 流式输出 | | | |
| structural signature | 结构签名 | | | i18n 配对机制用语:门禁比对两侧文件时提取的有序结构序列(标题层级、代码块、列表等) |
@@ -177,6 +176,7 @@
| tool result | 工具结果 | | | |
| tool schema | 工具 schema | | | |
| toolkit | 工具包 | | | |
| turn | 轮次 | | | |
| VFS | VFS | 虚拟文件系统VFS | | |
| typecheck | 类型检查 | | | |
| vocabulary | 词汇 | | | |

View File

@@ -3,4 +3,4 @@
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write
testing.md: 5a18397ba2431a4c4f2595d32d9de6fe3ddeb6f4
testing.zh.md: d9f1fca745b0f545f0b1904a2d3029649568d18d
testing.zh.md: 19ee4aa6abffc13c35b1933e2af0ed38eef5c7e6

View File

@@ -13,13 +13,13 @@
## 带密钥策略:推理在这里很便宜
我们是 DeepSeek不要吝惜真实 API 测试。无密钥测试只能证明底层通路;只有带密钥运行才能证明 agent智能体能对接真实模型正常工作。覆盖文件写入提示词、包含多个 Turn轮次的对话、工具使用和流中取消。价值最高的是**冒烟测试**:启动真实示例、发送一条提示词,并检查外部世界;它们能捕获「单元测试全绿、产品却坏了」这一类 mock 无法发现的问题([事故复盘 0001](postmortem/0001-acp-default-export-drops-inject.md))。自动跳过让无密钥 CI 和无密钥贡献者不受阻塞;它不是成本信号。每个示例都提供无密钥和带密钥冒烟测试([examples/AGENTS.md](../examples/AGENTS.md))。
我们是 DeepSeek不要吝惜真实 API 测试。无密钥测试只能证明底层通路;只有带密钥运行才能证明 agent智能体能对接真实模型正常工作。覆盖文件写入提示词、包含多个轮次的对话、工具使用和流中取消。价值最高的是**冒烟测试**:启动真实示例、发送一条提示词,并检查外部世界;它们能捕获「单元测试全绿、产品却坏了」这一类 mock 无法发现的问题([事故复盘 0001](postmortem/0001-acp-default-export-drops-inject.md))。自动跳过让无密钥 CI 和无密钥贡献者不受阻塞;它不是成本信号。每个示例都提供无密钥和带密钥冒烟测试([examples/AGENTS.md](../examples/AGENTS.md))。
## 优先使用真实实现而非 mock
只 mock 开销高或不确定的边界LLM大语言模型适配器、网络、时钟下游一切保持真实。手写替身只能证明桥接层在搬运字节不能证明交付的工具行为符合断言。桥接工具调用测试将脚本化 mock 模型与真实工具和执行器配合使用:`makeBridgeHarness({ withBash: true })` 接入 `dsh-bash-local``dsh-tool-bash`,然后运行 `echo`
恢复测试按 Step步骤区分分片前与分片后的失败,并证明失败分片不会派生出消息或工具副作用。覆盖耗尽、取消、策略组合、持久化、状态、协议计数、会关闭传输的空闲超时,以及交付的 Loader 组合。
恢复测试按步骤区分分片前与分片后的失败,并证明失败分片不会派生出消息或工具副作用。覆盖耗尽、取消、策略组合、持久化、状态、协议计数、会关闭传输的空闲超时,以及交付的 Loader 组合。
## 验证外部世界,而非自我报告