Files
u-claw/website/tutorial.html
hfshfg 5dc204ab4e fix: 补全遗漏的 botToken 修复(config-server + 官网教程)
code review 发现三处漏修:
- fix(config-server/public/index.html): botToken → token,
  这是实际运行的配置页面,漏改会导致用户配置后仍然 401
- fix(website/tutorial.html): 示例 JSON botToken → token
- fix(website/guide.html): 示例 JSON botToken → token
  文档示例错误会导致用户手动配置时照抄出错

全仓库现已无 botToken 残留。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 10:04:24 +08:00

1112 lines
42 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>U-Claw 教程 - 从零到一搭建 AI 助手</title>
<meta name="description" content="U-Claw 完整教程:手工安装 OpenClaw、配置 AI 模型、接入聊天平台,小白也能看懂。">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--bg: #0a0a0f;
--surface: #12121a;
--surface2: #1a1a25;
--border: #2a2a3a;
--text: #e4e4e7;
--dim: #71717a;
--accent: #ef4444;
--accent2: #f97316;
--green: #22c55e;
--blue: #3b82f6;
--yellow: #eab308;
--purple: #a855f7;
--cyan: #06b6d4;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
background: var(--bg);
color: var(--text);
line-height: 1.7;
}
a { color: var(--accent2); text-decoration: none; }
a:hover { text-decoration: underline; }
code {
font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
background: var(--surface2);
padding: 2px 6px;
border-radius: 4px;
font-size: 0.9em;
}
pre {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 8px;
padding: 16px 20px;
overflow-x: auto;
font-size: 0.88em;
line-height: 1.6;
margin: 12px 0;
}
pre code { background: none; padding: 0; }
/* Layout */
.page { display: flex; min-height: 100vh; }
.sidebar {
width: 280px;
background: var(--surface);
border-right: 1px solid var(--border);
padding: 20px 0;
position: fixed;
top: 0;
left: 0;
bottom: 0;
overflow-y: auto;
z-index: 10;
}
.sidebar-logo {
padding: 10px 24px 20px;
font-size: 1.2em;
font-weight: 700;
background: linear-gradient(135deg, var(--accent), var(--accent2));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.sidebar-logo a {
background: linear-gradient(135deg, var(--accent), var(--accent2));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.nav-group { margin-bottom: 8px; }
.nav-group-title {
padding: 8px 24px;
font-size: 0.75em;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--dim);
font-weight: 600;
}
.nav-item {
display: block;
padding: 6px 24px 6px 32px;
color: var(--dim);
font-size: 0.9em;
transition: all 0.15s;
cursor: pointer;
border-left: 3px solid transparent;
}
.nav-item:hover {
color: var(--text);
background: rgba(255,255,255,0.03);
text-decoration: none;
}
.nav-item.active {
color: var(--accent2);
border-left-color: var(--accent2);
background: rgba(249, 115, 22, 0.05);
}
.content {
margin-left: 280px;
flex: 1;
max-width: 820px;
padding: 40px 48px 80px;
}
/* Typography */
h1 {
font-size: 2em;
font-weight: 700;
margin-bottom: 8px;
background: linear-gradient(135deg, var(--accent), var(--accent2));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
h1 + .subtitle { color: var(--dim); margin-bottom: 32px; font-size: 1.05em; }
h2 {
font-size: 1.5em;
font-weight: 600;
margin: 48px 0 16px;
padding-top: 24px;
border-top: 1px solid var(--border);
}
h2:first-of-type { border-top: none; margin-top: 24px; }
h3 { font-size: 1.15em; font-weight: 600; margin: 28px 0 12px; color: var(--accent2); }
h4 { font-size: 1em; font-weight: 600; margin: 20px 0 8px; }
p { margin: 8px 0; }
ul, ol { margin: 8px 0 8px 24px; }
li { margin: 4px 0; }
/* Components */
.badge {
display: inline-block;
padding: 2px 8px;
border-radius: 4px;
font-size: 0.75em;
font-weight: 600;
}
.badge-green { background: rgba(34,197,94,0.15); color: var(--green); }
.badge-blue { background: rgba(59,130,246,0.15); color: var(--blue); }
.badge-yellow { background: rgba(234,179,8,0.15); color: var(--yellow); }
.badge-red { background: rgba(239,68,68,0.15); color: var(--accent); }
.badge-purple { background: rgba(168,85,247,0.15); color: var(--purple); }
.tip, .warn, .danger {
padding: 12px 16px;
border-radius: 8px;
margin: 12px 0;
border-left: 4px solid;
font-size: 0.95em;
}
.tip { background: rgba(34,197,94,0.08); border-color: var(--green); }
.warn { background: rgba(234,179,8,0.08); border-color: var(--yellow); }
.danger { background: rgba(239,68,68,0.08); border-color: var(--accent); }
.steps { counter-reset: step; }
.step {
position: relative;
padding: 16px 0 16px 48px;
counter-increment: step;
}
.step::before {
content: counter(step);
position: absolute;
left: 0;
top: 16px;
width: 32px;
height: 32px;
background: linear-gradient(135deg, var(--accent), var(--accent2));
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 0.85em;
}
.step h4 { margin-top: 4px; }
table {
width: 100%;
border-collapse: collapse;
margin: 12px 0;
font-size: 0.92em;
}
th, td {
padding: 10px 14px;
border: 1px solid var(--border);
text-align: left;
}
th { background: var(--surface2); font-weight: 600; }
td { background: var(--surface); }
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 12px;
margin: 16px 0;
}
.card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 8px;
padding: 16px;
transition: border-color 0.2s;
}
.card:hover { border-color: var(--accent2); }
.card-title { font-weight: 600; margin-bottom: 4px; }
.card-desc { font-size: 0.88em; color: var(--dim); }
/* Mobile */
.menu-toggle { display: none; position: fixed; top: 12px; left: 12px; z-index: 20;
background: var(--surface); border: 1px solid var(--border); border-radius: 8px;
padding: 8px 12px; color: var(--text); cursor: pointer; font-size: 1.2em; }
@media (max-width: 768px) {
.sidebar { transform: translateX(-100%); transition: transform 0.3s; }
.sidebar.open { transform: translateX(0); }
.content { margin-left: 0; padding: 60px 20px 80px; }
.menu-toggle { display: block; }
}
</style>
</head>
<body>
<button class="menu-toggle" onclick="document.querySelector('.sidebar').classList.toggle('open')"></button>
<div class="page">
<nav class="sidebar">
<div class="sidebar-logo"><a href="index.html">🦞 U-Claw 教程</a></div>
<div class="nav-group">
<div class="nav-group-title">入门</div>
<a class="nav-item active" href="#intro">什么是 OpenClaw</a>
<a class="nav-item" href="#choose">选择安装方式</a>
</div>
<div class="nav-group">
<div class="nav-group-title">安装指南</div>
<a class="nav-item" href="#install-usb">方式 AU 盘安装</a>
<a class="nav-item" href="#install-script">方式 B一键脚本</a>
<a class="nav-item" href="#install-manual">方式 C手工安装</a>
</div>
<div class="nav-group">
<div class="nav-group-title">模型配置</div>
<a class="nav-item" href="#model-overview">模型选择指南</a>
<a class="nav-item" href="#model-deepseek">DeepSeek 配置</a>
<a class="nav-item" href="#model-kimi">Kimi 配置</a>
<a class="nav-item" href="#model-qwen">通义千问配置</a>
<a class="nav-item" href="#model-international">国际模型</a>
</div>
<div class="nav-group">
<div class="nav-group-title">聊天平台接入</div>
<a class="nav-item" href="#platform-qq">QQ 机器人</a>
<a class="nav-item" href="#platform-telegram">Telegram 机器人</a>
<a class="nav-item" href="#platform-feishu">飞书机器人</a>
<a class="nav-item" href="#platform-wechat">微信机器人</a>
<a class="nav-item" href="#platform-discord">Discord 机器人</a>
</div>
<div class="nav-group">
<div class="nav-group-title">日常使用</div>
<a class="nav-item" href="#usage">使用场景</a>
<a class="nav-item" href="#skills">技能系统</a>
<a class="nav-item" href="#cron">定时任务</a>
<a class="nav-item" href="#commands">命令速查</a>
</div>
<div class="nav-group">
<div class="nav-group-title">维护与进阶</div>
<a class="nav-item" href="#troubleshoot">故障排除</a>
<a class="nav-item" href="#multi-model">多模型与省钱</a>
<a class="nav-item" href="#vps">VPS 部署</a>
<a class="nav-item" href="#security">安全加固</a>
</div>
<div class="nav-group">
<div class="nav-group-title">附录</div>
<a class="nav-item" href="#config-ref">配置文件参考</a>
<a class="nav-item" href="#resources">社区资源</a>
</div>
</nav>
<main class="content">
<!-- ============================== -->
<!-- Part 1: 入门 -->
<!-- ============================== -->
<h1 id="intro">U-Claw 教程</h1>
<p class="subtitle">从零开始,搭建你的私人 AI 助手 —— 小白也能看懂</p>
<h2>什么是 OpenClaw</h2>
<p>OpenClaw 是一个<strong>开源 AI 助手框架</strong>,可以理解为:</p>
<div class="card-grid">
<div class="card">
<div class="card-title">🤖 AI 机器人</div>
<div class="card-desc">接入 QQ、飞书、Telegram 等 20+ 聊天平台</div>
</div>
<div class="card">
<div class="card-title">🧠 智能网关</div>
<div class="card-desc">调用 DeepSeek、Kimi、Claude 等 50+ AI 模型</div>
</div>
<div class="card">
<div class="card-title">🔧 全能助手</div>
<div class="card-desc">52+ 技能:发邮件、管日程、操作笔记、搜索</div>
</div>
<div class="card">
<div class="card-title">⏰ 自动化</div>
<div class="card-desc">设定时任务、自动执行工作流</div>
</div>
</div>
<h3>核心架构</h3>
<pre><code>你的聊天平台 ←→ OpenClaw Gateway ←→ AI 模型
(QQ/飞书/TG) (你的电脑) (DeepSeek/Kimi/Claude)
技能 &amp; 工具
(邮件/笔记/日程/搜索...)</code></pre>
<p><strong>U-Claw</strong> 是 OpenClaw 的便携版 —— 把整套系统做成 U 盘,插上就能用,还能安装到电脑。所有依赖走国内镜像,无需翻墙。</p>
<!-- ============================== -->
<!-- 选择安装方式 -->
<!-- ============================== -->
<h2 id="choose">选择安装方式</h2>
<table>
<tr>
<th>方式</th>
<th>适合谁</th>
<th>需要联网</th>
<th>难度</th>
<th>耗时</th>
</tr>
<tr>
<td><strong>A. U 盘安装</strong></td>
<td>完全小白</td>
<td>不需要</td>
<td><span class="badge badge-green">简单</span></td>
<td>2 分钟</td>
</tr>
<tr>
<td><strong>B. 一键脚本</strong></td>
<td>会用终端的用户</td>
<td>需要</td>
<td><span class="badge badge-green">简单</span></td>
<td>5 分钟</td>
</tr>
<tr>
<td><strong>C. 手工安装</strong></td>
<td>想深入理解的开发者</td>
<td>需要</td>
<td><span class="badge badge-yellow">中等</span></td>
<td>15 分钟</td>
</tr>
</table>
<!-- ============================== -->
<!-- Part 2: 安装指南 -->
<!-- ============================== -->
<h2 id="install-usb">方式 AU 盘安装 <span class="badge badge-green">推荐小白</span></h2>
<p>最简单的方式,不需要联网,不需要终端知识。</p>
<div class="steps">
<div class="step">
<h4>插入 U-Claw U 盘</h4>
<p>把 U-Claw U 盘插入电脑的 USB 口。</p>
</div>
<div class="step">
<h4>运行启动脚本</h4>
<ul>
<li><strong>Mac</strong>双击 <code>Mac-Start.command</code></li>
<li><strong>Windows</strong>双击 <code>Windows-Start.bat</code></li>
</ul>
<div class="tip">Mac 提示「未验证的开发者」?右键脚本 → 打开。</div>
</div>
<div class="step">
<h4>首次配置</h4>
<p>浏览器自动打开配置页面,选择 AI 模型、填入 API Key完成</p>
</div>
</div>
<h3>安装到电脑(可选)</h3>
<p>如果不想每次都插 U 盘:</p>
<ul>
<li><strong>Mac</strong>双击 <code>Mac-Install.command</code>,安装到 <code>~/.uclaw/</code></li>
<li><strong>Windows</strong>双击 <code>Windows-Install.bat</code>,安装到 <code>%USERPROFILE%\.uclaw\</code></li>
</ul>
<!-- ============================== -->
<h2 id="install-script">方式 B一键脚本安装</h2>
<p>需要联网,通过终端一行命令完成安装。</p>
<h3>Mac / Linux / WSL2</h3>
<pre><code>curl -fsSL https://openclaw.ai/install.sh | bash</code></pre>
<h3>Windows (PowerShell 管理员)</h3>
<pre><code>Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
iwr -useb https://openclaw.ai/install.ps1 | iex</code></pre>
<h3>验证安装</h3>
<pre><code>openclaw --version # 查看版本
openclaw onboard # 启动配置向导</code></pre>
<div class="tip">国内用户如果下载慢,脚本会自动检测并使用国内镜像。</div>
<!-- ============================== -->
<h2 id="install-manual">方式 C完全手工安装 <span class="badge badge-blue">开发者推荐</span></h2>
<p>一步一步手动安装,理解每个组件。适合想深入学习、或网络环境特殊的用户。</p>
<h3>第一步:安装 Node.js 22+</h3>
<p>OpenClaw 运行在 Node.js 上,需要 v22 或更高版本。</p>
<div class="tip"><strong>什么是 Node.js</strong>Node.js 是一个 JavaScript 运行环境。你不需要会写 JavaScript只需要安装它作为 OpenClaw 的运行基础。类似于「Java 程序需要 JDK」。</div>
<h4>方法 A官网下载最简单</h4>
<ul>
<li>国内直连:<a href="https://nodejs.cn/download/">nodejs.cn/download</a>(速度快)</li>
<li>官网:<a href="https://nodejs.org/en/download">nodejs.org/download</a></li>
</ul>
<p>下载 <code>.pkg</code>Mac<code>.msi</code>Windows安装包双击安装。</p>
<h4>方法 Bnvm 版本管理器(开发者推荐)</h4>
<pre><code># 1. 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
# 2. 设置国内镜像(关键!否则下载很慢)
echo 'export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node' >> ~/.zshrc
source ~/.zshrc
# 3. 安装 Node.js 22
nvm install 22
nvm use 22
# 4. 验证
node -v # 应显示 v22.x.x</code></pre>
<h4>方法 Cfnm更快基于 Rust</h4>
<pre><code># Mac/Linux
curl -fsSL https://fnm.vercel.app/install | bash
echo 'export FNM_NODE_DIST_MIRROR=https://npmmirror.com/mirrors/node' >> ~/.zshrc
source ~/.zshrc
fnm install 22
# Windows (PowerShell)
winget install Schniz.fnm
fnm install 22</code></pre>
<h3>第二步:设置 npm 国内镜像</h3>
<div class="warn"><strong>必须做!</strong>不换镜像的话,后续安装 OpenClaw 会超时失败。</div>
<pre><code># 设置淘宝 npmmirror首选最快最稳
npm config set registry https://registry.npmmirror.com
# 验证
npm config get registry
# 应返回: https://registry.npmmirror.com/</code></pre>
<table>
<tr><th>镜像源</th><th>地址</th><th>说明</th></tr>
<tr><td><strong>淘宝 npmmirror</strong></td><td><code>registry.npmmirror.com</code></td><td>⭐ 首选</td></tr>
<tr><td>腾讯云</td><td><code>mirrors.cloud.tencent.com/npm/</code></td><td>腾讯加速</td></tr>
<tr><td>华为云</td><td><code>mirrors.huaweicloud.com/repository/npm/</code></td><td>华为加速</td></tr>
</table>
<h3>第三步:安装 OpenClaw</h3>
<h4>方式 Anpm 安装(通用)</h4>
<pre><code># 全局安装
npm install -g openclaw@latest
# 如果超时,手动指定镜像
npm install -g openclaw@latest --registry=https://registry.npmmirror.com
# 验证
openclaw --version</code></pre>
<h4>方式 Bpnpm 安装(更快)</h4>
<pre><code># 如果没有 pnpm先安装
npm install -g pnpm
# 用 pnpm 安装 OpenClaw
pnpm add -g openclaw@latest
pnpm approve-builds -g
openclaw onboard --install-daemon</code></pre>
<h4>方式 C从源码构建开发者</h4>
<pre><code>git clone https://github.com/openclaw/openclaw.git
cd openclaw && pnpm install && pnpm ui:build && pnpm build
pnpm link --global
openclaw --version</code></pre>
<h3>常见安装问题</h3>
<div class="warn"><strong>sharp 构建失败?</strong>添加环境变量跳过本地编译:
<pre><code>SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install -g openclaw@latest</code></pre>
</div>
<div class="warn"><strong>找不到 openclaw 命令?</strong>PATH 未包含全局 bin 目录:
<pre><code># 添加到 ~/.zshrc 或 ~/.bashrc
export PATH="$(npm prefix -g)/bin:$PATH"
source ~/.zshrc</code></pre>
</div>
<div class="tip"><strong>Windows 用户建议:</strong>推荐使用 WSL2Windows Subsystem for Linux安装兼容性最好。原生 Windows 可能遇到路径和权限问题。</div>
<h3>第四步:启动配置向导</h3>
<pre><code># 推荐:启动向导 + 安装后台服务
openclaw onboard --install-daemon
# 或只启动向导
openclaw onboard</code></pre>
<p>向导会引导你完成:模型选择 → API Key → 聊天平台 → 后台服务。详见下方<a href="#model-overview">模型配置</a>章节。</p>
<h3>第五步:验证一切正常</h3>
<pre><code>openclaw status # 查看运行状态
openclaw doctor --repair # 诊断并修复问题
openclaw dashboard # 打开网页控制台</code></pre>
<div class="tip"><strong>安装完成!</strong>配置文件位于 <code>~/.openclaw/openclaw.json</code>,支持热重载(修改后自动生效)。</div>
<!-- ============================== -->
<!-- Part 3: 模型配置 -->
<!-- ============================== -->
<h2 id="model-overview">模型选择指南</h2>
<table>
<tr><th>模型</th><th>特长</th><th>价格</th><th>需翻墙</th><th>推荐场景</th></tr>
<tr><td><strong>DeepSeek</strong></td><td>编程、逻辑</td><td>~1元/百万token</td><td>不需要</td><td>⭐ 日常首选</td></tr>
<tr><td><strong>Kimi</strong></td><td>长文档 256K</td><td>中等</td><td>不需要</td><td>长文分析</td></tr>
<tr><td><strong>通义千问</strong></td><td>中文理解好</td><td>大量免费额度</td><td>不需要</td><td>免费体验</td></tr>
<tr><td><strong>智谱 GLM</strong></td><td>学术 NLP</td><td>有免费额度</td><td>不需要</td><td>学术场景</td></tr>
<tr><td><strong>Claude</strong></td><td>最强综合</td><td>较贵</td><td>需要</td><td>复杂推理</td></tr>
<tr><td><strong>GPT-4</strong></td><td>广泛兼容</td><td>较贵</td><td>需要</td><td>通用</td></tr>
</table>
<div class="tip"><strong>推荐:</strong>国内用户先选 DeepSeek注册即送免费额度API 直连无需翻墙。</div>
<h3>新手首次配置推荐</h3>
<p>如果你是第一次配置 AI 模型,以下模型<strong>配置最简单</strong>,适合入门:</p>
<table>
<tr><th>模型</th><th>配置难度</th><th>说明</th></tr>
<tr><td><strong>Kimi (月之暗面)</strong></td><td>⭐ 最简单</td><td>注册即用,向导直接选择</td></tr>
<tr><td><strong>智谱 GLM</strong></td><td>⭐ 简单</td><td>免费额度,配置直观</td></tr>
<tr><td><strong>通义千问 Qwen</strong></td><td>⭐ 简单</td><td>阿里云生态,免费额度大</td></tr>
<tr><td><strong>DeepSeek</strong></td><td>⭐⭐ 简单</td><td>需填 Custom Provider + Base URL</td></tr>
<tr><td><strong>腾讯混元</strong></td><td>⭐⭐ 中等</td><td>腾讯云生态</td></tr>
</table>
<div class="danger"><strong>注意:</strong>不建议新手使用淘宝等渠道购买的第三方 API Key。这类 Key 来源不明,调试困难,容易出问题。请直接到各模型官网注册获取。</div>
<!-- DeepSeek -->
<h2 id="model-deepseek">DeepSeek 配置 <span class="badge badge-green">国内首选</span></h2>
<div class="steps">
<div class="step">
<h4>注册账号</h4>
<p>访问 <a href="https://platform.deepseek.com/">platform.deepseek.com</a>,用手机号注册。</p>
</div>
<div class="step">
<h4>创建 API Key</h4>
<p>登录后进入控制台 → 左侧菜单「API Keys」→ 点击「创建 API Key」→ 复制保存。</p>
<div class="danger"><strong>注意:</strong>API Key 只显示一次!请立即复制保存到安全的地方。</div>
</div>
<div class="step">
<h4>在 OpenClaw 中配置</h4>
<p><strong>方式 A通过向导推荐</strong></p>
<pre><code>openclaw onboard
# 选择 Custom Provider
# Base URL: https://api.deepseek.com/v1
# API Key: 粘贴你的 Key
# Model: deepseek-chat</code></pre>
<p><strong>方式 B直接编辑配置文件</strong></p>
<pre><code># 编辑 ~/.openclaw/openclaw.json
{
"models": {
"providers": {
"deepseek": {
"baseUrl": "https://api.deepseek.com/v1",
"apiKey": "sk-你的Key",
"api": "openai-completions",
"models": [{
"id": "deepseek-chat",
"name": "DeepSeek Chat",
"contextWindow": 128000
}]
}
}
},
"agents": {
"defaults": {
"model": { "primary": "deepseek/deepseek-chat" }
}
}
}</code></pre>
</div>
<div class="step">
<h4>测试</h4>
<pre><code>openclaw gateway restart
openclaw tui
# 在终端中对话测试</code></pre>
</div>
</div>
<!-- Kimi -->
<h2 id="model-kimi">Kimi / 月之暗面 配置</h2>
<div class="steps">
<div class="step">
<h4>注册</h4>
<p>访问 <a href="https://platform.moonshot.cn/">platform.moonshot.cn</a>,注册账号。</p>
</div>
<div class="step">
<h4>获取 API Key</h4>
<p>控制台 → 开发者 → 创建密钥 → 复制保存。</p>
</div>
<div class="step">
<h4>配置</h4>
<pre><code>openclaw onboard
# 选择 Moonshot AI
# API Key: 粘贴你的 Key
# Model: moonshot-v1-128k或 moonshot-v1-8k</code></pre>
<p>或手动配置 Base URL<code>https://api.moonshot.cn/v1</code></p>
</div>
</div>
<!-- Qwen -->
<h2 id="model-qwen">通义千问 Qwen 配置 <span class="badge badge-purple">免费额度大</span></h2>
<div class="steps">
<div class="step">
<h4>注册阿里云</h4>
<p>访问 <a href="https://dashscope.console.aliyun.com/">dashscope.console.aliyun.com</a>,用支付宝一键登录。</p>
</div>
<div class="step">
<h4>开通 DashScope</h4>
<p>进入控制台 → 开通 DashScope 服务(免费)。</p>
</div>
<div class="step">
<h4>创建 API Key</h4>
<p>控制台 → API Key 管理 → 创建 → 复制保存。</p>
</div>
<div class="step">
<h4>配置</h4>
<pre><code>openclaw onboard
# 选择 Qwen
# API Key: 粘贴你的 Key</code></pre>
</div>
</div>
<!-- 国际模型 -->
<h2 id="model-international">国际模型Claude / GPT / Gemini</h2>
<div class="warn">国际模型 API 需要翻墙或使用中转站。推荐使用 <a href="https://openrouter.ai">OpenRouter</a> 统一管理。</div>
<h3>通过 OpenRouter推荐</h3>
<p>OpenRouter 汇聚了主流 AI 模型,一个 API Key 用所有模型,部分有免费额度。</p>
<div class="steps">
<div class="step">
<h4>注册 OpenRouter</h4>
<p>访问 <a href="https://openrouter.ai">openrouter.ai</a>GitHub 登录。</p>
</div>
<div class="step">
<h4>获取 API Key</h4>
<p>Keys → Create Key → 复制。</p>
</div>
<div class="step">
<h4>配置</h4>
<pre><code>openclaw onboard
# 选择 OpenRouter
# API Key: 粘贴
# Model: 选择你要用的模型</code></pre>
</div>
</div>
<h3>直连方式</h3>
<table>
<tr><th>模型</th><th>注册地址</th><th>Base URL</th></tr>
<tr><td>Claude</td><td><a href="https://console.anthropic.com/">console.anthropic.com</a></td><td>默认即可</td></tr>
<tr><td>OpenAI</td><td><a href="https://platform.openai.com/">platform.openai.com</a></td><td>默认即可</td></tr>
<tr><td>Gemini</td><td><a href="https://ai.google.dev/">ai.google.dev</a></td><td>默认即可</td></tr>
</table>
<!-- ============================== -->
<!-- Part 4: 聊天平台接入 -->
<!-- ============================== -->
<h2 id="platform-qq">QQ 机器人 <span class="badge badge-green">国内首选 · 1 分钟搞定</span></h2>
<p>腾讯官方已为 OpenClaw 开放 QQ 机器人能力。<strong>完全免费,无需翻墙。</strong></p>
<div class="steps">
<div class="step">
<h4>注册 QQ 机器人</h4>
<p>访问 <a href="https://q.qq.com">q.qq.com</a>,用 QQ 扫码登录。</p>
</div>
<div class="step">
<h4>创建机器人</h4>
<p>点击「创建机器人」→ 填写基本信息 → 获得 <strong>AppID</strong><strong>AppSecret</strong></p>
</div>
<div class="step">
<h4>安装 QQ 插件并配置</h4>
<pre><code># 安装 QQ 插件U-Claw 用户已预装,跳过此步)
openclaw plugins install @sliverp/qqbot@latest
# 绑定 QQ 机器人
openclaw channels add --channel qqbot --token "你的AppID:你的AppSecret"
# 设置白名单(重要!否则任何人都能用你的机器人)
openclaw config set channels.qqbot.allowFrom "你的QQ号"
# 重启生效
openclaw gateway restart</code></pre>
</div>
<div class="step">
<h4>测试</h4>
<p>在 QQ 中搜索你的机器人,私聊或 @机器人 发消息AI 就会回复。</p>
</div>
</div>
<div class="danger"><strong>安全提醒:</strong>一定要设置 <code>allowFrom</code> 白名单!默认是 <code>*</code>(任何人都能用),会消耗你的 API 额度。</div>
<!-- Telegram -->
<h2 id="platform-telegram">Telegram 机器人</h2>
<div class="steps">
<div class="step">
<h4>找到 BotFather</h4>
<p>在 Telegram 中搜索 <code>@BotFather</code>,点击开始对话。</p>
</div>
<div class="step">
<h4>创建机器人</h4>
<p>发送 <code>/newbot</code> → 按提示输入机器人名称和用户名 → 获得 <strong>Bot Token</strong>(格式:<code>123456:ABC-DEF...</code>)。</p>
</div>
<div class="step">
<h4>在 OpenClaw 中配置</h4>
<pre><code># 方式 A通过向导
openclaw onboard # 选择 Telegram输入 Token
# 方式 B命令行
openclaw channels add --channel telegram --token "你的BotToken"
openclaw gateway restart</code></pre>
</div>
<div class="step">
<h4>配对你的账号</h4>
<p>首次对机器人发消息时,会收到一个配对码。在终端运行:</p>
<pre><code>openclaw pairing approve telegram 配对码</code></pre>
</div>
<div class="step">
<h4>测试</h4>
<p>再次给机器人发消息,应该收到 AI 回复。</p>
</div>
</div>
<!-- 飞书 -->
<h2 id="platform-feishu">飞书机器人 <span class="badge badge-blue">企业推荐</span></h2>
<div class="steps">
<div class="step">
<h4>创建飞书应用</h4>
<p>访问 <a href="https://open.feishu.cn/app">open.feishu.cn/app</a> → 创建企业自建应用。</p>
</div>
<div class="step">
<h4>获取凭证</h4>
<p>在应用的「凭证与基础信息」页面,复制 <strong>App ID</strong><strong>App Secret</strong></p>
</div>
<div class="step">
<h4>配置权限</h4>
<p>进入「权限管理」,开启消息相关权限(接收消息、发送消息、获取用户信息等)。</p>
<div class="tip">飞书支持批量导入权限 JSON在 OpenClaw 文档中可找到完整权限列表。</div>
</div>
<div class="step">
<h4>配置事件订阅</h4>
<p>进入「事件订阅」→ 选择 WebSocket 模式(推荐,无需公网 IP</p>
</div>
<div class="step">
<h4>绑定到 OpenClaw</h4>
<pre><code>openclaw channels add --channel feishu --token "你的AppID:你的AppSecret"
openclaw gateway restart</code></pre>
</div>
<div class="step">
<h4>发布应用</h4>
<p>在飞书管理后台审核通过后,即可在飞书中使用。</p>
</div>
</div>
<!-- 微信 -->
<h2 id="platform-wechat">微信机器人 <span class="badge badge-yellow">社区插件</span></h2>
<pre><code># 安装微信插件(基于 iPad 协议)
openclaw plugins install @icesword760/openclaw-wechat
# 重启网关
openclaw gateway restart
# 按提示扫码登录微信</code></pre>
<div class="warn"><strong>注意:</strong>微信机器人基于社区开发的 iPad 协议,可能不稳定。建议用于个人测试,不要用于重要业务。</div>
<!-- Discord -->
<h2 id="platform-discord">Discord 机器人</h2>
<div class="steps">
<div class="step">
<h4>创建应用</h4>
<p>访问 <a href="https://discord.com/developers/applications">discord.com/developers/applications</a> → New Application。</p>
</div>
<div class="step">
<h4>创建 Bot</h4>
<p>左侧菜单 Bot → Add Bot → 复制 <strong>Bot Token</strong></p>
</div>
<div class="step">
<h4>邀请到服务器</h4>
<p>OAuth2 → URL Generator → 选择 <code>bot</code> 权限 → 生成链接 → 打开链接邀请到你的服务器。</p>
</div>
<div class="step">
<h4>配置</h4>
<pre><code>openclaw channels add --channel discord --token "你的BotToken"
openclaw gateway restart</code></pre>
</div>
</div>
<!-- ============================== -->
<!-- Part 5: 日常使用 -->
<!-- ============================== -->
<h2 id="usage">使用场景</h2>
<div class="card-grid">
<div class="card">
<div class="card-title">💻 编程助手</div>
<div class="card-desc">「帮我写一个 Python 爬虫」「这段代码有 bug 帮我看看」</div>
</div>
<div class="card">
<div class="card-title">✍️ 内容创作</div>
<div class="card-desc">「写一篇 AI 趋势文章」「总结这个链接的内容」</div>
</div>
<div class="card">
<div class="card-title">📧 办公自动化</div>
<div class="card-desc">「发邮件给 xxx」「提醒我明天 3 点开会」</div>
</div>
<div class="card">
<div class="card-title">🔍 信息查询</div>
<div class="card-desc">「今天深圳天气」「搜索 GitHub 上最新 AI 项目」</div>
</div>
</div>
<h2 id="skills">技能系统</h2>
<p>U-Claw 已预装 52 个技能,开箱即用。</p>
<table>
<tr><th>技能</th><th>用途</th><th>示例</th></tr>
<tr><td><code>github</code></td><td>GitHub 操作</td><td>「帮我看 #123 这个 Issue」</td></tr>
<tr><td><code>summarize</code></td><td>内容总结</td><td>「总结这个网页」</td></tr>
<tr><td><code>weather</code></td><td>天气查询</td><td>「今天北京天气」</td></tr>
<tr><td><code>himalaya</code></td><td>邮件管理</td><td>「帮我发邮件」</td></tr>
<tr><td><code>obsidian</code></td><td>笔记操作</td><td>「在 Obsidian 创建笔记」</td></tr>
<tr><td><code>coding-agent</code></td><td>编程委派</td><td>「帮我重构这个函数」</td></tr>
</table>
<pre><code># 搜索更多技能
openclaw skills search 翻译
# 安装新技能
openclaw skills install @xxx/skill-name</code></pre>
<h2 id="cron">定时任务</h2>
<pre><code># 每天早上 8 点发送天气预报
openclaw cron add "0 8 * * *" "查看今天深圳天气并发送到飞书"
# 每小时检查邮件
openclaw cron add "0 * * * *" "检查新邮件,有重要的通知我"
# 每天下午 6 点总结工作
openclaw cron add "0 18 * * *" "总结今天的工作进度"
# 查看所有定时任务
openclaw cron list</code></pre>
<h2 id="commands">命令速查</h2>
<table>
<tr><th>命令</th><th>用途</th></tr>
<tr><td><code>openclaw status</code></td><td>查看运行状态</td></tr>
<tr><td><code>openclaw dashboard</code></td><td>打开网页控制台</td></tr>
<tr><td><code>openclaw tui</code></td><td>终端对话模式</td></tr>
<tr><td><code>openclaw gateway restart</code></td><td>重启网关</td></tr>
<tr><td><code>openclaw gateway stop</code></td><td>停止网关</td></tr>
<tr><td><code>openclaw doctor --repair</code></td><td>诊断并修复</td></tr>
<tr><td><code>openclaw configure</code></td><td>重新配置</td></tr>
<tr><td><code>openclaw logs --follow</code></td><td>实时查看日志</td></tr>
<tr><td><code>openclaw plugins list</code></td><td>列出已安装插件</td></tr>
<tr><td><code>openclaw cron list</code></td><td>查看定时任务</td></tr>
</table>
<!-- ============================== -->
<!-- Part 6: 维护与进阶 -->
<!-- ============================== -->
<h2 id="troubleshoot">故障排除</h2>
<h3>"Node.js v22+ is required"</h3>
<pre><code># 检查当前版本
node -v
# 如果低于 v22升级
nvm install 22 # 如果用 nvm
fnm install 22 # 如果用 fnm
# 或从 nodejs.cn 下载最新版</code></pre>
<h3>npm install 超时</h3>
<pre><code># 设置淘宝镜像
npm config set registry https://registry.npmmirror.com
# 清除缓存重试
npm cache clean --force
npm install -g openclaw@latest</code></pre>
<h3>AI 不回复消息</h3>
<ol>
<li>检查 API Key 是否正确:<code>openclaw configure</code></li>
<li>检查网关是否在运行:<code>openclaw status</code></li>
<li>查看错误日志:<code>openclaw logs --follow</code></li>
<li>运行诊断:<code>openclaw doctor --repair</code></li>
</ol>
<h3>端口被占用</h3>
<pre><code># 查看谁占用了端口
# Mac/Linux:
lsof -i :18789
# Windows:
netstat -ano | findstr ":18789"
# 杀死进程后重启
openclaw gateway restart</code></pre>
<h3>sharp 构建失败</h3>
<pre><code># 跳过 sharp 本地编译
SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install -g openclaw@latest</code></pre>
<p><code>sharp</code> 是图片处理库,某些系统缺少编译工具会报错。上面的环境变量可跳过本地编译。</p>
<h3>找不到 openclaw 命令PATH 问题)</h3>
<pre><code># 查看全局 bin 目录
npm prefix -g
# 添加到 PATH写入 ~/.zshrc 或 ~/.bashrc
export PATH="$(npm prefix -g)/bin:$PATH"
source ~/.zshrc</code></pre>
<h3>Windows原生 vs WSL2</h3>
<p>原生 Windows 安装可能遇到路径、权限、编译工具问题。<strong>推荐使用 WSL2</strong></p>
<pre><code># 安装 WSL2管理员 PowerShell
wsl --install
# 然后在 WSL2 Ubuntu 中按 Mac/Linux 步骤安装</code></pre>
<h3>完全重置</h3>
<pre><code># 重置所有配置
openclaw reset --scope full
# 或手动删除
rm -rf ~/.openclaw # Mac/Linux
rd /s /q %USERPROFILE%\.openclaw # Windows</code></pre>
<h2 id="multi-model">多模型与省钱技巧</h2>
<ol>
<li><strong>日常对话</strong>用 DeepSeek~1元/百万 token复杂任务切 Claude</li>
<li><strong>OpenRouter</strong> 统一管理多个模型,一个 Key 用所有</li>
<li>为不同聊天平台配置不同模型QQ 用便宜的,工作飞书用好的)</li>
<li>善用<strong>免费额度</strong>通义千问、Gemini 都有大量免费额度</li>
</ol>
<h2 id="vps">VPS 部署24/7 在线)</h2>
<h3>推荐配置</h3>
<table>
<tr><th>配置</th><th>规格</th><th>价格参考</th></tr>
<tr><td>最低</td><td>1核 2GB</td><td>~50元/月</td></tr>
<tr><td>推荐</td><td>2核 4GB</td><td>~100元/月</td></tr>
</table>
<h3>Docker 一键部署</h3>
<pre><code>git clone https://github.com/openclaw/openclaw.git
cd openclaw
cp .env.example .env
# 编辑 .env填入 API Key 和 Bot Token
docker compose up -d</code></pre>
<h2 id="security">安全加固</h2>
<ul>
<li><strong>API Key 安全</strong>:不要在群聊中发送 API Key不要提交到 GitHub</li>
<li><strong>白名单</strong>:所有聊天平台务必设置 <code>allowFrom</code>,限制谁能用你的机器人</li>
<li><strong>Token 管理</strong>:定期轮换 Gateway Token 和 Bot Token</li>
<li><strong>网络安全</strong>Gateway 默认只监听 <code>127.0.0.1</code>,暴露到公网请配置反向代理 + HTTPS</li>
<li><strong>权限最小化</strong>:只给聊天平台必要的权限,不要开放所有权限</li>
</ul>
<!-- ============================== -->
<!-- 附录 -->
<!-- ============================== -->
<h2 id="config-ref">配置文件参考</h2>
<p>配置文件位置:<code>~/.openclaw/openclaw.json</code>U-Claw 用户:<code>U-Claw/data/.openclaw/openclaw.json</code></p>
<pre><code>{
"gateway": {
"mode": "local",
"port": 18789,
"bind": "127.0.0.1",
"auth": { "token": "你的Token" }
},
"models": {
"providers": {
"deepseek": {
"baseUrl": "https://api.deepseek.com/v1",
"apiKey": "sk-xxx",
"api": "openai-completions",
"models": [{ "id": "deepseek-chat", "contextWindow": 128000 }]
}
}
},
"agents": {
"defaults": {
"model": { "primary": "deepseek/deepseek-chat" }
}
},
"channels": {
"telegram": { "enabled": true, "token": "xxx:xxx" },
"qqbot": { "enabled": true, "appId": "xxx", "appSecret": "xxx" }
}
}</code></pre>
<div class="tip">配置文件支持<strong>热重载</strong>,修改后自动生效,无需重启网关。</div>
<h2 id="resources">社区资源</h2>
<table>
<tr><th>分类</th><th>项目</th><th>说明</th></tr>
<tr><td rowspan="2"><strong>U-Claw</strong></td><td><a href="https://u-claw.org">U-Claw 官网</a></td><td>下载、文档、技能市场</td></tr>
<tr><td><a href="https://github.com/dongsheng123132/u-claw">GitHub</a></td><td>源码、Issue、Release</td></tr>
<tr><td rowspan="2"><strong>上游</strong></td><td><a href="https://github.com/openclaw/openclaw">OpenClaw 官方</a></td><td>上游仓库</td></tr>
<tr><td><a href="https://github.com/openclaw/clawhub">ClawHub</a></td><td>官方技能市场</td></tr>
<tr><td rowspan="3"><strong>教程</strong></td><td><a href="https://github.com/datawhalechina/hello-claw">hello-claw</a></td><td>Datawhale 体系化入门教程</td></tr>
<tr><td><a href="https://github.com/yeuxuan/openclaw-docs">openclaw-docs</a></td><td>276 篇源码级深度文档</td></tr>
<tr><td><a href="https://github.com/VoltAgent/awesome-openclaw-skills">awesome-openclaw-skills</a></td><td>社区精选技能合集</td></tr>
<tr><td><strong>社区教程</strong></td><td><a href="https://docs.openclaw.ai/zh-CN/install">官方安装手册(中文)</a></td><td>OpenClaw 官方中文安装文档,含 pnpm、源码构建等</td></tr>
<tr><td rowspan="2"><strong>工具</strong></td><td><a href="https://github.com/NapNeko/NapCatQQ">NapCatQQ</a></td><td>QQ 机器人框架(备选)</td></tr>
<tr><td><a href="https://github.com/icesword0760/openclaw-wechat">openclaw-wechat</a></td><td>微信接入插件</td></tr>
</table>
<div style="margin-top:60px; padding-top:24px; border-top:1px solid var(--border); color:var(--dim); font-size:0.88em;">
<p>本教程由 <a href="https://u-claw.org">U-Claw</a> 社区维护 · <a href="https://github.com/dongsheng123132/u-claw">GitHub</a> · 欢迎 PR 完善内容</p>
</div>
</main>
</div>
<script>
// Sidebar active state
document.querySelectorAll('.nav-item').forEach(item => {
item.addEventListener('click', () => {
document.querySelectorAll('.nav-item').forEach(i => i.classList.remove('active'));
item.classList.add('active');
// Close mobile sidebar
document.querySelector('.sidebar').classList.remove('open');
});
});
// Scroll spy
const sections = document.querySelectorAll('h2[id], h3[id]');
const navItems = document.querySelectorAll('.nav-item[href^="#"]');
window.addEventListener('scroll', () => {
let current = '';
sections.forEach(section => {
if (window.scrollY >= section.offsetTop - 100) {
current = section.getAttribute('id');
}
});
navItems.forEach(item => {
item.classList.remove('active');
if (item.getAttribute('href') === '#' + current) {
item.classList.add('active');
}
});
});
</script>
</body>
</html>