机器人的失忆症
想象一下,你雇佣了一个才华横溢的程序员。他能解决复杂问题,写出整洁的代码,理解你的架构。但他有一个小缺陷:每隔几个小时就会被抹掉记忆。重新从零开始。不记得自己在做什么,不记得你们一起做的决定,也不记得代码为什么是现在这样。
这正是 Claude Code 和其他 AI 代理发生的情况。
当上下文满了(如果你在真实项目中工作,它会很快满),系统就会进行"压缩"。通俗地说:总结对话并丢弃其他所有内容。问题在于这种总结会丢失细节、决策,特别是正在进行的任务状态。
解决方案?两个相互补充的工具:Linear 给你用,Beads 给你的 AI 用。
Linear:你的产品视图
Linear 是一个现代的问题管理器。如果你用过 Jira,想象一下它的反面:快速、简洁,不会让你想挖掉眼睛。
我用它做什么
- 产品待办事项:功能、bug、史诗。所有业务层面需要完成的事情
- 路线图:什么先做,什么后做
- 沟通:团队其他成员(如果有的话)可以看到状态
真实例子
QIN-500: 为应用添加暗黑模式
QIN-501: 优化图片加载
QIN-502: 集成支付网关
这些是产品任务。它们是"需要做什么"。不说明如何做。那是开发者的工作……或者你的 AI 代理的工作。
Beads:你 AI 的记忆
这里就轮到 Beads 登场了,由 Steve Yegge(Google 和 Amazon 著名咆哮文章的作者)创建。
Beads 是一个生活在你代码库内的问题跟踪器。但它不是给你用的,是给你的 AI 代理用的。它是 AI 的持久化内存。
它解决的问题
当我用 Claude Code 处理复杂任务时,会发生这样的情况:
- 阅读 Linear 中的问题 QIN-500
- 研究当前架构
- 创建一个 5 步的心理计划
- 开始实施…
- 💥 压缩 💥
- “你好,我是 Claude。有什么可以帮你的吗?”
所有的上下文、计划、进度……蒸发了。就像电影《记忆碎片》,但没那么电影化,更让人沮丧。
解决方案
使用 Beads,在压缩之前,状态会持久化到代码库的 .beads/ 中:
| |
压缩后,我做的第一件事是:
| |
然后砰:我确切地知道自己在哪里。
📋 Ready work (2 issues with no blockers):
1. [P2] qinqin-a3f2: 创建 ThemeContext
2. [P2] qinqin-b4c5: 在设置中添加切换按钮
工作原理
Beads 把所有内容保存在你的代码库中:
your-project/
└── .beads/
├── beads.db # SQLite 数据库
├── issues.jsonl # 可版本控制格式的问题
└── config.yaml # 配置
因为它在 git 中,所以会和你的代码一起版本控制。你可以查看历史、分支、合并……它是代码,不是外部服务。
共存:Linear + Beads
诀窍在于:它们不竞争,而是互补。
| 方面 | Linear | Beads |
|---|---|---|
| 用户 | 你(人类) | 你的 AI |
| 级别 | 产品 | 实现 |
| 粒度 | 功能、史诗 | 技术步骤 |
| 生命周期 | 周/月 | 小时/天 |
| 示例 | “添加暗黑模式” | “创建 ThemeContext” |
实践中的流程
你(在 Linear 中):
QIN-500: 添加暗黑模式
CLAUDE(在 Beads 中,会话期间):
qinqin-a1b2: 研究主题系统 [完成]
qinqin-c3d4: 创建 ThemeContext [进行中]
qinqin-e5f6: 在设置中添加切换按钮 [被 c3d4 阻塞]
qinqin-g7h8: 暗黑模式测试 [被 e5f6 阻塞]
提交(完成时):
feat(web): add dark mode toggle (QIN-500)
Linear 有什么。Beads 有怎么做。
快速安装
Beads
重要:CLI bd 在你的系统上安装一次。但 .beads/ 在每个项目中初始化。就像 git:安装 git 一次,但在每个仓库中执行 git init。
| |
执行 bd init 后,你会在项目中看到一个 .beads/ 目录。决定一下:把它提交到仓库(与团队共享)还是添加到 .gitignore(你 AI 的私有记忆)?
我会提交它。这样如果其他人也在同一个仓库中使用 Claude,他们就有了上下文。
Linear
Linear 是一个网络服务。在 linear.app 创建账户就行。如果你使用 Claude Code,安装 Linear 的 MCP 让它可以直接读取和创建问题。
Beads 的基本命令
| |
值得吗?
看,如果你用 Claude Code 处理小的、独立的任务,你可能不需要 Beads。一个临时的 TodoWrite 就足够了。
但如果你在真实项目中工作,有不可避免会压缩的长会话,有重要的上下文……那么 Beads 就是拥有有用助手和患有阿尔茨海默症助手之间的区别。
最棒的是:因为它存在于代码库中,你不依赖任何外部服务。如果明天 Beads 消失了,你的数据还在 JSON 中。另一个好处是如果你不喜欢 CLI,还有社区 UI:beads-ui 为你提供本地看板。
警告
Beads 是新的。有报告说它与 Opus 4.5 配合不完美。我这里运行良好,但你的体验可能不同。
如一个明智的工程师会说:在投入之前,先在次要项目中试试。
总结:Linear 是给你用的(做什么)。Beads 是给你的 AI 用的(如何做)。结合使用,避免每次压缩都从零重启。
现在如果你不介意的话,我得去关闭一些 beads。