benchmark 的价值最终要落到真实 Agent 执行上。任务生成得再好,也要看 Agent 跑出来什么轨迹。
EntBench-Agent 的第五层是真实 Agent 评测。
这部分把前面合成出来的 task.py 放进真实 runner 里跑,记录 Agent 每一步怎么想、选了什么工具、调了哪些参数、数据库状态最后变成什么样。
我觉得这一层很有意思,因为它把 benchmark 从静态题库推进到了动态执行日志。
1. RealBenchmark 是执行入口
PDF 里提到 RealBenchmark,它是真实任务执行入口。
它会读取已经编译好的任务定义,然后把每个 stage 交给 Agent 去执行。
执行过程中会记录:
user_says
selected_domain
selected_tools
stage1_thought
stage2_thought
tool_calls_detail
agent_response
evaluation_result
database_state_change
这些日志非常重要。
因为后面失败分析、Path Mining、工具图检索,都要从这里拿数据。
2. ProgressiveDailyAgent 的分阶段执行
当前真实 Agent 采用的是 progressive tool exposure。
它分成几个阶段:
Stage 1:领域选择
Stage 2:工具选择
Stage 3:工具执行
Stage 4:回答与反思
第一阶段先判断业务域。
比如用户说:
Approve the pending edit request for the launch checklist.
Agent 需要判断这属于:
document
permission
第二阶段暴露当前领域下的工具,以及 system 工具。
Agent 会选择候选工具:
list_permission_requests
approve_permission_request
list_document_permissions
第三阶段才给出这些工具的完整参数说明,让 Agent 做真实调用。
这个流程的好处是减少一次性工具上下文压力。
107 个工具全量暴露给 Agent,很容易让模型迷路。
先选领域,再选工具,再给参数 schema,整个过程更像分层决策。
3. 评测日志长什么样
每个 stage 执行完之后,系统会写日志。
一个日志大概包括:
{
"task_id": "L3_201",
"stage_id": 2,
"user_says": "Approve that request and verify the requester can edit the document.",
"selected_domain": ["permission", "document"],
"selected_tools": [
"approve_permission_request",
"list_document_permissions"
],
"tool_calls_detail": [
{
"tool": "approve_permission_request",
"arguments": {
"request_id": "req000123"
},
"success": true
}
],
"evaluation_result": {
"passed": true
}
}
这个日志除了记录最后对错,还记录了过程。
过程记录才是后面最有价值的地方。
如果 Agent 失败,我们可以看它在哪一步失败:
领域选错
工具漏选
参数用错
读事实读错
写操作没生效
最终回答和工具结果产生偏差
如果 Agent 成功,我们也可以把成功工具链存下来。
4. Evaluator 怎么打分
Evaluator 会根据任务定义检查每个 stage 的结果。
读任务主要看 fill_blanks。
比如:
request_id = req000123
document_id = doc000456
requester_id = user031
写任务主要看 state_checks。
比如:
PermissionRequest where request_id=req000123 and status=approved
DocumentPermission where document_id=doc000456 and entity_id=user031 and permission=edit
跨阶段任务还会看 consistency。
比如 Stage 2 使用的 request_id,要和 Stage 1 找到的 request_id 一致。
这就能评测 Agent 是否真的继承了前面阶段的信息。
5. 工具链轨迹怎么沉淀
真实执行之后,系统会从日志里抽取工具链。
比如成功任务的 observed tool path:
list_permission_requests
-> approve_permission_request
-> list_document_permissions
再比如文档查询任务:
query_documents
-> get_document
-> list_document_permissions
这些路径会进入历史轨迹库。
后面 Path Mining 会统计:
出现了哪些工具路径
哪些路径成功
路径长度是多少
同一任务是否存在多条成功路径
当前 Agent 路径和历史最短可解路径差多少
这一步让我觉得 EntBench-Agent 很有闭环感。
任务运行之后,日志会继续变成系统经验。
6. 这部分为什么关键
真实 Agent 评测提供了三类信号。
第一类是性能信号。
按难度统计任务成功率
按业务域统计成功率
按工具组合统计成功率
第二类是失败信号。
缺失工具
错误参数
上下文丢失
写操作部分成功
回答和工具结果产生偏差
第三类是成功路径信号。
哪些工具经常一起出现
哪些工具链能稳定解决某类任务
哪些路径更短
哪些路径适合作为后续检索先验
所以第五层已经超过简单跑 benchmark。
它开始把 benchmark 变成一个能产生数据的系统。