Agent 与工具调用
Agent 工具设计
说明 Agent 工具应该如何命名、拆分、约束参数和控制权限边界。
Agent 与工具调用intermediateAgentToolSchema权限
Agent 的工具不是普通接口换个名字。它是模型能理解、能选择、也可能会误用的一组能力入口。工具设计得越含糊,Agent 的行为越难控。
好的工具设计要同时让模型知道“什么时候用”,也让系统知道“什么情况下拒绝执行”。
工具粒度怎么定
工具不要太粗,也不要太碎。太粗时,模型不知道具体能力边界;太碎时,模型每一步都要在大量工具里选择。
更实用的判断是:
- 一个工具只负责一类动作。
- 参数能表达清楚业务约束。
- 返回结果能支持下一步判断。
- 高风险动作单独拆出来。
工具粒度本质上是在平衡模型选择成本和服务端治理成本。
命名和描述为什么重要
模型不会阅读代码实现,它主要依赖工具名、描述和参数 Schema 判断要不要调用。工具描述应该明确:
- 它能做什么。
- 它不能做什么。
- 什么时候应该调用。
- 调用前需要哪些信息。
模糊描述会让模型靠猜,靠猜就会增加误调用。
权限不能写在描述里
工具描述可以提示模型,但不能代替权限校验。真正的权限必须在服务端执行,包括用户身份、资源范围、额度、幂等和风险确认。
一句“不要越权调用”不是安全机制。
一句话先记住
Agent 工具设计的核心,是让模型容易选对,让系统有能力拒绝。
继续阅读
06-agent/002-function-calling.md06-agent/006-agent-safety.md