本文记录如何配置 OpenClaw 的记忆系统,以及创建自定义技能的流程。
简介
OpenClaw 是一个可扩展的 AI 助手框架,核心特性:
- 记忆系统:持久化存储重要信息,支持语义搜索
- 技能系统:将工作流程打包成可复用模块
记忆系统
文件结构
1 2 3 4 5
| ~/.openclaw/workspaces/<agent-id>/ ├── MEMORY.md # 核心记忆入口 └── memory/ ├── 2026-03-14.md # 每日日志 └── topic.md # 主题记忆
|
记忆工具
| 工具 |
功能 |
memory_search |
语义搜索记忆内容 |
memory_get |
读取指定记忆文件 |
语义搜索配置
默认使用全文匹配,搜"博客"找不到"Hexo"。启用语义搜索可理解语义相似性。
本地 Embedding(推荐)
优点:免费、隐私安全、无需 API Key
配置步骤:
- 修改
~/.openclaw/openclaw.json:
1 2 3 4 5 6 7 8 9
| { "agents": { "defaults": { "memorySearch": { "provider": "local" } } } }
|
- 安装依赖:
1 2
| cd /path/to/openclaw npx pnpm install node-llama-cpp
|
- 重启 Gateway:
1
| openclaw gateway restart
|
首次使用会自动下载 embedding 模型(约 0.6GB)。
远程服务
OpenAI:
1 2 3 4 5 6 7 8 9 10 11 12 13
| { "agents": { "defaults": { "memorySearch": { "provider": "openai", "model": "text-embedding-3-small", "remote": { "apiKey": "your-api-key" } } } } }
|
推荐结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| # Agent 记忆## 核心职责 - 职责说明 ## 项目信息 - 项目路径:`/path/to/project` - 关键配置 ## 用户偏好 - 偏好说明 ## 常用命令 \`\`\`bash command1 \`\`\`
|
在对话中请求写入:
1
| 用户:记住,我的项目在 /path/to/project
|
技能系统
什么是技能?
技能是可复用的工作流程包:
1 2 3 4 5
| skill-name/ ├── SKILL.md # 主文件(必需) ├── scripts/ # 可执行脚本 ├── references/ # 参考文档 └── assets/ # 模板资源
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| --- name: skill-name description: | 技能描述。 触发场景:用户提到"关键词1"、"关键词2"时使用。 ---
# 技能标题## 环境信息 项目路径、配置等。 ## 工作流程 ### 步骤1 说明... ### 步骤2 说明... ## 常用命令 | 操作 | 命令 | |------|------| | 操作1 | `command1` |
|
创建技能流程
1. 初始化
1 2 3
| python3 scripts/init_skill.py my-skill \ --path ~/.openclaw/skills \ --resources scripts,references
|
填写:
description - 描述和触发场景
- 环境信息和配置
- 工作流程步骤
description 写法:
1 2 3 4 5 6
| # 好的写法 description: | 博客写作与发布。触发场景:用户提到"写博客"、"发博客"、"hexo"。
# 不好的写法 description: 博客技能
|
3. 添加资源
| 目录 |
内容 |
scripts/ |
可执行脚本 |
references/ |
详细文档 |
assets/ |
模板文件 |
4. 打包
1
| python3 scripts/package_skill.py ~/.openclaw/skills/my-skill
|
输出:my-skill.skill 文件
技能更新
- 编辑
~/.openclaw/skills/<skill-name>/ 下的文件
- 重新打包
常见问题
Q: 记忆搜索返回空结果?
- 检查
MEMORY.md 是否存在
- 确认
memorySearch.provider 配置正确
- 验证
node-llama-cpp 依赖已安装
Q: 技能没有触发?
确保 description 包含触发场景:
1 2 3
| description: | 技能描述。 触发场景:用户提到"关键词"时使用。
|
Q: 本地 Embedding 下载失败?
手动下载模型:
1 2 3
| wget https://huggingface.co/ggml-org/embeddinggemma-300m-qat-q8_0-GGUF/resolve/main/embeddinggemma-300m-qat-Q8_0.gguf mkdir -p ~/.cache/llama.cpp mv embeddinggemma-300m-qat-Q8_0.gguf ~/.cache/llama.cpp/
|
最佳实践
记忆系统
- 定期整理
MEMORY.md,移除过时信息
- 及时写入重要信息
技能系统
description 要具体,列出触发关键词
- 保持
SKILL.md 精简,详细信息放 references/
- 使用 git 管理技能版本
参考资料
文章链接:
https://www.zywvvd.com/notes/study/llm/openclaw-memory-skill/openclaw-memory-skill/