本文最后更新于:2026年3月14日 下午

本文记录如何配置 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

配置步骤

  1. 修改 ~/.openclaw/openclaw.json
1
2
3
4
5
6
7
8
9
{
"agents": {
"defaults": {
"memorySearch": {
"provider": "local"
}
}
}
}
  1. 安装依赖:
1
2
cd /path/to/openclaw
npx pnpm install node-llama-cpp
  1. 重启 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"
}
}
}
}
}

创建 MEMORY.md

推荐结构:

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/ # 模板资源

SKILL.md 格式

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

2. 编辑 SKILL.md

填写:

  • 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 文件

技能更新

  1. 编辑 ~/.openclaw/skills/<skill-name>/ 下的文件
  2. 重新打包

常见问题

Q: 记忆搜索返回空结果?

  1. 检查 MEMORY.md 是否存在
  2. 确认 memorySearch.provider 配置正确
  3. 验证 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/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

OpenClaw 记忆管理与技能创建指南
https://www.zywvvd.com/notes/study/llm/openclaw-memory-skill/openclaw-memory-skill/
作者
Yiwei Zhang
发布于
2026年3月14日
许可协议