Skip to content

评估工具使用与函数调用

如何在多种轨迹格式(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 在智能体轨迹显示中会这样做)。
  • 区分"用错工具"与"工具对、参数错",二者指向不同的模型修复方向。

延伸阅读