LLM Agent工具设计规范总结
Agent工具设计影响工具调用的成功率和效率,工具设计可能应该遵循以下一些原则或规范。
1 单一职责原则
每个工具应该专注于一个明确定义、范围较小的功能。
不要设计一个既能查天气又能查股票的”多功能查询工具”,应将其拆分为 get_weather和 get_stock_price两个独立工具。
职责单一不仅降低工具本身的开发维护复杂度,同时使得更易于被LLM理解、选择和组合。
2 幂等原则
尽量将工具设计为幂等,对于相同输入参数,无论调用一次还是多次,工具执行产生的返回结果都是一致的,这在因为网络或其他异常导致重复调用工具的场景中非常有用。
3 严格的输入参数校验
工具代码必须包含对输入参数的严格校验逻辑(类型检查、格式检查、范围检查、非空检查等)。不完全信任LLM生成的参数, 它可能出错或被恶意prompt诱导,工具自身的校验是最后一道防线。
4 明确一致的输出格式
工具的输出,无论是成功还是错误,应尽量采用结构化格式(如JSON)或至少是清晰、简洁、信息量足的文本,避免返回包含大量噪音或LLM难以解析的原始数据。如需要工具内部可先对原始数据进行处理和摘要。
5 信息完整的错误信息
工具执行失败时应返回明确、完整的错误信息串给LLM,而不是”执行失败”或traceback堆栈。
错误信息能帮助LLM(或开发者)理解调用异常的原因。
例如:“错误:城市名称’XXX’未找到,请检查拼写”或”错误:API请求超时, 请稍后重试”。
完整的错误信息能让LLM做出更合理反应,如向用户解释原因或尝试调用其他工具。
6 版本控制与文档管理
对工具引入版本管理,工具功能或接口发生变化时,确保LLM使用正确的版本。
工具文档应该逻辑清晰,方便持续的维护和迭代。
reference
---
LLM中工具调用的完整指南:释放大模型潜能的关键
https://zhuanlan.zhihu.com/p/1909186977066128479