Agent 与工具调用

Agent 工具设计

说明 Agent 工具应该如何命名、拆分、约束参数和控制权限边界。

Agent 与工具调用intermediateAgentToolSchema权限

Agent 的工具不是普通接口换个名字。它是模型能理解、能选择、也可能会误用的一组能力入口。工具设计得越含糊,Agent 的行为越难控。

好的工具设计要同时让模型知道“什么时候用”,也让系统知道“什么情况下拒绝执行”。

工具粒度怎么定

工具不要太粗,也不要太碎。太粗时,模型不知道具体能力边界;太碎时,模型每一步都要在大量工具里选择。

更实用的判断是:

  • 一个工具只负责一类动作。
  • 参数能表达清楚业务约束。
  • 返回结果能支持下一步判断。
  • 高风险动作单独拆出来。

工具粒度本质上是在平衡模型选择成本和服务端治理成本。

命名和描述为什么重要

模型不会阅读代码实现,它主要依赖工具名、描述和参数 Schema 判断要不要调用。工具描述应该明确:

  • 它能做什么。
  • 它不能做什么。
  • 什么时候应该调用。
  • 调用前需要哪些信息。

模糊描述会让模型靠猜,靠猜就会增加误调用。

权限不能写在描述里

工具描述可以提示模型,但不能代替权限校验。真正的权限必须在服务端执行,包括用户身份、资源范围、额度、幂等和风险确认。

一句“不要越权调用”不是安全机制。

一句话先记住

Agent 工具设计的核心,是让模型容易选对,让系统有能力拒绝。

继续阅读

  • 06-agent/002-function-calling.md
  • 06-agent/006-agent-safety.md