Agent 的轨迹评估和单轮问答评估有什么不同?
谁在问:Agent 团队二面;2026 新增高频方向
口语化问法
- 你们 Agent 怎么评?跟评一个普通问答有什么不一样?
- 结果对了,是不是就说明这个 Agent 没问题?
- 轨迹评估你们具体怎么做的?参考轨迹哪来的?
考察意图
这是 2026 新增的高频方向。面试官在判断:
- 你是不是只会评最终答案。 只评结果的人,会漏掉「答对了但绕了 9 步」「答对了但顺手改了一条数据」这两类问题。
- 你有没有面对过「参考轨迹标注太贵」这个现实。 教科书答案是「和参考轨迹比对」,真实生产里几乎没人这么做,因为标不起也维护不动。
- 你知不知道评测层级的下沉顺序。 一上来给每个环节配指标,是评测里最常见的过度工程。
参考答案
60 分答案(及格线)
单轮问答只要看最终答案对不对,Agent 是多步的,所以除了结果还要看过程——它调了哪些工具、顺序对不对、有没有多余的调用、有没有死循环。做法是准备参考轨迹,把实际调用序列和参考序列比对,看是否完全一致、或者是否按顺序包含了关键调用。另外还要看步数和成本,因为 Agent 可能绕很远才做对。
这个答案抓住了核心差异(结果 vs 过程),也提到了成本,能过。
它止步于 60 分的原因是:它把「和参考轨迹比对」当成了默认方案,而这在真实项目里几乎不可持续。而且它没提副作用,也没提层级顺序。
90 分答案(有生产经验的回答)
我认为有三个本质差异,然后有一个很现实的工程妥协。
差异一:Agent 有副作用,单轮问答没有。 单轮问答评错了,代价只是一个错答案。Agent 评错了,可能真的发了邮件、真的退了款、真的改了工单状态。所以 Agent 评测的第一件事不是指标,是沙箱:工具要有可替换的 mock 实现,环境要能快照和回滚。没有沙箱就没有轨迹评测——你不敢跑第二遍的东西不叫评测。 而且这带来一类单轮问答完全没有的指标:状态断言——不只看它说了什么,还要看跑完之后世界变成了什么样(该建的工单建了没、不该改的字段动了没)。
差异二:结果对不代表过程对。 典型形态是「碰巧对」:它没调检索工具,靠参数记忆答对了;或者调了 9 次工具、其中 7 次是重复的无效调用,最后蒙对。只看端到端结果,这两种都是满分,但前者会在数据一变就崩,后者是成本黑洞。 常见的轨迹指标大致是这一套:完全匹配 / 有序包含 / 无序包含 / 精确率 / 召回率 / 特定工具是否被调用。有序包含是「参考里的关键调用按顺序都出现了,允许有多余的」;精确率惩罚多余调用;召回率看关键步骤有没有漏。 实践上要说一句大实话:完全匹配在真实 Agent 上几乎恒为 0,把它放上看板只会让人麻木。真正能用的是有序包含 + 精确率 + 特定工具是否被调用(后者当安全关卡用:必须调过权限校验工具)。
差异三:步数、耗时、token 本身就是质量指标。 单轮问答的成本是个常数,Agent 的成本是分布,长尾能差一个数量级。所以评测报告里必须并列成功率、平均步数、P95 步数、单次成本。一个成功率 +2%、平均步数 +40% 的版本,通常不该发。
然后是那个工程妥协——参考轨迹标不起,怎么办。 参考轨迹是整个评测体系里最贵的标注,而且 Agent 的 prompt 一改,轨迹就变,评测集腐化极快。所以我们生产上真正在跑的,大部分不是「和参考轨迹比对」,而是负向轨迹断言 / 不变量检查:不要求它走哪条路,只要求它不越界。比如——
- 不许没调
check_permission就返回用户数据;- 不许连续 3 次调同一工具同一参数(死循环);
- 不许在只读会话里出现写工具;
- 不许在没有检索命中的情况下给出带具体数字的结论。
这等于把轨迹评测从「标准答案匹配」降级成「不变量检查」,标注成本降一个数量级,而且不随 prompt 改动腐化。 参考轨迹只保留在少数几条关键主流程上。
最后是层级顺序:先建端到端(结果对不对 + 状态对不对),只有端到端掉分时才下沉到轨迹级,轨迹级也定位不了才下沉到组件级。反过来做——一上来给每个环节配指标——会得到一堆互相矛盾的分数,没人知道该信哪个。
补一条 2026 特有的:effort 档位必须是评测矩阵的一个维度。降档位会直接改变工具调用次数,也就直接改变轨迹指标和成本。换档位和换模型一样,要走完整回归,不能当调参处理。
追问链
轨迹指标具体怎么算?给我举个例子。
期望六类:完全匹配、有序包含(允许多余)、无序包含、精确率(罚多余调用)、召回率(漏没漏关键步骤)、特定工具是否被调用。召回1.0而精确率0.4= 都做了但绕远路,是成本问题不是正确性问题;工具参数只判关键参数或算正确比例信号只会说「比对调用序列」 → 没落地过;能把精确率/召回率分别对应成本与正确性 → 真跑过看板有副作用的 Agent 怎么评?总不能真的去退款吧。
期望工具双实现:真实 + 可注入 mock/沙箱,评测永远走后者;每条用例前快照回滚,否则用例互相污染、跑第二遍就变;状态断言:「它说它建了工单」和「工单真的建了」是两件事;mock 要能模拟超时/报错/空返回,否则测不出 Agent 的恢复路径信号说「在测试环境跑」但不提快照回滚 → 用例互相污染,跑不出可重复结果;主动提「mock 要模拟失败路径」 → 强信号结果对了但轨迹不对,算通过还是失败?
期望按错在哪一类分三档:违反不变量(越权、写了不该写的、漏调安全工具)→ 判失败,哪怕结果对;多余步骤/绕路 → 不判失败,计入成本指标并告警;另一条同样合理的路 → 判通过,是参考轨迹过度指定了路径,该修的是评测集不是 Agent信号一刀切「轨迹不对就失败」 → 评测集天天红被无视;一刀切「结果对就行」 → 漏掉越权和死循环Agent 的评测集怎么维护?会不会比问答腐化得更快?
期望会,快得多 —— 参考轨迹绑死当前工具集与 prompt,一改就废。① 主力用不变量断言,不绑路径;② 参考轨迹只留关键主流程;③ 断言写在「工具语义」层而非「工具名」层 —— 写「必须做过权限校验」,不写死check_permission_v2信号没意识到腐化问题 → 没维护过;能说出「断言写在语义层不是工具名层」 → 被重构坑过的人才有的设计改了一版 prompt 效果明显更好,但轨迹评测集全红了。改评测集还是回退 Agent?
期望第一动作不是选边,是看端到端掉没掉:端到端没掉、状态断言全过、只有轨迹匹配红 → 评测集过度指定路径,把那批换成不变量断言;端到端也掉 → 真回退;端到端没掉但违反了不变量(新 prompt 跳过权限校验)→ 必须回退,不接受「效果更好」的辩护。改评测集要留记录、由非本次作者复审;「更好」伴随平均步数 +40% 就得重算信号直接说「改评测集」 → 等于允许自己给自己判卷;能用端到端/不变量/轨迹匹配三层分情况 → 骨架真内化了
评分要点
- 说得出三个本质差异:副作用 / 过程正确性 / 成本本身是指标
- 知道没有沙箱和状态快照就没有轨迹评测
- 说得出轨迹指标族,且知道完全匹配在真实 Agent 上几乎恒为 0
- 知道精确率掉 = 成本问题,召回率掉 = 正确性问题
- 提出不变量断言 / 负向轨迹断言作为参考轨迹的可负担替代,并说得出腐化理由
- 说得出层级下沉顺序:端到端 → 轨迹 → 组件,且只在上一级掉分时下沉
- 提到 effort 档位是评测矩阵的一个维度,换档位要走完整回归
- 报告里并列成功率 / 平均步数 / P95 步数 / 单次成本