ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

bb 数据模型全解:Project、Thread、Environment、Host 四大核心概念彻底搞懂

bb 数据模型全解:Project、Thread、Environment、Host 四大核心概念彻底搞懂 bb 数据模型全解Project、Thread、Environment、Host 四大核心概念彻底搞懂【免费下载链接】bbThe agent IDE that builds itself项目地址: https://gitcode.com/gh_mirrors/bb14/bbbb 是一个能自我构建的 AI 智能体 IDEthe agent IDE that builds itself它把 AI 编程助手变成可以并行运行的数字员工。要真正玩转 bb绕不开它的数据模型Project项目、Thread会话线程、Environment执行环境、Host主机四大核心概念。本文用一份完整指南带你快速搞懂它们各自是什么、如何关联、生命周期如何流转看完即可上手使用。bb 系统架构四个组件各管一摊在讲数据模型前先花 30 秒认识 bb 的四个运行时组件详见 docs/system-overview.md组件角色一句话理解Server中央枢纽所有状态存在 SQLite 里数据库是唯一事实来源Host daemon每台机器的执行器接收指令、准备环境、运行 AI 进程、回传事件AppWeb 界面查看项目/线程、跟进进度、指挥工作CLIbb命令行界面和 App 能力相同但可脚本化四大核心概念就是 Server 数据库里四张核心表对应四个顶层定义packages/domain/src/project.ts → Projectpackages/domain/src/thread.ts → Threadpackages/domain/src/environment.ts → Environmentpackages/domain/src/host.ts → Host数据库表定义projects、threads、environments、hosts、events统一收在 packages/db/src/schema.ts 中。Project 项目所有工作的顶层容器Project 是顶层容器通常对应一个代码仓库。它是你在 bb 侧边栏看到的第一个层级。关键特性一个项目可以有多个 Source来源Source 声明代码在哪里。当前类型是local_path本地路径且每个本地路径 Source 绑定到一台特定 Host——所以同一个项目可以同时映射到你多台机器上的不同路径。两种类型standard普通项目和personal个人项目固定 ID 为proj_personal存放不依赖仓库的私人工作。可关联 Git 远程仓库字段gitRemoteUrl记录远端地址。首次打开 bb 时界面就围绕项目展开可以手动新建项目从本地文件夹也可以自动导入最近 30 天动过的仓库——这正是 Source 扫描的体现。Thread 会话线程最小工作单位Thread 是 bb 里的工作单位unit of work每一条 Thread 就是你和某个 AI 编程助手的完整对话 它做过的所有事。核心要素状态机一条线程有 6 个持久状态——pending等待启动、idle空闲、starting启动中、active运行中、stopping停止中、error出错定义见 packages/domain/src/thread-status.ts状态流转规则在 docs/lifecycle-diagrams.md 中有完整图表。追加式事件流每条线程产生一条只增不改的Event 事件流消息、工具调用、文件变更……存储在events表中这就是你在界面上看到的完整工作记录。两种角色standard亲自干活和manager协调其他线程。线程还能拥有子线程实现任务委派。丰富的关系字段parentThreadId侧边栏里的父子关系、lifecycleOwnerThreadId生命周期属主归档/删除会级联、sourceThreadId分叉来源——线程之间可以 fork 出新线程互不干扰地并行探索。生命周期管理支持归档archivedAt、置顶pinnedAt、软删除deletedAt归档还带撤销宽限期误操作有救。bb 最强的场景之一就是让多条线程并行推进不同任务在平铺视图里一眼看全Environment 环境线程的执行上下文Environment 回答线程在哪台机器的哪个目录里干活这个问题它把一块工作区磁盘上的目录绑定到一台 Host。两种模式模式说明unmanaged非托管直接指向你已有的目录bb 不碰它的生命周期managed托管由 bb 创建例如managed-worktreegit worktree当没有未归档线程还在用它时会被自动清理其他关键特性多条线程可以共享同一个 Environment互不干扰地操作同一份工作区。完整生命周期状态从creating → provisioning → ready → error/destroyed流转生命周期阶段则是active → retiring → teardown → destroyed规则见 packages/domain/src/environment-lifecycle.ts。Git 感知Environment 记录branchName、baseBranch、defaultBranch、是否 worktree 等 Git 信息bb 据此自动判断改动量、分支状态和 PR 可合并性。当 AI 在一个真实工作区里写代码、你盯着右侧的对话流时Environment 绑定工作区 Host 这件事就已经在幕后发生了Host 主机真正执行工作的机器Host 是一台会干活的机器的长期驻留身份对应一个常驻的 host daemon 进程。Server 本身就跑在一台 Host 上API 中的primaryHostId并可以注册enroll更多远程 Host——项目来源和环境都带着这个主机边界所以你可以让不同机器执行不同线程。两种类型persistent常驻机器如你的笔记本和ephemeral临时机器由云厂商按需创建/销毁字段machineProviderId记录由哪个云环境提供商提供。连接状态connected/disconnected断连期间相关线程会进入waiting-for-host等待态。权限上限maxPermissionMode定义这台机器上代理最高能行使什么权限比如能否执行任意命令远程机器可以收得更紧。Server 与 daemon 之间的通信协议由两个契约包严格界定bb/server-contract负责客户端↔Serverbb/host-daemon-contract负责 Server↔daemon实现包之间不允许跨界引用——Server 不需要知道工作区怎么被创建daemon 也无需理解线程和业务。四大概念如何协作一张关系图理清概念是什么类比数据库表Host干活的机器 常驻守护进程工位所在的办公楼hostsProject顶层容器通常对应一个仓库公司里的一个产品projectsEnvironment工作区目录 × 主机的绑定一张办公桌 打开的工程environmentsThread与 AI 助手的一次完整协作一位工程师接到的任务单threadsevents协作链条一句话概括一个 Project 声明代码在哪几台 Host 上Environment 在某台 Host 上圈出一块工作区Thread 在这块工作区里和 AI 对话、产生事件流多条 Thread 可共享环境、委派子线程、跨机器并行。快速上手从零跑通 bb仓库地址https://gitcode.com/gh_mirrors/bb14/bb克隆仓库并安装依赖pnpm monorepo。启动 Server 与本机 Host daemon——本机即primaryHost。在 App 或 CLI 中新建项目从本地文件夹创建第一个 Project。发起第一条 Threadbb 会自动 provision 一个 Environment开始工作。延伸阅读去哪里看源码系统总览与数据模型官方说明docs/system-overview.md线程生命周期状态机packages/domain/src/thread-lifecycle.ts环境生命周期状态机packages/domain/src/environment-lifecycle.ts四大实体数据库表定义packages/db/src/schema.ts服务端契约HTTP WebSocket APIpackages/server-contract/主机守护进程契约命令/事件协议packages/host-daemon-contract/项目文档目录docs/总结Project 是事的边界一个仓库一个容器可挂多台机器的来源。Thread 是活的单位一条会话、一个状态机、一条只增的事件流可并行、可委派、可 fork。Environment 是场的绑定目录 × 主机托管环境用完自动清理。Host 是人的载体常驻守护进程本地或云端带权限上限。理解了这四者你就掌握了 bb 数据模型的全貌——它不是一个编辑器 聊天框而是一套以 SQLite 为唯一事实来源、可跨机器调度 AI 代理的工作系统。【免费下载链接】bbThe agent IDE that builds itself项目地址: https://gitcode.com/gh_mirrors/bb14/bb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表