内存问题
Claude Code 有一个问题:它会忘记一切。关闭会话,打开新会话,就像和一个不认识你的人说话。你可以通过 CLAUDE.md 加载上下文,是的,但是那些进行到一半的任务怎么办?你发现但没有修复的 bug 怎么办?你为明天制定的计划怎么办?
有三个互补的解决方案:Linear(或你的产品工具)、Beads(基于 git 的插件)和 Tasks(集成在 Claude Code 中)。每一个都用于不同的时间范围。
Tasks:工作内存
Tasks 是 Claude Code 的内部系统,用于跟踪它现在正在做什么。当你向它请求复杂任务时,Claude 会自动创建一个任务列表。
按 Ctrl+T 查看:
┌─────────────────────────────────────────────────┐
│ Tasks │
├─────────────────────────────────────────────────┤
│ ✓ 读取项目结构 │
│ ● 实现认证端点 │
│ ○ 编写测试 │
│ ○ 更新文档 │
└─────────────────────────────────────────────────┘
特性
- 自动化:当工作有多个步骤时,Claude 会自动创建
- 压缩后持久:当上下文被压缩时仍然存在
- 通过
Ctrl+T可见:快速切换视图 - 限制为 10 个:只显示前 10 个(请求"show me all tasks"查看更多)
会话间共享
默认情况下,Tasks 会随着会话结束而消失。但你可以让它们持久化:
| |
这会将任务保存在 ~/.claude/tasks/qualitra/ 中。下次用相同的 ID 启动时,你会恢复任务列表。
何时使用 Tasks
| 情况 | Tasks |
|---|---|
| 在一个会话中实现功能 | ✓ |
| 遵循定义的工作计划 | ✓ |
| 逐步调试 | ✓ |
| 有明确步骤的重构 | ✓ |
Tasks 是用于执行的。你知道需要做什么,只需要跟踪进度。
Beads:项目内存
Beads 是一个插件,添加了一个完整的问题跟踪器,存储在 git 中。把它想象成"Linear 但是本地且免费"。
| |
ID TYPE PRI STATUS TITLE
qua-1 epic P2 open Raven 评分系统
qua-2 task P1 in_progress 实现评分模块
qua-3 bug P0 blocked acquireStartLock 栈溢出
特性
- 基于 Git:问题存储在
.beads/中,与你的代码一起提交 - 依赖关系:一个问题可以阻塞另一个
- 优先级和类型:史诗、任务、错误、功能、杂务
- 多会话:上下文在会话间(和人员间)持续存在
- 钩子:通过
bd sync自动同步
工作流程
| |
何时使用 Beads
| 情况 | Beads |
|---|---|
| 跨越多个会话的工作 | ✓ |
| 开发过程中发现的 bug | ✓ |
| 有依赖关系的功能 | ✓ |
| 多代理/多人项目 | ✓ |
| 技术债务跟踪 | ✓ |
| 希望在 git 历史中的问题 | ✓ |
Beads 用于规划。你不确切知道会做什么,但知道需要解决什么问题。
关键区别
Tasks:“我正在做 X,它有步骤 A、B、C”
Beads:“需要解决 X、Y、Z。现在在处理 X。”
Tasks 是你做饭时的购物清单。Beads 是一周的菜单。
一起使用
理想的工作流程结合了两者:
- Beads 用于捕获工作(问题、bug、想法)
- Tasks 用于逐步执行该工作
| |
心理模型迁移
如果你来自其他系统:
| 来自… | Tasks 相当于… | Beads 相当于… |
|---|---|---|
| Jira | 工单的子任务 | 积压工单 |
| Linear | - | 完整的 Linear |
| GitHub Issues | - | Issues |
| Notion | 清单 | 任务数据库 |
| 纸质 | 今天的列表 | 项目笔记本 |
快速设置
Tasks
已经包含在内。只需记住:
Ctrl+T切换视图CLAUDE_CODE_TASK_LIST_ID=name用于持久化- “clear all tasks” 清理
Beads
| |
有用的命令
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 使用。我见过这种情况:
| |
这是 Tasks 的工作,不是 Beads。Beads 是为明天重要的事情:
| |
三层系统
如果你在严肃的项目中使用 Claude Code,可能已经在使用 Linear、Jira 或 GitHub Projects 等产品愿景工具。这如何配合?
答案是按时间范围和受众的三层系统:
| 层级 | 时间范围 | 受众 | 工具 |
|---|---|---|---|
| 战略 | 周/月 | 人类 | 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 提供者
qua-13: 端点 /auth/callback
qua-14: 刷新令牌轮换
qua-15: 登录流程的 e2e 测试
# Tasks (我现在在做什么)
✓ 阅读 Supabase Auth 文档
● 为 oauth_tokens 表创建迁移
○ 实现回调处理器
Linear 说你想要什么。Beads 说需要做什么。Tasks 说我正在做什么。
总结
| 方面 | Tasks | Beads | Linear |
|---|---|---|---|
| 时间范围 | 小时 | 天 | 周/月 |
| 受众 | LLM | LLM | 人类 |
| 范围 | 会话 | 项目 | 产品 |
| 持久化 | 可选 | Git | 云端 |
| 依赖关系 | 否 | 是 | 是 |
| 创建 | 自动 | 手动 | 手动 |
| 协作 | 否 | 是 (git) | 是 (团队) |
| 目的 | 执行 | 战术 | 战略 |
总结:与 AI 协作的三层内存系统:Linear 用于产品愿景(周),Beads 用于战术工作(天),Tasks 用于执行(小时)。Linear 说你想要什么,Beads 说需要做什么,Tasks 说我正在做什么。不要在层级间重复。
更多信息: