MemoryLake
返回全部文章
Tutorial2026 年 10 月 27 日·10 分钟阅读

Claude Code Routine 会在运行之间保留任何内容吗?云端和桌面端计划任务的起始状态 (2026)

你设置了一个 Claude Code routine,每晚审查拉取请求(PR)。周一它标记了一个不稳定的测试,你告诉它该测试是已知的并已被跟踪。周二它又标记了同一个测试。询问 routine 是否会记住上次运行的任何内容是一个很合理的问题,答案取决于你设置了哪种计划任务以及它在哪里运行。

Claude Code 有三种调度工作的方式:云端计划任务(以前称为 routine 的功能)、你机器上的桌面端计划任务,以及会话内部的 /loop。每种方式的起始状态都不同。本指南涵盖了每种运行方式的起始内容、云端运行可以延续之前对话的一种设置,以及如何让每次运行都能获取上次运行学到的知识。如果你是在 Claude Cowork 而不是 Claude Code 中调度任务,我们的 Cowork 计划任务与记忆指南涵盖了该产品的内容。

Routine 现已更名为计划任务 (Scheduled Tasks)

Anthropic 重命名了该功能。其文档开头写道:“云端计划任务(原名为 routine)是一个保存的 Claude Code 配置:包含一个提示词、一个或多个代码库以及一组连接器,打包一次并自动运行。”

旧名称并未完全消失。文档中有一个章节说明了它仍然出现的地方:在某些账户中,侧边栏和按钮仍显示 Routine 和 New routine,网址是 claude.ai/code/routines,CLI 保留了 /routines 作为 /schedule 的别名,API 的 /fire 端点也保留了 routine 命名。它们指的都是同一个功能。

云端计划任务可以有三种触发方式:定时调度、对其自身端点的 API 调用,以及 GitHub 事件(如拉取请求)。一个任务可以结合使用这些方式。

在 Claude Code 中调度工作的三种方式

文档在一个表格中对比了这三个选项。对上下文(context)影响最大的几行如下:

  • 云端 (Cloud):默认在 Anthropic 管理的基础设施上运行,不需要你的机器开机,对本地文件的访问权限为“无(全新克隆)”。
  • 桌面端 (Desktop):在你的机器上运行,需要开机,但不需要打开会话,可以访问本地文件。
  • /loop:在打开的会话中于你的机器上运行,并继承该会话的 MCP 服务器和权限。

文档给出的建议是:“对于需要在没有你的机器的情况下可靠运行的工作,使用云端任务。当你需要访问本地文件和工具时,使用桌面端任务。在会话期间进行快速轮询时,使用 /loop。”

云端计划任务的起始状态

每次运行都是新会话

云端计划任务的每次运行都是一个独立的会话。文档指出,当你从任务的历史列表中打开一次运行时,它“作为一个完整的会话打开,每次运行都是一个新的会话”。对于 GitHub 触发器,这一点非常明确:“Claude Code 不会在不同事件之间重用会话,因此两次 PR 更新会产生两个独立的会话。”

所以,周二的运行不会从周一的对话开始。它从保存的提示词以及代码库和环境提供的内容开始。

代码库的全新克隆

“你添加的每个代码库在每次运行时都会被克隆。除非你的提示词另有规定,否则 Claude 会从代码库的默认分支开始。”除非提示词另有说明,否则工作会被推送到前缀为 claude/ 的分支。

该克隆是运行继承的主要内容。Claude Code 的云端环境页面列出了随之而来的内容:你代码库中的 CLAUDE.md、.claude/rules/ 和 .claude/skills/ 是可用的,因为它们是“克隆的一部分”。该页面还阐述了原则:“你提交到仓库的任何内容都是可用的。你仅在自己机器上安装或配置的任何内容在会话中都不可用。”

不包含你机器上的任何内容

你的个人设置留在本地。同一张表格列出你的用户级 ~/.claude/CLAUDE.md 是不可用的,因为它“存在于你的机器上,而不是仓库中”。自动记忆(Auto memory)也是本地的:Claude Code 的记忆文档指出“自动记忆是机器本地的”且“文件不会在机器或云端环境之间共享”。我们的 Claude Code 云端会话与本地设置指南列出了所有留在本地的内容。

这就是为什么关于不稳定测试的备注没有生效的原因。你在周一的会话中告诉了周一的运行。周二的会话从相同的提示词和全新的克隆开始,而该备注不在其中。

你可以亲自继续已完成的运行

运行在结束时并未封死。“点击任何运行记录将其作为完整会话打开。从那里你可以看到 Claude 做了什么,审查更改,创建拉取请求,或继续对话。”继续运行会延续该会话;它不会改变下一次计划运行的起始状态。

例外情况:项目中的计划任务

Claude Code 的新功能“项目 (Projects)”改变了一件事。文档指出:“在项目中,运行可以延续一个线程(thread)而不是启动新会话。”从项目创建的计划任务会出现在该项目的“计划任务”选项卡中,并作为其中的线程运行。

项目也有自己的记忆。项目文档将其描述为“Claude 记录的关于项目的笔记,如需求、决策和陷阱,以文件形式存储”,并且每个云端线程在启动时都会读取其 MEMORY.md 索引。当你纠正一个线程时,文档建议告诉 Claude 记住这个纠正:“它会进入项目记忆,随后的云端线程将以此为起点。”

因此,在项目内部,计划运行既可以延续一个线程,也可以启动一个读取项目记忆的线程。无论哪种方式,它的起点都不仅仅是一个全新的克隆。项目功能目前在 Pro 和 Max 计划中处于公开测试阶段,并正在逐步推出。我们的 Claude Code 项目与项目记忆指南涵盖了该记忆的工作原理。

桌面端计划任务的起始状态

桌面端任务在你的计算机上运行。文档指出:“计划任务会按照你选择的时间和频率自动启动新会话。”与云端任务一样,每次运行都是一个新会话。

不同之处在于机器。桌面端任务具有“直接访问你的文件和工具的权限”,因此它随你的本地设置一起运行,且 Claude Code 的记忆文档指出 CLAUDE.md 文件和自动记忆会被加载到每个会话中。在你笔记本电脑上运行的桌面端任务可以从你交互式会话所使用的相同自动记忆开始。

工作目录也很重要。文档指出:“默认情况下,本地计划任务针对你工作目录的当前状态运行,包括未提交的更改。”你可以为每次运行提供独立的隔离工作树(worktree),我们的 Claude Code 工作树是否共享记忆指南解释了工作树会话会加载什么内容。

桌面端任务仅在应用程序打开且计算机处于唤醒状态时运行。历史视图会显示跳过的运行及其原因。

/loop 保留的内容

/loop 是唯一在现有对话中运行的选项。文档将其描述为“会话范围的计划任务”,允许“Claude 在 Claude Code 会话内按间隔自动重新运行提示词”。因为每次重复都发生在同一个会话中,它拥有该会话的上下文,包括之前重复运行发现的内容。

权衡之处在于生命周期。“任务是会话范围的。”当你使用 --resume 或 --continue 恢复时,Claude Code 会恢复尚未过期的任务,文档设定了七天的有效期。对于超出单个会话寿命的调度,建议使用云端或桌面端任务。

人们首先尝试的做法

告诉运行去记住。 在项目之外的云端任务中,下一次运行是带有全新克隆的新会话,因此指令留在你发出指令的那个会话中。

为云端任务编辑 ~/.claude/CLAUDE.md。 用户级文件不是克隆的一部分。

在云端依赖自动记忆。 它是机器本地的。

使用 /loop 执行每晚作业。 它需要你机器上有一个打开的会话,并且会过期。

假设成功的运行完成了工作。 文档警告说,结果标签“说明了会话如何结束,而不是 Claude 是否完成了提示词描述的工作”,因此请阅读转录内容。

解决方法:给每次运行提供可读的内容和可写的位置

第 1 步:将长期知识放入代码库

任何每次运行都应该知道的内容都要放在每次运行都能看到的地方。对于云端任务,这是一个已提交的文件:根目录的 CLAUDE.md、.claude/rules/ 中的规则,或提示词指向的笔记文件。一行说明该不稳定测试是已知的、已被跟踪且不应被标记的内容属于已提交的文件,而不是对周一运行的回复。

第 2 步:让提示词读取并更新运行日志

如果每次运行都应该建立在上次运行的基础上,请在保存的提示词中说明。将其指向代码库中的一个文件,例如 docs/nightly-review-log.md,并告诉它先读取该文件,并在结束前追加发现的内容。因为运行会推送到 claude/ 分支,请决定如何合并这些更新,以便下一次运行的克隆包含它们。在项目中,改为要求 Claude 记住发现的内容,随后的线程将以此为起点。

第 3 步:审查运行并修正源头

定期打开运行记录并阅读 Claude 做了什么。当运行出错时,在下一次运行会读取的地方进行修复:已提交的文件、提示词或项目记忆。仅在该运行的对话中进行纠正会让下一次运行原地踏步。

在 MemoryLake 中设置

计划任务从其提示词和代码库开始。你的惯例、背后的决策以及你已经排除的内容通常存在于其他地方:在你的脑海中、聊天历史中,或某台机器的自动记忆中。

MemoryLake 是一个记忆层,用于将这些上下文保存在一个由你维护的列表中,供 Claude Code 和你连接的其他助手(如 ChatGPT 和 Codex)使用。

你亲自编写条目,使用你自己的语言。不会从你的计划任务、运行会话、自动记忆、项目记忆或任何供应商的存储中读取、写入或删除任何内容。对于工作代码库,请遵循你组织关于在代码库之外保留内容的政策。

第 1 步:创建 API 密钥

登录并从控制面板生成密钥。该密钥属于你的 MemoryLake 工作区,与你的 Claude 账户分开。

MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供代理使用
MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供代理使用

第 2 步:上传你的第一批记忆

从你原本会向每次运行重复的内容开始:已知问题、审查标准以及关于忽略什么的决策。每个条目一个要点,注明日期,并贴上适用的代码库标签。

MemoryLake 工作区已上传首批文档,列出了每个文件变为可搜索记忆的过程
MemoryLake 工作区已上传首批文档,列出了每个文件变为可搜索记忆的过程

第 3 步:连接你的 AI 和代理

连接 Claude Code 和你使用的其他助手。无论哪个会话或工具在执行工作,你依赖的上下文都在同一个地方。

MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和代理框架
MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和代理框架

这在实践中改变了什么

第一个区别是运行的行为不再令人意外。你知道云端运行从全新的克隆和新会话开始,并且你知道例外情况在哪里。

第二个区别是纠正会生效。它们进入文件、提示词或项目记忆,而不是下一次运行看不到的对话中。

第三个区别是你可以选择正确类型的任务。如果你也在 ChatGPT 中调度工作,我们的 ChatGPT 计划任务指南涵盖了那里的相同问题。

Claude Code 计划任务的最佳实践

将每次云端运行视为新会话。 在提示词和代码库中提供它所需的内容。

提交长期知识。 CLAUDE.md、规则或提示词命名的笔记文件。

如果运行需要相互衔接,请保留运行日志。 并确保更新到达下一次运行克隆的分支。

当你需要连续性时使用项目。 那里的运行可以延续线程或从项目记忆开始。

对于需要本地设置的工作,使用桌面端任务。 它们随你的文件和自动记忆一起运行。

将 /loop 用于短时间轮询。 它存在于单个会话中。

阅读转录内容,而不仅仅是结果。 运行成功仅意味着会话正常结束。

如果 Claude Code 在你切换电脑时也会忘记你的设置,我们的在另一台机器上使用 Claude Code 指南涵盖了这种情况。

结论

Claude Code routine 现已更名为云端计划任务。每次云端运行都是一个新会话,从代码库的全新克隆和保存的提示词开始,不包含你的本地设置或自动记忆。在项目内部,运行可以延续线程,且线程从项目记忆开始。桌面端任务作为你机器上的新会话运行,可以使用本地文件;而 /loop 在单个会话内重复,直到结束或过期。

要让多次运行相互衔接,请将它们需要的内容放入代码库,让提示词读取并更新日志,并在下一次运行会读取的地方修复错误。

常见问题

Claude Code routine 会记住之前的运行吗?

云端计划任务(原名 routine)每次运行都会从代码库的全新克隆启动一个新会话。它不会从上一次运行的对话开始。但在项目内部,运行可以改为延续一个线程。

Claude Code 中 routine 和计划任务有什么区别?

它们是同一个功能。Anthropic 将 routine 重命名为云端计划任务,旧名称仍出现在某些地方,例如 claude.ai/code/routines 和 /routines 别名。

云端计划任务会读取我的 CLAUDE.md 吗?

它会读取提交到代码库中的 CLAUDE.md,因为那是克隆的一部分。你用户级的 ~/.claude/CLAUDE.md 存在于你的机器上,是不可用的。

自动记忆在云端计划任务中有效吗?

Anthropic 的文档指出,自动记忆是机器本地的,文件不会在机器或云端环境之间共享。

计划任务如何建立在上次运行的基础上?

让提示词在开始时读取一个已提交的笔记文件并在结束时更新它,或者在项目中运行任务,那里的运行可以延续线程,且线程从项目记忆开始。

什么时候应该改用 /loop?

用于在你打开的会话中进行短时间轮询,例如监控部署。它在该会话中运行,因此保留了会话的上下文,并且它会过期。

相关阅读