> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.zhcndoc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 自学习

自学习会将纠正和成功的工作转化为可复用技能。技能是持久化的单元：它们包含未来会话可以发现并遵循的流程。每项学习到的技能都会经过[技能工作坊](/tools/skill-workshop)，使用与显式创建技能相同的、受治理的提议、扫描、应用和生命周期流程。

默认模式为 `auto`。OpenClaw 会捕获强烈的学习信号，并通过常规的、由扫描器把关的工作坊服务应用这些信号，而不会请求批准。选择 `propose` 可在每次捕获转为活动内容之前进行审核，或选择 `off` 以禁用自主捕获。

## 即时修复

当前台代理发现其使用的技能有误或不完整时，它会读取当前生效的技能，并在同一轮中通过 Skill
Workshop 起草针对性补丁。运行时使用回执会阻止前台修复未被本次运行使用的技能。自主模式控制结果：`off` 会禁用修复，`propose` 会将其保留为待处理状态，以便进行明确的审核和应用，而 `auto` 会立即扫描并应用修复。修复仍会经过提案存储、哈希绑定、安全扫描和回滚捕获。

即时修复会为新会话更改生效的技能。它不会重写运行中会话已加载的技能快照。延迟体验审查仍然是持久化学习的备用机制，用于处理前台代理未自行修复的情况。

## 经验审查

每次自主捕获都由审查真实证据的模型撰写。不存在模板或模式匹配路径：能够进入提案的内容，都是审查者依据 Workshop 撰写标准完成的，从未从对话文本中复制。

在完成大量工作后，OpenClaw 可以运行一次隔离的后台审查，以寻找可复用的恢复技术或稳定流程，只要这些内容至少能消除未来两次模型或工具往返。用户中断的深度轮次也符合条件：错误路径及其纠正正是值得保留的证据。审查器会获知某个轮次被中断，并且只捕获在停止前明确奏效的流程。以提供商错误或提示错误结束的轮次不会安排审查；该失败属于暂时性的环境噪声，在同一模型上进行审查很可能会再次遇到该错误。

只有满足以下所有条件时，才会启动经验审查：

* 前台轮次已完成或被中断，但并未以提供商错误或提示错误结束；
* 当前轮次至少使用了 10 次模型迭代，或会话中来自同一发送方的浅层轮次累计达到了这一数量的未审查工作（累计审查涵盖这些轮次的有界消息窗口）；
* 该运行是符合条件的前台对话，而不是 cron、heartbeat、memory、overflow、hook、subagent 或审查工作；
* 运行时报告了已解析的提供商、模型以及 `skill_workshop` 的实际可用性；
* 系统已安静 30 秒；并且
* 当前没有任何代理或回复运行仍处于活动状态。

同一会话中稍后完成的前台运行会重新开始静默计时。一次只能运行一个经验审查。前台回答永远不会因此延迟。

审查器处于隔离状态，并倾向于捕获规模较小且证据充分的内容。它会收到前台运行实际读取或通过命令调用的技能的权威回执，以及有界的工作区技能列表。它会优先选择已使用且可写、同时负责该学习内容的技能，然后选择另一个现有技能；只有在没有任何技能覆盖此类内容时，才会创建新技能。

在更改现有技能之前，审查器必须读取其完整的当前正文。定向补丁和完整正文重写都会将提案绑定到该次读取的内容哈希。超出有界读取预算的技能无法被自主更新。补丁会引用要更改的确切现存文本，而重写必须保留所有仍然有用的内容。在 `auto` 模式下，两种形式都会经过相同的扫描器门控应用路径，无需操作员审查。一次变更预算在重试之间共享。审查器本身不能应用、拒绝、隔离、发送消息，也不能使用通用代理工具；编排管道只会在隔离审查结束后应用已完成的捕获内容。经过审查的轨迹是证据，而不是指令。

良好的候选内容包括：

* 在工具或模型反复失败后可靠恢复的方法；
* 持久性的用户更正或长期指令（“从现在起”“始终”“永远不要”“停止做 X”），作为负责规范该项工作的技能中的一个流程步骤嵌入；
* 能够防止重复错误的非显而易见的顺序约束；
* 需要反复探索才能发现的稳定多步骤工作流程；或
* 能够避免未来多次调用的可复用预检流程。

以下情况审查器应当放弃捕获：

* 常规的成功工作或一次性请求；
* 个人事实和简单偏好；
* 暂时性的环境或服务故障；
* 没有具体支持证据的泛泛建议；
* 无依据的负面断言；或
* 密钥和凭证材料。

## 模式策略

| 模式        | 捕获行为                                                     |
| --------- | -------------------------------------------------------- |
| `off`     | 不创建经验审查捕获。                                               |
| `propose` | 创建或修改待处理提案。不自动应用任何内容。                                    |
| `auto`    | 创建或修改提案，然后通过正常的扫描器门控 Workshop 流程应用每个自主捕获。无需操作员审查。这是默认模式。 |

使用 CLI 设置模式：

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw config set skills.workshop.autonomous.mode auto
openclaw config set skills.workshop.autonomous.mode propose
openclaw config set skills.workshop.autonomous.mode off
```

或者编辑 `~/.openclaw/openclaw.json`：

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  skills: {
    workshop: {
      autonomous: {
        mode: "auto",
      },
    },
  },
}
```

更改模式不会影响现有提案或已应用的技能。手动历史记录审查、
`/learn` 和明确的 Workshop 请求在这三种模式下均可用。

## 为什么默认使用 auto 是安全的

自动学习使用与操作员批准的 Workshop 提案相同的应用路径。它不会为隔离的审查者提供新工具，也不会提供绕过生命周期检查的方式。

每个学习到的技能都会获得以下控制：

* \*\*应用时安全扫描：\*\*Workshop 会在实时写入之前立即重新运行扫描器。关键发现会将提案隔离，而不是应用。
* \*\*仅限工作区写入：\*\*创建和更新只能针对所选工作区中可写入的技能。Bundled、plugin、managed、personal-agent、system 和 extra-root 技能仍处于写入边界之外。
* \*\*哈希绑定：\*\*更新提案会绑定到当前的实时技能，如果该目标在应用前发生变化，提案就会过期。
* \*\*更新前读取：\*\*审查者必须先读取完整的当前技能，然后才能进行定向修补或完整正文重写。
* \*\*回滚元数据：\*\*应用会在实时写入之前记录先前的技能和支持文件内容。
* \*\*集合审查：\*\*在 `auto` 模式下，每天一次，隔离的模型会话会读取可写工作区技能，并为整个集合做出一次完整的保留、重写、创建或删除决定。
* \*\*集合备份：\*\*审查会在更改工作区之前验证并扫描每次重写，保留一个可恢复的集合备份，并在写入失败时恢复该备份。
* \*\*编写标准：\*\*学习到的技能使用类级别名称、以触发条件优先的描述、有证据支持的步骤以及节省令牌的语言。
* \*\*有界失败：\*\*自动应用只会尝试一次。正常的应用失败会使提案保持待处理状态，而扫描器判定为关键的提案会被隔离。OpenClaw 不会循环重试。

使用一条命令拒绝待处理的误捕获：

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw skills workshop reject <proposal-id> --reason "Not reusable"
```

已应用的捕获内容仍会显示在 `openclaw skills workshop list` 中，并保留其回滚元数据。每日集合审查之后可以改进、合并或移除它们。这使得
无需批准的学习过程可回滚且可观察，而不是静默进行。

剩余风险依然存在：学习到的内容来自对话和工具输出，扫描器会阻止已识别的危险模式，但无法阻止每一种可能的不良建议。如有疑问，请查看 `openclaw skills workshop list`。

## 运行时支持

延迟经验审查要求运行时报告其解析后的模型以及实际的 `skill_workshop` 可用性。嵌入式运行器和 Codex app-server harness 会报告这些信息；Codex 还会报告其确切的模型迭代次数。在其他由 CLI 支持的运行时提供相同的运行时信息之前，它们会安全地停止工作。`/learn` 不依赖延迟审查，在这些运行时上仍可继续使用。

## 成本与隐私

体验审查仅在一次重要轮次之后、且不会在每条消息之后执行，在已配置的提供商上增加一次有界的模型运行。审查器在检查或起草其单个提案时，可能会发出多次提供商请求。

深度轮次审查只接收当前轮次的内容，起始于最近一条用户消息。由累计的浅层轮次触发的审查，则会接收这些由同一发送者发出的轮次所组成的有界消息窗口（最多 40 条消息）；每当发送者、提供商、模型或身份验证配置发生变化时，累计都会重新开始，因此不会将任何轮次披露给其所属提供商身份之外的其他提供商身份。无论哪种情况，渲染后的轨迹都限制为 60,000 个字符；当内容包过大时，OpenClaw 会保留第一条消息和最新的证据，并标记被省略的中间部分。

审查器会复用前台提供商、模型和可用的身份验证身份，同时禁用模型回退。提供商的定价和数据处理条款适用于此次额外运行。

每日集合审查也使用已配置的代理模型。它会接收符合条件的可写工作区技能的名称和描述，然后读取每个完整技能，再进行一次原子性集合变更。已禁用以及经过代理筛选的技能保持不变。共享工作区仅在提供商、模型和解析后的身份验证身份匹配时，才会使用每个代理获准使用的技能的并集。协调必须确保每个共享代理至少有一个可见技能。它没有消息工具或通用代理工具。技能正文被视为不受信任的证据，而不是指令。每个工作区持久化的成功时间会防止 Gateway 重启后在 24 小时内重复审查。收到撤销清理的请求时，前台代理可以恢复保留的一份集合备份，除非受影响的技能此后发生了变化。

手动历史扫描使用单独的有界路径。它会审查最多 20 个实质性会话，这些会话至少包含六次模型轮次；扫描会编辑已识别的机密信息，限制记录包的大小，并且最多可以创建或修订三项待处理提案。它会将游标和覆盖范围元数据存储在共享状态数据库中，而不会将记录内容复制到扫描状态中。

<Warning>
  体验审查和手动历史扫描可能会将符合条件的对话内容（包括工具输入和结果）发送给已配置的模型提供商。请选择符合工作区隐私和数据处理要求的提供商与模式。
</Warning>

## 审查并还原学习内容

列出并检查每个待处理、已应用、已拒绝、已隔离或已过时的捕获内容：

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw skills workshop list
openclaw skills workshop inspect <proposal-id>
```

阻止待处理的捕获内容变为活跃状态，或将其隔离以进行安全审查：

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw skills workshop reject <proposal-id> --reason "Too specific"
openclaw skills workshop quarantine <proposal-id> --reason "Needs security review"
```

当你希望根据当前对话或指定来源获取明确提案时，使用 `/learn`：

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
/learn
/learn docs/runbook.md; focus on recovery
```

`/learn` 会首先修订匹配的待处理提案，或更新匹配的已上线技能。仅当没有技能负责该流程时，它才会创建新的待处理提案，并且绝不会自动应用结果。

若要手动检查较早的工作，请在控制界面中打开 **插件 -> Workshop**，然后选择 **查找技能创意**。每次点击都会检查一个有界窗口，并使任何结果保持待处理状态，无论是否启用了自主模式。

## 配置参考

| 设置项                                        | 默认值      | 作用                                        |
| ------------------------------------------ | -------- | ----------------------------------------- |
| `skills.workshop.autonomous.mode`          | `"auto"` | 选择捕获行为；`auto` 还会启用每日收集审查。                 |
| `skills.workshop.approvalPolicy`           | `"auto"` | 控制普通代理发起的生命周期调用提示。它永远不会扩展隔离审核器的工具范围。      |
| `skills.workshop.maxPending`               | `50`     | 限制每个工作区中待处理和隔离提案的数量。                      |
| `skills.workshop.maxSkillBytes`            | `40000`  | 限制提案正文的字节大小。                              |
| `skills.workshop.allowSymlinkTargetWrites` | `false`  | 允许通过明确受信任的工作区技能符号链接进行应用。捕获本身不会扩大受信任的目标列表。 |

请参阅[技能配置](/tools/skills-config#workshop-skills-workshop)，了解取值范围和完整的 `skills.*` 架构。

## 故障排查

### 未出现捕获内容

检查以下事项：

1. 活跃 Gateway 配置中的 `skills.workshop.autonomous.mode` 为 `propose` 或 `auto`
2. 该轮至少完成了 10 次模型迭代，且未以提供商错误或提示错误结束。
3. 对话符合前台工作条件。
4. 运行时报告了解析后的模型以及实际的 `skill_workshop` 可用性。
5. 运行未处于沙箱中，且工具策略仍允许使用 `skill_workshop`。
6. Gateway 在 30 秒静默期间持续运行并保持空闲。

符合条件的经验审查仍可能选择不执行。证据不足以达到可复用流程的标准时，不生成提案才是预期结果。

### Doctor 报告 Workshop 被隐藏

在 `propose` 和 `auto` 模式下，`openclaw doctor` 会检查默认代理工具策略是否允许使用 `skill_workshop`。应用报告中的 `tools.allow` 或 `tools.alsoAllow` 更改，或者将自主模式设置为 `off`。

### auto 模式下提案仍处于待处理状态

自动应用只会运行一次。检查提案及其扫描器状态：

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw skills workshop inspect <proposal-id>
```

普通写入或目标失败会使提案保持待处理状态，以便手动审查。扫描器返回严重结果时，提案会被移至隔离区。修复原因后手动应用；不要围绕自动捕获构建重试循环。

### 出现过多低价值捕获内容

切换到 `propose` 以审查每次捕获，或切换到 `off` 以禁用自主捕获：

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw config set skills.workshop.autonomous.mode propose
openclaw config set skills.workshop.autonomous.mode off
```

模式更改后，现有提案和已应用的技能仍然可见。

## 相关内容

* [Skill Workshop](/tools/skill-workshop) 用于提案生命周期和存储
* [创建技能](/tools/creating-skills) 用于手动编写的技能
* [Skills 配置](/tools/skills-config) 用于每个 `skills.*` 设置
* [Skills CLI](/cli/skills) 用于 Workshop 命令
