为什么模型总是“误解”工具?
大模型没有眼睛,它完全依赖工具的 name、description 以及参数字段的 description 来进行语义匹配。
10 个高频生效的工程调优法则
- 明确的动宾命名法:使用
search_codebase而非笼统的code_helper,使用fetch_user_profile而非模糊的user_data; - 在工具描述中明确写出“反例(When NOT to use)”:例如:“用于搜索具体的类名或函数,如果你想找特定 Git 提交记录,请使用 search_git_commits 代替”;
- 参数必填项收敛(Avoid Optional Ambiguity):能设定默认值的参数务必设定默认值,必填字段尽量控制在 3 个以内;
- 优先使用枚举值(Enums)替代自由文本:例如
sort_by字段严格限制为["created_at", "views", "stars"]; - 在入参描述中给出合法样例(Examples):例如
date_range: "YYYY-MM-DD 格式,例如 2025-01-01"; - 避免功能高度重叠的近义工具;
- 在输出中返回结构化状态码与明确指导;
- 限制单次返回数据体积,避免冲垮上下文;
- 善用类型收敛,能用 boolean 不用 string;
- 给工具附加分类前缀,辅助模型层次化检索。