三窗格轨迹评估 (eval_trace)
eval_trace 显示会将一条智能体轨迹拆分为三个同步窗格(推理、函数调用和最终答案),让评估者一眼看清智能体思考了什么、做了什么、产出了什么。专为持续评估而构建。
eval_trace 显示会将单条智能体轨迹拆分为三个同步窗格:推理、函数调用和最终答案。 评估者可以并排看到智能体思考了什么、做了什么、产出了什么,这适合持续评估的场景,在这类场景中新轨迹不断到来,必须被迅速判定。
与把交错轨迹堆叠在一列里的纵向智能体轨迹显示不同,eval_trace 将一条轨迹分解为三个语义组成部分,因此无需滚动即可看清智能体行为的结构。
一条被拆分为推理、函数调用和最终答案窗格的智能体轨迹
快速开始
从仓库根目录运行随附的示例:
python potato/flask_server.py start examples/agent-traces/continuous-eval/config.yaml -p 8000该示例还提供了一个目录监视变体(config-watch.yaml),用于摄入投放进来的轨迹文件。
配置
instance_display:
layout:
direction: vertical # task header above the (internally horizontal) panes
gap: 12px
fields:
- key: task_description
type: text
label: "Task"
- key: trace # the field holding the agent trace
type: eval_trace
label: "Agent Trace"
display_options:
pane_labels: ["Reasoning", "Function Calls", "Final Answer"]
show_step_numbers: true
collapse_long_outputs: true
max_output_lines: 12
link_steps: true选项
| 选项 | 默认值 | 说明 |
|---|---|---|
pane_labels | ["Reasoning", "Function Calls", "Final Answer"] | 三个窗格的标题。 |
show_step_numbers | true | 在推理卡片和调用卡片上显示 #N 步骤编号。 |
collapse_long_outputs | true | 将长度超过 max_output_lines 的工具结果折叠成可展开的区块。 |
max_output_lines | 20 | 折叠结果的行数阈值。 |
link_steps | true | 跨窗格高亮:点击某张卡片会高亮其他窗格中与之关联的卡片。 |
compact | false | 更紧凑的内边距和间距。 |
数据格式
eval_trace 接受与智能体轨迹显示相同的轨迹格式。最常见的是一组 {speaker, text} 步骤:
{
"id": "eval_001",
"task_description": "Find a vegan lasagna recipe.",
"trace": [
{"speaker": "Agent (Thought)", "text": "I'll search for a highly-rated recipe."},
{"speaker": "Agent (Action)", "text": "web_search(query='vegan lasagna')"},
{"speaker": "Environment", "text": "10 results found..."},
{"speaker": "Agent (Final Answer)", "text": "Here's a great recipe: ..."}
]
}thought/action/observation 和 step_type/content 格式也受支持。
步骤如何映射到窗格
| 步骤(类型从 speaker 或 label 推断) | 窗格 |
|---|---|
Thought、推理、规划、system | 推理 |
Action、tool、function、call | 函数调用(相邻的 Environment/结果嵌套在该调用之下) |
Final Answer、send_message、respond、finish,或在没有匹配项时取最后一个动作 | 最终答案 |
要设置明确的最终答案,请用一个 speaker 匹配答案模式的步骤(例如 "Agent (Final Answer)")或一个 send_message(...) 动作来结束轨迹。
步骤关联
步骤会被分组为逻辑循环:一个想法以及它触发的调用共享同一个步骤索引。在 link_steps: true 时,点击任意卡片会高亮各窗格中共享该索引的每一张卡片,从而让你将一个想法追溯到它产生的动作。
持续评估
将 eval_trace 与 Potato 的任意运行时摄入传输方式搭配使用,使轨迹在到达时即被评估:
- Webhook 和 SSE ——
trace_ingestion: {enabled: true}会暴露一个 webhook 端点,并将新轨迹流式推送给标注者。 - Langfuse 轮询 —— 在
trace_ingestion.sources下添加一个langfuse源。 - 目录监视 ——
data_directory加上watch_data_directory: true会摄入投放进来的.json和.jsonl文件。
运行时新增的轨迹可立即分配给标注者。将其与分诊队列结合使用,可将出错或低分的轨迹推到最前面。
注意事项与限制
eval_trace仅用于显示;它本身不收集任何标注。请像示例那样,将它与诸如reasoning_quality、tool_use_correctness或answer_helpfulness之类的标注方案搭配使用。eval_trace不支持跨度标注。如果你需要在轨迹文本上进行跨度高亮,请使用智能体轨迹或code显示。
相关内容
- 基于信号的分诊队列 —— 为进入的轨迹排定审阅优先级
- 面向 SFT/DPO 的轨迹编辑 —— 将修正转化为训练数据
- 智能体式标注 —— 显示字段配置与摄入
有关实现细节,请参阅源文档。