给 Agent 设计工具的五条经验
工具是 Agent 的"手"。同一个模型,配上不同的工具集,表现可以相差数倍。以下是我们在实践里反复验证过的几条经验。
1. 描述写给模型看,不是写给人看
工具的名称和说明是模型选择工具的唯一依据。把"什么时候该用、什么时候不该用、失败时会怎样"写清楚,比参数列表本身更重要。
2. 返回结果要短,但要完整
一次命令输出几万行日志会淹没上下文。工具应当自己做摘要:保留错误、关键数字和末尾几行,其余截断并注明。
3. 让危险操作显式且可撤销
删除、覆盖、对外发送这类动作单独成工具,并要求确认。能做成"先写到临时位置再原子替换"的,一律这么做。
4. 幂等
Agent 会重试。一个工具被调用两次和调用一次的效果应当一样,否则重试逻辑会制造出比它解决的更多的问题。
5. 把环境事实交给工具,而不是交给提示词
网络哪些源快、缓存放在哪、预算还剩多少——这些应该由运行时注入或由工具返回,写死在提示词里迟早会过期。