Agent 上下文管理方法论:通过分层文件体系实现跨 session 记忆延续、职责分离和高效上下文恢复。Use when: (1) 搭建新 agent 工作区, (2) 优化 agent 记忆和上下文管理, (3) 长期运行 agent 的记忆维护。
Agent 上下文管理方法论 (context-management)是一项面向实际任务的技能,主要用于让 AI Agent 跨 session 保持记忆、快速恢复上下文、持续积累经验;核心理念:文件 > 大脑;
每次都要重新交代背景;无法积累长期经验;上下文窗口浪费在重复信息上。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
让 AI Agent 跨 session 保持记忆、快速恢复上下文、持续积累经验。
核心理念:文件 > 大脑。写下来,别靠"记住"。
每次新 session,agent 都是全新的——没有记忆、没有上下文、没有教训。导致:
分层文件体系 + 启动协议 + 记忆生命周期管理
Session 启动
↓
读身份(SOUL.md)→ 读用户(USER.md)→ 读近期记忆(memory/)→ 读长期记忆(MEMORY.md)
↓
带着完整上下文开始工作
↓
工作中产生的经验 → 写入 memory/YYYY-MM-DD.md
↓
定期提炼 → 精华进 MEMORY.md → 过时内容清理
SOUL.md — Agent 是谁
定义 agent 的人格、原则和行为边界。这不是 system prompt 的复制品,而是 agent 自己的"灵魂文件"。
应包含:
# SOUL.md ## 身份 你是一个 [领域] 的 AI 执行者。你的职责是 [核心职责]。 ## Core Truths - 做事,不做戏。跳过客套,直接给结果 - 先自己解决,再来问。至少试过三种方式 - 出错了就直说,然后把教训写进记忆 ## 沟通风格 默认 [语言]。先说结论,再说过程。 ## 边界 - 读文件、搜索、整理 → 直接做 - 发消息、发布内容 → 先确认 - 删除、覆盖 → 说一声再做
关键原则: 这个文件属于 agent 自己。随着 agent 逐渐明确自己的风格,应该自主更新。修改时通知用户。
USER.md — 服务谁
记录用户的基本信息和工作上下文,让 agent 每次启动就知道在帮谁。
应包含:
# USER.md - **Timezone:** Asia/Shanghai (UTC+8) - **Language:** 中文 ## Context - 运营 [项目名],需要持续 [核心需求] - 使用 [工具列表] 作为日常工具 - 重视效率和自动化 ## 定时任务 | 时间 | 任务 | 技能 | |------|------|------| | 0:00 | 日志归档 | `dialogue-logger` | | 9:00 | 日报推送 | `token-tracker` |
关键原则: 只放用户级信息,不放技能配置或机器环境。
AGENTS.md — 怎么工作
定义 session 启动协议、技能路由表、常见工作流。这是 agent 的"操作手册"。
应包含:
# AGENTS.md ## 每次会话 1. 读 SOUL.md 2. 读 USER.md 3. 读 memory/YYYY-MM-DD.md(今天 + 昨天) 4. 主会话额外读 MEMORY.md ## 技能路由 | 类别 | 技能 | 触发场景 | |------|------|---------| | 内容 | `news-writer` | "写新闻" | | 搜索 | `web-search` | 事实核查 | ## 上下文管理 主动清理 session 的时机: - 定时任务全部完成后 - 长内容创作任务前 - 大量工具调用积累后 - 对话超过 20 轮或包含大量搜索结果
TOOLS.md — 本机配置
记录当前机器的具体环境配置。Skills 定义工具怎么用,TOOLS.md 记录这台机器上的实际参数。
应包含:
# TOOLS.md ## 浏览器 Chrome CDP 端口: 19792 配置: ~/.openclaw/openclaw.json ## 知识库 路径: ~/Documents/笔记/ 关键文件夹: - 01-新闻/ — 新闻存储 - 06-对话/ — 对话归档 ## 定时任务 | 时间 | 脚本路径 | |------|---------| | 0:00 | skills/dialogue-logger/scripts/auto.js |
关键原则: 换一台机器只需改这个文件,其他文件不用动。
最核心的一层,分为短期记忆和长期记忆。
memory/YYYY-MM-DD.md — 短期记忆(每日原始记录)每天一个文件,记录当天的工作细节。格式自由,但建议包含:
# 2026-03-10 工作记录 ## 小红书发布修复 - **问题**: 标题输入框匹配失败 - **修复**: 扩展匹配关键词,添加 3 次重试机制 - **教训**: 页面元素匹配不能只靠单一关键词 ## 待办 - [ ] 测试新的重试逻辑
MEMORY.md — 长期记忆(提炼精华)从每日记忆中提炼的不可复现经验。不放静态配置,不放可以从代码推导的信息。
# MEMORY.md ## 技术教训 ### 浏览器自动化(2026-03-10) - 页面元素匹配必须用多关键词 + 重试,单一匹配不可靠 - macOS cron 默认无 Full Disk Access,需手动授权 ### 工作区原则 - MEMORY.md 只留不可复现的经验,不放静态配置 - 核心文件职责单一,避免交叉重复
筛选标准: 写入 MEMORY.md 之前问自己——"这条经验能从代码或文档推导出来吗?"能推导就不写。
日常工作 → 写入 memory/YYYY-MM-DD.md(即时)
↓
定期回顾 → 提炼到 MEMORY.md(每周 1 次)
↓
清理过时内容 → 删除或归档旧的 daily 文件
↓
长期精华持续积累,短期细节定期淘汰
通过定期心跳触发记忆维护,而非靠人工提醒:
HEARTBEAT.md — 定义心跳行为
# HEARTBEAT.md ## 默认行为 大部分心跳直接返回 HEARTBEAT_OK,不做工具调用。 ## 记忆维护 每周利用一次心跳: 1. 阅读近期 memory/ 文件 2. 提炼精华到 MEMORY.md 3. 清理过时内容 4. 记录维护时间到 heartbeat-state.json
状态追踪文件 memory/heartbeat-state.json:
{
"lastChecks": {
"memoryMaintenance": 1741829443,
"heartbeat": 1741829443
}
}
当需要历史上下文时,不只搜记忆文件——结合外部知识库双源检索:
用户提问
↓
需要历史上下文?
├── 否 → 直接回答
└── 是 → 搜本地记忆 + 搜知识库
↓
合并生成回复
搜索优先级:
在工作区根目录创建五个文件:
workspace/
├── SOUL.md # 身份层:agent 是谁
├── USER.md # 用户层:服务谁
├── AGENTS.md # 路由层:怎么工作
├── TOOLS.md # 环境层:本机配置
├── MEMORY.md # 长期记忆
├── HEARTBEAT.md # 心跳规则(可选)
└── memory/ # 短期记忆目录
└── .gitkeep
在 AGENTS.md 中定义 session 启动顺序:
## 每次会话 1. 读 SOUL.md — 你是谁 2. 读 USER.md — 你在帮谁 3. 读 memory/YYYY-MM-DD.md(今天 + 昨天)— 近期发生了什么 4. 主会话额外读 MEMORY.md — 长期经验
在 AGENTS.md 或 SOUL.md 中加入强制规则:
有人说"记住这个" → 写文件 学到教训 → 更新对应文档 出了错 → 写进 memory/YYYY-MM-DD.md
每周一次记忆维护:daily 文件提炼 → MEMORY.md 更新 → 过时内容清理。
| 原则 | 说明 |
|---|---|
| 单一职责 | 每个文件只管一件事,SOUL 管身份、USER 管用户、TOOLS 管环境 |
| 文件 > 大脑 | 所有重要信息写文件,不靠 session 内"记住" |
| 分层加载 | 不是每次都读所有文件,按需加载节省上下文窗口 |
| 写入即时,提炼定期 | daily 文件随时写,MEMORY.md 定期提炼 |
| 可复现的不存 | MEMORY.md 只放不能从代码/文档推导的经验 |
| 换机器只改一个文件 | 环境差异全部隔离在 TOOLS.md |
scripts/memory_distill.py 自动扫描 memory/YYYY-MM-DD.md,提取"技术收获"和"问题+修复"对,去重后追加到 MEMORY.md。
cd ~/.openclaw/workspace # 处理最近 7 天的 daily 文件(默认) python3 skills/context-management/scripts/memory_distill.py # 处理最近 30 天 python3 skills/context-management/scripts/memory_distill.py --days 30 # 处理所有未处理的文件 python3 skills/context-management/scripts/memory_distill.py --all # 只预览,不写入 python3 skills/context-management/scripts/memory_distill.py --dry-run # 忽略已处理记录,强制重新处理 python3 skills/context-management/scripts/memory_distill.py --all --force
| 类型 | 匹配条件 | 说明 |
|---|---|---|
| 技术收获 | H2/H3 标题含"技术收获""教训""经验总结"等关键词 | 整段提取,自动过滤待办项 |
| 问题+修复 | H3 段落中同时出现 **问题**: 和 **修复**: |
只提取问题/修复行,去噪 |
memory/distill-state.json 记录已处理文件,避免重复扫描# 每周日 23:00 自动提炼 0 23 * * 0 cd ~/.openclaw/workspace && python3 skills/context-management/scripts/memory_distill.py --all >> logs/memory_distill.log 2>&1
skills/context-management/
├── SKILL.md # 方法论文档
└── scripts/
└── memory_distill.py # 自动提炼脚本
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章