让 REA 的 token 消耗回到预算内:一份从算账到自查的实操手册 让 REA 的 token 消耗回到预算内一份从算账到自查的实操手册【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea一次没有限制的字符串搜索几万行反汇编和符号表灌进对话上下文窗口当场打爆账单跟着跳涨——用 REAReverse Engineer Anything一个让 AI Agent 做逆向分析的工具能从应用行为一路追到原生二进制跑调查时token 消耗膨胀往往就是这么发生的。但这些重操作其实都自带闸门只是很多人不知道去拧。这篇文章按先算账 → 立原则 → 分阶段做 → 自查的顺序带你把逆向分析 Agent 的省 token 动作一次配齐。算一笔账token 到底花在哪逆向 Agent 每一步工具调用返回的都是高密度二进制事实符号表、反汇编、伪代码、引用关系、证据记录。把开销拆开看钱基本烧在这四处反复开新会话同一个目标被反复打开、导入、索引每次都是纯重算无边界的全量返回一次字符串搜索或函数清单动辄上万行文本涌进上下文追踪结果滚雪球跨函数追踪、反编译每深入一层数据量成倍增长同样的数据反复粘贴该引用已保留的证据时Agent 却把原始内容再贴一遍。两条原则覆盖所有省 token 动作 上面四笔开销本质上只有两条毛病只取回答当前问题所需的最小数据——任何拉取、追踪、反编译先问一句这一步真的需要这么多字节吗只算一次之后反复引用——会话状态、分析结果、已得结论都应当被复用而不是重产。后面所有具体动作都是这两条原则在不同阶段的落地。分阶段实践把闸门拧到位动手前先查会话状态能复用就不重算逆向会话session是最大的隐性开销来源。开始任何操作前先用binary_session查看当前会话绑定了哪个目标、哪些工具可用、已保留了哪些证据——状态匹配就沿用而不是新开一个会话从头再来。skills 工作流里的 Work summary-first 一节明确要求不要重复打开相同目标的会话不要重复完全相同的分析。动手前顺手看一眼已保存的分析数据库和先前证据匹配的状态直接复用。调查中摘要先行分页拉取预算兜底先看默认摘要。从最小可用的 overview / inventory 结果开始读返回的内联 Evidence而不是上来就全量反编译大目标比如 JavaScript 应用、未知尺寸的 ELF可以显式用detail: summary拿摘要视图需要细节时再按返回的 Evidence ID 定点查看。拉数据永远带范围。以inspect_keyed_archive读 keyed archive 为例显式指定root、offset、limit返回的就是你要的那一小段对象而不是整个对象列表。证据浏览Evidence同理按需翻页而不是整包打印值追踪图按节点分页返回边稳定 ID 保证翻页不丢上下文。选参数时也省 tokenMCP 的 completion 能力能为会话值提供前缀匹配建议直接输入候选即可省掉先列全量、再肉眼挑的开销见 docs/mcp-prompts.md。给追踪设预算。跨函数追踪是最容易爆炸的操作。trace_native_values用 budget预算参数同时控制深度、反编译次数、调用点解析数量和节点/边数量节点负载上限 8 MiB、序列化结果上限 32 MiB硬边界兜底被省略的部分会被显式计数而不是静默截断。原则是从保守预算起步只有当返回的证据出现具体缺口时才扩大看到已省略 N 项时先判断这些项与当前问题是否相关而不是默认调大。 维护一份结论台账finding ledger。把每个结论关联到 Evidence ID、置信度、搜索边界和未解疑问后续步骤直接引用台账而不是重新翻聊天记录。确认某功能不存在的否定搜索也一样达到边界就停保持有界。收尾时存快照、关会话把结果沉淀下来调查结束时做两件小事收益会延续到下一次调查。保存快照snapshot。快照把成功的分析结果落盘缓存当目标字节、操作、参数、provider分析引擎如 Ghidra和设置完全匹配时后续查询直接命中缓存。CLI 一次精确命中通常在读缓存后才决定是否启动 provider 进程对同一目标换一个问题再查时往往零成本命中。命令行用法是一条单行命令rea analyze /path/to/program --provider ghidra --snapshot analysis.json其中--provider指定分析引擎--snapshot指向本地缓存文件。MCP 里则是在open_binary传snapshot_path原子导入快照close_binary时传snapshot_path加overwrite: true在释放资源前把结果保存下来。对同一个目标做多个不同问题的调查时共享同一份快照文件。关闭原生会话。用close_binary关闭会话及时释放 provider 资源别让引擎进程挂在后台。自查清单对照打勾动作目的开工前先用binary_session查会话状态避免为同一目标重复打开、导入、索引不重复完全相同的工具调用相同分析产生相同字节重算即浪费读数据时显式给root/offset/limit只取当前问题需要的最小片段用 MCP completion 获取参数候选免去先列全量再挑选的 token 开销追踪类操作从小预算起步按需扩大结果规模有硬边界缺口出现才加码结论记入台账Evidence ID 边界 疑问后续引用台账不重翻聊天记录收尾用--snapshot/snapshot_path存快照下次同目标查询命中缓存close_binary关闭会话释放 provider 资源写在最后把这套算账 → 原则 → 分阶段 → 自查的流程变成习惯你的逆向调查会又快又省会话只开一次数据只拉需要的部分结果只算一遍。想深入某个闸门的具体契约可以按需翻这几篇项目内文档快照保存与复用看 docs/cli.md有界静态追踪的预算细节看 docs/native-investigation.md会话生命周期与限制看 docs/mcp-contracts.md而摘要先行 台账的完整工作流写在 .agents/skills/reverse-engineer-anything/SKILL.md 里。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考