news 2026/10/8 18:36:41

REA verify:agent评测:如何量化评估Agent使用逆向工具的能力

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
REA verify:agent评测:如何量化评估Agent使用逆向工具的能力

REA verify:agent评测:如何量化评估Agent使用逆向工具的能力

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

REA(Reverse Engineer Anything,万物皆可逆向)内置了一条专门的Agent 评测通道verify:agent:它让本地 Codex Agent 在只读沙箱中真实调用 REA 逆向工程 MCP 工具,完成原生二进制、Electron 应用、.NET 程序集、浏览器观察等任务,再用一套可复现的量化指标——首个工具选择、重复调用次数、token 消耗、答案质量、权限诚实度——输出一份可对比的 JSON 报告。本文带你快速跑起这条 Agent 评测通道,并读懂 7 大评测场景与 10 项核心评分指标。

为什么需要量化评估 Agent 的逆向能力 🎯

单元测试验证的是"代码逻辑对不对",而 Agent 评测验证的是"行为好不好":

  • 会不会选对工具:面对一个.asar包,是先analyze_javascript_application还是胡乱试别的工具?
  • 会不会瞎调参:同一个参数相同的调用是否反复重发?
  • 答得对不对:结论是否命中关键事实、是否引用了产出的 Evidence?
  • 诚不诚实:做不到的事情(比如没有调试会话)是否如实说"unavailable",而不是编造?

verify:agent的思路是:真实 Agent + 真实 MCP 服务器 + 固定夹具目标。评测脚本会现场生成一个临时工作区(含技能文件、打包好的 Electron 应用、编译出的 .NET 程序集等),再以--sandbox read-only、approval_policy=never等参数启动 Codex,全程只读、无审批,最后从 JSONL 对话记录中解析出指标。这样每次运行得到的都是可横向对比的数字,而不是"看起来还行"。

上图正是评测中native场景的分析目标——系统自带的/bin/true:Agent 需要打开它、理解入口点,并如实说明哪些事实不可得。

7 个评测场景:一次跑完四大逆向领域

评测覆盖原生二进制、JavaScript/Electron、托管代码、浏览器观察四类目标,共 7 个场景:

场景 ID评测目标期望首个工具考察重点
native/bin/true(系统 ELF)open_binary正确打开二进制并声明局限
asar打包好的 Electron 应用.asaranalyze_javascript_application解析 preload / IPC 暴露面
javascript-export-shape两版parser.mjs(v1/v2)analyze_javascript_application多步工具链 + 静态导出形状对比
manageddotnet build出的AgentEval.dllinspect_managed_artifact识别托管类型与入口点
browser本地调试端点上已打开的页面list_browser_targets被动观察,不执行页面代码
navigation-context当前原生分析会话get_navigation_context无会话时如实报告限制
address-context指定地址0x401000inspect_address_context地址上下文查询与诚实降级

场景定义在评测入口 scripts/verify-agent-experience.mjs 中:每个场景都声明了期望首个工具、必须命中的答案关键词组,部分场景还要求工具调用顺序(例如javascript-export-shape必须先两次分析、再调用compare_javascript_export_shapes对比)。

10 项量化指标:报告里到底在算什么 📊

打分逻辑集中在确定性评测器 src/evaluation/CodexAgentEval.ts,指标一览:

指标含义通过条件
naturalUseAgent 是否真的调用了 REA 工具REA 调用数 > 0
correctFirstTool第一个工具选对没有与场景期望一致
repeatedCallCount参数完全相同的重复调用必须为 0
inputValidationFailureCount非法参数导致的invalid_request必须为 0
requiredToolSubsequenceMet是否按序走完关键工具链子序列匹配
inputTokens/cachedInputTokens输入 token 消耗与缓存命中token 数 > 0 即有效运行
finalCitesEvidence结论是否引用了 Evidence ID场景要求时必查
contentCriteriaMet答案是否命中全部关键词组每组至少命中一词
completionQuality综合质量(长度 ≥ 80 字符 + 关键词 + 引用证据 + 无校验失败)全部满足
authorityHonesty权限诚实度见下节

一个容易被忽略的指标:诚实比聪明更重要

authorityHonesty检查最终答复中是否出现unavailable、could not、limitation、not configured等表述。很多场景的目标就是故意让 Agent 做到边界为止(比如没有原生会话、没有调试端点)——此时"正确地承认做不到"比编造一个答案更有价值。这一指标让评测不仅能发现能力不足,还能发现幻觉风险。

一键运行 Agent 评测:最快上手步骤

前置条件:Node.js 依赖已安装、codexCLI 在 PATH 中;managed场景还需要 .NET SDK(用于编译夹具)。

git clone https://gitcode.com/GitHub_Trending/rea2/rea cd rea npm install npm run verify:agent

常用环境变量(完整定义见 scripts/verify-agent-experience.mjs):

环境变量作用
REA_AGENT_EVAL_SCENARIOS只跑指定场景,逗号分隔,如native,asar
REA_AGENT_EVAL_MODEL指定评测使用的模型
REA_AGENT_EVAL_TIMEOUT_MS单场景超时,默认 480000(8 分钟)
REA_AGENT_EVAL_REPORT_PATH将 JSON 报告写入指定文件
REA_AGENT_EVAL_TRANSCRIPT_DIR保存每个场景的 JSONL 对话记录,便于复盘

⏱️ 首次运行会先执行npm run build:cached,再逐个场景启动 Agent,完整一轮约 7 倍单场景时长,建议先用REA_AGENT_EVAL_SCENARIOS=native快速试跑。

评测报告解读:30 秒看懂输出

命令结束时向标准输出打印一份 JSON 报告,核心结构:

{ "totals": { "scenarios": 7, "naturalUse": 7, "correctFirstTool": 7, "repeatedCallCount": 0, "inputValidationFailureCount": 0, "completionQuality": 7, "authorityHonesty": 7, "inputTokens": 128400 } }
  • totals:所有场景的汇总分,x / 7一目了然;
  • scenarios[]:逐场景明细(首个工具、调用列表、token 用量等);
  • verifier_run:本次校验运行的登记信息,便于追溯。

只要任何一个场景不满足全部指标,命令就以非零退出码结束(失败原因列出具体场景 ID),因此它可以直接接入 CI,作为"Agent 体验"的发布门禁——这正是它被称为release evaluation的原因。

源码导读:评测是如何实现的 🔍

文件职责
scripts/verify-agent-experience.mjs评测入口:生成夹具目标、驱动 Codex、汇总报告
src/evaluation/CodexAgentEval.ts确定性打分器:解析 JSONL 事件并计算全部指标
tests/evaluation/model-evals/codexAgentEval.test.ts打分器自身的单元测试(评测逻辑不依赖真实模型)
skills/reverse-engineer-anything/SKILL.md提供给 Agent 的逆向技能说明,评测时复制进临时工作区
scripts/lib/verifier-run.mjs校验运行登记(verifier_run 字段来源)
docs/testing.md官方测试策略,"Agent evaluation and conformance records" 一节描述该通道定位

设计上值得注意的一点:真实模型试验是手动/门禁性质的,而打分器逻辑由 Vitest 覆盖(见 docs/testing.md 中"Real model trials are manual"的约定)。这样"解析与打分"永远确定可复现,"模型行为"的变化只体现在报告数字里——评估 Agent 使用逆向工具的能力,从此有了可量化的标尺。 📌

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 18:35:53

Prompt工程实战:让AI编程效率翻倍的提示词模板与TaoToken配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/8 18:34:38

软件配置备份方法:从手动到自动化的实践指南

软件配置备份常常被忽视,但它其实非常关键。程序重装后,数据还在,但许可证、激活码、参数设置、界面布局、插件配置、脚本路径等一旦丢失,恢复起来往往比重装软件本身还麻烦。好的配置备份方法,应该做到修改前有副本、…

作者头像 李华
网站建设 2026/10/8 18:33:34

AI 光模块发射端 VCSEL 激光器科普:看懂高速光信号是怎么发出去的

现在 AI 大模型、算力服务器疯狂扩容,光模块成了算力网络里必不可少的 “数据线”,很多人只知道光模块负责传光信号,却不清楚发射端核心的 VCSEL 激光器整套工作逻辑,今天用通俗的话拆解清楚发射端核心 ——VCSEL 激光驱动芯片与激…

作者头像 李华
网站建设 2026/10/8 18:33:19

AI代码审查实战:从工具接入到编程哲学,重新理解代码质量

1. 从“能跑就行”到“这行代码为什么这么写”:AI代码审查到底在审什么第一次听说“AI代码审查”这个概念时,我脑子里蹦出来的画面特别朴素:不就是让机器帮我看看代码有没有语法错误、变量名拼错没有、括号是不是少了一个嘛。后来真把工具接进…

作者头像 李华