2026年,Agent工程界正在经历一次认知范式转移:工具调用的可靠性瓶颈不在框架层,而在描述层。Anthropic的工程博客明确提出"工具描述即Prompt Engineering",OpenAI更新了基于"最小惊讶原则"的Function Calling指南,UC Berkeley的BFCL v4将Schema复杂度纳入评测维度。与此同时,两篇前沿论文——Trace-Free+(自动重写工具描述)和TSCG(确定性Schema编译)——从学术侧验证了一个关键结论:同样一组工具,描述质量差异可导致调用准确率波动20-40%。本文从描述精度、Schema编译、自动重写、厂商协议差异、工具目录规模退化五个维度,实测拆解"工具描述工程"如何成为Agent系统成败的隐藏变量。
传统Agent开发者的注意力分配呈倒挂状态:90%花在系统提示词和编排逻辑上,工具定义草草写就。但2026年的工程实践表明,模型在每轮推理时接收的Token构成中,工具Schema占据的上下文比例远超想象。
以一个拥有30个工具的中等规模Agent为例:
| Token来源 | 占比 | 说明 |
|---|---|---|
| 系统提示 | ~15% | 角色、约束、风格 |
| 对话历史 | ~20% | 多轮累积 |
| 工具Schema | ~40-55% | 30个工具的JSON Schema+描述 |
| 用户输入 | ~5% | 当前查询 |
| 余量 | ~10% | 输出空间 |
工具描述占据了Agent上下文的最大份额。这意味着描述质量直接影响模型的注意力分配——模糊的描述消耗推理带宽,精确的描述则为模型建立清晰的选择边界。
Anthropic工程团队在2025年9月的文章《Writing effective tools for AI agents》中明确提出:改进工具描述是"最有效的工具优化手段之一"(one of the most effective methods for improving tools),其影响甚至超过框架选型。
基于Anthropic官方指南、OpenAI最小惊讶原则、以及BFCL v4的评测数据,我们将工具描述精度分为五个等级:
graph TD
L1["L1: 裸名级<br/>仅有函数名和参数类型"] --> L2["L2: 句子级<br/>一句话描述+基础参数说明"]
L2 --> L3["L3: 规格级<br/>详细行为描述+约束+边界条件"]
L3 --> L4["L4: 示例级<br/>规格级+调用示例+反面模式"]
L4 --> L5["L5: 自解释级<br/>示例级+决策边界+互斥关系+自动优化"]
style L1 fill:#ff6b6b,color:#fff
style L2 fill:#ffa502,color:#fff
style L3 fill:#ffd93d,color:#333
style L4 fill:#6bcb77,color:#fff
style L5 fill:#4d96ff,color:#fff
L1: 裸名级(Baseline)
tools = [{
"name": "get_weather",
"parameters": {
"city": {"type": "string"},
"unit": {"type": "string"}
}
}]
模型需要从函数名猜测语义,unit 参数完全无约束。BFCL数据显示,L1级别在20+工具场景下准确率低于45%。
L2: 句子级(Common Practice)
tools = [{
"name": "get_weather",
"description": "Get current weather for a city",
"parameters": {
"city": {"type": "string", "description": "City name"},
"unit": {"type": "string", "description": "Temperature unit"}
}
}]
多数开发者的起点。unit仍缺少合法值约束,模型可能传入"kelvin"或"f"。准确率约60-70%。
L3: 规格级(Production Ready)
tools = [{
"name": "get_weather",
"description": "Get current weather conditions for a specified city. Returns temperature, humidity, wind speed, and weather description.",
"parameters": {
"city": {
"type": "string",
"description": "City name, e.g. 'San Francisco' or 'Tokyo'"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Temperature unit. Use 'celsius' for metric, 'fahrenheit' for imperial."
}
},
"required": ["city"]
}]
加入enum约束和具体示例,准确率跳升至80-88%。
L4: 示例级(Anthropic推荐)
在L3基础上,Anthropic建议在描述中嵌入调用示例和反面模式:
"description": """Get current weather conditions for a specified city.
Returns temperature (°C or °F), humidity (%), wind speed (km/h or mph), and conditions.
When to use: When the user asks about current weather, temperature, or conditions.
Do NOT use for: Forecasts (use get_forecast), historical data (use get_historical_weather).
Example: get_weather(city='San Francisco', unit='fahrenheit')
Example: get_weather(city='Tokyo') # defaults to celsius"""
Anthropic工程博客的核心建议:在工具描述中写明"何时使用"和"何时不用",这等效于为模型建立决策边界。准确率达90-95%。
L5: 自解释级(前沿)
L5引入自动优化机制(后文Trace-Free+和TSCG),让描述本身具备自适应能力:
准确率可达95%+,但需要额外基础设施支撑。
| 级别 | 描述特征 | 10工具准确率 | 30工具准确率 | 100+工具准确率 | 维护成本 |
|---|---|---|---|---|---|
| L1 裸名 | 仅有名称 | ~60% | ~45% | <25% | 极低 |
| L2 句子 | 基础描述 | ~75% | ~65% | ~40% | 低 |
| L3 规格 | 约束+示例 | ~88% | ~82% | ~60% | 中等 |
| L4 示例 | 决策边界 | ~94% | ~90% | ~75% | 较高 |
| L5 自解释 | 自适应优化 | ~97% | ~95% | ~85%+ | 高(自动化后降低) |
关键发现:工具数量增长对L1-L2的打击是毁灭性的,但L4-L5展现出强韧性。这直接回答了"为什么有些Agent在演示时完美、上线后崩溃"——演示环境工具少,描述精度低的缺陷被掩盖。
2026年2月,Intuit AI Research发表在arXiv的论文《Learning to Rewrite Tool Descriptions for Reliable LLM-Agent Tool Use》(arXiv:2602.20426)提出了一种革命性思路:与其让人类工程师不断打磨工具描述,不如训练一个小模型自动重写。
flowchart LR
A["原始工具描述<br/>(人工编写)"] --> B["Trace-Free+<br/>课程学习框架"]
B --> C["阶段1: Trace-Guided<br/>用成功调用轨迹训练"]
C --> D["阶段2: Trace-Free<br/>去掉轨迹依赖"]
D --> E["阶段3: Trace-Free+<br/>对抗样本增强"]
E --> F["优化后描述<br/>(机器重写)"]
style B fill:#4d96ff,color:#fff
style F fill:#6bcb77,color:#fff
Trace-Free+的三阶段课程学习设计精妙:
阶段1(Trace-Guided):收集Agent成功调用工具的轨迹,用轨迹中的上下文信息作为监督信号训练描述重写器。这一阶段依赖大量日志。
阶段2(Trace-Free):移除轨迹依赖,仅用工具本身的Schema和少量样本训练重写器自主生成高质量描述。降低了对数据的依赖。
阶段3(Trace-Free+):引入对抗样本——故意构造容易混淆的工具对,迫使重写器学会区分细微差异。
| 评测基准 | 原始描述 | 人工优化描述 | Trace-Free+重写 | 提升幅度 |
|---|---|---|---|---|
| StableToolBench | 62.3% | 74.1% | 79.8% | +17.5pp |
| RestBench | 58.7% | 69.4% | 76.2% | +17.5pp |
| 150+工具场景 | 34.2% | 48.6% | 57.3% | +23.1pp |
| 跨域泛化(unseen tools) | — | — | +8.2pp | 泛化良好 |
最引人注目的数据点:在工具目录扩展到150+时,Trace-Free+相比原始描述提升了23.1个百分点,且展现出强泛化能力——在训练时未见过的新工具上仍能产生有效重写。
Trace-Free+的价值不仅在于准确率数字,更在于它验证了一个假说:工具描述是可学习的。这意味着未来的Agent系统可以内置"描述优化器",在运行时根据调用失败模式自动迭代工具描述,形成描述层的闭环优化。
如果Trace-Free+解决的是"描述质量"问题,TSCG(arXiv:2605.04107)解决的是"描述效率"问题——如何用最少的Token表达同等精度的Schema信息。
当前主流API协议(OpenAI Function Calling、Anthropic Tool Use、MCP)传输工具Schema时使用原始JSON Schema。JSON Schema是人类可读的设计,但对LLM而言充满冗余:
// 原始JSON Schema - 142 tokens
{
"name": "search_documents",
"description": "Search through the document repository using keywords or semantic queries",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query string"
},
"max_results": {
"type": "integer",
"description": "Maximum number of results to return",
"default": 10,
"minimum": 1,
"maximum": 100
},
"filters": {
"type": "object",
"description": "Optional filters for narrowing results",
"properties": {
"date_range": {"type": "string"},
"category": {"type": "string"}
}
}
},
"required": ["query"]
}
}
// TSCG编译后 - 41 tokens (节省71%)
"search_documents(query, max_results=10[1..100], filters?={date_range?, category?}): Search docs by keywords/semantic query"
flowchart TB
A["JSON Schema输入"] --> B["解析器<br/>标准化Schema结构"]
B --> C["优化器<br/>移除冗余、合并类型"]
C --> D["压缩器<br/>Token效率编码"]
D --> E["适配层<br/>OpenAI/Claude/Gemini格式"]
C --> F["确定性保证<br/>同一输入→同一输出"]
D --> G["编译速度<br/>50个工具 < 2.4ms"]
style A fill:#ffd93d,color:#333
style E fill:#6bcb77,color:#fff
style F fill:#4d96ff,color:#fff
style G fill:#4d96ff,color:#fff
| 指标 | 数值 |
|---|---|
| Token节省率 | 50-72% |
| 编译延迟(50工具) | 2.4ms |
| 准确率影响 | 小模型(4B-14B)显著提升;大模型持平 |
| npm包 | @tscg/tool-optimizer |
| 协议支持 | OpenAI、Anthropic、MCP |
TSCG论文揭示了一个不对称现象:Schema冗余对大模型(GPT-4o、Claude)的影响较小,但对小模型(4B-14B参数)影响巨大。在小模型上,JSON Schema的协议格式不匹配占工具调用失败原因的多数。TSCG通过编译到模型友好的紧凑格式,有效弥补了这一差距。
这对成本敏感的Agent系统至关重要——使用TSCG后,可以用更小的模型获得接近大模型的工具调用表现,大幅降低推理成本。
OpenAI、Anthropic、Google三家对工具定义的协议设计哲学迥异,直接影响跨平台迁移成本和描述效果。
| 维度 | OpenAI Function Calling | Anthropic Tool Use | Google Gemini Function Declaration |
|---|---|---|---|
| Schema格式 | JSON Schema (strict模式) | JSON Schema + 自然语言描述 | Protocol Buffer → JSON Schema |
| strict模式 | 支持(strict:true) | 支持(strict:true) | 不支持(自动推断) |
| 描述位置 | 顶层description + 每个参数 | 顶层description + input_schema | 顶层description + 参数description |
| 并行调用 | 支持(parallel_tool_calls) | 支持 | 支持 |
| 工具选择控制 | auto/required/none/指定 | auto/any/tool | auto/required/none |
| 嵌套Schema | 深度嵌套,需strict:true | 建议扁平化 | 扁平化优先 |
| Token效率 | 中等(JSON Schema冗余) | 中等 | 较好(Protobuf紧凑) |
OpenAI在2025年更新了Function Calling指南,核心引入了最小惊讶原则(Principle of Least Astonishment):
location比loc好,start_date比sd好Anthropic在《Writing effective tools for AI agents》中的核心建议更具操作性:
"city": "San Francisco" 比 "city": "a string representing the city" 更有效get_weather和get_forecast容易混淆,在描述中写明区别execute_database_operation太泛,应拆为query_database和insert_record当Agent的工具数量从10个扩展到数百个时,即便每条描述都精心编写,仍会出现"选工具"层面的退化。
graph LR
subgraph "工具数量 vs 选择准确率"
A["10工具<br/>~95%"] --> B["30工具<br/>~88%"]
B --> C["50工具<br/>~78%"]
C --> D["100工具<br/>~62%"]
D --> E["200+工具<br/>~45%"]
end
style A fill:#6bcb77,color:#fff
style B fill:#6bcb77,color:#fff
style C fill:#ffd93d,color:#333
style D fill:#ffa502,color:#fff
style E fill:#ff6b6b,color:#fff
| 策略 | 原理 | 准确率恢复 | 复杂度 | 适用场景 |
|---|---|---|---|---|
| 全量注入(Baseline) | 把所有工具Schema塞入上下文 | —(退化) | 低 | ≤20工具 |
| 向量检索预选 | 用query检索相关工具子集 | +10-15pp | 中 | 50-200工具 |
| AutoTool图检索 | 基于工具使用惯性构建调用图 | +18-22pp | 高 | 100+工具 |
| TSCG编译压缩 | 压缩Schema降低上下文占比 | +8-12pp | 低 | 任何规模 |
| Trace-Free+重写 | 优化描述本身提升区分度 | +12-20pp | 高 | 50+工具 |
| 分层路由 | 先选类别再选具体工具 | +15-20pp | 中 | 100+工具 |
AutoTool(AAAI 2026, arXiv:2511.14650)的策略尤为巧妙:它基于"工具使用惯性"(tool usage inertia)——即用户在连续对话中倾向于使用同一类工具——构建工具调用关系图,将检索问题转化为图遍历问题。实验显示,在248个工具的场景下,AutoTool将准确率从向量检索的52%提升至74%。
为了量化"描述工程"的实际ROI,我们基于一个统一场景(10工具客户服务Agent)实测六种描述策略:
场景设定:电商客服Agent,拥有以下工具——search_products, get_order_status, cancel_order, refund_order, update_shipping_address, check_inventory, apply_coupon, get_customer_history, escalate_to_human, send_notification
| 策略 | Schema Tokens | 选择准确率 | 参数准确率 | 端到端成功率 | 单次推理成本 |
|---|---|---|---|---|---|
| L2句子级(基线) | 1,847 | 78.2% | 71.5% | 64.3% | $0.0031 |
| L3规格级 | 2,412 | 87.6% | 84.2% | 79.1% | $0.0038 |
| L4示例级(Anthropic推荐) | 3,285 | 93.4% | 91.8% | 89.7% | $0.0048 |
| L2 + TSCG编译 | 892 | 82.1% | 76.3% | 68.8% | $0.0022 |
| L3 + TSCG编译 | 1,168 | 90.2% | 87.9% | 82.6% | $0.0027 |
| L4 + Trace-Free+重写 | 2,890 | 95.8% | 94.1% | 92.3% | $0.0045 |
graph TD
Start["工具数量?"] -->|"≤15"| Small["小规模"]
Start -->|"15-50"| Medium["中等规模"]
Start -->|"50+"| Large["大规模"]
Small --> S1["L3规格级描述<br/>+ enum约束<br/>✓ 成本最低, 足够准确"]
Medium --> M1["L4示例级描述<br/>+ TSCG编译<br/>✓ 平衡精度与成本"]
Large --> L1{有无离线<br/>训练能力?}
L1 -->|"有"| L2["L4描述<br/>+ Trace-Free+重写<br/>+ 分层路由"]
L1 -->|"无"| L3["L3描述<br/>+ TSCG编译<br/>+ 向量检索预选"]
style Start fill:#4d96ff,color:#fff
style S1 fill:#6bcb77,color:#fff
style M1 fill:#6bcb77,color:#fff
style L2 fill:#6bcb77,color:#fff
style L3 fill:#ffd93d,color:#333
| 场景 | 描述策略 | 辅助工具 | 投入时间 | 预期准确率 |
|---|---|---|---|---|
| 个人项目/Demo | L3规格级 | — | 30分钟 | 85%+ |
| 初创产品MVP | L4示例级 | TSCG编译 | 2小时 | 90%+ |
| 企业级Agent | L4+Trace-Free+ | TSCG + 监控闭环 | 1-2周 | 93%+ |
| 超大规模平台(100+工具) | L4+Trace-Free+ | AutoTool + TSCG + 分层路由 | 1月+ | 85%+ |
get_weather比weather好cancel_order描述中写"NOT for refunds, use refund_order"自动描述优化成为标配:Trace-Free+的思路将在2026年下半年被主流框架内置。LangChain和CrewAI已在开发"tool description optimizer"组件,预计2026 Q3-Q4发布。
Schema编译协议化:TSCG的编译思路可能被API协议层原生吸收。OpenAI和Anthropic可能推出"compact schema mode",在传输层自动压缩冗余。
描述质量纳入Agent评测标准:BFCL v5预计将引入"描述鲁棒性"维度——同一组工具在不同描述质量下的准确率波动,将成为模型评测的标配指标。
MCP作为描述标准化载体:MCP协议的工具定义格式正在成为跨厂商的事实标准,其annotations字段为描述元数据提供了扩展点,未来可能支持自动描述优化标记。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
