Beads:由 Dolt 驱动,为 AI 智能体提供持久内存的分布式图问题跟踪器
Beads 是一款由 Dolt 驱动的面向 AI 智能体的分布式图问题跟踪器,支持 macOS、Linux、Windows、FreeBSD 平台,相关文档可查看:https://gastownhall.github.io/beads/ 。它为编码智能体提供了持久、结构化的内存,用依赖感知图取代了杂乱的 Markdown 计划,使智能体能够处理长期任务而不会丢失上下文。
快速开始
若要快速开始使用 Beads,首先需安装 beads CLI(全局安装,不要将此仓库克隆到项目中),可通过命令"curl -fsSL https://raw.githubusercontent.com/gastownhall/beads/main/scripts/install.sh | bash"进行安装。接着在项目中初始化,使用"cd your-project"进入项目目录后运行"bd init"。最后告知智能体使用"bd"进行任务跟踪,可通过"echo 'Use "bd" for task tracking' >> AGENTS.md"实现。需要注意的是,Beads 是一个只需安装一次即可在各处使用的 CLI 工具,无需将此仓库克隆到项目中。
特性
- **Dolt 驱动**:它采用具有单元格级合并、原生分支功能以及通过 Dolt 远程仓库实现内置同步的版本控制 SQL 数据库。- **智能体优化**:支持 JSON 输出、依赖跟踪和自动就绪任务检测。- **零冲突**:基于哈希的 ID(bd - a1b2)可防止多智能体/多分支工作流中的合并冲突。- **压缩**:语义化的"内存衰减"功能可总结旧的已关闭任务,以节省上下文窗口。- **消息传递**:支持带线程的消息问题类型(--thread)、临时生命周期和邮件委托。- **图链接**:提供 relates_to、duplicates、supersedes 和 replies_to 等图链接,用于构建知识图谱。
基本命令
| 命令 | 操作 |
|---|---|
| bd ready | 列出无开放阻塞项的任务 |
| bd create "Title" -p 0 | 创建一个 P0 任务 |
| bd update --claim | 原子性地认领一个任务(设置分配人 + 进行中状态) |
| bd dep add | 链接任务(阻塞、相关、父子关系) |
| bd show | 查看任务详情和审计轨迹 |
层级与工作流
Beads 支持史诗级任务的层级 ID,如"bd - a3f8"(史诗任务)、"bd - a3f8.1"(任务)、"bd - a3f8.1.1"(子任务)。**隐身模式**:运行"bd init --stealth"可在不将文件提交到主仓库的情况下本地使用 Beads,适合在共享项目中个人使用,详见下面的无 Git 使用部分。**贡献者与维护者**:在开源项目中工作时,贡献者(分叉仓库)运行"bd init --contributor"可将规划问题路由到单独的仓库(例如 ~/.beads - planning),避免实验性工作进入 PR;维护者(有写入权限),Beads 会通过 SSH URL 或带凭证的 HTTPS 自动检测维护者角色,若使用无凭证的 GitHub HTTPS 但有写入权限,只需执行"git config beads.role maintainer"。
安装
- "brew install beads":适用于 macOS / Linux(推荐)。- "npm install -g @beads/bd":适用于 Node.js 用户。其他方法还包括安装脚本、go install、从源码安装、Windows、Arch AUR 等。要求系统为 macOS、Linux、Windows 或 FreeBSD,完整的安装指南见 docs/INSTALLING.md。**安全与验证**:在信任任何下载的二进制文件之前,需根据发布的 checksums.txt 验证其校验和。安装脚本会在安装前验证发布校验和,手动安装时,首次运行前需自行进行此验证。在 macOS 上,scripts/install.sh 默认保留下载的签名,通过设置"BEADS_INSTALL_RESIGN_MACOS = 1"可显式选择本地临时重新签名。Windows 防病毒误报指导和验证工作流见 docs/ANTIVIRUS.md。
存储模式
Beads 使用 Dolt 作为数据库,有两种模式可供选择:- **嵌入式模式(默认)**:使用"bd init",Dolt 在进程内运行,无需外部服务器,数据存储在 .beads/embeddeddolt/ 中,仅支持单写入者(强制文件锁定),这是大多数用户的推荐模式。- **服务器模式**:使用"bd init --server",连接到外部 dolt sql - server,数据存储在 .beads/dolt/ 中,支持多个并发写入者,可通过标志或环境变量配置连接:
| 标志 | 环境变量 | 默认值 |
|---|---|---|
| --server - host | BEADS_DOLT_SERVER_HOST | 127.0.0.1 |
| --server - port | BEADS_DOLT_SERVER_PORT | 3307 |
| --server - socket | BEADS_DOLT_SERVER_SOCKET | (无;使用 TCP) |
| --server - user | BEADS_DOLT_SERVER_USER | root |
| BEADS_DOLT_PASSWORD | (无) | |
| BEADS_DOLT_CLI_DIR | 本地 Dolt 数据库路径,用于 CLI 推送/拉取 |
社区工具
社区构建的 UI、扩展和集成的精选列表见 docs/COMMUNITY_TOOLS.md,包括终端界面、Web UI、编辑器扩展和原生应用。
无 Git 使用
Beads 无需 Git 即可工作,Dolt 数据库是存储后端,Git 集成(钩子、仓库发现、身份验证)是可选的。通过"export BEADS_DIR=/path/to/your/project/.beads"和"bd init --quiet --stealth"可进行无 Git 初始化,所有核心命令无需调用 Git 即可工作,如"bd create 'Fix auth bug' -p 1 -t bug""bd ready --json""bd update bd - a1b2 --claim""bd prime""bd close bd - a1b2 'Fixed'"。BEADS_DIR 告知 bd 将 .beads/ 数据库目录放置的位置,绕过 Git 仓库发现。"--stealth"在配置中设置"no - git - ops: true",禁用所有 Git 钩子安装和 Git 操作,适用于非 Git 版本控制系统(Sapling、Jujutsu、Piper),无需 .git/ 目录;单体仓库,将 BEADS_DIR 指向特定子目录;CI/CD,实现隔离的任务跟踪,无仓库级副作用;评估/测试,在 /tmp 中使用临时数据库等场景。如需在无 Git 的情况下使用守护进程模式,可使用"bd daemon start --local"(详见 PR #433)。
文档
Beads 提供文档网站(版本化)、安装指南、智能体工作流、Copilot 设置、文章、同步分支模式、故障排除、常见问题解答等相关文档。