每轮塞满 MCP 工具 schema 是 harness 病:渐进式工具搜索可省 85% 开销
ainexfinder · reddit · 2026-10-15
作者指出一个常见误判:模型选错工具或声称「没有 X 工具」,往往不是模型的锅,而是 harness 每轮把所有 server 的全部 schema 塞进上下文——用户还没说话就已消耗数千 token,相似工具互相冲突。直接隐藏工具也不行,agent 会因不知道 step 2 存在而卡死。
收敛中的解法是渐进式发现:给模型一个小搜索工具加延迟加载的工具名列表,需要时才载入完整 schema;新发现的工具追加而非重排列表,以免打破 provider 的 prompt cache。Claude Code 的 MCP Tool Search 已默认开启(每次搜索最多载入 5 个工具),OpenAI 的 deferred loading 是同一思路。Anthropic 文档称可省 85% 以上的工具定义开销,工程博客给出从约 77K token 降到 8.7K 的实例。可用工具超过约 30–50 个后选择准确率会下降。
测量成本很低:分别统计带/不带工具定义的 token 数,差值就是每会话的「税」,通常集中在一两个大嵌套 schema 的工具上——先修描述再上基础设施。
两个 Claude Code 特有的坑:
- ANTHROPICBASEURL 指向非一方代理时工具搜索自动关闭(多数代理不转发 toolreference 块),走网关的人会悄悄回到全量加载。
- HIPAA 配置下硬关闭,ENABLETOOLSEARCH 也打不开,应改用 allowlist。
作者最后提问:大家在不让 agent 幻觉「没有这个工具」的前提下,如何保持 MCP 工具面小?工具搜索、skills-as-gates 还是 per-subagent allowlist?
「编程与Agent」频道最新
- Grok Voice 3.0 语音客服成本仅 4.8 美元/小时,对标 18 美元人工前台 — elonmusk · 2026-10-15
- 成本 200 美元的 Claude Code 项目,客户付了 2 万美元 — IgorCarron · 2026-10-15
- Dan Shipper 提出一人 Labs 团队:产品与探索双轨并行 — danshipper · 2026-10-15
- Gemini 4 Argon 零库纯 Python 写 5000 行代码造出光追 3D 引擎 — aitrendz_xyz · 2026-10-15
- 开发者完成 Minecraft Java 版到 Rust 的 1:1 逐文件移植 — Vjeux · 2026-10-15
- mitsuhiko 一个下午用 AI 做出 iOS 版 Python IDE — mitsuhiko · 2026-10-15