43
如何为Agent设计工具(Tool)?一个好的Tool Definition包含哪些要素?
Agent开发与工具调用中等
📋 面试问题
如何为Agent设计工具(Tool)?一个好的Tool Definition包含哪些要素?
✅ 期望回答
Tool Definition要素:
- 名称:简洁明了(如「search_web」、「query_database」、「send_email」)
- 描述:用自然语言说明工具的功能、使用场景和限制
- 参数Schema:每个参数的名称、类型、描述、是否必选(JSON Schema格式)
- 返回值说明:返回什么类型的数据,格式是什么样的
- 原子化:一个工具只做一件事(单一职责原则)
- 好描述 > 多参数:让LLM通过描述理解何时用、怎么用
- 描述应详细:在描述中提供工具的使用场景和示例
- 错误处理:工具返回标准化错误信息(LLM据此决定重试还是放弃)
- 幂等性:能安全重试的工具(查询类天然幂等,写操作需要去重保护)
{
"name": "get_weather",
"description": "获取指定城市的天气信息。使用场景:用户询问天气时使用。",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称,如北京、上海"}
},
"required": ["city"]
}
}
#Tool#Function Calling#Schema