1、Windows安装Vmware虚拟机,安装Centos 7docker run -d \ --name openclaw \ --restart always \ -p 18789:18789 \ -v /root/.openclaw:/home/node/.openclaw \ -e HOST=0.0.0.0 \ -e OPENCLAW_GATEWAY_BIND=lan \ -e NODE_ENV=production \ 1panel/openclaw gateway --allow-unconfigured
为了安全,我们不建议直接在防火墙上把虚拟机的 18789 端口暴露给局域网。我们采用更优雅的 SSH 本地端口转发。ssh -L 18789:127.0.0.1:18789 root@192.168.2.129
浏览器输入http://127.0.0.1:18789 即可访问 OpenClaw 面板。cat /root/.openclaw/openclaw.json
默认业务空间下的API Key.可调用所有标准模型,以及默认业务空间内的应用。
简单说:就是不需要创建模型,创建完APIKEY就可以直接使用,在下面的脚本里面执行模型名称即可。
2、编辑 /root/.openclaw/openclaw.json,添加 models 和默认 agents 配置(venv_linux) [root@bigdata001 .openclaw]# cat openclaw.json{ "commands": { "ownerDisplay": "raw", "nativeSkills": "auto", "restart": true, "native": "auto" }, "meta": { "lastTouchedAt": "2026-03-03T11:20:25.645Z", "lastTouchedVersion": "2026.3.2" }, "models": { "providers": { "dashscope": { "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1", "apiKey": "上一步获取的API KEY", "api": "openai-completions", "models": [ { "id": "qwen-max", "name": "Qwen Max" }, { "id": "qwen-plus", "name": "Qwen Plus" }, { "id": "qwen-turbo", "name": "Qwen Turbo" } ] } } }, "agents": { "defaults": { "compaction": { "mode": "safeguard" }, "model": { "primary": "dashscope/qwen-plus" } } }, "gateway": { "controlUi": { "allowedOrigins": [ "http://192.168.2.129:18789", "http://127.0.0.1:18789" ] }, "bind": "lan", "auth": { "token": "1ebfcc44e37cdacba3f760260ab0065aa249a83c9c6134bd", "mode": "token" } }}(venv_linux) [root@bigdata001 .openclaw]#
"primary": "dashscope/qwen-plus"
mkdir -p /root/.openclaw/workspace/skills/ashare-quantcd /root/.openclaw/workspace/skills/ashare-quantchown -R 1000:1000 /root/.openclaw/workspace/skills/ashare-quant
cat << 'EOF' > SKILL.md---name: ashare_quantdescription: A-Share Quantitative Analysis Tool. 允许 AI 直接执行只读 SQL 查询本地 A股数据库 (quant_data),获取行情与基本面数据进行量化分析。---# A-Share Quantitative Analysis Tool你可以使用这个技能来执行本地 MySQL 8.0 数据库的查询。数据库名称为 `quant_data`,主要包含以下核心表:1. `market_daily_index` (大盘指数数据)2. `stock_daily_full` (个股日线全量数据)## 工具参数当你需要调用底层 `index.js` 时,请向其传递以下参数:- `sql_query` (string): 需要在 MySQL 中执行的合法 SELECT 语句。注意:为保护数据安全,仅允许执行 SELECT 操作。如果返回结果过多,请在 SQL 中使用 LIMIT 限制条数。EOF
cat << 'EOF' > index.jsconst mysql = require('mysql2/promise');async function run({ sql_query }) { // 安全拦截:禁止执行修改或删除操作 if (!sql_query.trim().toUpperCase().startsWith('SELECT')) { return JSON.stringify({ error: "安全限制:此技能仅支持 SELECT 查询以保护数据安全。" }); } let connection; try { // 这里使用你宿主机的网关 IP 172.17.0.1 或者容器名 mysql-single connection = await mysql.createConnection({ host: '172.17.0.1', user: 'root', password: 'XXXXXX', database: 'quant_data', port: 3306 }); const [rows] = await connection.execute(sql_query); // 如果结果太多,截断以防止撑爆 LLM 的上下文窗口 if (rows.length > 100) { return JSON.stringify({ warning: `查询结果过多 (${rows.length} 条),仅返回前 100 条供分析。`, data: rows.slice(0, 100) }); } return JSON.stringify({ data: rows }); } catch (error) { return JSON.stringify({ error: `数据库查询失败: ${error.message}` }); } finally { if (connection) await connection.end(); }}module.exports = { run };EOF
docker exec -it openclaw npm install mysql2 --prefix /home/node/.openclaw/workspace/skills/ashare-quant
请使用你的 ashare_quant 技能,帮我查询 quant_data 数据库。任务:去查一下 market_daily_index 表,按 trade_date 降序排列,只取最新的 5 个交易日的数据。请先构造并执行 SQL,然后告诉我:这 5 天里,哪一天的大盘收盘价(close)最高?哪一天的成交量(vol)最大?