工具的规范
1.命名
命名最好以 动词 + 名词
2.Description
“能做什么” + “什么时候调用” + ”返回结果/限制“ + ”参数限制(可选参数[required = false]/必选参数)“
3.参数
- 安全参数需要走旁路传入(不要给大模型)
- 可选必选 + 参数格式 上description
- 独立字段拆开传入/动态字段Json传入
- 返回下一步怎么做
- 大结果不需要,只返回摘要
4.入参校验
- 合理的报错,收集所有的错误信息一次性返回
- 错误详细,告诉大模型怎么改
- 日期格式可用正则+parse双保险
5.幂等提交
防重复提交,命中直接返回已存在信息
6.报错
错误不可透传到框架上(错误信息大模型看不懂)
自己catch且报错信息简明
7.写后验证
查库兜底,防止大模型幻觉
8.读写分离
读工具没有代价,写工具需要严格校验
职责单一更灵活注册tool
9.不同工具协作
- 通过中间库保存参数信息(不走大模型传递不同工具的参数)
- 保存json(大模型可能搬运json的时候幻觉)
- 上下文开销减少(不用搬参数)
- 跨agent可复用(不同agent内存不互通)