Skip to content

第 26 章 Example Plan:任务隔离预检

目的与边界

assessTaskIsolation 是一个纯内存教学函数。它以调用者传入的 Task Contract、现有 Ownership Claim 和 Integration Contract 判断局部任务是否可进入隔离工作,或是否必须停止、转给集成者。

不会创建或观察真实 Agent、子进程、并行调度、worktree、文件锁、消息队列、浏览器会话、文件、网络、凭证、Git、CI 或外部效果。

输入契约

输入最小字段判断用途
taskidownerexclusivePathsacceptancestopConditions定义一个可领取的局部工作单元。
claims每项有 ownerexclusivePaths查找其他 owner 的重叠输出面。
integrationownersharedArtifacts指出共享写入由谁集中收口。

requestedSharedWrites 可选;存在时不会进入局部写入,而是返回 requires_integration。路径只是字符串,不会被读取、规范化为真实文件系统位置或建立锁。

输出契约

状态路由含义不能说明
readyisolated_task教学输入具备 owner、专属输出、验收、停止条件且未发现异 owner 重叠。真实任务已经启动或路径已隔离。
blockednull输入缺失、路径重叠、共享路径误称专属或集成者缺失。人已裁决、冲突已修复或执行失败。
requires_integrationintegration_owner当前输入请求写共享工件,应交由集成者统一处理。集成者已经写入或全仓校验已通过。
not_applicablenull输入不是教学 Task Contract。真实请求不重要或被拒绝。

红绿记录

先创建测试,再创建模块。2026-07-16 实际运行:

bash
node --test examples/agent/task-isolation-assessment.test.mjs

模块尚不存在时,Node 以退出码 1 结束,错误为 ERR_MODULE_NOT_FOUND,缺失目标为 examples/agent/task-isolation-assessment.mjs。该红灯只证明测试文件先于模块存在。

实现后,使用相同命令实际运行:10 项 Node 内置测试通过、0 项失败。演示命令:

bash
node examples/agent/task-isolation-assessment.mjs

实际输出为:

json
{"status":"ready","route":"isolated_task","reasons":[],"isolatedPaths":["docs/part-04-engineering-practice/26-multi-agent-collaboration-and-task-isolation.md"]}

这只证明函数在该注入对象上返回确定结构,不证明当前仓库、真实协作者或外部系统使用了同一契约。

测试矩阵

路径输入变化预期状态预期原因或路由
受限局部工作完整 owner、专属路径、验收、停止条件。readyisolated_task
owner 缺失owner 为空。blockedtask_owner_missing
验收缺失acceptance 为空。blockedacceptance_contract_missing
停止条件缺失stopConditions 为空。blockedstop_condition_missing
异 owner 重叠已有 Claim 触及相同路径。blockedexclusive_path_already_claimed
同 owner 续接Claim 与 task owner 相同。readyisolated_task
共享写入请求请求写已声明 shared artifact。requires_integrationintegration_owner
集成者缺失共享写入但没有 integration owner。blockedintegration_owner_missing
共享误称专属shared artifact 出现在 exclusivePathsblockedshared_artifact_cannot_be_exclusive
非契约输入传入 kind: conversationnot_applicabletask_contract_not_provided

不覆盖范围

  • 真正的并行安全还需要执行器、文件系统、版本控制、环境、身份、外部资源、重试与观察的独立设计。
  • 字符串路径重叠不等价于语义冲突;两个不同文件仍可能共享术语、接口或同一外部目标。
  • 交给集成者不等于该集成者拥有权限、已经批准写入或已接受结果。

从同一套 Markdown 书稿生成。