评估工具使用与函数调用
如何在多种轨迹格式(OpenAI、Anthropic、ReAct、LangChain)中,借助 Potato 的逐轮评分标注并评估智能体的工具调用与函数调用。
当智能体调用工具,比如搜索、计算器、API、数据库时,每一次调用都是一个可供评估的决策:这是不是正确的工具?参数对不对?结果有没有被正确使用? 工具使用评估把这些决策转化为针对智能体轨迹的逐步标签。
这是对自动化函数调用基准测试的人工判断补充:一次调用在语法上可能完全有效,却对当前任务而言是错误的。
在每次工具调用时判断什么
- 工具选择:这是合适的工具吗,还是应该用别的工具(或根本不该调用)?
- 参数:参数是否正确且完整?
- 必要性:这次调用是必需的,还是多余的?
- 结果处理:智能体是否正确解读并使用了输出?
读取来自任意框架的轨迹
Potato 能把 13 种轨迹格式转换为统一的步骤视图,因此无论智能体是如何构建的,你都可以评估其工具使用:OpenAI 和 Anthropic 的工具/函数调用、ReAct 的思考-行动-观察轨迹、LangChain、LangFuse 等等。参见智能体标注。
逐步评分设置
为每一步(每次工具调用)附加一个评分,并为失败情况设置一个条件式追问:
yaml
annotation_schemes:
- annotation_type: per_turn_rating
name: tool_call_correctness
description: "For each tool call, judge whether it was the right call."
target: agentic_steps
rating_type: radio
labels: ["Correct", "Wrong tool", "Wrong arguments", "Unnecessary"]
- annotation_type: text
name: notes
description: "If not correct, what should it have done?"
label_requirement:
required: false质量考量
- 要展示工具的输出,而不仅仅是调用本身,否则标注者无法判断结果处理是否得当。
- 把 JSON 参数和响应格式化输出,使其易于阅读(Potato 在智能体轨迹显示中会这样做)。
- 区分"用错工具"与"工具对、参数错",二者指向不同的模型修复方向。