4.8 KiB
4.8 KiB
阶段 D:能力建设(只读工具 server / 会话复用 / 依赖清单)
日期:2026-08-22 总 plan:2026-08-22-agent-example整体收敛总plan.md 状态:离线部分完成;真实派发验证待人工授权(一次带探索工具的显式模型调用)。
1. 意图
给框架派发链补齐三块底座:只读工具 server、会话复用、依赖清单。
2. 实现落点
2.1 只读工具 server(边界合同的工具层组件)
read_tools.py:五个登记工具,单一事实源TOOL_REGISTRY(名称、描述、读取表、参数说明、实现):read_fine_outline(已确认细纲)、read_style_constraints(已确认文风投影)、read_pattern_bindings(已确认范式绑定)——查询语义与 assemble-context 三个一等取数端一致(工具 server 按边界合同自持实现,不跨 Skill 导入)。read_chapter_text(章节正式正文,30000 字截断标记)、search_entities(实体模糊检索,50 行上限)。- 只读连接
muse_db.connect(readonly=True);未知工具/非法参数合同拒绝(退出码 2);--list输出登记表。
muse_read_tools_extension.ts:框架扩展,装载时从--list动态注册工具(不硬编码工具清单,防双源漂移);每次执行转给只读实现;派发器未注入环境变量时不注册任何工具。- 派发器经
-e显式加载该扩展;--no-extensions只禁自动发现(框架资源加载器合同已核实),隔离与工具加载共存。 - 派发门禁:任务白名单含登记表工具名但未
--enable-read-tools时,运行前失败关闭(READ_TOOLS_NOT_ENABLED)。
2.2 会话复用
ExecutionPolicy增加session_id/session_dir(同给或同缺,否则构造拒绝);build_pi_argv映射为框架原生--session-id+--session-dir(不自造会话存储)。- 派发语义:每次派发仍是一次独立运行记录;会话连续通过共享会话目录实现——同一章补证/修改传前次运行的会话 ID 与会话目录继续原会话;完全重写新建。
- CLI 新增
--session-id/--session-dir/--enable-read-tools。
2.3 依赖清单
- 框架工具事件携带参数(
tool_execution_start.args);适配器捕获进ToolCallRecord.args,截断后随tool.started事件入账本。 - 成功运行把工具调用序列写为运行目录
dependencies.json(seq/tool/args/isError);回执含dependencies摘要(count/file)。无工具调用不产文件。 - 不加新表:事件账本 + 运行目录审计件承载;创作台链路透视(阶段 G)读这两处。
3. 文件台账
| 处置 | 文件 | 原因 |
|---|---|---|
| 新增 | scripts/read_tools.py |
填补边界合同工具层空白:探索读取的唯一受控入口;登记表为单一事实源;入口为扩展装载与测试 |
| 新增 | scripts/muse_read_tools_extension.ts |
工具 server 的框架适配:只从登记表动态注册,无第二套工具清单;经派发器 -e 加载 |
| 修改 | scripts/pi_runner.py |
会话复用字段与 argv、扩展加载、工具参数捕获(依赖清单材料);职责仍是薄适配,无业务决策 |
| 修改 | scripts/dispatch_agent_task.py |
三个 CLI 开关、工具门禁、环境变量注入、依赖清单写入、回执字段 |
| 修改 | SKILL.md(dispatch-agent-task) |
登记新模块、命令参数、事件与依赖清单合同、工具 server 红线 |
| 新增 | tests/skills/dispatch-agent-task/test_read_tools.py |
工具合同离线测试:五工具行为、拒绝路径、登记表 CLI、扩展动态装载对账 |
| 修改 | tests/skills/dispatch-agent-task/test_dispatch_agent_task.py |
新增 5 项:会话成对校验与 argv、扩展标志、工具参数捕获、工具门禁失败关闭、依赖清单产出 |
| 修改 | harness/manifests/test-inventory.json |
登记新测试条目,摘要同步重算(110 条) |
| 保留 | execute-role-task、直调链 |
阶段 F 裁决对象,本阶段不动 |
| 遗留 | 真实派发验证(一次带工具的显式模型调用,查库核对事件/依赖清单) | 需人工授权;授权后执行并回填本文件验证节 |
4. 验证
- 工具离线测试:10 项通过(五工具行为、拒绝路径、登记表、扩展对账)。
- 派发测试:25 项通过(原 20 项 + 会话/工具/依赖清单 5 项)。
- 选择器定向:新增两条目通过。
- 全量离线清单:102 通过、8 项外部依赖阻断、0 失败(较阶段 C 基线 +1 条目)。
- 技能严格审计:58 个 Skill,阻断 0,质量发现 0;索引一致性通过。
- 架构门禁(导入边界 + 索引):通过。
git diff --check:通过。 - 真实派发验证:待授权(见 §3 遗留)。