AI的失忆症
想象你雇佣了一个才华横溢的程序员。他能解决复杂问题,编写干净代码,理解系统架构。但有个小缺陷:每隔几小时就会被清空记忆。所有工作从头开始。他不记得正在做什么,你们讨论过什么,也不理解代码为什么会是现在这样。
这就是Claude Code等AI代理的工作现状。
当上下文填满时(在真实项目中很快会发生),系统会执行"压缩"。说白了就是:总结对话并丢弃其他内容。问题在于这种总结会丢失细节、决策记录,尤其是任务当前状态。
解决方案?两个互补工具:你用的Linear和AI用的Beads。
Linear:产品视图
Linear是现代化任务管理系统。如果你用过Jira,可以想象它的反面:快速、简洁、不会让人想自戳双目。
我的使用场景
- 产品待办项:功能、缺陷、史诗故事等业务级任务
- 路线规划:优先级排序
- 团队协作:其他成员(如果有)可以查看状态
实际案例
QIN-500: 为应用添加深色模式
QIN-501: 优化图片加载
QIN-502: 集成支付网关
这些都是产品级任务,属于"做什么"。不涉及"怎么做",这是开发者…或者说你的AI代理的工作。
Beads:AI的记忆库
这就是Beads的用武之地,由Steve Yegge开发(就是那位以Google/Amazon吐槽闻名的工程师)。
Beads是内置在代码仓库中的任务跟踪系统。但不是给你用的,是给你的AI代理准备的持久记忆。
解决的问题
当我用Claude Code处理复杂任务时,常出现这种状况:
- 阅读Linear中的QIN-500任务
- 调研当前架构
- 制定5步实施方案
- 开始执行…
- 💥 内存压缩 💥
- “你好,我是Claude。有什么可以帮您?”
所有上下文、计划、进度…全部蒸发。就像电影《记忆碎片》,但没那么戏剧化,却更令人抓狂。
解决方案
使用Beads后,在压缩前会将状态持久化到仓库的.beads/目录:
bd create --title "调研现有主题系统" --priority P2
bd create --title "创建ThemeContext" --priority P2
bd create --title "在设置中添加切换按钮" --priority P2
内存压缩后,首先运行:
bd ready
立刻就能找回上下文:
📋 可继续任务 (2个无阻碍事项):
1. [P2] acme-a3f2: 创建ThemeContext
2. [P2] acme-b4c5: 在设置中添加切换按钮
工作原理
Beads将所有数据存于代码库中:
你的项目/
└── .beads/
├── beads.db # SQLite数据库
├── issues.jsonl # 可版本化的问题记录
└── config.yaml # 配置文件
由于使用git管理,可以和代码一起版本控制。你可以查看历史、创建分支、合并…这是代码本身,不是外部服务。
协同工作:Linear + Beads
关键在于:它们不是竞争关系,而是互补关系。
| 维度 | Linear | Beads |
|---|---|---|
| 使用者 | 人类 | AI |
| 层级 | 产品 | 实现 |
| 粒度 | 功能/史诗 | 技术步骤 |
| 生命周期 | 周/月 | 小时/天 |
| 示例 | “添加深色模式” | “创建ThemeContext” |
实际工作流
人类(在Linear):
QIN-500: 添加深色模式
CLAUDE(在Beads中记录过程):
acme-a1b2: 调研主题系统 [已完成]
acme-c3d4: 创建ThemeContext [进行中]
acme-e5f6: 添加设置切换 [被c3d4阻塞]
acme-g7h8: 深色模式测试 [被e5f6阻塞]
提交代码时:
feat(web): 添加深色模式切换 (QIN-500)
Linear负责做什么,Beads记录怎么做。
快速安装指南
Beads
重要提示:CLI工具bd只需全局安装一次。但每个项目需要单独初始化.beads/。类似git:安装一次git,但每个仓库都要git init。
# 1. 全局安装CLI(仅需一次)
curl -fsSL https://raw.githubusercontent.com/gastownhall/beads/main/scripts/install.sh | bash
# 2. 添加PATH环境变量(如果未自动配置)
# Fish用户:
fish_add_path ~/.local/bin
# Bash/Zsh用户:
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
# 3. 配置Claude Code集成(仅需一次)
bd setup claude
# 4. 在要使用的每个项目中初始化
cd 你的项目
bd init
执行bd init后,项目目录会出现.beads/。需要决定:是否将其加入git(团队共享)或.gitignore(AI的私有记忆)?
我建议提交进git。这样其他人在同一仓库中使用Claude也能获得上下文。
Linear
Linear是Web服务。在linear.app注册即可。如果使用Claude Code,安装Linear的MCP插件让其能直接读写任务。
Beads核心命令
# 查看无阻碍任务
bd ready
# 新建任务
bd create --title "实现X功能" --priority P2
# 查看详情
bd show acme-a1b2
# 关闭任务
bd close acme-a1b2 --reason "提交于abc123"
# 列出所有
bd list --all
# 查看依赖图
bd graph
是否值得?
如果你只用Claude Code处理小型独立任务,可能不需要Beads。一个临时TODO列表就够了。
但如果用于真实项目,涉及长时间会话且不可避免地触发内存压缩,上下文又很重要…那么Beads会区分出这是个有用助手还是健忘症患者。
最棒的是:由于数据存在代码库,不依赖任何外部服务。如果明天Beads消失,你的数据还在JSON文件里。另一个优点是社区提供了GUI工具,如果不喜欢CLI:beads-ui提供本地看板。
注意事项
Beads是新工具。有报告称与Opus 4.5存在兼容性问题。虽然我使用正常,但体验可能因人而异。
正如理性工程师会说的:先在次要项目测试,别急着用于关键任务。
一句话总结:Linear给你使用(制定计划),Beads给你的AI使用(记录进度)。它们共同避免每次内存压缩都从零开始。
现在请容我告退,有几个bead任务等着关闭。
本文原文为西班牙语,借助AI翻译。