记忆问题
Claude Code 存在一个问题:它全忘了。如果关闭会话再打开,感觉就像和一个完全陌生的人对话一样。虽然你可以加载 CLAUDE.md 来补充上下文,但未完成的任务怎么办?发现的但未修复的 bug 怎么办?明天的计划呢?
有三种互补解决方案:Linear(或你的产品工具)、Beads(基于 git 的插件)以及 Tasks(Claude Code 内置工具)。不同工具适用于不同时间范围。
Tasks:工作记忆
Tasks 是 Claude Code 的内部系统,用于追踪当前正在做的事情。当你提出复杂要求时,Claude 会自动生成任务列表。
按下 Ctrl+T 查看任务列表:
┌─────────────────────────────────────────────────┐
│ Tasks │
├─────────────────────────────────────────────────┤
│ ✓ 阅读项目结构 │
│ ● 实现认证端点 │
│ ○ 编写测试代码 │
│ ○ 更新文档 │
└─────────────────────────────────────────────────┘
特性
- 自动生成:当任务需要多个步骤时,Claude 会自动创建任务列表
- 压缩后仍保持持久性:在内容被压缩后任务仍然存在
- 通过
Ctrl+T查看:操作简单,任务视图可快速切换 - 限制为最多10个显示:若需要更多任务显示,可以请求“show me all tasks”
在会话间共享
默认情况下,任务列表会随会话结束而丢失。但你可以让任务持续保存:
CLAUDE_CODE_TASK_LIST_ID=qualitra claude
此操作会把任务列表保存到 ~/.claude/tasks/qualitra/ 中。下次使用相同 ID 启动时,可以恢复列表。
使用 Tasks 的场景
| 场景 | Tasks |
|---|---|
| 在一个会话中实现一个功能 | ✓ |
| 按定义好的工作计划推进 | ✓ |
| 步骤性的 Debugging | ✓ |
| 清晰步骤的重构工作 | ✓ |
Tasks 用于执行层面。当你明确知道需要完成什么,只需要辅助工具来进行跟踪。
Beads:项目记忆
Beads 是一个插件,添加了完整的基于 git 的问题追踪系统。将它看作是“线性,且本地化和免费”。
bd list --status open
ID TYPE PRI STATUS TITLE
qua-1 epic P2 open Scoring Raven
qua-2 task P1 in_progress 实现评分模块
qua-3 bug P0 blocked acquireStartLock 的栈溢出错误
特性
- 基于 Git:问题被存储在
.beads/,并与代码提交一起管理 - 支持依赖关系:一个问题可以阻塞另一个问题
- 优先级和类型:支持“epics”(史诗任务)、“tasks”(任务)、“bugs”(错误)、“features”(特性)和“chores”(杂项)
- 跨会话功能:上下文在多个会话间(以及不同用户间)保持一致
- 自动化 Hook:通过
bd sync自动同步
工作流程
# 找到可以立刻开始的任务
bd ready
# 查看任务详情
bd show qua-2
# 开始工作
bd update qua-2 --status in_progress
# 创建子任务
bd create --title="编写 PBT 测试代码" --type=task
bd dep add qua-5 qua-2 # qua-5 依赖于 qua-2
# 完成任务
bd close qua-2
# 同步
bd sync
使用 Beads 的场景
| 场景 | Beads |
|---|---|
| 跨越多个会话的工作流程 | ✓ |
| 开发过程中发现的错误 | ✓ |
| 有依赖关系的功能点 | ✓ |
| 需要多人协作的项目 | ✓ |
| 技术债的跟踪管理 | ✓ |
| 希望将问题记录在 git 历史中的情况 | ✓ |
Beads 用于规划层面。可能还不知道具体要做什么,但已经清楚需要解决哪些问题。
关键区别
Tasks:“我正在做 X,包含步骤 A、B、C”
Beads:“需要解决 X、Y、Z,我现在正在处理 X”
Tasks 就像你在厨房做菜时的购物清单。Beads 则像本周的菜单。
搭配使用
最佳工作流程是同时使用两者:
- Beads 用于记录任务(问题、错误、想法等)
- Tasks 用于逐步执行这些任务
# 1. 会话开始时:看看有什么待解决工作
bd ready
# 2. 选择一个问题
bd show qua-42
bd update qua-42 --status in_progress
# 3. Claude 自动生成任务列表
#(我要求实现 qua-42 时会自动完成此操作)
# 4. 会话中发现一个错误
bd create --title="缓存中的竞争条件" --type=bug --priority=1
# 5. 完成原任务
bd close qua-42
# 6. 错误保留到下次会话继续
bd sync
git push
心态迁移
如果你习惯其他系统:
| 起始工具 | Tasks 相当于… | Beads 相当于… |
|---|---|---|
| Jira | 一个任务的子任务 | 待办列表中的任务 |
| Linear | - | Linear 的完整功能 |
| GitHub Issues | - | Issues |
| Notion | 待办清单 | 项目任务数据库 |
| 纸质记录 | 今天的任务清单 | 项目的笔记本 |
快速设置
Tasks
已内置。只需记住:
- 使用
Ctrl+T切换任务视图 - 使用
CLAUDE_CODE_TASK_LIST_ID=名称实现任务持久性 - 使用 “clear all tasks” 清空任务列表
Beads
# 安装插件
claude mcp add beads-marketplace -- npx -y @anthropics/beads-mcp
# 在你的项目中初始化
bd init
# 查看所有命令
bd help
常用命令
Tasks
| 命令 | 作用 |
|---|---|
Ctrl+T | 切换任务视图 |
/todos | 列出现有任务 |
| “show me all tasks” | 查看所有任务(不仅限于前10个) |
| “clear all tasks” | 删除当前任务列表 |
Beads
| 命令 | 作用 |
|---|---|
bd ready | 查看无阻塞问题 |
bd list -s open | 显示所有待解决问题 |
bd show <id> | 查看问题详情 |
bd create | 创建新问题 |
bd update <id> | 修改问题 |
bd close <id> | 解决问题 |
bd sync | 与 git 同步 |
bd blocked | 查看阻塞问题 |
常见误区
不要将 Beads 用作 Tasks。我经常看到这样的错误:
# 错误的用法:用 Beads 记录很具体的会话任务
bd create --title="读取文件 X"
bd create --title="修改函数 Y"
bd create --title="运行测试代码"
这些任务是 Tasks 的功能,而不是 Beads。Beads 应该用于明天仍然重要的事情:
# 正确的用法:用 Beads 记录有意义的工作
bd create --title="实现 OAuth 认证" --type=feature
bd create --title="worker 中的内存泄漏" --type=bug
bd create --title="迁移数据库到 PostgreSQL" --type=epic
三层记忆系统
在使用 Claude Code 处理严肃项目时,你可能已经在使用 Linear、Jira 或 GitHub Projects 这类工具来管理产品战略。那么这些工具与 Claude Code 的内置系统如何协调呢?
答案是按照时间范围和目标用户的三层系统:
| 层级 | 时间范围 | 目标用户 | 工具 |
|---|---|---|---|
| 战略层 | 持续数周或数月 | 人类 | Linear、Jira 等 |
| 战术层 | 持续几天或几次会话 | LLM | Beads |
| 执行层 | 持续数小时或数分钟 | LLM | Tasks |
梦想系统为什么有效
Linear(或你的产品工具)提供了 Beads 无法具备的功能:
- 具有战略视觉的操作界面
- 轮次和冲刺计划
- 与其他软件的集成(例如 Slack 和 GitHub)
- 用于“大计划”思考的交互式 UI
- 与利益相关者的协作
Beads 提供了 Linear 不具备的功能:
- 存储在代码仓库中(LLM可见,无需配置)
- 本地化解决,无延迟
- LLM原生理解的依赖关系
- git历史中记录决策
- 离线状态也能运行
Tasks 提供了其他工具无可替代的功能:
- 自动生成任务列表
- 实时任务可视化
- 低操作门槛
流程自然性的核心
Linear(战略动态)
↓ 手动细化分解任务
Beads(工作规划,几天/几周)
↓ Claude 自动细化任务
Tasks(单次会话, 几小时内实现)
避免重复劳动
不要简单地将 Linear 的任务拷贝到 Beads。Beads 应只记录具体需要完成的任务,而不是产品描述。
# Linear(战略视角)
"实现 Google 和 GitHub 的 OAuth 认证"
# Beads(可执行步骤)
qua-12: 在 Supabase 中配置 OAuth provider
qua-13: 实现 /auth/callback 端点
qua-14: 配置刷新令牌轮换机制
qua-15: 编写登录流程端到端测试
# Tasks(当前正在完成)
✓ 阅读 Supabase Auth 文档
● 创建用于 oauth_tokens 表的迁移
○ 实现回调处理程序
Linear 提供的是目标描述,Beads 记录的是具体执行项,Tasks 把工作拆解为正在进行的步骤。
总结
| 特性 | Tasks | Beads | Linear |
|---|---|---|---|
| 时间范围 | 几小时 | 几天 | 几周或几月 |
| 适用人群 | LLM | LLM | 人类 |
| 工作范围 | 单次会话 | 项目内具体工作 | 产品开发大方向 |
| 持久性 | 可选 | Git 支持 | 云端存储 |
| 依赖关系 | 不支持 | 支持 | 支持 |
| 创建方式 | 自动生成 | 手动 | 手动 |
| 协作性 | 无 | 通过 git 协作 | 团队协作 |
| 功能核心 | 执行 | 战术规划 | 战略构思 |
总结一句话:用于人工智能工作的三层记忆模型:战略上的 Linear(几周范围)、战术上的 Beads(几天范围)、执行上的 Tasks(几小时范围)。Linear 提供目标,Beads 记录任务,Tasks 跟踪进度。避免在不同层级间重复劳动。
了解更多内容:
本文原文为西班牙语,借助AI翻译。