乐于分享
好东西不私藏

22.1K+ star 的 AI 编程记忆工具:让 AI 任务追踪从金鱼变成大象

22.1K+ star 的 AI 编程记忆工具:让 AI 任务追踪从金鱼变成大象

你用 AI 编程工具做过长任务吗?做到一半,它突然忘了前面定好的计划?或者多轮对话之后,上下文中塞满了各种临时备注,连它自己都分不清哪个是真正的待办、哪个是随便说说?

这其实是 AI 编程工具的一个核心缺陷:它们没有持久化的、结构化的记忆。对话结束,记忆就消失了;上下文里塞满的 markdown notes,没有依赖关系、没有优先级、没有追踪。

Beads 做的事:给你的 AI 编程工具接上一个带版本控制的结构化记忆层,把混乱的 markdown 计划替换成一张依赖感知的任务图谱。

目前 GitHub 22.1K+ star,今日新增 485 star。


01 它是什么?

Beads 是一个面向 AI 编程工具的分布式图结构任务追踪工具。它把你的项目任务、依赖关系、进度全部存在一个 Dolt(版本控制 SQL 数据库)里,然后通过 CLI 命令暴露给 AI 编程工具。

一句话概括:AI 编程工具的结构化记忆与任务追踪工具

它的核心设计理念是:任务不是扁平的列表,而是一张有向无环图(DAG)。一个任务可以阻塞(block)另一个任务,可以是某个 Epic 的子任务,可以和相关任务建立「relates_to」关系。Beads 会自动计算哪些任务已经就绪(没有 open blocker),让 AI 始终知道下一步该做什么。


02 核心原理/亮点

Dolt 底层:版本控制 SQL 数据库

Beads 使用 Dolt(https://github.com/dolthub/dolt) 作为存储引擎——这是一个 Git 风格的 SQL 数据库,每个写操作都是一个 commit,支持分支、合并、cell-level 的冲突处理。这意味着:

  • 任务历史完整可追溯(git log 一样的 bd log
  • 可以开分支做实验性计划,合并不满意就丢弃

  • 多 agent 并行工作时不会丢数据

依赖感知图谱

Beads 里的任务关系不只有「待办/已完成」两种状态,它支持:

关系类型
含义
blocks
阻塞关系(完成父任务才能做子任务)
relates_to
关联关系
duplicates
重复关系
supersedes
替代关系
replies_to
回复关系

bd ready 命令会列出所有没有 open blocker 的任务——AI 可以直接知道自己现在能做什么。

零冲突 ID

每个任务有一个哈希 ID(格式 bd-a1b2),多 agent 或多分支并行工作时不产生 ID 冲突。这是专门为 AI 工作流设计的关键特性——传统的自增 ID 在并发场景下会产生大量冲突。

语义压缩(Memory Decay)

旧的和已关闭的任务不会一直占上下文窗口。Beads 会自动将它们「压缩」成摘要,保留关键信息但不占空间。

两种存储模式

  • 嵌入式模式
    (默认):Dolt 进程内运行,不需要外部服务器,数据存在 .beads/embeddeddolt/
  • 服务器模式:bd init --server
     连接外部 Dolt SQL Server,支持多 writer 并发写入

零 Git 依赖

Beads 可以完全脱离 git 运行(bd init --stealth),数据存在指定目录。这让它特别适合:

  • 非 Git VCS( Sapling、Jujutsu 等)

  • CI/CD 环境里的临时任务追踪

  • Monorepo 中指定子目录的独立追踪


03 应用场景

场景一:长周期多步骤重构任务

一个大型架构重构可能有 20+ 个步骤,涉及多个模块的改动。传统方式是你自己维护一张清单,记着哪些做完了哪些还没做。Beads 让 AI 帮你维护这张图——它知道每个任务的依赖关系,bd ready 告诉你现在能做哪个。

场景二:多 AI Agent 并行开发

多个 AI agent 同时工作在同一个 repo,每个 agent 创建自己的任务。没有 Beads 时,任务 ID 冲突、依赖关系混乱是常态。Beads 的哈希 ID 保证了零冲突,Dolt 的并发写入支持保证了数据安全。

场景三:开源项目贡献者工作流

贡献者(fork 的仓库)和维护者(主仓库)角色不同,Beads 可以把贡献者的规划任务存在本地,不污染主仓库的 PR。用 bd init --contributor 即可切换到独立存储路径。

场景四:团队 Code Review 流程

通过 bd dep add 建立「审查通过才能合并」的依赖关系,或者用 supersedes 标记替代方案。Beads 的图结构天然适合描述这种有条件的工作流。


04 快速上手

第一步:安装

#macOS / Linux(推荐)brew install beads#Node.js 用户npm install -g @beads/bd

第二步:在项目里初始化

cd your-projectbd init

第三步:告诉 AI 使用 Beads

echo "Use 'bd' for task tracking" >> AGENTS.md

第四步:创建任务

bd create "设计 API 接口" -p 0    # 创建 P0 任务bd create "实现核心逻辑"-p 1    # 创建 P1 任务bd dep add bd-xxx bd-yyy         # 建立依赖:bd-yyy 阻塞 bd-xxx

第五步:查看就绪任务

bd ready    # 列出没有 open blocker 的任务

常用命令速查

命令
功能
bd ready
列出就绪任务
bd create "标题" -p 0
创建 P0 任务
bd update <id> --claim
认领任务
bd dep add <child> <parent>
添加依赖关系
bd show <id>
查看任务详情
bd close <id> "原因"
关闭任务

完整文档:https://gastownhall.github.io/beads/


写在最后

Beads 解决的不是「任务管理」这个问题本身——它解决的是** AI 编程工具缺乏持久化、结构化记忆**的根本缺陷。

当你的 AI 可以查询一张实时更新的任务图谱,知道哪些做完了、哪些被阻塞了、依赖关系是什么,它就不再是一个每次都要重新读上下文的「金鱼」。这种结构性记忆让长周期任务、多步骤重构、跨模块改动这些高难度工作变得可以管理。

如果你在用 Claude Code 或类似的 AI 编程工具处理复杂任务,Beads 是值得一试的记忆增强工具。


相关链接:

  • GitHub:https://github.com/gastownhall/beads

  • 文档:https://gastownhall.github.io/beads/

  • Dolt 数据库:https://github.com/dolthub/dolt

  • npm 包:https://www.npmjs.com/package/@beads/bd

  • PyPI:https://pypi.org/project/beads-mcp/