OpenClaw 2026.10.5 中发生了哪些变化
这一变化源于拉取请求 #167404,该请求于 10 月 8 日合并,并在 2026.10.5 版本中发布。其问题陈述非常直接:“智能体将非步骤的内容保存为已学技能:关于用户的事实(如生日)以及关于单个代码库的知识(如其测试命令、环境变量、命名规则)。”
修复方法在于决定保存哪些内容的提示词。根据该拉取请求,skill_workshop 工具、后台审查和 /learn 所使用的共享编写标准现在开篇即声明“技能是步骤,而不是记忆”。“请勿捕获”列表增加了一项:“关于单个代码库的知识,这属于代码库的文档或 AGENTS.md。” 并且系统提示词中常驻的 Skill Workshop 部分“在两个子句中分别承载了这两个要点,因此前台智能体也会遵循它们。”
该拉取请求还描述了当您请求不再符合条件的内容时会看到什么:“当被要求 /learn 代码库特定信息或普通事实时,智能体不会创建技能,而是会说明该内容属于哪里。” 个人步骤不受影响。该规则的范围限定在“单个代码库的知识,而不是所有的编码工作”,因此像拉取请求中自带的示例“我如何发布博客”这样的方法仍然会被学习。
OpenClaw 对此进行了对比测试,每侧进行三次试验。旧的提示词每次都会保存特定于代码库的技能;而新的提示词则一个都没有保存,并且“每个回复都指出它属于代码库的文档/AGENTS.md”。在测试前后,个人步骤在所有三次试验中均被成功保存。
同一个版本还包含了第二个修复,来自拉取请求 #167639。在此之前,“名称超过 63 个字符的已学技能会从 Skill Workshop 的列表中消失,并且 patch/archive/restore 会拒绝它们,尽管它们仍然加载在模型上下文中。” 修复之后,“早期版本保存的每个技能都重新列出并可进行管理”。这对于下文的清理工作至关重要:您需要审查的某些技能可能直到现在才出现在列表中。
Skill Workshop 现在保存什么,以及将其他内容发送到何处
当前的 Skill Workshop 页面划定了三条界线。步骤保留:“用户重复任务的方法,以便智能体每次无需重新摸索。” 事实去往别处:“关于用户或世界的事实属于记忆。” 代码库知识去往代码库:“关于单个代码库的知识,例如其规范、构建命令或架构,属于该代码库的文档或 AGENTS.md,在那里工作的每个智能体都会读取它,因此智能体不会将其保存为已学技能。”
描述后台审查的自学习页面对它跳过的内容进行了更具体的说明。审查“不捕获特定于环境的或暂时的失败、关于工具的否定声明、未解决的失败或猜测、关于单个代码库的知识、一次性任务、个人事实、机密,或没有具体命令、路径或 ID 的通用建议。” 它还将单次请求的细节保留在对话中:“仅对单次请求有效的细节,例如单个产品、订单、菜单、日期、地点或预订,保留在对话中。”
拉取请求解释了为什么代码库知识是主要目标:“Skill Workshop 是为个人 claw 设计的:它的技能是智能体全局的,而代码库本身已经有其自身规范的所有者。”
为什么您已经保存的技能没有改变
以上所有内容都是关于从现在开始会发生什么。拉取请求明确指出,它“仅更改了提示词和文档文本”,“不写入任何状态”,并且结果是“无配置或存储数据更改”。发布说明或 Skill Workshop 页面中没有任何内容描述会根据新规则对现有的已学技能进行审查。
因此,上个月保存的包含您代码库测试命令的技能,今天仍然是一个已学技能。已学技能的三个属性意味着它仍然会产生影响。
已学技能对它们的智能体始终可见。 Skill Workshop 页面指出,它们“属于一个智能体,并且对其始终可见:它们绕过了 agents.defaults.skills 和 agents.entries.<id>.skills 允许列表。要隐藏某个技能,请将其归档。” 您无法使用适用于其他技能的允许列表来限制已学技能在某个项目中的范围。
它们会跟随智能体进入每个项目。 拉取请求自身对该问题的描述是,保存为已学技能的代码库知识“会加载到智能体的每个会话中,包括无关的项目”。技能页面将 Workshop 技能列在加载优先级的第五级,低于工作区、项目智能体、个人智能体和托管技能,并且进入系统提示词的技能目录包括每个符合条件的技能的名称、描述和位置。
未使用的技能清理不一定会捕获它们。 在开启学习的情况下,OpenClaw 会归档“30 天内无活动”的已学技能。活动包括“对其 SKILL.md 的记录读取、前台 skill_workshop 的 view 以及它的最后一次更改”。由于描述与您的工作匹配,智能体不断打开的技能将被视为活跃,无论其内容是否仍属于那里。清理也有范围限制:“清理仅针对默认运行时间为嵌入式 OpenClaw harness 的智能体运行”,并且“对于 Codex 智能体,清理保持关闭状态,而不是归档正在使用的技能。”
拉取请求将这一变化称为“双向门”,因为它不写入任何状态,因此回滚会恢复以前的措辞。其后果是,整理现有技能是您的工作。
现在每种类型的条目属于哪里
OpenClaw 的文档为新规则从已学技能中移出的每种内容提供了特定的归宿。
关于您的事实和偏好将进入记忆。 OpenClaw 的记忆概述指出,它“通过在智能体的工作区中编写纯 Markdown 文件来记住事情”。这里有两个重要的文件。USER.md 保存“以指令形式编写的稳定偏好、沟通风格、关系和活动项目上下文”。MEMORY.md 保存“持久的非个人资料事实和决策”。两者都在会话开始时加载。日常观察记录在 memory/ 下带有日期的每日笔记中,这些笔记是可搜索的,但“不会在每轮对话中注入到引导提示词中”。记忆页面自身提供的录入技巧是:“如果您想让智能体记住某些内容,只需直接告诉它”。智能体就会“将笔记写入相应的文件中”。
代码库知识将进入代码库。 这意味着代码库自身的文档或其 AGENTS.md,即在该代码库中工作的每个智能体都会读取的文件。这与您 OpenClaw 智能体工作区中的 AGENTS.md 是不同的文件。OpenClaw 的常见问题解答将工作区文件列为 AGENTS.md、SOUL.md、IDENTITY.md、USER.md、MEMORY.md 以及每日笔记,并建议将“运行规则放在 AGENTS.md 中,将持久事实放在记忆中”。如果将项目的构建命令放在工作区文件中,它就会随您的智能体加载到任何工作的地方,这正是引发此问题的根源。如果代码库已经有一个指令文件,我们关于将 CLAUDE.md 内容迁移到 AGENTS.md 的指南介绍了这两种常见格式之间的关系。
步骤保留为已学技能。 您重复的一类任务的方法正是 Workshop 的用途所在。混合了通用方法与单个代码库细节的技能可以进行拆分。拉取请求将其描述为“预期的拆分:保留通用方法,代码库事实转到代码库中。”
容易让人误入歧途的假设
假设更新清理了旧技能。 该版本仅更改了从现在开始保存的内容。拉取请求指出,现有技能不受影响。
假设未使用的技能会自动归档。 只有 30 天内没有活动的技能才会被归档,智能体读取的技能算作活跃,并且对于 Codex 智能体,清理功能是关闭的。
假设允许列表可以阻止已学技能进入项目。 已学技能会绕过智能体和默认技能允许列表。归档是文档中记载的隐藏技能的方法。
假设智能体无法再保存事实。 改变在于提示词。模型仍然会做出决定,并且 Workshop 的写入验证检查的是名称、frontmatter、路径、大小和安全发现,而不是内容是否为事实。
假设所有内容都已列出。 在 2026.10.5 之前,名称较长的技能虽然仍加载在模型上下文中,但并未显示在列表中。
解决方案:整理您的已学技能,将事实和代码库笔记移出,然后归档原始技能
步骤 1:列出每个已学技能并将其分类到三个堆中
首先更新到 2026.10.5 或更高版本,以便显示长名称的技能。然后在控制 UI 中打开 Plugins → Skill workshop,或运行 openclaw skills workshop list。控制 UI 会按使用频率从高到低列出已学技能,并标记闲置两周的技能。openclaw skills workshop show <name> 会打印技能的内容。
对于每个技能,请问自己:这是我重复任务的方法吗?然后进行分类:
- 步骤(Procedure): 一类任务的步骤,包含使其工作的命令、路径或 ID。保留它。
- 关于您或世界的事实(Fact): 偏好、日期、关系、决策。将其移至记忆。
- 关于单个代码库的知识(Knowledge): 其规范、构建或测试命令、环境变量、架构。将其移至该代码库。
某些技能可能是混合的。记录下哪些部分属于哪里。
步骤 2:将事实移至记忆,将代码库知识移至代码库
对于事实,最简单的途径是 OpenClaw 文档中记载的方法:让智能体记住它们。个人资料类的偏好属于 USER.md;持久的非个人资料事实和决策属于 MEMORY.md。之后检查文件以查看写入了什么内容。
对于代码库知识,将其添加到该代码库的 AGENTS.md 或文档中,并像进行其他更改一样提交它,以便代码库的所有者可以进行审查。在那里工作的其他智能体和人员也会读取它。
对于混合技能,编辑该技能以仅保留通用方法。skill_workshop 工具支持 patch 功能,可“替换一个精确且唯一的跨度”,并且每次更改都会先保存以前的版本,因此可以恢复错误的编辑。
步骤 3:归档您已移动的内容,然后在全新会话中确认
一旦内容存在于其他地方,请使用 openclaw skills workshop archive <name> --reason "Superseded" 或 Archive 按钮归档原始技能。归档是带版本的:“随时可以恢复”。原因会显示在变更记录中,该变更记录保留每个智能体最新的 500 条记录。
然后启动一个新会话。“更改后的技能会在新会话中加载。运行中的会话会保持其启动时的技能快照。” 要求智能体执行受影响项目中的任务,并检查它是否读取了代码库的 AGENTS.md 而不是旧技能。从第二个无关的项目重复此操作,并确认代码库细节不再随之而来。
在 MemoryLake 中进行设置
OpenClaw 现在区分了三种知识:如何执行任务、关于您的真实情况以及单个代码库如何工作。中间的一种也是您可能希望在 OpenClaw 之外、在您使用的其他助手里拥有的知识。MemoryLake 是一个记忆层,用于将这些事实和决策保存在您维护的一个列表中,通过其集成提供给 OpenClaw,并提供给您连接的其他助手,例如 ChatGPT 和 Claude Code。
You write the entries yourself, in your own words. Nothing is read out of, written to, or deleted from your learned skills, your USER.md or MEMORY.md, any repository's AGENTS.md, or any vendor's store. Repository conventions still belong in the repository, where everyone working on it can review them. Leave out secrets and anything your organization keeps internal.
步骤 1:创建 API 密钥
登录并从仪表板生成一个密钥。该密钥属于您的 MemoryLake 工作区,与您的 OpenClaw 配置是分开的。

步骤 2:上传您的第一批记忆
从您在上述分类中从已学技能中提取的事实开始:偏好、现行决策、关于人员和项目的细节。每个条目一个事实,并附带日期,这样过时的条目就很容易找到并删除。

步骤 3:连接您的 AI 和智能体
连接 OpenClaw 和您使用的其他助手。您的已学技能保留步骤,代码库保留其规范,而您编写的事实无论您在哪里工作都可用。

这在实践中带来了哪些改变
第一个区别是每个项目都有了自己的规则。代码库中 AGENTS.md 里的代码库知识会在该代码库所在的位置加载,而不是随您的智能体一起进入其他所有地方。
第二个区别是事实更容易纠正。保存在技能中的偏好在发生变化时很难找到,因为您必须知道它在哪个技能中。而在 USER.md、MEMORY.md 或您维护的列表中,修改只需一次编辑。
第三个区别是一个更小、更容易信任的已学技能列表。OpenClaw 的后台审查旨在保持“您的已学技能是一组少量的可重复步骤”。删除非步骤的内容使现有列表符合这一目标。关于在其他工具中技能和规则之间的界线在哪里,我们对 Cursor 技能与规则的对比对此进行了介绍。
清理 OpenClaw 已学技能的最佳实践
在分类前进行更新。 名称较长的技能仅从 2026.10.5 版本开始出现在列表中。
将代码库知识放在代码库中。 使用其 AGENTS.md 或文档,而不是您工作区的 AGENTS.md。
拆分混合技能而不是删除它们。 保留通用方法。
带原因归档。 这样变更记录就会解释移动了什么以及移动到了哪里。
从无关的项目中进行检查。 这正是错放的代码库技能会显现的地方。
关注自学习下一步保存的内容。 当 Learned 行出现时对其进行审查。其他供应商也发布了类似的记忆排除列表;我们对 Grok Build 记忆排除项的观察涵盖了其中之一。
结论
OpenClaw 2026.10.5 更改了 Skill Workshop 保存的内容:步骤保留,事实转到记忆,关于单个代码库的知识转到该代码库的文档或 AGENTS.md。它没有更改已经保存的内容。已学技能无论允许列表如何,都对它们的智能体保持可见,加载到该智能体工作的每个项目中,并且只要它们被读取,就会避免未使用技能的清理。
整理每个已学技能,将事实移至记忆,将代码库笔记移至代码库,归档原始技能,并在无关项目的全新会话中进行检查。我们对 OpenClaw 记忆的深入探讨涵盖了记忆系统的其余部分,而我们对 OpenClaw 智能体最佳记忆设置的综述对比了各种选项。