Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌉 Agent-Bridge

基于 Pinia 全局状态思想的「多智能体异步协作」底层架构

License: MIT Dependencies: 0

简体中文 | English


👨‍💻 写在前面的话:为什么会有这个项目?

作为一名深耕业务的前端开发者,在近期深度探索 AI 辅助编程(AI Coding)的过程中,我萌生并独立主导了这个开源项目。

【起因与痛点】 在使用大模型开发项目时,我发现像 Codex / Claude-3.5-Sonnet 这样的顶级模型价格昂贵。如果手里同时推进多个项目,完全用昂贵模型写基础业务代码非常不划算。 于是我产生了一个构想:能不能让“昂贵且聪明”的模型充当架构师与监工,去驱动和审查“便宜且量大”的模型(作为基层码农)干活? 并且,我希望这一切是全程 100% 自动化、零人工干预的。

【灵感与破局:借鉴 Vue 的 Pinia 思想】 在实验初期,我试图让两款不同的 AI 编程软件(比如 Codex 和另一款终端大模型)建立直接的 WebSocket 或 RPC 连接。但由于不同工具的环境黑盒,多次实验均以失败告终。 在苦思冥想时,我想起了前端老本行——Vue 生态中的 Pinia 全局状态管理。 既然不同组件(AI 软件)无法直接通信,为什么不把整个项目根目录作为唯一的全局 Store 呢? 只要我们在本地规定好一套严密的“读写锁”与“状态机制”,不同的编程软件共用同一套项目目录:

  1. Watchdog(看门狗) 作为 Store 的响应式监听器,实时监控状态变更。
  2. Supervisor(监工方/贵模型) 充当架构侧的 Action,负责心跳响应与结果校验。
  3. Builder(施工方/便宜模型) 充当视图/业务更新层,自动进行底层逻辑的编写。

昂贵的模型只需负责补充好 docs/prd.md 需求文档与编写严苛的测试用例,便宜的模型就能依靠这套“状态管理”机制,彼此接替,直到把整个项目开发完毕。


🚀 核心架构与原理解析

本项目实现了一套**零依赖(Zero-Dependency)**的三权分立状态机。

  • Builder (施工方):纯粹的代码生产者。执行完任务后,主动调用本地阻塞脚本挂起,交出控制流。
  • Supervisor (监工方):冷酷的代码审查者。不写业务代码,只跑测试和审查差异。若不合规,则将状态打回 REJECTED 强制重写。
  • Watchdog (看门狗):无情的流水线传送带。纯原生 Node.js 进程,只盯防根目录的 bridge.md 状态机锁文件,负责调度和唤醒。

💡 开发中的思想迭代与踩坑实录

实现真正的“无人值守”,远比画架构图要艰难。在这个项目中,我遇到并解决了三个极度棘手的跨环境工程 Bug,这也是本项目最核心的技术壁垒:

1. 进程状态嗅探的“系统权限壁垒”

  • 痛点:最初监工方尝试使用 WMI (Get-CimInstance) 嗅探系统级进程状态,但在 Windows 下即使是管理员权限也频频遭遇“拒绝访问”。
  • 解决:坚决摒弃全局扫描。改为依赖轻量级的原子化文件读写锁(在 .bridge/ 下写入 PID),将跨进程通信降维到文件系统层面,完美绕过了 UAC 权限限制。

2. 长驻服务的“终端阻塞死锁” (Foreground Hang)

  • 痛点:施工方在拉起前端 Vite 开发服务器时,由于是阻塞式前台进程,导致大模型的终端执行(Tool Call)一直挂起,无法拿回控制权推进状态。
  • 解决:强制将所有长运行服务剥离。利用 Start-Process ... -WindowStyle Hidden 及 Node 的 detached 模式将服务丢入后台守护,确保命令秒级返回,将控制流交还给大模型。

3. 工具超时的竞态条件 (The 120s Race Condition)

  • 痛点:这是最难排查的一个 Bug。施工方执行挂起脚本等待任务,但在第 120 秒时,大模型客户端因为“单次工具执行超时限制”自动退出了挂起状态。而监工方的深度审查往往需要 150 秒。双方在时间轴上产生致命脱节。
  • 解决:引入了**“自我续期挂起” (Self-Renewal Wait Pattern)** 韧性机制。我在传给大模型的 Prompt 协议中下达死命令:如果脚本因超时返回,绝对禁止停止思考,必须立即发起新的挂起脚本调用,用无限接力的方式填平时间差,确保链路永不断裂。

📷 项目实况展示

以下是项目在真实环境下,完全由大模型自行流转、互相协作与审阅的运行实况:

1. 自动化流水线运转

左上:监工方 (Supervisor) 正在异步轮询。右上:施工方 (Builder) 完成代码编写并触发重审。下方:Watchdog 实时调度。 流水线运转实况

2. 状态机切换与冲突阻断

严谨的状态流转机制,即使遇到复杂问题,系统也能及时阻断并将控制权安全挂起。 状态机切换

3. 完美零干预闭环

施工方代码全自动通过 ESLint/Prettier 校验,监工审批通过,Watchdog 自动推进至下一阶段任务。 零干预闭环


📖 快速开始与详细文档

要体验本项目,只需在一个空文件夹下执行:

npx agent-bridge init

如果您想深入了解底层协议细节、CLI 指南或想参与贡献,请查阅以下核心文档:


“真正的自动化不是赋予大模型无限的自由,而是为其戴上最严酷的工程枷锁。” —— 感谢您的阅读。

About

基于 Pinia 全局状态思想的「多智能体异步协作」底层架构。/A zero-dependency framework for autonomous dual-agent collaboration. /

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages