乐于分享
好东西不私藏

OpenClaw 实战(三):Skills 系统与文件结构详解

OpenClaw 实战(三):Skills 系统与文件结构详解

配置决定 AI 的上限,Skills 决定 AI 的边界。

前一篇我们聊了核心操作与指令。这篇深入 OpenClaw 的"大脑结构"——文件系统和 Skills 扩展机制。

搞懂这些,可以让AI 助手真正"活"过来。

一、文件目录结构

OpenClaw 的所有配置、状态数据、工作区和技能,都集中在 ~/.openclaw/ 目录下。

这是整个系统的根配置目录,首次安装时自动创建。

核心目录树

~/.openclaw/├── openclaw.json          # 主配置文件(最重要)├── workspace/# AI 的"灵魂"文件夹│   ├── SOUL.md           # 人格设定(语气、风格)│   ├── USER.md           # 你的个人信息│   ├── MEMORY.md         # 长期记忆(手动可编辑)│   ├── IDENTITY.md       # Agent 名称、形象│   ├── AGENTS.md         # 多 Agent 路由规则│   ├── BOOTSTRAP.md      # 初始化引导│   ├── HEARTBEAT.md      # 定时任务检查清单│   ├── TOOLS.md          # 工具本地配置│   ├── memory/# 日常运行日志│   └── skills/# 已安装的第三方技能├── agents/<cid>/# 每个 Agent 的独立状态├── memory/<cid>.sqlite    # 向量记忆库└── skills/# 全局技能包

三个最常用的文件和目录

1. openclaw.json — 系统级配置

存储全局设置:模型、Gateway 模式、端口、安全策略等。

常用操作命令:

openclaw configure          # 交互式配置向导openclaw config file        # 显示完整路径openclaw config get agent.modelopenclaw config set agent.model "anthropic/claude-3-5-sonnet"openclaw config validate    # 校验合法性

2. workspace/ — AI 的"家"

所有 .md 文件可以直接通过文本编辑器编辑,保存后立即生效,无需重启。

3. memory/ — 记忆系统

  • SQLite 向量数据库:支持语义搜索
  • 每日日志文件:YYYY-MM-DD.md 格式

二、核心配置文件

SOUL.md — 给 AI 立"人设"

这是 AI 每次会话最先读取的文件,决定"我是谁"。

核心要素:

  • 语气风格(正式/轻松/极客)
  • 行为边界(什么能做,什么不能做)
  • 输出格式偏好
  • 价值观和原则

实战技巧:

在 SOUL.md 中明确写出"拒绝的行为",比写"应该做什么"更有效。

例如:

## 拒绝的行为- 不发送未完成的草稿到公开渠道- 不在群聊中代表用户发言- 不执行 rm 等破坏性命令

主要把语气风格、行为边界、输出格式偏好、价值观原则——这几项写清楚就够了。

AGENTS.md — 多 Agent 协作的"调度规则"

当复杂工作有需要用到多个 Agent时,这个文件定义各自职责。

典型结构:

# AGENTS.md - 团队成员-**master**(总管) - agentId: master  职责:团队协调、任务分发-**assistant**(助理) - agentId: assistant  职责:单任务执行

进阶用法:

在不同会话类型中可以应用不同权限级别:

  • 主会话:完整访问 MEMORY.md
  • 群聊:不加载敏感信息
  • 子 Agent:只读特定目录
这个设计挺巧妙的——既保证了灵活性,又控制了风险。

MEMORY.md — 长期记忆的"索引层"

这里保存的不是流水账,是经过整理的长期记忆。

真正的原始日志在 memory/YYYY-MM-DD.md 里按天归档,MEMORY.md 只存经过整理的长期记忆。

记忆分层策略:

层级
文件
用途
索引层
MEMORY.md
用户画像、能力概览、记忆索引(保持精简<40 行)
项目层
memory/projects.md
各项目当前状态与进度
日志层
memory/YYYY-MM-DD.md
原始对话日志,按天归档

定期维护建议:

每隔几天,做一次心跳检查:

  1. 读取近期 memory/YYYY-MM-DD.md
  2. 提取重要事件、决策、教训
  3. 更新 MEMORY.md
  4. 删除过时的索引项

Skills 系统:AI 的"能力扩展包"

Skills 是什么?简单理解就是 OpenClaw 的"插件"或"应用"。OpenClaw 会按优先级从不同位置加载 Skills:

Skills 的加载优先级

位置
优先级
作用域
/skills/
最高
每个智能体
/.agents/skills/
每个工作区智能体
~/.agents/skills/
共享智能体配置文件
~/.openclaw/skills/
共享(所有智能体)
内置(随 OpenClaw 提供)
全局
skills.load.extraDirs
最低
自定义共享文件夹

从 ClawHub 安装技能

ClawHub 是 OpenClaw 官方的 Skills 注册中心,已有 17000+ Skills。

# 安装 ClawHub CLInpm i -g clawhub# 搜索技能clawhub search "react"# 安装技能clawhub install <skill-slug># 更新所有技能clawhub update --all# 查看已安装技能clawhub list

安全提示:

安装第三方 Skills 前,务必检查 SKILL.md 中的权限要求和外部 API 调用。

四、自定义 Skills 开发实战

创建自定义 Skill 不需要编程基础,只需写一份清晰的"操作指南"。

第一步:创建 Skill 目录

mkdir -p ~/.openclaw/workspace/skills/hello-world

第二步:编写 SKILL.md

---name: hello_worlddescription: A simple skill that says hello.---# Hello World SkillWhen the user asks for a greeting, use the `echo` tool to say"Hello from your custom skill!".

头部元数据参考:

字段
必需
说明
name
唯一标识符(蛇形命名)
description
向智能体展示的一行描述
metadata.openclaw.os
操作系统过滤器(["darwin"]["linux"] 等)
metadata.openclaw.requires.bins
系统路径上必须存在的命令
metadata.openclaw.requires.config
必需的配置项

第三步:加载并测试

# 开启新会话让 OpenClaw 读取 skill/new# 验证 skill 已加载openclaw skills list# 测试触发openclaw agent --message "give me a greeting"

进阶玩法:带脚本的 Skill

SKILL.md 本质是"增强版的系统提示词",也可以配合脚本一起用。可以将轻量级检查交给脚本,复杂分析交给 AI,各司其职。

示例结构:

my-skill/├── SKILL.md          # 触发条件和说明└── scripts/    └── analyze.py    # 实际执行逻辑(可选)

在 SKILL.md 中指导 AI 如何调用脚本:

当用户请求代码审查时:1. 运行 `python scripts/analyze.py <文件>`2. 解析 JSON 输出3. 以结构化格式呈现结果

五、复杂任务拆解:招投标场景实战

当面对复杂任务时,用 Skills + 文件结构实现模块化处理。

案例:公司招投标流程

假设使用 AI 协助处理公司招投标项目,从获取招标文件到最终提交,周期两周,涉及技术方案、商务报价、资质材料好几块工作。

第一步:定义任务边界

在 memory/projects.md 中记录:

# 项目:XX 市 XX项目招投标**目标**:完成投标文件编制并提交**关键节点**- 3 月 15 日:获取招标文件- 3 月 20 日:技术方案初稿- 3 月 25 日:商务报价确认- 3 月 28 日:最终提交**依赖 Skills**- feishu-create-doc(文档创建)- feishu-update-doc(内容写入)- feishu-task-task(任务管理)

第二步:创建专用 Skill

创建 bid-assistant Skill,处理招投标相关任务:

---name: bid_assistantdescription: 招投标流程辅助技能---# 招投标辅助 Skill当用户提到"招投标"、"投标"、"标书"时触发:## 标准流程1. **招标文件解析**   - 读取招标文件 PDF   - 提取关键信息(截止时间、评分标准、资质要求)   - 创建检查清单2. **任务拆解**   - 技术方案撰写   - 商务报价计算   - 资质材料准备   - 最终审核3. **进度跟踪**   - 在 memory/bid-projects.md 中更新状态   - 距离截止 24 小时发送提醒## 输出格式使用表格列出待办事项,标注负责人和截止时间。

有了这个 Skill,以后只要提到"招投标",AI 就知道该走什么流程。省心。

第三步:利用多 Agent 协作

在 AGENTS.md 中定义分工:

# AGENTS.md - 团队成员-**master**(总管)  职责:招投标项目总协调,进度跟踪,最终审核-**assistant**(助理)  职责:技术方案撰写,文档格式化-**bid-review**(评审助手)  职责:标书合规性检查,评分点对照

总管负责统筹,助理负责撰写,评审负责检查——各司其职,效率自然高。

第四步:状态持久化

用文件记录中间状态:

~/.openclaw/workspace/memory/bid-projects.md

状态透明了,协作才顺畅

内容示例:

# 招投标项目追踪## 进行中### XX 市 XX项目- 当前阶段:技术方案撰写- 已完成:招标文件解析、任务拆解- 待处理:技术方案、商务报价、资质材料- 截止时间:2026-03-28- 最后更新:2026-03-18## 已完成### YY 区数字化改造项目- 提交时间:2026-02-15- 结果:中标- 归档位置:memory/archived-bids/yy-project.md

记录这个状态的好处是,即使中途中断,下次打开也能快速恢复上下文,这点非常有用。

第五步:自动化检查清单

在 HEARTBEAT.md 中添加定期检查:

# 心跳检查清单## 招投标项目检查(每日)- [ ] 检查 bid-projects.md 中的临近截止项目- [ ] 距离截止<48 小时的项目发送提醒- [ ] 更新任务状态到飞书任务

这样 AI 会每天自动检查有没有临近截止的项目,主动发提醒,不用人盯着。属于"设置一次,受益很久"的类型。


最后

对于当下的Agent来说,区别于传统软件,配置文件的意义,不在于"设置",而在于"塑造"。SOUL.md 塑造人格,AGENTS.md 塑造协作方式,Skills 塑造能力边界。这三者配合好了,AI 助手才能真正成为"数字分身"——了解风格,懂得习惯,守住底线。(完)

下一篇,我想聊聊多 Agent 编排——如何让多个 AI 助手协同工作,处理更复杂的任务场景。

单个 AI 助手能做的事有限,但一支配合默契的 AI 团队,可以应对真正的业务挑战。