内存问题

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 会随着会话结束而消失。但你可以让它们持久化:

1
CLAUDE_CODE_TASK_LIST_ID=qualitra claude

这会将任务保存在 ~/.claude/tasks/qualitra/ 中。下次用相同的 ID 启动时,你会恢复任务列表。

何时使用 Tasks

情况Tasks
在一个会话中实现功能
遵循定义的工作计划
逐步调试
有明确步骤的重构

Tasks 是用于执行的。你知道需要做什么,只需要跟踪进度。

Beads:项目内存

Beads 是一个插件,添加了一个完整的问题跟踪器,存储在 git 中。把它想象成"Linear 但是本地且免费"。

1
bd list --status open
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 自动同步

工作流程

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 查找可用工作
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
跨越多个会话的工作
开发过程中发现的 bug
有依赖关系的功能
多代理/多人项目
技术债务跟踪
希望在 git 历史中的问题

Beads 用于规划。你不确切知道会做什么,但知道需要解决什么问题。

关键区别

Tasks:“我正在做 X,它有步骤 A、B、C”

Beads:“需要解决 X、Y、Z。现在在处理 X。”

Tasks 是你做饭时的购物清单。Beads 是一周的菜单。

一起使用

理想的工作流程结合了两者:

  1. Beads 用于捕获工作(问题、bug、想法)
  2. Tasks 用于逐步执行该工作
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# 1. 会话开始:有什么待处理的?
bd ready

# 2. 选择一个问题
bd show qua-42
bd update qua-42 --status in_progress

# 3. Claude 为步骤创建 Tasks
# (当我要求实现 qua-42 时自动创建)

# 4. 会话期间发现一个 bug
bd create --title="缓存中的竞争条件" --type=bug --priority=1

# 5. 完成原始工作
bd close qua-42

# 6. bug 留待另一个会话处理
bd sync
git push

心理模型迁移

如果你来自其他系统:

来自…Tasks 相当于…Beads 相当于…
Jira工单的子任务积压工单
Linear-完整的 Linear
GitHub Issues-Issues
Notion清单任务数据库
纸质今天的列表项目笔记本

快速设置

Tasks

已经包含在内。只需记住:

  • Ctrl+T 切换视图
  • CLAUDE_CODE_TASK_LIST_ID=name 用于持久化
  • “clear all tasks” 清理

Beads

1
2
3
4
5
6
7
8
# 安装插件
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 使用。我见过这种情况:

1
2
3
4
# 错误:用 Beads 处理会话微任务
bd create --title="读取文件 X"
bd create --title="修改函数 Y"
bd create --title="运行测试"

这是 Tasks 的工作,不是 Beads。Beads 是为明天重要的事情:

1
2
3
4
# 正确:Beads 用于重要工作
bd create --title="实现 OAuth 认证" --type=feature
bd create --title="worker 内存泄漏" --type=bug
bd create --title="迁移 DB 到 PostgreSQL" --type=epic

三层系统

如果你在严肃的项目中使用 Claude Code,可能已经在使用 Linear、Jira 或 GitHub Projects 等产品愿景工具。这如何配合?

答案是按时间范围受众的三层系统:

层级时间范围受众工具
战略周/月人类Linear、Jira 等
战术天/会话LLMBeads
执行分钟/小时LLMTasks

为什么有效

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 说我正在做什么

总结

方面TasksBeadsLinear
时间范围小时周/月
受众LLMLLM人类
范围会话项目产品
持久化可选Git云端
依赖关系
创建自动手动手动
协作是 (git)是 (团队)
目的执行战术战略

总结:与 AI 协作的三层内存系统:Linear 用于产品愿景(周),Beads 用于战术工作(天),Tasks 用于执行(小时)。Linear 说你想要什么,Beads 说需要做什么,Tasks 说我正在做什么。不要在层级间重复。

更多信息