knowledge-vault/discussions/technology/OpenClaw/LocalSummary/2026-04-12-上下文与会话管理总结.md

105 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 上下文与会话管理总结
> 2026-04-12 讨论整理,供日后查阅
---
## 一、Token 窗口与上下文ctx
### 1.1 ctx 的含义
- **ctx = Context 使用率**,表示当前会话窗口已使用的 Token 配额比例
- 100% ctx = 上下文已满,新的对话内容会逐步挤压旧内容
### 1.2 Tool 调用与主会话的 ctx 是独立的
- **Tool 执行在独立子会话中进行**,不计入主会话 ctx
- 流程:用户发消息 → 主会话记录 → Tool 调用独立子会话100% ctx → 返回结果 → 主会话 ctx 清零 → 模型回复
- 因此 **只需关注 Assistant主会话部分的 ctx 是否超限**
### 1.3 实际操作建议
- 当 ctx 接近 80-90% 时,考虑开新会话
- Tool 调用占用的 ctx 不影响对话长度,可以忽略
---
## 二、OpenClaw 的记忆体系
### 2.1 两层记忆机制
| 层级 | 文件位置 | 用途 | 持久化方式 |
|------|----------|------|------------|
| **长期记忆** | `MEMORY.md`(各 Workspace 根目录) | 核心精华,值得跨会话保留 | Agent 主动写入,用户触发 |
| **短期记忆** | `memory/YYYY-MM-DD.md``memory/` 子目录) | 每日日记,记录当天事件和讨论 | Agent 主动写入 |
### 2.2 各 Agent 的 memory 路径
```
D:\OpenClaw-Workspace\
├── main\ # 总调度
│ ├── MEMORY.md
│ └── memory\
│ └── 2026-04-11.md
├── chief-engineer\ # 轮机长
│ ├── MEMORY.md
│ └── memory\
└── disciple\ # 强哥的徒弟
├── MEMORY.md
└── memory\
D:\OpenClaw-Workspace-shirleen\
└── conservator\ # 文保工作者
├── MEMORY.md
└── memory\
```
### 2.3 新会话启动时加载规则
1. 读取 **SOUL.md** → 确定角色和行为
2. 读取 **USER.md** → 了解用户信息
3. 读取 **今天 + 昨天的 memory 文件**`memory/YYYY-MM-DD.md`
4. **MAIN SESSION**(直接与人对话时)额外读取 `MEMORY.md`
5. 更早的 memory 文件通过 `memory_search` 检索调用
### 2.4 向量检索库
- **路径**`C:\Users\admin\.openclaw\memory`
- **本质**OpenClaw 自动维护的向量索引,加速语义搜索
- **内容来源**:从 Workspace 下的 memory 文件自动索引
- **调用方式**`memory_search` 工具
- **与文件的关系**:同一套内容,两种访问方式(文件直读 vs 向量检索)
---
## 三、会话迁移流程
### 3.1 问题背景
与其他 Agent 交流时,容易触发 Tool 调用导致 ctx 快速增长,可能超过限制。
### 3.2 解决方案:总结指令
当 ctx 接近上限时,用户发起总结指令,各 Agent 应:
1. **整理本次会话关键内容**
2. **写入 `MEMORY.md` 或当日 `memory/YYYY-MM-DD.md`**
3. **用户在新会话中继续**Agent 启动时自动加载
### 3.3 总结指令示例
> "总结一下这次会话的关键内容,然后我开新会话继续"
### 3.4 各 Agent 的支持要求
需要在各 Agent 的 **SOUL.md** 中内置"会话总结迁移"的行为规范,确保指令能被正确执行。
---
## 四、重启 Gateway 注意事项
- **不需要重启前特意写记忆**memory 文件是磁盘持久化,重启后依然存在
- Gateway 重启只影响运行时内存,不影响 `memory/``MEMORY.md` 文件
- Workspace 文件变更SOUL.md、AGENTS.md、USER.md 等)由 OpenClaw 自动加载
---
## 五、关键规则回顾
1. **只盯主会话 ctx**Assistant 部分Tool 的 100% ctx 是独立的
2. **ctx 超限 → 总结迁移 → 新会话**
3. **重要内容随时写入 memory**,不要依赖" mental notes"
4. **Gateway 重启不影响 memory 文件**,无需额外操作
5. **向量库和文件是同一内容的两套访问方式**,无需重复管理