bb Agent IDE 核心架构深度解析Server、Host Daemon、App、CLI 四大组件如何协同工作【免费下载链接】bbThe agent IDE that builds itself项目地址: https://gitcode.com/gh_mirrors/bb14/bbbb是一个自己构建自己的 Agent IDEAI 编程智能体集成开发环境。它的核心由四大组件构成Server中心枢纽、Host Daemon主机守护进程、AppWeb 界面和CLI命令行工具。本文用一张图带你读懂这套架构每个组件负责什么、彼此如何通信、以及你该从哪个源码目录入手阅读。️ 一图看懂四大组件的职责分工先看 bb 运行起来后的真实界面——左侧是线程列表中间是与 AI 智能体的对话右侧是任务面板在这个界面背后四大组件各司其职组件角色源码位置Server中心枢纽状态存 SQLite、暴露 HTTP API、通过 WebSocket 推送变更通知apps/server/Host Daemon跑在每台执行机器上连接 Server、预置工作区、运行智能体进程、回传事件apps/host-daemon/AppWeb UI查看项目/线程、跟进进度、指导任务执行apps/app/CLI(bb)一等公民界面和 App 能力对等但可脚本化用户和智能体都能用apps/cli/这套分工的精妙之处在于App 和 CLI 只是遥控器Server 是大脑Host Daemon 是手。你的电脑、远程服务器、甚至手机都可以是手而大脑只有一个。️ Server所有状态的唯一真相来源Server 是整个系统的中枢Hub入口在 apps/server/src/start-server.ts。它做三件事存状态所有数据都落在 SQLite 数据库里packages/db/Server 本身无状态——数据库才是唯一真相来源接请求通过 HTTP API 响应 App 和 CLIapps/server/src/routes/推通知通过 WebSocket 向所有客户端实时推送变更apps/server/src/ws/hub.ts。当某个操作需要动手干活比如启动一个线程时Server 不会自己做而是把工作路由给对应主机上的 Host Daemon——通过常驻的守护进程 WebSocket 通道下发 RPC 命令。核心数据模型有四个概念详见 docs/system-overview.mdProject项目顶层容器通常对应一个代码仓库Thread线程工作单元一次与智能体的对话产生只追加的事件流Environment环境线程的执行上下文把工作区目录绑定到某台主机Host主机一台长驻守护进程的执行机器。⚙️ Host Daemon每台机器上的执行引擎Host Daemon 是 bb 真正干活的地方入口在 apps/host-daemon/src/daemon.ts。每台被纳管enroll的机器上跑一个职责包括连接 Server建立并保持与中心 Server 的守护进程 WebSocket 通道处理 RPC 命令预置环境、启动/停止线程等生命周期操作apps/host-daemon/src/command-dispatch.ts运行智能体进程实际拉起 Codex、Claude Code 等 Agent Provider 进程适配器在 packages/agent-runtime/回传事件把智能体的消息、工具调用、文件变更作为事件批次上报提供本地 API给同机的 App 和 CLI 提供打开编辑器、选择文件夹等本地操作。这意味着一个 Project 的代码可以分布在多台机器上——同一个项目在 Mac 上是本地目录在 Linux 服务器上可以是另一个路径Host 边界天然隔离了这一切。 App 与 CLI两个遥控器Appapps/app/是浏览器里的 Web UI负责查看项目、跟踪线程进度、指导任务执行。它是一个瘦客户端所有数据来自 Server 的 HTTP API实时性靠 WebSocket 推送。CLIapps/cli/则是一等公民而非附属工具入口在 apps/cli/src/index.ts。它和 App 能力对等额外提供可脚本化适合写进 CI 和自动化流程智能体友好Agent 本身也能通过bb命令操作系统插件命令代理未知命令会自动查询插件贡献的命令apps/cli/src/plugin-cli-proxy.ts。典型工作流bb status bb project list bb thread spawn --project id --provider codex --prompt ... 协同全流程一次线程生命周期的完整旅程把四大组件串起来看看你发起一个任务时发生了什么你通过 App 或 CLI 发起启动线程请求 → 请求到达ServerServer校验参数在 SQLite 中写入线程记录状态startingServer通过守护进程 WebSocket 向目标Host Daemon下发 RPC 命令Host Daemon预置工作区Environment拉起智能体 Provider 进程智能体开始干活Host Daemon把消息、工具调用、文件变更等事件批次持续上报Server落库事件流并通过 WebSocket 实时推送给App和CLI你在界面中看到进度实时更新——闭环完成。线程状态机pending → starting → active → idle/error由 packages/domain/ 定义可视化见 docs/lifecycle-diagrams.md。 架构护栏契约包如何锁死组件边界bb 用两个契约包Contract Package保证组件之间各说各话防止架构腐化契约包约束的边界packages/server-contract/客户端App/CLI↔ ServerHTTP 路由、请求/响应类型、WebSocket 通知类型packages/host-daemon-contract/Server ↔ Host Daemon命令类型、事件类型、会话生命周期规则很简单实现代码永远不跨边界 import。Server 不知道工作区如何预置Daemon 不知道线程和项目的细节——它只执行命令里告诉它的事。这种契约先行的设计是大型多进程系统保持可维护性的关键。 延伸阅读与源码导航想深入阅读建议按这个顺序概念总览docs/system-overview.md —— 运行时组件、数据模型、契约边界一页讲清仓库结构docs/repository-overview.md —— 所有包和 App 的角色速查表生命周期状态机docs/lifecycle-diagrams.md —— 线程与环境的状态流转图Server 启动流程apps/server/src/start-server.tsDaemon 进程管理apps/host-daemon/src/daemon.tsCLI 命令注册apps/cli/src/index.ts。一句话总结bb 的架构是典型的中心状态 分布式执行模式——Server 守住唯一真相Host Daemon 分布式执行App 和 CLI 双入口协同。理解了这四者关系你就掌握了读懂整个代码库的地图。【免费下载链接】bbThe agent IDE that builds itself项目地址: https://gitcode.com/gh_mirrors/bb14/bb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
推荐13款常用的Vscode插件,搭配TaoToken统一Key提升前端日常开发效率 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 1:26:57
MFC截图程序的实现(三):用TaoToken统一管理AI辅助调试配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 1:26:51
ARM64高速数据采集框架:FPGA与Linux DMA协同设计实战 1. 从一块板子说起:hs_dma_framework 到底在解决什么问题第一次接触高速数据采集项目的人,往往会低估一件事的复杂度:把数据从 ADC 搬进内存,听起来就是"读寄存器、写内存"两步,但真到几百 MB/s 甚至 GB/s 量… · 2026/9/26 1:26:45
故障一键隔离方案:从 DNS 摘除到 Pod 零副本 故障一键隔离方案:从 DNS 摘除到 Pod 零副本在大促决战打响的惊涛骇浪中,战情室总指挥官与 SRE 专家团最不愿意看到、但又必须做好最充分准备的终极黑天鹅事件,莫过于**“局部系统爆发了不可逆的恶性故障”**:
某个底层物理数据中… · 2026/9/26 4:21:46
光学神经网络仿真包:从角谱衍射到可训练光学层 简介:neuroptica-master 是一套面向光学神经网络研究的灵活仿真包,支持在软件层面模拟衍射光学元件、马赫-曾德尔干涉仪等典型网络结构,帮助研究者与工程师在无需搭建硬件的情况下评估设计、验证算法,并探索高速低功耗计算的可能性… · 2026/9/26 4:21:40
从TsFile到AI原生:Apache IoTDB时序数据库核心机制与实践 1. 从数据积压到实时智能:为什么时序场景需要专属引擎先聊一个我实际见过的场景。某个工业现场的智能产线,几千台设备同时运行,每台设备上有振动、温度、电流、压力等十几个测点,每个测点每秒上报一条数据。算下来一天新增的数据量… · 2026/9/26 4:21:40
League Akari 战绩查询工具:LCU/SGP API 数据抓取与本地分析实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 4:21:40
极简界面的微交互:给删除操作增加“可后悔的 5 秒撤销条” 极简界面的微交互:给删除操作增加“可后悔的 5 秒撤销条”在人机交互设计(HCI)中,关于“删除操作(Deletion Action)”的处理,存在一个经典的体验两难:
方案 A:弹窗二次确… · 2026/9/26 4:21:34
SSM+MySQL酒店管理系统开发指南:从零搭建到答辩避坑 简介:这是一份基于SSMMySQL的酒店管理系统完整项目代码与数据库,专为毕业设计、期末大作业和课程设计场景打造,也可作为Java Web入门后的综合练习项目。系统覆盖房间管理、预订、入住、订单、用户及评论等核心模块,代码带详细注释… · 2026/9/26 4:21:34
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46