chore(i18n): refresh zh-CN translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-20 19:05:55 +00:00
parent 95d7c6b0d6
commit 7b630b7e6d
2 changed files with 776 additions and 768 deletions

View File

@ -1,42 +1,43 @@
---
read_when:
- 你想了解自动压缩和 /compact
- 你正在排查达到上下文限制的长会话
- 你想了解自动压缩和 `/compact`
- 你正在调试触及上下文限制的长会话
summary: OpenClaw 如何总结长对话以保持在模型限制范围内
title: 压缩
x-i18n:
generated_at: "2026-04-07T17:57:26Z"
generated_at: "2026-04-20T18:56:59Z"
model: gpt-5.4
provider: openai
source_hash: e6590b82a8c3a9c310998d653459ca4d8612495703ca0a8d8d306d7643142fd1
source_hash: 382e4a879e65199bd98d7476bff556571e09344a21e909862a34e6029db6d765
source_path: concepts/compaction.md
workflow: 15
---
# 压缩
每个模型都有一个上下文窗口——即它能够处理的最大 token 数量。
当对话接近这个限制时OpenClaw 会将较早的消息**压缩**为摘要,
以便聊天能够继续
每个模型都有一个上下文窗口——也就是它最多能够处理的 token 数量。
当对话接近这个限制时OpenClaw 会将较早的消息**压缩**为一段摘要,
这样聊天就可以继续进行
## 工作原理
1. 较早的对话轮次会被总结一条压缩条目。
2. 摘要会保存在会话转录中。
1. 较早的对话轮次会被总结一条压缩条目。
2. 摘要会保存在会话转录中。
3. 最近的消息会保持原样。
当 OpenClaw 将历史记录拆分为压缩块时,它会让智能体工具调用
与其对应的 `toolResult` 条目保持配对。如果拆分点落在工具块内部,
OpenClaw 会移动边界,以确保这对内容保持在一起,并保留当前尚未摘要的尾部内容。
当 OpenClaw 将历史记录拆分为压缩块时,它会让智能体工具调用
与其对应的 `toolResult` 条目保持配对。如果拆分点落在某个工具块内部,
OpenClaw 会移动边界,以确保这对内容保持在一起,并保留当前未总结的尾部内容。
完整的对话历史仍会保存在磁盘上。压缩只会改变模型在下一轮看到的内容。
完整的对话历史仍会保存在磁盘上。压缩只会改变模型在下一轮看到的内容。
## 自动压缩
自动压缩默认开启。当会话接近上下文限制时或者当模型返回上下文溢出错误时它就会运行在这种情况下OpenClaw 会先压缩再重试)。典型的溢出特征包括
自动压缩默认开启。它会在会话接近上下文限制时运行,或者在模型返回上下文溢出错误时运行(此时
OpenClaw 会先压缩,再重试)。常见的溢出特征包括
`request_too_large`、`context length exceeded`、`input exceeds the maximum
number of tokens`、`input token count exceeds the maximum number of input
tokens`、`input is too long for the model` `ollama error: context length
tokens`、`input is too long for the model`,以及 `ollama error: context length
exceeded`。
<Info>
@ -44,9 +45,9 @@ exceeded`。
</Info>
使用你的 `openclaw.json` 中的 `agents.defaults.compaction` 设置来配置压缩行为(模式、目标 token 数等)。
压缩摘要默认会保留不透明标识符(`identifierPolicy: "strict"`)。你可以使用 `identifierPolicy: "off"` 覆盖此行为,或者使用 `identifierPolicy: "custom"``identifierInstructions` 提供自定义文本。
压缩摘要默认会保留不透明标识符(`identifierPolicy: "strict"`)。你可以将其覆盖为 `identifierPolicy: "off"`,或者通过 `identifierPolicy: "custom"``identifierInstructions` 提供自定义文本。
你也可以通过 `agents.defaults.compaction.model` 为压缩摘要指定不同的模型。当你的主模型是本地模型或小模型,而你希望由能力更强的模型生成压缩摘要时,这会很有。该覆盖项接受任意 `provider/model-id` 字符串:
你也可以通过 `agents.defaults.compaction.model` 为压缩摘要指定一个不同的模型。当你的主模型是本地模型或小模型,而你希望由能力更强的模型生成压缩摘要时,这会很有帮助。该覆盖项接受任意 `provider/model-id` 字符串:
```json
{
@ -74,11 +75,11 @@ exceeded`。
}
```
如果未设置,压缩会使用智能体的主模型。
未设置,压缩会使用智能体的主模型。
## 可插拔压缩提供商
## 可插拔压缩提供商
插件可以通过插件 API 上的 `registerCompactionProvider()` 注册自定义压缩提供商。当某个提供商已注册并配置后OpenClaw 会将摘要生成委托给它,而不是使用内置的 LLM 流程。
插件可以通过插件 API 上的 `registerCompactionProvider()` 注册自定义压缩提供商。当某个提供商已注册并已配置时OpenClaw 会将摘要生成委托给它,而不是使用内置的 LLM 流程。
要使用已注册的提供商,请在你的配置中设置提供商 id
@ -94,22 +95,22 @@ exceeded`。
}
```
设置 `provider` 会自动强制使用 `mode: "safeguard"`。提供商会收与内置路径相同的压缩指令和标识符保留策略并且在提供商输出后OpenClaw 仍会保留最近轮次和拆分轮次的后缀上下文。如果提供商失败或返回空结果OpenClaw 会回退到内置 LLM 摘要生成。
设置 `provider` 会自动强制使用 `mode: "safeguard"`。提供商会收与内置路径相同的压缩指令和标识符保留策略,并且在提供商输出OpenClaw 仍会保留最近轮次和拆分轮次的后缀上下文。如果提供商失败或返回空结果OpenClaw 会回退到内置 LLM 摘要生成。
## 自动压缩(默认开启)
会话接近或超出模型的上下文窗口时OpenClaw 会触发自动压缩,并可能使用压缩后的上下文重试原始请求。
某个会话接近或超过模型的上下文窗口时OpenClaw 会触发自动压缩,并可能使用压缩后的上下文重试原始请求。
你会看到:
- 在详细模式下显示 `🧹 Auto-compaction complete`
- `/status` 显示 `🧹 Compactions: <count>`
在压缩之前OpenClaw 可以运行一次**静默 memory 刷新**轮次,以将持久笔记存储到磁盘。详情和配置请参阅 [Memory](/zh-CN/concepts/memory)
在压缩之前OpenClaw 可以运行一次**静默 memory 刷新**轮次,将持久笔记存储到磁盘。详见 [Memory](/zh-CN/concepts/memory) 了解细节和配置
## 手动压缩
在任意聊天中输入 `/compact` 即可强制执行一次压缩。你还可以添加说明来引导摘要:
在任意聊天中输入 `/compact` 即可强制执行一次压缩。你还可以添加说明来引导摘要内容
```
/compact Focus on the API design decisions
@ -117,7 +118,7 @@ exceeded`。
## 使用不同的模型
默认情况下,压缩使用你的智能体主模型。你可以使用能力更强的模型来获得更好的摘要:
默认情况下,压缩使用你的智能体主模型。你可以使用能力更强的模型来获得更好的摘要:
```json5
{
@ -131,9 +132,9 @@ exceeded`。
}
```
## 压缩开始通知
## 压缩通知
默认情况下,压缩会静默运行。若要在压缩开始时显示简短通知,请启用 `notifyUser`
默认情况下,压缩会静默运行。若要在压缩开始和完成时显示简短通知,请启用 `notifyUser`
```json5
{
@ -147,33 +148,34 @@ exceeded`。
}
```
启用后,用户会在每次压缩开始时看到一条简短消息(例如,“正在压缩上下文...”)。
启用后,用户会在每次压缩运行前后看到简短的状态消息
(例如,“正在压缩上下文...” 和 “压缩完成”)。
## 压缩与
## 压缩与
| | 压缩 | 剪 |
| | 压缩 | 剪 |
| ---------------- | ---------------------------- | -------------------------------- |
| **作用** | 总结较早的对话内容 | 裁剪旧的工具结果 |
| **会保存吗?** | 会(保存在会话转录中) | 不会(仅在内存中、按每次请求) |
| **它的作用** | 总结较早的对话 | 修剪旧的工具结果 |
| **会保存吗?** | 会(保存在会话转录中) | 不会(仅保存在内存中,按请求) |
| **范围** | 整个对话 | 仅工具结果 |
[Session pruning](/zh-CN/concepts/session-pruning) 是一种更轻量的补充方式,它会在不生成摘要的情况下裁剪工具输出
[会话裁剪](/zh-CN/concepts/session-pruning) 是一种更轻量的补充方式,它会修剪工具输出,而不进行总结
## 故障排除
**压缩频繁?** 模型的上下文窗口可能较小,或者工具输出可能较大。尝试启用
[session pruning](/zh-CN/concepts/session-pruning)。
**压缩过于频繁?** 模型的上下文窗口可能较小,或者工具输出可能较大。尝试启用
[会话裁剪](/zh-CN/concepts/session-pruning)。
**压缩后感觉上下文不够新鲜?** 使用 `/compact Focus on <topic>` 来引导摘要,或者启用 [memory flush](/zh-CN/concepts/memory),以便笔记得以保留
**压缩后感觉上下文不够新鲜?** 使用 `/compact Focus on <topic>` 来引导摘要内容,或者启用 [memory 刷新](/zh-CN/concepts/memory),这样笔记就能保留下来
**需要一个全新的开始?** `/new` 会启动一个新的会话,而不会行压缩。
**需要一个全新的开始?** `/new` 会启动一个新的会话,而不会行压缩。
有关高级配置(预留 token、标识符保留、自定义上下文引擎、OpenAI 服务端压缩),请参阅
[Session Management Deep Dive](/zh-CN/reference/session-management-compaction)。
关于高级配置(保留 token、标识符保留、自定义上下文引擎、OpenAI 服务端压缩),请参阅
[会话管理深入解析](/zh-CN/reference/session-management-compaction)。
## 相关内容
- [Session](/zh-CN/concepts/session) — 会话管理与生命周期
- [Session Pruning](/zh-CN/concepts/session-pruning) — 裁剪工具结果
- [Context](/zh-CN/concepts/context) — 如何为智能体轮次构建上下文
- [Hooks](/zh-CN/automation/hooks) — 压缩生命周期钩子before_compaction、after_compaction
- [会话](/zh-CN/concepts/session) —— 会话管理与生命周期
- [会话裁剪](/zh-CN/concepts/session-pruning) —— 修剪工具结果
- [上下文](/zh-CN/concepts/context) —— 如何为智能体轮次构建上下文
- [Hooks](/zh-CN/automation/hooks) —— 压缩生命周期 hooksbefore_compaction、after_compaction

File diff suppressed because it is too large Load Diff