// project

radare2-for-agent

让 radare2 原生支持无头常驻会话

起因

做 jindbg 的时候,Windows 侧的问题解决了,但 Linux 侧还卡在同一个地方:AI agent 需要的是「无头 + 守护进程 + 持久化」,而 radare2 的原生交互模型是给人用的交互式 shell。

之前社区的做法是在 r2 外面套一层 Python 包装器(我自己的旧版本叫 r3),靠外部进程维持会话。但这层包装器要自己维护命令解析、状态同步、异常恢复,越写越像在重新实现一个 r2。

这次换了思路

不再在外部包装,直接把持久化会话能力做进 radare2 本身:

  • 上游仓库:radareorg/radare2(当前 master 为 6.2.0)
  • 开发分支:r2-agent
  • 旧的外部 Python 包装器归档到 legacy/r3/,只作经验参考

目标很明确:agent 每次新开一个 bash 调一条命令,都能连回同一个常驻的 r2 状态,不需要任何外部守护进程。

文档结构

项目把设计过程完整留痕——这也是从 jindbg 学到的,改上游代码比写新代码更需要对后来者交代清楚:

文档内容
PROJECT.md项目说明与目标
docs/agent-daemon-design.md设计草案
docs/PLAN-v1-agent-daemon.mdv1 开发方案
README-AI.md面向 AI agent 的安装、使用与能力边界说明

最后那份 README-AI.md 是个有意思的尝试:既然目标用户是 agent,那就该有一份写给 agent 看的说明文档,把能力边界讲明白,避免它在做不到的事情上反复试错。

现在的状态

v1 进行中,分支上还在改。

这是二次开发项目,不是官方 radare2。上游版权归 radareorg 所有(LGPLv3),本仓库只包含为 agent 场景新增的改动与设计文档。