349840432m-dev/agent-context-memory/SKILL.md
Agent 上下文管理方法论:通过分层文件体系实现跨 session 记忆延续、职责分离和高效上下文恢复。Use when: (1) 搭建新 agent 工作区, (2) 优化 agent 记忆和上下文管理, (3) 长期运行 agent 的记忆维护。
npx skillsauth add openclaw/skills context-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
让 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 # 自动提炼脚本
tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。