记忆问题

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 则像本周的菜单。

搭配使用

最佳工作流程是同时使用两者:

  1. Beads 用于记录任务(问题、错误、想法等)
  2. 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 等
战术层持续几天或几次会话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 provider
qua-13: 实现 /auth/callback 端点
qua-14: 配置刷新令牌轮换机制
qua-15: 编写登录流程端到端测试

# Tasks(当前正在完成)
✓ 阅读 Supabase Auth 文档
● 创建用于 oauth_tokens 表的迁移
○ 实现回调处理程序

Linear 提供的是目标描述,Beads 记录的是具体执行项,Tasks 把工作拆解为正在进行的步骤。

总结

特性TasksBeadsLinear
时间范围几小时几天几周或几月
适用人群LLMLLM人类
工作范围单次会话项目内具体工作产品开发大方向
持久性可选Git 支持云端存储
依赖关系不支持支持支持
创建方式自动生成手动手动
协作性无通过 git 协作团队协作
功能核心执行战术规划战略构思

总结一句话:用于人工智能工作的三层记忆模型:战略上的 Linear(几周范围)、战术上的 Beads(几天范围)、执行上的 Tasks(几小时范围)。Linear 提供目标,Beads 记录任务,Tasks 跟踪进度。避免在不同层级间重复劳动。

了解更多内容:


本文原文为西班牙语,借助AI翻译。