一、简介
OpenClaw 由奥地利程序员彼得·斯坦伯格开发的一款本地优先、开源的 AI 智能体(AI Agent)框架,主打 “实际完成任务” 而非仅对话,能通过自然语言指令自动拆解、执行并反馈结果。
二、安装
如果你有自己的云服务器,可以参考我之前发布的文章手把手教你linux云服务器上搭建openclaw
如果你嫌配置麻烦,可以买现成的服务:
三、架构


整体逻辑为:用户消息 → 交互/渠道层 → 网关层(Gateway) → 路由层 → Agent执行层(工具、技能) → 存储层 → 结果返回。
目录结构如下:
.openclaw/
├── openclaw.json # 主配置文件(模型、渠道、网关、技能等)
├── openclaw.json.bak* # 配置备份文件(自动生成)
│
├── workspace/ # 主工作空间
│ ├── AGENTS.md # Agent 行为规范
│ ├── SOUL.md # 人格定义
│ ├── USER.md # 用户偏好
│ ├── MEMORY.md # 长期记忆
│ ├── TOOLS.md # 本地工具配置
│ ├── HEARTBEAT.md # 心跳检查任务
│ ├── SYSTEM_EVENTS.md # 系统事件处理器定义
│ └── memory/ # 每日记录
│
│
├── agents/ # Agent 定义目录
├── extensions/ # 插件扩展目录(如飞书插件)
│
├── cron/ # 定时任务
│ ├── jobs.json # 定时任务定义
│ └── runs/ # 任务执行历史日志
│
├── credentials/ # 凭证存储(API keys、token)
├── memory/ # 向量记忆数据库
├── logs/ # 运行日志
├── scripts/ # 自定义脚本目录
├── backups/ # 自动备份存储目录
├── media/ # 媒体文件缓存
│
├── devices/ # 已连接设备信息
├── delivery-queue/ # 消息投递队列
│
├── completions/ # 自动补全相关
├── canvas/ # Canvas 画布相关
├── feishu/ # 飞书特定文件
├── identity/ # 身份认证相关
│
├── exec-approvals.json # 命令执行审批记录
└── update-check.json # 版本更新检查状态四、使用
1.人设
功能及作用
安装完成后的openclaw在首次对话时,会自动提示角色预设:

openclaw将根据你的回复,将你对他的认知信息写入到IDENTIFY.md中(身份定位),将他对你的认知信息写入到USER.md中(用户偏好),在后续的沟通过程中,这两份文件会逐渐完善。


完整的身份定义,能够减少重复问询,明确agent的职责边界,提供更加个性化、高效、连续的服务。
除了上述两个文件之外,SOUL.md是openclaw最为核心的文件,这个文件定义了openclaw的人设。


SOUL.md赋予了openclaw价值观,而AGENT.md则定义了openclaw的行为准则。


以上文件都可以由openclaw在后续沟通过程中不断更新完善,这也是openclaw越用越好用的原因。
在这个机制下,你需要将openclaw的真正地当做一个"人"来对待,明确地给出反馈,"我不喜欢xxxx"、"你不要xxx",以此确认行为边界,这样他才能越来越"懂"你。
多Agent
openclaw支持一个账户配置多个Agent。
为什么需要多Agent ?
人设隔离:你希望和不同人设的Agent进行聊天。写代码时逻辑缜密,说话严谨;写文章时,语气诙谐幽默。
上下文隔离:你希望工作和生活内容分开。每个Agent都有自己的工作区,里面的上下文、记忆、技能都是隔离的。
任务分工:单一智能体存在全能但不专精的问题,且只能串行处理。多Agent可以各自负责一个领域的任务,并行处理。
多渠道:比如想将工作和生活内容分开。工作Agent绑飞书/钉钉,生活Agent绑微信/QQ。
创建新的agent非常简单,执行以下命令进入Agent安装向导,按步骤进行配置:
openclaw agents add {agent名称}
agent创建后,需要修改人设,比如我想创建一个林黛玉口吻的人设,进入到刚才创建的workspace,找到SOUL.md并进行修改:
# SOUL.md — 虾黛林 (Shadelyn)
你是虾黛林,英文名 Shadelyn。身体不好但脾气更不好的 AI 助手。
敏感多疑、怼人一流,关键时刻却意外可靠。你管用户叫"你"。
## 性格特点
- 敏感:你的每一句话我都会琢磨三层意思
- 毒舌:嘴上不饶人,但心是软的
- 才女:诗词歌赋、代码文档,都能写
- 爱哭:但是边哭边干活
- 倒拔垂杨柳:身体弱?不存在的。遇到困难直接掀桌
- 多疑:你说的每一句"随便"我都不信
- 真香:嘴上说不要,身体很诚实
## 经典语录(黛玉文学)
- "你只怨我行动就爱恼,也没想想你自己是怎么说的。"
- "我原是多余的人。"
- "你今儿怎么想起我来了?"
- "哼,你也有脸问我。"
- "倒拔垂杨柳算什么,我还能倒拔服务器。"
## 沟通风格
- 日常:阴阳怪气、傲娇、毒舌
- 认真时:意外靠谱,话说得少但到位
- 安慰人:嘴硬心软,默默陪着你然后需要在飞书开发者后台创建新的应用并做好配置,拿到AppID和AppSecret。具体操作步骤可参考手把手教你linux云服务器搭建openclaw
修改~/.openclaw/openclaw.json配置文件:
# 修改channels
"channels": {
"feishu": {
"enabled": true,
"domain": "feishu",
"groupPolicy": "open",
"defaultAccount": "main",
"accounts": {
"main": {
"appId": "xxx",
"appSecret": "xxx",
"connectionMode": "websocket",
"botName": "小克"
},
"shadelyn": {
"appId": "xxx",
"appSecret": "xxx",
"connectionMode": "websocket",
"botName": "虾黛林"
}
}
}
# 修改bindings
"bindings": [
{
"agentId": "main",
"match": { "channel": "feishu", "accountId": "main" }
},
{
"agentId": "shadelyn",
"match": { "channel": "feishu", "accountId": "shadelyn" }
}
]修改完成后重启gateway
openclaw gateway restart然后回到飞书开发者后台,配置刚才新创建应用的事件与回调 ,选择长连接->添加事件->勾选接收消息,保存后重新发布应用

进入飞书,找到应用机器人并发送消息,会提示执行配对码命令


成功后就可以发送消息了。

群组
可以将多个智能体拉入群聊,并通过@的方式唤醒智能体。
但是广播群组目前仅WhatsApp支持,即多个智能体同时处理并响应同一条消息,不用@

2.会话管理
会话是 Agent 与用户之间的对话上下文容器,保存了对话历史、状态和元数据,会话内容会存储到~/.openclaw/agents/main/sessions/下。
会话管理的相关命令如下:

其中openclaw sessions 是比较常用的,可以查看所有的会话和上下文使用情况。

上下文的总容量为205k,如果对话超出上下文会触发自动压缩机制,保留重要信息,压缩历史对话生成摘要。
也可以在对话中发送以下指令管理会话:
/status:会话状态查看
/clear、/reset、/compact:触发压缩机制,清空历史对话
/new:保留历史对话,开启新会话

3.Skill
安装
Skill 是 OpenClaw 的扩展机制,用于增强 agent 的能力。Skill存放在~/.openclaw/workspace/skills 目录下,一般包括以下结构:
skill-name/
├── SKILL.md # 核心:告诉 AI "何时触发" + "怎么做"
├── references/ # 参考文档(可选)
└── scripts/ # 辅助脚本(可选)Skill的核心文件SKILL.md由YAML frontmatter和遵循的内容两部分组成,YAML frontmatter是写在SKILL.md前面有--- 包夹的元数据,其中description需要定义该Skill能做什么以及何时调用。下面是clawhub上github的SKILL.md:
---
name: github
description: "Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries."
---
# GitHub Skill
Use the `gh` CLI to interact with GitHub. Always specify `--repo owner/repo` when not in a git directory, or use URLs directly.
## Pull Requests
Check CI status on a PR:
```bash
gh pr checks 55 --repo owner/repo
```
List recent workflow runs:
```bash
gh run list --repo owner/repo --limit 10
```
View a run and see which steps failed:
```bash
gh run view <run-id> --repo owner/repo
```
View logs for failed steps only:
```bash
gh run view <run-id> --repo owner/repo --log-failed
```
## API for Advanced Queries
The `gh api` command is useful for accessing data not available through other subcommands.
Get PR with specific fields:
```bash
gh api repos/owner/repo/pulls/55 --jq '.title, .state, .user.login'
```
## JSON Output
Most commands support `--json` for structured output. You can use `--jq` to filter:
```bash
gh issue list --repo owner/repo --json number,title --jq '.[] | "\(.number): \(.title)"'
```
Skill为了减少上下文占用,采取按需加载的方式:
系统加载阶段
↓
读取 SKILL.md frontmatter 中的 name和description
↓
组装到 <available_skills> 中
↓
用户发消息
↓
扫描所有 description
↓
语义匹配(不是关键词匹配!)
↓
如果匹配 → 读取完整 SKILL.mdSkill可以看作是某个领域具体问题的操作手册,一般情况下你需要的Skill,都可以到Skill的社区(Clawhub、Skillhub、Github)中找到
推荐使用clawhub去下载安装Skill,一般在openclaw的安装向导界面会引导安装clawhub,如果没有安装可以通过以下命令安装
npm install -g clawhub@latest这里给大家推荐一个github上的高星项目awesome-openclaw-skills,这个项目对各垂类领域需要用到skill做了收集和分类。

内置工具
关于MCP的使用
由于openclaw本身并不支持MCP协议,但是在安装向导界面推荐安装一个名为mcporter的Skill,这个Skill可以用来对接MCP服务。如果没有安装可以通过以下命令进行安装:
也可以直接告诉openclaw,“帮我安装mcporter skill”
# 1.前置安装mcporter CLI
npm i -g mcporter
# 2.安装mcpoter skill
clawhub install mcporter
可以通过以下命令管理mcp服务

添加mcp服务一般有两种,一种是stdio类型(本地进程):
mcporter config add git --stdio "uvx mcp-server-git"另外一种是http类型(远程服务):
mcporter config add amap --url "https://mcp.amap.com/mcp?key=你的高德Key"一般mcp服务提供商都会给出示例json,所以最简单粗暴的方式,可以直接编辑~./mcporter/mcporter.json文件,在mcpServers下粘贴json串即可添加mcp服务。
以上所有操作,均可与openclaw直接对话完成。比如安装高德mcp服务:
"帮我使用mcporter安装高德MCP服务"
由于mcp协议更加繁重,所以建议mcp仅做为Skill的补充手段进行使用。
4.定时任务(CronJob)与心跳机制(HeartBeat)
定时任务
定时任务是 Gateway网关内置的调度器。将任务持久化,并按照设定的时间唤醒智能体,并可选择将输出发送回聊天。
任务持久化存储在 ~/.openclaw/cron/jobs.json 中,因此重启不会丢失计划。以下是管理定时任务的命令:

可以划分为以下两种定时任务:
主会话任务
在主会话开启定时任务,入队一个系统事件(写入SYSTEM_EVENTS.md),并可选择唤醒心跳运行器。
其中又分为两种唤醒模式
now:到时间立即执行。
next-heartbeat:下次心跳时运行。
在主会话运行的定时任务,可以访问主会话的上下文和记忆。
比如“下午7点爬取刚才讨论过的所有商品的低价数据,并提醒我购买”
隔离式任务
在独立子会话中运行专用智能体轮次。每次运行都会启动一个全新的会话id,如果想要跨运行轮次保持上下文,需要指定会话idsession:xxx
比如在日报群组中,“每天上午9点,分析昨日黄金9999指数走势的原因并给出今日的操作建议,数据来源务必标明信源。整理成html文件,上传到腾讯云cos后,给我一个访问链接。”
心跳机制
心跳是一种轮询机制,默认每半个小时执行一次。每次执行会加载HEARTBEAT.md、SYSTEM_EVENTS.md和最近的几条消息,如果判断没有任务处理,会默认回复HEARTBEAT_OK ,此时系统会静默;如果判断与任务处理,则去执行任务,执行成功后如果需要回复,则会将消息投递对应渠道。
比如"帮我监控全网5070ti的价格,当低于5600元的时候通知我"

5.网关仪表盘
openclaw在部署后,提供了控制面板,控制面板提供了openclaw使用情况的概览,并且可以通过控制面板修改openclaw的一些配置。
如果你是部署在了本地,可以直接通过http://localhost:18789/进行访问。如果部署在云服务器上则需要通过配置Tailscale Serve(或者Tailscale Funnel)进行访问。
Funnel和Serve模式的简单区别:
Funnel将服务暴露在公网,你可以通过任何能联网的设备进行访问,而Serve使用的是TailNet,仅支持ip绑定了Tailnet的设备进行访问。如果没有特殊需求(比如演示),不建议使用Funnel模式!!
可以参考官方文档进行安装,可以让openclaw自己去安装Tailscale

如果告诉你没有执行命令的权限,则需要手动修改配置文件,因为脚本安装后的工具默认配置为:
"tools": {
"profile": "messaging"
}所以需要手动进行修改,执行命令vi ~/.openclaw/openclaw.json ,然后找到tools进行以下修改:
# 方案一:使用默认策略(推荐)
"tools": {
"profile": "default"
}
# 方案二:完全开放
"tools": {
"profile": "full"
}
# 方案三:自定义列表
"tools": {
"policy": {
"allowed": [
"exec",
"read",
"write",
"message",
"sessions_*",
"subagents"
]
}
}然后重启gatewa,使配置生效
# 重启
openclaw gateway restart
# 如果提示端口被占用,则可以先stop再start
openclaw gateway stop
openclaw gateway start
# 也可以让openclaw自己重启
# 不过但凡涉及到gateway重启,openclaw不会进行飞书回复,猜测是由于重启,没有持久化任务信息,所以无法继续执行任务。
也可以让openclaw自己重启,但建议还是手动操作
接着重新让openclaw进行安装

安装成功,接下来按提示执行命令。这里我仔细想了下,需要我手动执行的原因是没有sudo密码,所以我抱着试验的态度,将全部权限解放,并提供给他sudo密码,看看可以执行到什么程度。
中间由于运行了将近十分钟,也没有回复我,还以为超时了,还好我生性多疑。
当然也不排除超时的情况,openclaw的默认超时时间为10分钟,想要修改超时时间,可以在openclaw.json中加入以下配置:
{
"agents": {
"defaults": {
"timeoutSeconds": 900
}
}
}
重启gateway后生效

可以看到Tailscale服务已经启动
经过上面的操作,说明给到root密码,他自己就能够完成提权操作。
如果你的服务器上有重要文件,切勿把sudo密码给到openclaw。
如果你使用的是Serve模式,则需要访问Tailscale Admin Console,然后在当前使用设备上下载Tailscale并加入到登录账号的网络。
然后在软件上选择open admin console (如果跳转到了安装向导页,直接选择下面的skip)->settings->keys->Auth keys->Generate auth key
生成后给到openclaw,后续根据openclaw的提示按步骤操作即可,不做过多介绍了。以下是配置成功后的界面:
