OpenClaw搭建私人助理实践
摘要
本文整理 OpenClaw 私人助理的本地安装、模型配置、飞书集成、控制台运行、Skills 安装与自定义量化技能开发流程。重点说明 OpenClaw 的工作区、配置文件、技能匹配机制和常见问题,方便后续搭建自己的 AI 助理或领域 Agent。
OpenClaw搭建私人助理实践
写在前面
OpenClaw 可以理解为一个本地运行的 AI Agent 框架。它把模型、工具、工作区、记忆文件和 Skills 组织在一起,让大模型不只是聊天,而是可以根据用户意图调用脚本、读写文件、连接飞书或网页控制台,完成相对完整的任务。
这篇文章的目标是搭建一个可运行的私人助理,并进一步扩展成一个量化交易 AI 同事。整体思路是先把 OpenClaw 本地网关跑起来,再配置模型和工作区,最后通过 Skills 把数据获取、技术指标计算和策略回测封装成可调用能力。

从工程角度看,OpenClaw 的关键不是界面,而是工作流。用户发出自然语言请求后,Gateway 把消息转给 Agent;Agent 根据系统提示、工具列表和 Skill 描述决定下一步;如果需要执行能力,就通过 exec 调用工作区中的脚本;脚本返回 JSON 后,再由模型整理成自然语言。
一、安装前准备
OpenClaw 在 Windows 上运行时,最容易出问题的是 Node、npm、Git Bash 和环境变量。因此安装前先检查基础环境。
组件 | 作用 | 验证命令 |
|---|---|---|
Node.js | 运行 OpenClaw、安装依赖、构建项目 |
|
npm | 安装 Node 依赖、执行构建命令 |
|
Git for Windows | 克隆源码,并提供 Git Bash |
|
Git Bash | 执行项目中的 Bash 构建脚本 |
|
PowerShell | 执行安装、配置、启动命令 | Windows 默认提供 |
Node.js 建议安装 LTS 版本。安装时需要勾选添加到 PATH,否则后续 npm install 和 npm link 可能失败。
Git for Windows 的重点不是版本控制本身,而是它附带的 bash.exe。OpenClaw 的部分构建脚本依赖 Bash 环境,如果 npm 不知道用哪个 shell 执行脚本,就容易出现构建失败。
安装完成后,用下面的命令做一次快速检查。
如果 where.exe bash 找不到路径,需要确认 Git for Windows 是否安装完整,或者手动把 Git Bash 加入环境变量。
二、源码安装 OpenClaw
2.1 克隆源码
进入准备放置项目的目录,执行:
2.2 配置 npm 使用 Git Bash
这是 Windows 环境下比较关键的一步。OpenClaw 构建过程会执行 .sh 脚本,因此需要让 npm 使用 Git Bash。
如果 Git 安装在默认路径,可以改成:
2.3 安装依赖、构建、全局链接
npm install 会安装大量依赖,第一次执行需要等待。npm run build 会生成运行所需的构建文件。npm link 的作用是把 openclaw 注册成全局命令,后续才能直接在 PowerShell 中使用。
验证安装:
如果提示 openclaw 命令无法识别,优先检查 npm link 是否执行成功。
三、初始化配置
3.1 启动 Onboarding
OpenClaw 第一次运行需要初始化网关、工作区、模型和认证方式。
建议选择:
配置项 | 建议值 | 说明 |
|---|---|---|
Security | Yes | 确认理解安全提示 |
Onboarding mode | Manual | 手动配置,便于理解每个参数 |
Setup | Local gateway | 在本机运行网关 |
Workspace |
| Agent 实际工作目录 |
Model/auth provider | Qwen | 使用通义千问或 DashScope 兼容接口 |
3.2 网关基础配置
本地个人助理建议先使用回环地址,只允许本机访问。
配置项 | 建议值 |
|---|---|
Port |
|
Bind |
|
Auth | Token |
启动后如果看到类似下面的输出,说明网关已经监听成功。
四、模型配置
OpenClaw 可以通过 OpenAI 兼容接口接入 DashScope。主配置文件通常位于:
新版配置不再使用 models.default、models.flash、agents.quant-analyst 这类扁平结构,而是使用 models.providers 和 agents.list。
一个更清晰的配置结构如下。
这里有三个点需要注意。
配置项 | 含义 |
|---|---|
| 定义 DashScope 作为模型供应商 |
| Agent 的唯一标识,例如 |
| 当前 Agent 需要加载的技能名 |
如果页面或网关报 API Key 错误,可以先在当前 PowerShell 中临时设置环境变量。
更稳定的方式是写入用户级环境变量,或者在:
中保存全局环境变量。需要注意,OpenClaw 会优先读取当前工作目录下的 .env,然后读取全局 ~/.openclaw/.env。如果启动目录不对,项目根目录 .env 可能不会被加载。
五、飞书与 Control UI
5.1 飞书集成
如果需要在飞书群里使用助理,需要安装飞书插件。
配置时重点填写:
配置项 | 说明 |
|---|---|
Channels | 选择 Feishu/Lark |
App ID | 飞书开放平台应用 ID |
App Secret | 飞书应用密钥 |
Domain | 国内版选择 |
Group policy | 一般选择 Open,群里 @ 机器人后响应 |
飞书开放平台需要开启机器人能力,事件订阅方式选择长连接,并授予消息和基础用户信息权限,例如 im:message、im:chat、contact:user.base:readonly。
5.2 构建 Control UI
如果启动时提示 Control UI assets missing,说明网页控制台没有构建好。进入 ui 目录手动构建。
构建完成后,网页文件会出现在:
5.3 启动和使用
启动网关:
打开控制面板:
浏览器会打开类似地址:
常见使用方式有三种。
方式 | 场景 |
|---|---|
Control UI | 本地网页聊天和调试 |
飞书群聊 | 把私人助理接入日常 IM |
WebSocket API | 通过 |
六、常见安装问题
安装和配置阶段常见问题如下。

我实际更关注下面几类问题。
问题 | 根因 | 处理方式 |
|---|---|---|
| 未执行或未成功执行 | 重新执行 |
| 插件安装时找不到 npm | 手动执行 |
| UI 没有构建 | 进入 |
| 模型 ID 格式错误 | 使用 |
| 配置文件逗号或括号错误 | 检查 |
| API Key 无效或模型未授权 | 检查 DashScope 控制台 |
七、Skills 的基本概念
OpenClaw 中的 Skills 是模块化能力包。它不是单纯的函数,而是“能力说明 + 执行脚本 + 资源文件”的组合。它的作用是把通用模型变成某个领域的助手。
一个标准 Skill 通常长这样。
SKILL.md 是核心文件。它包含 YAML 元数据和 Markdown 执行说明。
Skills 的关键机制是渐进式披露。系统启动时不会把所有技能正文都塞进上下文,而是先加载很短的元数据和描述。当模型判断某个技能可能有用时,再读取完整 SKILL.md。这样可以节省 Token,也方便维护复杂能力。
Skills 和 Tools 的区别在于:
类型 | 本质 | 作用 |
|---|---|---|
Skill | 专业能力包 | 告诉 Agent 如何处理某类任务 |
Tool | 可执行函数或系统能力 | 提供明确输入输出和副作用 |
简单说,Skill 更像岗位 SOP,Tool 更像具体按钮或接口。
八、Skills 的安装、查找和加载
8.1 工作区很重要
OpenClaw 涉及三个目录。
目录 | 作用 |
|---|---|
| 系统目录,存放全局配置、日志、内置资源 |
| Agent 工作区,Skills 通常从这里加载 |
启动目录 | 执行 |
最容易踩坑的是:Skill 不是从下载位置直接加载,而是从 Agent 配置的 workspace 加载。也就是说,即使你已经用 clawhub 安装了技能,如果它没有出现在当前 Agent 的工作区,Agent 仍然可能看不到。
8.2 安装 Skill
先安装 clawhub。
搜索技能:
安装到全局:
默认路径通常是:
如果 Agent 实际工作区是 ~/.openclaw/workspace,需要复制到:
验证:
修改或新增 Skill 后,需要重启网关。
九、Skill 调用链路
以“获取贵州茅台 600519.SH 最近 3 天日线”为例,完整链路如下。

实际过程可以拆成五步。
步骤 | 说明 |
|---|---|
1 | 用户在网页或飞书发送消息 |
2 | Gateway 将消息转给 |
3 | Agent 根据 Skill 描述判断使用 |
4 | Agent 通过 |
5 | 脚本输出 JSON,模型整理成自然语言 |
对应执行命令是:
这里最重要的是 description 字段。OpenClaw 的技能匹配不是简单关键词匹配,而是依赖 LLM 理解用户请求和 Skill 描述之间的关系。因此,description 要写清楚触发条件、正确命令和禁止行为。
十、量化交易 AI 同事
这里构建三个量化相关 Skills:数据获取、技术指标、策略回测。
三个技能的分工如下。

Skill | 作用 | 输入 | 输出 |
|---|---|---|---|
| 获取 A 股 K 线 | 股票代码、周期、条数 | K 线 JSON |
| 计算技术指标 | 指标名、股票代码或 CSV | 指标 JSON |
| 运行策略回测 | 股票代码、日期范围、策略名 | 回测绩效 JSON |
10.1 akshare-kline:获取 K 线数据
这个 Skill 的职责很单一:通过 AkShare 获取 A 股 K 线数据,并以 JSON 返回。用户可以说“获取贵州茅台最近 3 天日线”,Agent 需要转换成脚本命令。
SKILL.md 的重点是把正确执行方式写死。
脚本核心逻辑如下。
执行效果如下。用户只需要输入自然语言,Agent 最终会调用脚本并返回结构化结果。

10.2 talib:计算技术指标
talib 技能用于计算 SMA、EMA、MACD、RSI、ATR、BBANDS 等技术指标。它可以从 AkShare 获取股票数据,也可以读取 CSV。
调用示例:
脚本设计上适合用注册表模式。新增指标时,只需要往 INDICATORS 增加一项。
输出不建议返回全部序列。可以截取最后 30 条,同时给出 last_values,方便模型总结当前指标状态。

10.3 backtrader:策略回测
backtrader 技能用于运行策略回测。它可以从 MySQL 的 trade_stock_daily 表加载数据,也可以使用 AkShare 作为数据来源。支持策略包括 double_ma、macd、rsi、bbands、momentum。
调用示例:
以双均线策略为例,核心逻辑是短均线上穿长均线买入,短均线下穿长均线卖出。
回测流程如下。
回测输出应包含总收益率、年化收益率、最大回撤、夏普比率、交易次数和胜率。

这里要注意,Agent 只负责调度。真正的量化逻辑应写在 Python 脚本里。模型负责理解用户请求、选择技能、拼接参数、执行脚本和解释结果;策略计算、数据加载、回测指标必须由确定性代码完成。
十一、技能看不到怎么办
如果对话时 Agent 看不到 akshare-kline、talib、backtrader,通常不是模型问题,而是工作区和配置问题。
优先检查四件事。
检查项 | 说明 |
|---|---|
Skill 是否在工作区 |
|
|
|
当前 Agent 是否正确 | Dashboard 是否切到 |
Gateway 是否重启 | 修改配置或 Skill 后必须重启 |
同步命令示例:
几个常见问题也要提前处理。
问题 | 处理方式 |
|---|---|
| 改用工作区相对路径 |
AI 反复执行 | 在 |
Windows 没有 |
|
| 把 API Key 写入全局 |
backtrader 找不到数据库配置 | 在技能目录增加 |
十二、如何新增一个 Skill
新增 Skill 可以按固定流程执行。

假设新增一个 stock-screener 选股技能,目录结构如下。
SKILL.md 可以这样写。
然后在 openclaw.json 中注册。
最后同步到工作区,重启 Gateway,通过自然语言测试。
十三、工作空间文件
OpenClaw 的私人助理不仅由模型和技能组成,还依赖一组工作空间文件。这些文件定义身份、规则、用户偏好、长期记忆和工具信息。

几个核心文件的职责如下。
文件 | 作用 | 写法原则 |
|---|---|---|
| 定义性格、语气、价值观 | 只写“你是谁”,不要写流程 |
| 定义规则、工作流、红线 | 相当于员工手册 |
| 定义名字、头像、外在形象 | 简洁,3-5 行即可 |
| 用户画像和沟通偏好 | 写稳定信息,不写临时任务 |
| 长期记忆蒸馏结果 | 定期整理,避免无限增长 |
| 工具路径、API、环境信息 | 只写在哪里,不写怎么做 |
| 首次初始化引导 | 完成后删除 |
加载顺序可以理解为:先注入身份和规则,再读取用户画像和记忆,最后按需加载 Skills。需要注意 Token 消耗。MEMORY.md 和其他长期文件不能写成流水账,否则每次会话都会浪费上下文。
小结
搭建 OpenClaw 私人助理的核心步骤是:
从个人使用角度看,OpenClaw 的价值在于把大模型变成可持续扩展的工作台。模型负责理解意图和组织流程,Skills 负责封装领域能力,Python 脚本负责确定性执行。对于量化交易这种任务,数据获取、指标计算和回测都应该落在脚本里,模型只做调度和解释。
后续如果继续扩展,可以优先做三件事:整理稳定的 AGENTS.md 和 USER.md,把常用任务封装成 Skills,把所有脚本输出统一为 JSON。这样私人助理才不是一次性聊天窗口,而是一个可以长期维护的个人工作系统。
