第 09 章 · 工具设计与上下文经济学

本篇目标:把每个工具的成本算清楚,并把多步骤任务的上下文占用压到十分之一量级。 核心事实:工具描述是系统提示词的一部分,你每次对话都在为它付费。


9.1 先算一笔账

原文 标准模式下跟 Agent 说一句「你好」,上下文面板约 1 万+ token;极简模式约 1 千+。差约 10 倍。差额来自哪里?

常驻开销来源 说明
工具 schema(name + description + parameters) 二十多个工具,每个几十到几百 token
系统提示词各 section 身份、工作区、时钟、权限说明、行为约定
Skills / 命令 / 预设的清单 即便不加载全文,名称与描述也要常驻
运行时事实注入 git status、环境信息、会话元数据

判据 12(固定成本):每轮输入 token = 常驻工具与提示词开销 + 本轮对话与工具结果。前者是你为「能力可能性」预付的固定税,后者才是任务本身。Harness 设计的第一条经济学就是压低固定税,同时不砍掉真正需要的能力。

原文给的体检动作很实在:说一句「你好」,看上下文面板。若是一万多,你有两个选择——日常切极简省 10 倍,或勤用 /compact。但这两个都是战术;结构性方案是让能力按需出现(9.3)和让中间结果不回灌(9.4)。


9.2 工具设计的六条规则

社区 Cat Wu 原则:除非一个工具被证明能提升效果或准确率,否则不要加。

# 规则 反例 正例
1 一个工具一个清晰动词 manage_files(能做 8 件事) read_file / write_file / move_file
2 description 写「何时用」与「何时别用」 「读取文件」 「读工作区内文本文件;二进制请用 stat_file」
3 枚举写全,别让模型猜 mode: string mode: "strict" \| "lenient"
4 参数给例子与单位 timeout: number timeout_ms: number // 默认 30000,最大 120000
5 错误返回可操作 "failed" "ERROR: 路径越界 ../etc;允许根目录 /repo"
6 只读与写入分开 一个混合工具 分开后才能并行只读(见 9.4)

官方 DSH 的对应机制:core/tools 维护 scoped tool registry 与 guarded execution pipeline,ctx.tools.execute() 接收 raw batches 与并发限制;每一轮的 step-admitted tool schemas 是按 step 准入的,不是一次性全量塞进提示词。这给「按需工具集」留了正规入口。

Schema 歧义是环境 bug,不是模型 bug。 第 06 章的二分法:极简里能做对、标准里做不对,第一嫌疑就是 schema。


9.3 按需加载:Skills 与 MCP

社区 arXiv 对 11 个 coding agents、约 400 万行源码的研究(Barbaste 等,2026-07-15)识别出 29 个 recurring patterns,其中 Skills 采用率 9/11,MCP 为 8/11。

社区 Skills 的关键性质:启动时模型只看到名称 + 描述(约 200 token),需要时才加载全文。这与「把 3000 行 API 文档贴进系统提示词」形成鲜明对比。

内容类型 放哪里 常驻成本
3–5 条铁律、构建命令 AGENTS.md 低
大份 API 规格 / 参考文档 Skill(按需加载) 极低(仅描述)
外部系统能力 MCP Server(stdio / SSE) 低—中
频繁重复的流程 自定义斜杠命令 低
必须 100% 生效的禁区 hook(不进提示词也生效) 0

官方 当前推荐布局:CLAUDE.md(项目记忆)、SKILL.md(按需 skills,优先于 legacy commands)、.claude/agents/*.md(子 Agent)、.claude/workflows/*.js(编排脚本)——全部可随仓库进 git。

判据 13:把「可能用得上」的内容从常驻上下文移到按需层,是零风险的优化;把「必须生效」的约束从常驻上下文移到 hook,是零成本的安全性提升。


9.4 PTC:结构性压缩,不是技巧

第 05 章讲了机制,这里讲清楚省下的到底是什么。

标准模式跑批量流水线:

读 csv1 → 结果回上下文 → 读 csv2 → 结果回上下文 → … → 清洗结果回上下文
→ 聚合结果回上下文 → 搜索基准(N 次,每次结果回上下文)→ 写报告

每一步的中间产物都进入模型历史并被反复重读。PTC 把整个中间过程放进托管进程:

run_code(一次提交) → 进程内完成 18 步 → return 聚合表 + 基准对比 → 模型

原文 可直接复制的批量流水线指令:

用 PTC 编排一个数据流水线:
1. 读取 data/ 下所有 csv,合并成一份数据集
2. 清洗:去空值、统一日期格式、剔除异常值
3. 按 category 分组,计算 count、sum、mean
4. 用 web_search 查一下每个 category 的行业基准值
5. 把对比结果写成 reports/benchmark.md

要求:
- 第 1-3 步用一个程序里完成,不要分多次调用
- 第 4 步的搜索可以并行发起
- 只把最终的聚合表和基准对比结果返回给我
- 中间失败的话,把失败的 csv 文件名列出来跳过,不要中断整体流程

最后两条要求才是精髓:限定 return 的内容、规定失败不中断。把它们写进指令,等于把上下文预算与容错策略显式化了。

维度 标准 PTC
中间结果进上下文 是 否
模型交互次数 N 轮 1 轮
只读并行 受调度限制 默认上限 10 路
有状态写 按步 按提交顺序串行
审批 / 钩子 生效 照常生效 原文
适合 需中途决策 逻辑固定、步骤多

PTC 不是「更快的标准模式」,是「把控制流从模型上下文搬到进程里」。 这个迁移思路可以脱离 DSH 复用:任何「步骤固定、中间结果无需人看」的流程,都值得写成一个程序而不是一串 tool call。


9.5 帕累托前沿:能力 vs 固定开销

把四个模式放到同一张图上理解(定性,非实测):

上下文固定开销
  高 │  Standard ●        Creator ●
     │        ╲            ╱
     │         ╲    PTC ●         ← 单轮高、总量低
     │          ╲  ╱
  低 │     Minimal ●                ← 能力最少,噪声最低
     └──────────────────────────→  可用能力
         少                    多

选型的本质不是在「强/弱」里挑,是在这条前沿上挑一个与任务匹配的点:

任务 该付的固定税 理由
一次性改三行代码 低 用不上 20 个工具的说明书
重构 + 测试闭环 中 需要规划、目标、测试、子 Agent
128 文件批处理 低总量 用 PTC 把中间结果挡在上下文外
模型跑分 最低且必须固定 任何额外工具都会污染对照
造插件 高 需要 inspect 运行时、内存试跑、预设创作

9.6 本章产出与验收

核心产出:一张本项目的「工具成本表」(每个工具的 schema token 估算 + 使用频次 + 是否可按需化),外加一个跑通的 PTC 数据流水线。

验收点:

  • 能量化说出「你好」这一轮的常驻开销由哪几块构成
  • 至少把 1 个大文档从常驻上下文迁到 Skill,并测出前后 token 差
  • 能写出一个 return 只回传聚合结果的 PTC 程序
  • 能解释 PTC 下审批与钩子为何仍然生效
  • 能说出至少 2 个「该删掉的工具」及其依据

延伸阅读

来源 URL 等级
官方文档 · PTC 运行时 https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/ptc-runtime 官方
官方文档 · Tool 执行流水线 / Tools https://deepseek-harness.github.io/deepseek-harness/reference/tool-execution-pipeline 官方
官方文档 · Tool Schema 目录 https://deepseek-harness.github.io/deepseek-harness/reference/tool-catalog 官方
官方文档 · Skills https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/skills 官方
官方文档 · 系统提示词 https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/system-prompt 官方
arXiv:2609.00006(11 agents / 29 patterns) https://arxiv.org/abs/2609.00006 论文
Harness Engineering 完整指南(工具层原则) https://aiworkflowpro.com/harness-engineering-guide/ 社区
原文(PTC 实测与流水线指令) https://mp.weixin.qq.com/s/rsfp0Kie5xlDOKDsE3Fqvw 原文
本系列为本站原创教程,基线为微信公众号《DeepSeek Harness 最新高阶指南》(2026-11-05),并汇总 DeepSeek 官方仓库与文档站、Cordis / arXiv:2608.25512、以及 OpenAI / Anthropic / LangChain / Martin Fowler 等一手资料。每条引用均标证据等级,完整清单见 附录 B;未定位到一手来源的线索单列,未编造补位。DeepSeek Harness 为 developer preview,官方 SAFETY.md 明确「未经过安全审计、不得视为生产就绪」,命令与配置键可能随版本失效。资料截止 2026-11-06。姊妹篇:《FDE 入门到精通》。