gastownhall/beads

GitHub: gastownhall/beads

面向 AI 编程代理的持久化结构化记忆与图谱化任务跟踪工具,解决 Agent 在长周期编码任务中丢失上下文的问题。

Stars: 21132 | Forks: 1418

# bd - Beads **面向 AI 代理的分布式图谱化问题跟踪器,由 [Dolt](https://github.com/dolthub/dolt) 驱动。** **平台:** macOS, Linux, Windows, FreeBSD [![许可证](https://img.shields.io/github/license/steveyegge/beads)](LICENSE) [![Go 报告卡片](https://goreportcard.com/badge/github.com/steveyegge/beads)](https://goreportcard.com/report/github.com/steveyegge/beads) [![发布版](https://img.shields.io/github/v/release/steveyegge/beads)](https://github.com/steveyegge/beads/releases) [![npm 版本](https://img.shields.io/npm/v/@beads/bd)](https://www.npmjs.com/package/@beads/bd) [![PyPI](https://img.shields.io/pypi/v/beads-mcp)](https://pypi.org/project/beads-mcp/) **文档:** https://gastownhall.github.io/beads/ Beads 为编程代理提供持久且结构化的记忆。它用支持依赖关系的图谱替代了混乱的 markdown 计划,使代理能够处理长周期任务而不丢失上下文。 ## ⚡ 快速开始 ``` # 安装 beads CLI (系统全局 - 不要将此 repo 克隆到你的项目中) curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash # 在你的项目中初始化 cd your-project bd init # 告诉你的 agent echo "Use 'bd' for task tracking" >> AGENTS.md ``` **注意:** Beads 是一个一次安装即可随处使用的 CLI 工具。你不需要将此仓库克隆到你的项目中。 ## 🛠 功能特性 * **[Dolt](https://github.com/dolthub/dolt) 驱动:** 具有版本控制功能的 SQL 数据库,支持单元格级别合并、原生分支,并通过 Dolt 远程仓库进行内置同步。 * **为代理优化:** JSON 输出、依赖追踪以及自动就绪任务检测。 * **零冲突:** 基于哈希的 ID(`bd-a1b2`)防止多代理/多分支工作流中的合并冲突。 * **数据压缩:** 语义化的“记忆衰退”会总结旧的已关闭任务,以节省上下文窗口。 * **消息传递:** 具有线程化(`--thread`)、短暂生命周期和邮件委托功能的消息类型 issue。 * **图谱链接:** 用于知识图谱的 `relates_to`、`duplicates`、`supersedes` 和 `replies_to` 关系。 ## 📖 常用命令 | 命令 | 操作 | | --- | --- | | `bd ready` | 列出没有未完成阻塞的任务。 | | `bd create "Title" -p 0` | 创建一个 P0 任务。 | | `bd update --claim` | 原子化认领任务(设置指派人 + 进行中状态)。 | | `bd dep add ` | 关联任务(阻塞、相关、父子)。 | | `bd show ` | 查看任务详情和审计记录。 | ## 🔗 层次结构与工作流 Beads 支持史诗(Epic)的层级 ID: * `bd-a3f8`(史诗) * `bd-a3f8.1`(任务) * `bd-a3f8.1.1`(子任务) **隐身模式:** 运行 `bd init --stealth` 可以在本地使用 Beads,而不会将文件提交到主仓库。非常适合在共享项目中的个人使用。请参阅下面的[无 Git 用法](#-git-free-usage)。 **贡献者 vs 维护者:** 在参与开源项目时: * **贡献者**(复刻的仓库):运行 `bd init --contributor` 将规划问题路由到单独的仓库(例如,`~/.beads-planning`)。使实验性工作远离 PR。 * **维护者**(写权限):Beads 通过 SSH URL 或带有凭据的 HTTPS 自动检测维护者角色。只有在你拥有写权限但使用没有凭据的 GitHub HTTPS 时,才需要 `git config beads.role maintainer`。 ## 📦 安装 ``` brew install beads # macOS / Linux (recommended) npm install -g @beads/bd # Node.js users ``` **其他方式:** [安装脚本](docs/INSTALLING.md#quick-install-script-all-platforms) | [go install](docs/INSTALLING.md#quick-install-recommended) | [从源码构建](docs/INSTALLING.md#build-dependencies-contributors-only) | [Windows](docs/INSTALLING.md#windows-11) | [Arch AUR](docs/INSTALLING.md#linux) **系统要求:** macOS, Linux, Windows 或 FreeBSD。有关完整的安装指南,请参阅 [docs/INSTALLING.md](docs/INSTALLING.md)。 ### 安全与验证 在信任任何下载的二进制文件之前,请针对发布版 `checksums.txt` 验证其校验和。 安装脚本在安装前会验证发布版校验和。对于手动安装,请在首次运行前自行进行此验证。 在 macOS 上,`scripts/install.sh` 默认保留下载的签名。本地的临时重新签名需要通过 `BEADS_INSTALL_RESIGN_MACOS=1` 显式选择启用。 有关 Windows 杀毒软件误报指南和验证工作流,请参阅 [docs/ANTIVIRUS.md](docs/ANTIVIRUS.md)。 ## 💾 存储模式 Beads 使用 [Dolt](https://github.com/dolthub/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` | (无) | **Unix 域套接字:** 使用 `--server-socket` 通过 Unix socket 连接 而不是 TCP。这避免了并发项目之间的端口冲突,并 在沙盒环境(例如 Claude Code)中很有用,因为在这些环境中,文件级 访问控制比网络白名单更简单。Dolt 服务器必须 使用 `dolt sql-server --socket ` 启动。Socket 模式不支持 自动启动。 ### 备份与迁移 使用 `bd backup` 备份数据库并在模式间进行迁移: ``` # 设置备份目标并推送 bd backup init /path/to/backup bd backup sync # 恢复到新项目中 (任何模式) bd init # or bd init --server bd backup restore --force /path/to/backup ``` 有关完整的迁移说明,请参阅 [docs/DOLT.md](docs/DOLT.md#migrating-between-backends)。 ## 🌐 社区工具 有关社区构建的 UI、扩展和集成的精选列表,请参阅 [docs/COMMUNITY_TOOLS.md](docs/COMMUNITY_TOOLS.md) —— 包括终端界面、Web UI、编辑器扩展和原生应用。 ## 🚀 无 Git 用法 Beads 可以在没有 git 的情况下工作。Dolt 数据库是存储后端 —— git 集成(钩子、仓库发现、身份标识)是可选的。 ``` # 不使用 git 进行初始化 export BEADS_DIR=/path/to/your/project/.beads bd init --quiet --stealth # 所有核心命令在零 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 VCS**(Sapling, Jujutsu, Piper)—— 不需要 `.git/` 目录 - **单体仓库** —— 将 `BEADS_DIR` 指向特定子目录 - **CI/CD** —— 独立的任务跟踪,无仓库级别的副作用 - **评估/测试** —— `/tmp` 中的临时数据库 对于不带 git 的守护进程模式,请使用 `bd daemon start --local` (参见 [PR #433](https://github.com/steveyegge/beads/pull/433))。 ## 📝 文档 * [文档网站](https://gastownhall.github.io/beads/)(带版本控制) | [安装](docs/INSTALLING.md) | [代理工作流](AGENT_INSTRUCTIONS.md) | [Copilot 设置](docs/COPILOT_INTEGRATION.md) | [文章](ARTICLES.md) | [同步分支模式](docs/PROTECTED_BRANCHES.md) | [故障排除](docs/TROUBLESHOOTING.md) | [常见问题](docs/FAQ.md) * [![询问 DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/gastownhall/beads)
标签:AI代理, Dolt, EVTX分析, GNU通用公共许可证, Go语言, Markdown替代, MCP, Node.js, Python, SOC Prime, SQL数据库, 上下文窗口优化, 上下文管理, 人工智能, 任务跟踪器, 依赖追踪, 分布式图, 多代理系统, 多平台, 多线程, 安全可观测性, 开发工具, 无后门, 日志审计, 暗色界面, 正则匹配, 消息传递, 版本控制, 用户模式Hook绕过, 程序破解, 编码助手, 自动化编程, 记忆增强, 语义压缩, 零冲突