docs(i18n): proofread README translations 141-160

This commit is contained in:
j-xiang
2026-07-29 15:29:38 +08:00
parent 57b01e68d3
commit a37097846b
20 changed files with 146 additions and 146 deletions

View File

@@ -1,13 +1,13 @@
# tasks/:后台任务能力
# tasks/:后台任务能力
[English](README.md) | 中文
后台 task id、有者隔离、读取、取消、等待和完成通知的共用归属位置。Bash、subagent 及未来的长时间运行工具共用一套面向模型的协议。参见[后台任务运行时 Agent Noteagent 决策记录)](../../.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md)和[任务注册表 seam Agent Note](../../.agents/notes/implemented/architecture/2026-07-26-task-registry-seam.md)。
这是后台任务 id、有者隔离、读取、取消、等待和完成通知的共用归属位置。Bash、subagent(子 agent及未来的长时间运行工具共用一套面向模型的协议。参见[后台任务运行时 Agent Noteagent 决策记录)](../../.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md)和[任务注册表 seam Agent Noteagent 决策记录)](../../.agents/notes/implemented/architecture/2026-07-26-task-registry-seam.md)。
| 包package | ctx 键 | 角色 |
|---|---|---|
| [`tasks`](tasks/README.md)`@deepseek-ai/dsh-tasks` | `ctx.tasks` | 注册表 seam品牌 `<kind>-N` id、按有者设防的 readkillwaitlist 契约、快照词汇、防止 `attachSurface` 配置错误防线,以及快照不变式配套插件 |
| [`tasks-local`](tasks-local/README.md)`@deepseek-ai/dsh-tasks-local` | 无 | 进程局部的注册表实现:内存记录、首次结果优先的结算簿记,以及等待完成的拥有者清理与拆卸路径 |
| [`tasks`](tasks/README.md)`@deepseek-ai/dsh-tasks` | `ctx.tasks` | 注册表 seam品牌类型的 `<kind>-N` id、按有者隔离的读取/终止/等待/列出契约、快照词汇、`attachSurface` 配置错误防线,以及快照不变式配套 |
| [`tasks-local`](tasks-local/README.md)`@deepseek-ai/dsh-tasks-local` | 无 | 进程注册表实现:内存记录、首次结算为准的簿记,以及等待执行完毕的所有者清理路径和销毁路径 |
| [`tool-tasks`](tool-tasks/README.md)`@deepseek-ai/dsh-tool-tasks` | 无 | 面向模型的控制接口:`task_output``task_list``task_kill`、完成通知注入和后台工作习惯提示词段落 |
注册表拥有跨生产方或接口重载的状态;工具包拥有呈现。生产方通过 `ctx.tasks.start` 注册执行钩子,并自行决定其配置是否公开 `run_in_background`
生产方或接口重载时,状态仍由注册表持有;工具包负责呈现。生产方通过 `ctx.tasks.start` 注册执行钩子,并自行决定其配置是否公开 `run_in_background`

View File

@@ -2,25 +2,25 @@
[English](README.md) | 中文
[`@deepseek-ai/dsh-tasks`](../tasks/README.md) 注册表 seam 的进程局部实现:`LocalTaskService` 把每条记录保存在内存中,按 kind 签发 `<kind>-N` id并且只交出全新快照从不交出实时状态。它没有配置作为插件加载后即注册为 `ctx.tasks`
[`@deepseek-ai/dsh-tasks`](../tasks/README.md) 注册表 seam 的进程本地实现:`LocalTaskService` 把每条记录保存在内存中,按 kind 签发 `<kind>-N` id并且只交出全新快照从不交出实时状态。它没有配置作为插件加载后即注册为 `ctx.tasks`
## 生命周期
任务属于其 owner 和后端,而不是生产方工具 fiber因此重载生产方或表层不会停止任务。某个 owner 的第一个任务会把一个等待的 effect 附加到精确的 `Agent` scope。owner 释放会取消该对象的任务,等待生产方完全停稳,并移除其快照;复用 agent 或 Session id 无法重定向旧清理。
任务属于其所有者和后端,而不是生产方工具 fiber因此重载生产方或接口不会停止任务。某个所有者的第一个任务会把一个会被等待的 effect 附加到对应 `Agent` 对象的 scope 上。所有者的 dispose资源释放会取消该对象的任务,等待生产方完全停稳,并移除其快照;复用 agent智能体id 或会话 id 无法重定向旧清理操作
服务释放会关闭监听器、取消所有存活任务、等待其记录,并从仍存活的 owner scope 分离 effect。如果拆卸取消抛出异常,服务会强制记录标为失败,并警告工作可能遗留,而不会死锁。取消已返回但始终不终止 `done` 时,系统无法将其与缓慢停止区分开,拆卸可能因此停滞。
服务 dispose 会关闭监听器、取消所有存活任务、等待其记录完成,并从仍存活的所有者 scope 分离 effect。如果销毁期间的取消操作抛出异常,服务会强制记录标为失败,并警告工作可能成为孤立工作,而不会死锁。取消操作已返回但 `done` 始终未结算时,系统无法将其与缓慢停止区分开,销毁过程可能因此停滞。
结算遵循首次结优先:最早出现的终止结果(生产方结算、被隔离`failed``done` 拒绝,或拆卸强制失败)只记录一次,只通知监听器一次并对每个监听器单独隔离故障,然后释放等待方。挂起的等待会在监听器运行前把任务标记为已报告,因此呈现完成情况的表层不会重复发出通知。
结算遵循首次结优先原则:最早出现的终止结果(生产方结算、`failed` 隔离处理`done` 拒绝,或销毁时的强制失败)只记录一次,只通知监听器一次;各监听器的故障会单独隔离,随后释放等待方。挂起的等待会在监听器运行前把任务标记为已报告,因此呈现完成情况的表层不会重复发出通知。
## 模型体验
通过生产方插件和 [`dsh-tool-tasks`](../tool-tasks/README.md) 间接影响;它们会渲染 task id、输出、状态、取消和完成通知。
通过生产方插件和 [`dsh-tool-tasks`](../tool-tasks/README.md) 间接影响;它们会呈现任务 id、输出、状态、取消和完成通知。
#### KV Cache 影响
不会直接失效;请求前缀变更由命名消费方负责。
不会直接导致 KV Cache 失效;请求前缀变更由上述消费方负责。
## 已知限制与暂缓事项
- **任务只存在于进程本地**:记录随 harness 进程一起消亡;持久或跨重启执行需要一个单独实现该 seam 的后端。
- **静默无效的取消可能使拆卸停滞**:只有显式抛出异常才能安全地强制标为失败。
- **任务只存在于进程本地**:记录随 harness 进程终止而消失;持久或跨重启执行需要一个单独实现该 seam 的后端。
- **静默无效的取消可能使销毁过程停滞**:只有显式抛出异常才能安全地强制标为失败。

View File

@@ -6,21 +6,21 @@
## 服务契约
- `start(spec): TaskId` 验证控制表层、spec、精确的存活 owner以及可选的 `outputLimitBytes`,然后只调用生产方的 `run()` 一次。启动方抛出异常时不注册任何内容;成功返回会直接提交,不再执行其他可能失败的步骤。
- `start(spec): TaskId` 验证控制表层、spec、确切且仍存活 owner以及可选的 `outputLimitBytes`(如提供则须为正数),然后只调用生产方的 `run()` 一次。启动方抛出异常时不注册任何内容;成功返回会直接提交,不再执行其他可能失败的步骤。
- `get(id, caller?)``list(caller?)` 返回非消费式快照。列表只包含调用方拥有及无 owner 的任务。
- `read(id, caller?)` 消费流任务的唯一游标;对于最终输出任务,则以幂等方式读取终止输出。
- `kill(id, caller?, reason?)` 在更改状态前调用生产方取消。取消抛出异常时任务保持运行;成功则把状态改为 `stopping`,并将终止交付标记为已报告。
- `wait(id, timeoutMs, caller?, signal?)` 返回终止快照,或在超时时返回存活快照。中止只会停止等待;一旦终止交付已向该等待方提交,终止结果优先。
- `onTaskDone(listener)` 观察每条终止记录及其精确 owner。监听器抛出异常拒绝会被封装;系统不会等待监听器工作。
- `onTaskDone(listener)` 观察每条终止记录及其精确 owner。监听器抛出异常和产生的拒绝会被隔离;系统不会等待监听器工作。
- `attachSurface(name)` 在其 effect 生命周期内声明控制表层。如果没有附加任何表层,`start()` 会在生产方执行前失败。
有 owner 的访问会比较任务的 `SessionId` 与调用方。`bash-1` 等 id 可预测,因此这道隔离是安全边界。无 owner 的任务向调用方开放,并持续到服务释放。
`outputLimitBytes` 是生产方拥有的模型呈现策略,会原样携带到快照中。控制表层在添加状态或通知元数据后应用它;注册表不会重写生产方输出,也不会为省略此字段的生产方虚构默认值。
实现还必须兑现契约的生命周期语义:注册的存续期长于生产方与控制表层 fiberowner 释放和服务释放会取消存活工作并等待守约的生产方,结算遵循首次结果优先(一条终止记录、一轮故障隔离的监听器通知,然后释放等待方)。
实现还必须兑现契约的生命周期语义:注册的存续期长于生产方 fiber 与控制表层 fiberowner 释放和服务释放会取消仍在运行的工作并等待守约的生产方,结算遵循首次结果优先(一条终止记录、一轮异常受到隔离的监听器通知,然后释放等待方)。
参见[任务类型目录](../../../docs/core-data-structures/tasks.md)、[运行时 Agent Note](../../../.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md)和 [seam Agent Note](../../../.agents/notes/implemented/architecture/2026-07-26-task-registry-seam.md)。
参见[任务类型目录](../../../docs/core-data-structures/tasks.md)、[运行时 Agent Noteagent 决策记录)](../../../.agents/notes/implemented/architecture/2026-06-20-generic-long-running-tool-runtime.md)和 [seam Agent Note](../../../.agents/notes/implemented/architecture/2026-07-26-task-registry-seam.md)。
## 模型体验
@@ -28,10 +28,10 @@
#### KV Cache 影响
不会直接失效;请求前缀变更由命名消费方负责。
不会直接导致 KV Cache 失效;请求前缀变更由上述消费方负责。
## 已知限制与暂缓事项
- **流输出只有一个消费游标**:独立观察者需要游标或快照 API。
- **前台工作无法提升**:生产方在启动前选择前台或后台。
- **契约是进程内的**`TaskStart.run()` 传入回调和确切的 `Agent` 对象;持久或跨进程后端必须先重塑身份、重启、所有权与观察语义,才能实现此 seam。
- **前台工作无法转为后台**:生产方在启动前选择前台或后台。
- **契约是进程内的**`TaskStart.run()` 传入回调和确切的 `Agent` 对象;持久或跨进程后端必须先重塑身份、重启、所有权与观察语义,才能实现此 seam。

View File

@@ -14,11 +14,11 @@
它们的规范值依次为 `{ text, task }``PublicTaskSnapshot[]``{ outcome: 'cancellation-requested' | 'already-finished', task }`。公共快照携带 id、kind、label、status/detail 及开始/结束时间;它有意省略 `ownerSession` 和内部 `reported` 通知位。原生 renderer 保留上述状态与确认文本。
当生产方提供 `outputLimitBytes` 时,`task_output`终止 `task_kill` 和完成通知会在添加状态或通知文本后,对完整的原生 UTF-8 结果施加上限。只要能够容纳,读取就会保留输出尾部与控制后缀;有界完成通知则先为 `background task <id>``task_output` 收集指令预留空间,再把剩余字节用于可变的 kind、label、status、detail 与截断标记。一个前置 pre-execute 监听器会在策略运行前捕获调用方可见任务;每个任务控制定义的 final-content 回调会把其生产方上限应用到单文本拒绝、短路、规范化工具或流水线失败、替换和阻止;结构化多块策略结果保持自身形状。已有的生产方截断标记会复用,不会重复添加。省略该字段的生产方保留现有的无界控制表层行为。
当生产方提供 `outputLimitBytes` 时,`task_output`针对已终止任务的 `task_kill` 和完成通知会在添加状态或通知文本后,对完整的原生 UTF-8 结果施加上限。只要能够容纳,读取就会保留输出尾部与控制后缀;有界完成通知则先为 `background task <id>``task_output` 收集指令预留空间,再把剩余字节用于可变的 kind、label、status、detail 与截断标记。一个前置 pre-execute 监听器会在策略运行前捕获调用方可见任务;每个任务控制定义的 final-content 回调会把其生产方上限应用到单文本拒绝、短路、规范化工具或流水线失败、替换和阻止;结构化多块策略结果保持自身形状。已有的生产方截断标记会复用,不会重复添加。省略该字段的生产方保留现有的无界控制表层行为。
## 完成通知
一项尚未报告的完成会向精确 owner 的会话注入 `background task <id> (<kind>: <label>) finished [status: ...]. Read its output with task_output.`。应用上限时, PTY 支持的 64 字节下限,稳定 id 前缀和收集命令的优先级高于可变 label/detail因此通知仍可操作。注入是下一次请求使用的持久上下文并非唤醒。kill 或终止性 read/wait 会把交付标为已报告并抑制重复通知。owner 释放竞态无需特殊处理循环没有终结状态teardown 期间注入的通知作为空闲上下文追加——会话仍挂接时随之持久化以供恢复,脱离后随无引用日志一并丢弃。
一项尚未报告的完成会向精确 owner 的会话注入 `background task <id> (<kind>: <label>) finished [status: ...]. Read its output with task_output.`。应用上限时,即使采用 PTY 支持的 64 字节下限,稳定 id 前缀和收集命令的优先级高于可变 label/detail因此通知仍可操作。注入是下一次请求使用的持久上下文并非唤醒。kill 或针对已终止任务的 read/wait 会把交付标为已报告并抑制重复通知。owner 释放竞态无需特殊处理循环没有终结状态teardown 期间注入的通知作为空闲上下文追加——会话仍挂接时随之持久化以供恢复,之后随脱离挂接的日志一并丢弃。
## 配置
@@ -35,7 +35,7 @@
#### 模型看到的内容
该插件注册 scope 中的每次请求都包含以下指引。按 agent scope 过滤工具时,可能会隐藏工具,却不会移除独立注册的提示词区段。
该插件注册 scope 中的每次请求都包含以下指引。按 agent(智能体)scope 过滤工具时,可能会隐藏工具,却不会移除独立注册的提示词区段。
##### 后台任务指引
@@ -45,7 +45,7 @@ Track every background task id you start. You are notified in-session when a tas
#### Token 影响
激活期间,每次请求承担少量固定输入成本
激活期间,每次请求都会产生少量固定输入 token 开销
#### KV Cache 影响
@@ -59,7 +59,7 @@ Track every background task id you start. You are notified in-session when a tas
#### Token 影响
工具可见每次请求承担固定 schema 成本
工具可见时,每次请求都会产生固定 schema token 开销
#### KV Cache 影响
@@ -69,15 +69,15 @@ Track every background task id you start. You are notified in-session when a tas
#### 模型看到的内容
读取会返回输出或 `(no new output)`,随后是 `[status: <status>]` 和可选 detail。空列表返回 `(no background tasks)`。kill 返回 `requested cancellation of task <id>` 或现有终止状态。尚未报告且有 owner 的完成使用上述通知。
读取会返回输出或 `(no new output)`,随后是 `[status: <status>]` 和可选 detail。空列表返回 `(no background tasks)`。kill 返回 `requested cancellation of task <id>` 或现有终止状态。尚未报告且有 owner 的任务完成使用上述通知。
#### Token 影响
结果与通知在压缩前保留于父级历史。流读取不会重复已消费的输出;生产方提供的 `outputLimitBytes` 会限制每次完整读取或通知。
结果与通知在压缩compaction前保留于父级历史。流读取不会重复已消费的输出;生产方提供的 `outputLimitBytes` 会限制每次完整读取或通知。
#### KV Cache 影响
仅追加;新可见内容位于可复用请求前缀之后,不会使现有 KV-cache 配置项失效。
仅追加;新可见内容位于可复用请求前缀之后,不会使现有 KV Cache 条目失效。
## 已知限制与暂缓事项