作为一名深耕业务的前端开发者,在近期深度探索 AI 辅助编程(AI Coding)的过程中,我萌生并独立主导了这个开源项目。
【起因与痛点】 在使用大模型开发项目时,我发现像 Codex / Claude-3.5-Sonnet 这样的顶级模型价格昂贵。如果手里同时推进多个项目,完全用昂贵模型写基础业务代码非常不划算。 于是我产生了一个构想:能不能让“昂贵且聪明”的模型充当架构师与监工,去驱动和审查“便宜且量大”的模型(作为基层码农)干活? 并且,我希望这一切是全程 100% 自动化、零人工干预的。
【灵感与破局:借鉴 Vue 的 Pinia 思想】 在实验初期,我试图让两款不同的 AI 编程软件(比如 Codex 和另一款终端大模型)建立直接的 WebSocket 或 RPC 连接。但由于不同工具的环境黑盒,多次实验均以失败告终。 在苦思冥想时,我想起了前端老本行——Vue 生态中的 Pinia 全局状态管理。 既然不同组件(AI 软件)无法直接通信,为什么不把整个项目根目录作为唯一的全局 Store 呢? 只要我们在本地规定好一套严密的“读写锁”与“状态机制”,不同的编程软件共用同一套项目目录:
- Watchdog(看门狗) 作为 Store 的响应式监听器,实时监控状态变更。
- Supervisor(监工方/贵模型) 充当架构侧的 Action,负责心跳响应与结果校验。
- Builder(施工方/便宜模型) 充当视图/业务更新层,自动进行底层逻辑的编写。
昂贵的模型只需负责补充好 docs/prd.md 需求文档与编写严苛的测试用例,便宜的模型就能依靠这套“状态管理”机制,彼此接替,直到把整个项目开发完毕。
本项目实现了一套**零依赖(Zero-Dependency)**的三权分立状态机。
- Builder (施工方):纯粹的代码生产者。执行完任务后,主动调用本地阻塞脚本挂起,交出控制流。
- Supervisor (监工方):冷酷的代码审查者。不写业务代码,只跑测试和审查差异。若不合规,则将状态打回
REJECTED强制重写。 - Watchdog (看门狗):无情的流水线传送带。纯原生 Node.js 进程,只盯防根目录的
bridge.md状态机锁文件,负责调度和唤醒。
实现真正的“无人值守”,远比画架构图要艰难。在这个项目中,我遇到并解决了三个极度棘手的跨环境工程 Bug,这也是本项目最核心的技术壁垒:
- 痛点:最初监工方尝试使用 WMI (
Get-CimInstance) 嗅探系统级进程状态,但在 Windows 下即使是管理员权限也频频遭遇“拒绝访问”。 - 解决:坚决摒弃全局扫描。改为依赖轻量级的原子化文件读写锁(在
.bridge/下写入 PID),将跨进程通信降维到文件系统层面,完美绕过了 UAC 权限限制。
- 痛点:施工方在拉起前端 Vite 开发服务器时,由于是阻塞式前台进程,导致大模型的终端执行(Tool Call)一直挂起,无法拿回控制权推进状态。
- 解决:强制将所有长运行服务剥离。利用
Start-Process ... -WindowStyle Hidden及 Node 的detached模式将服务丢入后台守护,确保命令秒级返回,将控制流交还给大模型。
- 痛点:这是最难排查的一个 Bug。施工方执行挂起脚本等待任务,但在第 120 秒时,大模型客户端因为“单次工具执行超时限制”自动退出了挂起状态。而监工方的深度审查往往需要 150 秒。双方在时间轴上产生致命脱节。
- 解决:引入了**“自我续期挂起” (Self-Renewal Wait Pattern)** 韧性机制。我在传给大模型的 Prompt 协议中下达死命令:如果脚本因超时返回,绝对禁止停止思考,必须立即发起新的挂起脚本调用,用无限接力的方式填平时间差,确保链路永不断裂。
以下是项目在真实环境下,完全由大模型自行流转、互相协作与审阅的运行实况:
左上:监工方 (Supervisor) 正在异步轮询。右上:施工方 (Builder) 完成代码编写并触发重审。下方:Watchdog 实时调度。
要体验本项目,只需在一个空文件夹下执行:
npx agent-bridge init如果您想深入了解底层协议细节、CLI 指南或想参与贡献,请查阅以下核心文档:
- 🧠 架构解析 (Architecture)
- 📜 协议规范 (Protocol Spec)
- 💻 命令行指南 (CLI Usage)
- 💡 实战案例 (Examples)
- 🤝 贡献指南 (CONTRIBUTING)
“真正的自动化不是赋予大模型无限的自由,而是为其戴上最严酷的工程枷锁。” —— 感谢您的阅读。


