模型根据工具描述来选择工具。简略描述(“Extracts data from invoice documents”)导致 30% 误路由。详细描述带用途、输入、输出、示例和边界条件能产出 95%+ 的准确率。描述是模型和工具之间的接口——把它当最重要的字段来对待。
有效描述的五个要素
- 用途:工具做什么
- 输入格式:期望什么数据、什么形式
- 输出格式:返回什么
- 示例用例:什么时候用
- 边界条件:什么时候不该用,以及该用哪个替代工具
示例:“搜索文件内容中的模式,如函数名、错误信息或 import 语句。输入:正则表达式。用于:找一个函数的所有调用方、定位错误信息、追踪 import。不要用来按名称找文件——用 Glob。”
“不要用来”这行直接防止了最常见的混淆。
简略描述导致误路由
三个提取工具的描述都是”Extracts data from [type] documents”,只差一个词。生产数据:30% 的合同误路由到发票工具,20% 的报告误路由到合同工具。 选对工具时准确率 95%+——问题在选择,不在执行。
修复:用文档特征扩展描述。发票有行项目、数量、合计、付款条款。合同有当事方、义务、条款、签名。模型需要这些信号来区分它们。
模糊描述 ≠ “模型应该自己搞定”
通用名称(“Search tool A” / “Search tool B”)给零信息。Unix 命令名(“grep” / “find”)依赖隐式知识。“搜索代码库” vs “查找文件”无法清晰区分内容搜索和路径匹配。模型需要显式、无歧义的描述。
工具拆分:一个工具服务多种操作
一个通用 analyze_document 工具处理数据提取、摘要和声明验证。35% 参数错误率,因为模型无法判断该用哪种操作模式。
修复:拆成三个专用工具(extract_data_points、summarize_content、verify_claim),各有聚焦的描述和定制的输入 schema。模型不需要猜操作模式——每个工具有一个清晰的用途。错误率降到接近零。
拆分条件:一个工具服务多种不同的操作,各有不同的参数要求。模型在单个工具内切换模式时很吃力。
描述质量 → 准确率管线
工具描述不是写给人看的文档。它们是模型用来决定哪个工具适合当前任务的主要输入。一个 6 工具系统的数据:
- 40-50 词描述(用途、I/O、消歧)的工具:93-96% 准确率
- 5-8 词描述(“Runs analysis”)的工具:52-61% 准确率
工具描述里的每个词都通过提升选择可靠性来证明自己的价值。
一句话总结: 详细描述(用途、I/O、示例、“不用于”边界)产出 93-96% 选择准确率 vs 简略的 52-61%——参数错误率超 10% 时应把通用多用途工具拆成聚焦的专家工具。