国内网络环境 · 零基础 · 两章约 50 分钟
本教程为 上海市黄浦区数据局 AI 应用培训编写

从一台空白电脑
到你自己的 AI 产品

假设你的电脑从没装过 Node.js,也没装过任何 npm 包。 第一章把 OpenClaw 装好、配上 DeepSeek、接进飞书和微信; 第二章用 DeepSeek Harness,写一页需求让 AI 直接做出一个能跑的应用。 全程国内直连,不需要梯子。Mac、Windows、Linux 都能用。

我的系统
第一章 约 30 分钟

装好 OpenClaw,接上模型和聊天软件

从一台什么都没装过的电脑开始,把 OpenClaw 跑起来, 配上 DeepSeek 模型,再接进飞书或微信,让它变成你手机里随时能找的助手。

只需一件事
换掉 npm 的下载源
OpenClaw 的全部依赖都在 npm 仓库里,没有一个要去 GitHub 下二进制。 所以换个源就够了,网上教你配一堆环境变量的都是多余的。
最容易卡住
Node.js 版本挑得很刁
不是「22 以上就行」。22.22.3 到 23 之间、24.15 到 25 之间、25.9 以上才可以, 中间几段是装不上的。照本文装 26.7.0 最省事。
别装错包
认准 openclaw
网上流传的 openclaw-cn 是第三方分支,默认装到的是 2026 年 2 月的版本, 落后官方半年多。详见文末对比。
01

装 Node.js(npm 会一起装好)

OpenClaw 是跑在 Node.js 上的程序,而 npm 是 Node.js 自带的, 装完 Node.js 就同时有了 npm。所以这一步做完,你的电脑就具备装任何 npm 包的能力了 —— 不需要 Homebrew,不需要 nvm,什么前置条件都不用。

下载 Node.js 26.7.0 for macOS node-v26.7.0.pkg · 98.9 MB

这一个文件同时支持 Apple 芯片(M1/M2/M3/M4)和 Intel 芯片,不用区分。 下载完双击打开,一路点「继续」到底,中途会要你输入开机密码。

下载 Node.js 26.7.0 for Windows node-v26.7.0-x64.msi · 34.7 MB

绝大多数 Windows 电脑用上面这个 64 位版本。如果你的电脑是骁龙/ARM 处理器(少数轻薄本), 改用 ARM64 版本(30.6 MB)。 下载完双击打开,一路点「Next」, 其中有一个 “Automatically install the necessary tools” 的勾选框,不要勾, 勾了会额外下载一大堆编译工具,很慢而且用不上。

别用 apt

不要用 apt install nodejs 或 dnf install nodejs 装。 主流发行版仓库里自带的 Node 普遍还停在 18 左右, 远低于 OpenClaw 要求的 22.22.3,装完也是白装。 官方的 NodeSource 源在国内又很慢。下面这套办法不依赖发行版、不需要 root, 任何 Linux 都通用。

先看清楚自己是什么架构,把这行粘进终端:

看架构
uname -m

输出 x86_64 就是常规服务器/电脑, 输出 aarch64 就是 ARM(树莓派、ARM 云主机)。 按结果选下面对应的一组命令,整段一起粘进去就行。

x86_64 用这组
# 从国内镜像下载并解压到用户目录,全程不需要 root
curl -fsSL -o /tmp/node.tar.xz \
  https://cdn.npmmirror.com/binaries/node/v26.7.0/node-v26.7.0-linux-x64.tar.xz

mkdir -p ~/.local/node
tar -xJf /tmp/node.tar.xz -C ~/.local/node --strip-components=1

# 加进 PATH,让终端能找到 node 命令
echo 'export PATH=$HOME/.local/node/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
aarch64 / ARM 用这组
curl -fsSL -o /tmp/node.tar.xz \
  https://cdn.npmmirror.com/binaries/node/v26.7.0/node-v26.7.0-linux-arm64.tar.xz

mkdir -p ~/.local/node
tar -xJf /tmp/node.tar.xz -C ~/.local/node --strip-components=1

echo 'export PATH=$HOME/.local/node/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
好处

装在自己的家目录下有个额外的好处:后面 npm install -g 装东西时 永远不会遇到权限报错,因为这个目录本来就是你的。 Mac 用户在第 04 步常踩的那个坑,Linux 这样装就直接绕过去了。

如果你用的是 zsh 而不是 bash,把上面两处 ~/.bashrc 改成 ~/.zshrc。不确定的话跑 echo $SHELL 看一眼。

为什么

这个下载链接指向 cdn.npmmirror.com, 是国内镜像自己的 CDN,不是 nodejs.org。所以下载速度是正常的国内速度, 不需要挂任何工具。

为什么

这个下载链接指向 cdn.npmmirror.com, 是国内镜像自己的 CDN,不是 nodejs.org。所以下载速度是正常的国内速度, 不需要挂任何工具。

02

打开终端,确认装好了

按 Command + 空格 打开搜索框,输入「终端」,回车。 会弹出一个黑色或白色的窗口,可以打字 —— 这就是终端。

按 Win 键,直接输入「PowerShell」, 在搜索结果里点「Windows PowerShell」打开。 会弹出一个蓝色或黑色的窗口 —— 这就是终端。

你在第 01 步就一直在终端里了,直接往下做。 (最后那句 source ~/.bashrc 已经让当前窗口生效了, 不用重开。)

重要

如果你在装 Node.js 之前就开着终端窗口, 现在必须关掉重新开一个,否则终端不认识新装的命令。

重要

如果你在装 Node.js 之前就开着终端窗口, 现在必须关掉重新开一个,否则终端不认识新装的命令。

把下面这两行原样粘进终端,按回车:

检查安装结果
node -v
npm -v
看到类似这样就成功了
v26.7.0
11.11.0

第一行是 Node.js 版本,第二行是 npm 版本(数字不一定和上面完全一样,正常)。 如果提示「找不到命令」或 command not found, 去报错排查看第一条。

版本合不合格?贴进来看看
如果你的电脑以前就装过 Node.js,版本很可能落在 OpenClaw 不支持的区间里。 把上面第一行的结果粘进来验一下。
合格区间:22.22.3 ≤ v < 23 | 24.15.0 ≤ v < 25 | v ≥ 25.9.0
仅 Linux

Linux 上还有两个 Mac 和 Windows 完全不存在的前置条件, 建议现在就查一下,否则会在后面报出很难看懂的错。

Linux 环境自检
# 1. 系统的 glibc 版本,必须 ≥ 2.28
ldd --version | head -1

# 2. libatomic 运行库,Node 25 以上必须有
ldconfig -p | grep libatomic
第一条要看到 2.28 或更大的数字,第二条要有输出
ldd (GNU libc) 2.35
        libatomic.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libatomic.so.1

glibc 小于 2.28(常见于 CentOS 7)的话,官方 Node 二进制在这台机器上根本跑不起来, 只能换系统。Ubuntu 20.04 以上、Debian 10 以上、RHEL/CentOS 8 以上都没问题。

第二条没有任何输出说明缺 libatomic,装一下就行:

补装 libatomic
# Debian / Ubuntu
sudo apt update && sudo apt install -y libatomic1

# RHEL / CentOS / Fedora / openEuler
sudo dnf install -y libatomic
03

把 npm 换成国内源

这是整篇教程最关键的一行命令。不做这一步, 下一步装 OpenClaw 会卡在几百 MB 的下载上动不了。

换源
npm config set registry https://registry.npmmirror.com

粘进终端回车,没有任何输出就是成功了。想确认的话再跑一句:

确认换源成功
npm config get registry
应该输出
https://registry.npmmirror.com/
只此一步

很多教程还会让你设置 SHARP_IGNORE_GLOBAL_LIBVIPS、 配 binary 镜像、装编译工具链。对现在的 OpenClaw 这些全都不需要 —— 它的依赖树里没有任何一个包会去 GitHub 下二进制,也没有需要现场编译的。 多做那些步骤不会更快,只会引入新问题。

04

安装 OpenClaw

源换好了,现在真正装 OpenClaw。这一步要下载约 20 MB 的包并解压出 87 MB 的文件, 走国内源大概一两分钟。

安装
npm install -g openclaw@latest

过程中会滚动一大堆文字,只要最后没有红色的 ERR! 就是成功。 装完验证一下:

确认装好了
openclaw --version
会输出版本号,例如
2026.7.1-2
Mac

如果这一步报 EACCES 或 permission denied,是权限问题, 排查区第二条有解法。 先别急着用 sudo,那会留下后患。

npm 12+

如果第 02 步里 npm -v 显示的是 12 或更高版本, 改用下面这条命令装。npm 12 默认会拦截安装脚本,不加这个参数会漏掉插件初始化。

仅 npm 12 及以上需要
npm install -g openclaw@latest --allow-scripts openclaw
05

启动配置向导

最后一步,运行配置向导。它会一步步问你要接哪个 AI 模型、绑哪个聊天渠道, 按方向键选、回车确认。

开始配置
openclaw onboard --install-daemon

--install-daemon 的作用是让 OpenClaw 开机自启, 这样你不用每次手动开。不想要的话去掉这个参数就行。

服务器必看

Linux 上的自启是通过 systemd 用户服务实现的。 systemd 用户服务有个默认行为:你一断开 SSH,它就把服务停掉了。 如果这是台你要挂着长期跑的服务器,必须再执行一次下面这行, 否则退出登录 OpenClaw 就没了。

让服务在登出后继续跑
sudo loginctl enable-linger $USER

执行完可以用 systemctl --user status 看服务状态。桌面版 Linux 一直登录着的话,这一步可以不做。

配置完之后,常用的三条命令:

日常使用
# 体检,配置有问题会告诉你哪里不对
openclaw doctor

# 看运行状态
openclaw status

# 打开网页版管理界面
openclaw dashboard
基础装完了

OpenClaw 本体到这里就装好了。但它现在还没有大脑,也还没接上聊天软件 —— 继续往下做第 06 步配 DeepSeek 模型, 然后按需接入飞书或微信。

06

配 DeepSeek —— 国内直连的模型

装好的 OpenClaw 还没有大脑,得先接一个 AI 模型。 DeepSeek 是国内环境下最省事的选择: 它的 API 服务器在国内,直连即可,不需要梯子,也不需要国外的信用卡。

好消息

插件安装会自动沿用你在第 03 步换好的国内源。 OpenClaw 装插件时读的就是你系统里的 npm 配置, 没有另外写死国外地址。所以这一节不用再做任何镜像设置。

第一步,装 DeepSeek 插件:

装插件
openclaw plugins install @openclaw/deepseek-provider
openclaw gateway restart

第二步,去 platform.deepseek.com 注册账号并创建一个 API Key。这个网站国内直接能打开。 创建后的 Key 长得像 sk- 开头的一长串, 只显示一次,务必当场复制保存。

第三步,把 Key 填进 OpenClaw:

填入 API Key
openclaw onboard --auth-choice deepseek-api-key

它会提示你粘贴 Key,然后自动把默认模型设成 deepseek/deepseek-v4-flash。 粘贴时终端不会显示任何字符,这是正常的密码输入行为,粘完直接回车。

确认模型接上了:

验证
openclaw models list --provider deepseek
会列出可用的四个模型
deepseek/deepseek-v4-flash    上下文 1,000,000   默认
deepseek/deepseek-v4-pro      上下文 1,000,000
deepseek/deepseek-chat        上下文   131,072
deepseek/deepseek-reasoner    上下文   131,072

日常用 deepseek-v4-flash 就够了,快且便宜。

切换默认模型

上面的 onboard 会自动把默认模型设成 DeepSeek。 但如果你之前已经配过别的模型(比如 Claude、GPT), 或者想在几个 DeepSeek 模型之间换,用这条命令单独改就行, 不用重跑整个配置流程。

把默认模型换成 DeepSeek
openclaw models set deepseek/deepseek-v4-flash

换完确认一下当前生效的是哪个:

查看当前默认模型
openclaw models status

四个 DeepSeek 模型都可以这样切,把命令末尾换成对应的名字即可:

四选一
# 日常首选:快、便宜、100万上下文
openclaw models set deepseek/deepseek-v4-flash

# 更强但更贵更慢
openclaw models set deepseek/deepseek-v4-pro

# V3.2 非思考版
openclaw models set deepseek/deepseek-chat

# V3.2 推理版
openclaw models set deepseek/deepseek-reasoner
已装过 OpenClaw?

如果你的 OpenClaw 早就配好了,只是想加上 DeepSeek, 不需要重跑 onboard,三条命令就够:

老用户加 DeepSeek 的最短路径
# 1. 装插件
openclaw plugins install @openclaw/deepseek-provider

# 2. 单独粘贴 API Key(不动其他配置)
openclaw models auth paste-api-key --provider deepseek

# 3. 设为默认
openclaw models set deepseek/deepseek-v4-flash

另外两个常用操作:在聊天里直接发 /model 可以临时换模型(不改默认值); 想配一个「DeepSeek 挂了就自动顶上」的备用模型用 openclaw models fallbacks add <模型名>。

如果改完没立即生效,重启一下网关: openclaw gateway restart。

开机自启的坑

如果你在第 05 步装了守护进程(加了 --install-daemon), 后台进程读不到你终端里的环境变量。 必须把 Key 写进配置文件,否则重启后模型就失效了:

让后台进程也能读到 Key
# 把 sk-xxxxx 换成你自己的 Key
echo 'DEEPSEEK_API_KEY=sk-xxxxx' >> ~/.openclaw/.env
openclaw gateway restart
07

接入飞书

模型配好后,就可以把 OpenClaw 接到聊天软件里,用手机随时找它。 飞书是国内环境下体验最完整的渠道 —— 私聊、群聊、流式卡片回复都支持。

关键

飞书渠道默认走 WebSocket 长连接, 这意味着不需要公网 IP、不需要域名、不需要备案, 家里的电脑或笔记本就能跑。 这是它在国内比大多数渠道好用的根本原因。

一条命令启动配置向导,插件会自动装上:

开始接入
openclaw channels login --channel feishu

向导会让你二选一:

方式 A:扫码创建(更快,但只能自己用) +

用飞书 App 扫终端里的二维码,它会自动帮你建好机器人。 这个方式会把私聊锁定到你自己的账号,别人找不到这个机器人 —— 自己用的话这样最省事,也最安全。

国内版飞书 App 扫码没反应是已知情况。 遇到的话不用纠结,直接重跑一次命令改选方式 B。

方式 B:手动填 App ID / Secret(通用,推荐) +

去飞书开放平台 open.feishu.cn (国内直接能打开),登录后:

1. 创建一个「企业自建应用」,随便起个名字
2. 在「凭证与基础信息」页面复制 App ID 和 App Secret
3. 在「权限管理」里开通这四个权限:

需要开通的权限
im:message
im:chat
contact:user.base:readonly
contact:contact.base:readonly

4. 在「事件与回调」里,订阅方式选 「使用长连接接收事件」(千万别选 webhook, 那个要公网地址),然后添加事件 im.message.receive_v1
5. 在「版本管理与发布」里创建版本并发布, 等管理员审核通过(自己是管理员的话直接通过)
6. 回到终端,把 App ID 和 App Secret 粘进向导

配置完重启一下,然后就能在飞书里找到你的机器人了:

生效
openclaw gateway restart
默认很严

私聊默认是配对模式:陌生人发消息会收到一个配对码, 你得手动批准。群聊默认只响应白名单里的群,而且必须 @ 机器人。 这是有意为之的安全默认值。

批准找你的人
openclaw pairing list feishu
openclaw pairing approve feishu <配对码>

在飞书里直接发 /status 看状态、 /reset 清空当前对话、 /model 换模型。 飞书没有原生斜杠菜单,当成普通文字发出去就行。

08

接入微信

微信渠道由腾讯微信团队官方维护, 走的是腾讯自己的 iLink 接口,不是那些容易封号的第三方逆向方案。

先看清楚

微信插件只支持私聊,不支持群聊 —— 这是插件自己声明的能力范围,不是配置问题。 需要群聊场景的话用飞书。

安装插件:

装微信插件
openclaw plugins install "@tencent-weixin/openclaw-weixin"
openclaw config set plugins.entries.openclaw-weixin.enabled true
openclaw gateway restart

然后扫码登录。这条命令必须在跑着 OpenClaw 的那台机器上执行:

扫码登录
openclaw channels login --channel openclaw-weixin

终端会打印一个二维码,用手机微信扫描并确认登录。 成功后凭证会保存在本地的 ~/.openclaw 目录里, 下次不用重复扫。

和飞书一样,陌生人发消息需要你批准:

批准
openclaw pairing list openclaw-weixin
openclaw pairing approve openclaw-weixin <配对码>
版本要求

微信插件 2.x 需要 OpenClaw 2026.5.12 或更新。 照本文装的是 2026.7.1-2,满足要求。 如果你的 OpenClaw 是更老的版本,插件启动时会自己报出来。

第二章 约 20 分钟

部署 DeepSeek Harness —— 从需求打造产品

第一章装的 OpenClaw 是个「会聊天、能办事」的助手。 这一章换一个工具:让 AI 直接把一个能跑的应用写出来 —— 你写一页需求,它规划、写代码、跑测试,最后交给你一个可以演示的成品。

09

DeepSeek Harness 是什么

DeepSeek Harness 是 DeepSeek 官方开源的 Agent 开发框架, 命令行工具叫 dsh。 它和第一章的 OpenClaw 不是一回事,也不是它的插件 —— 是两个独立的项目。

简单说:OpenClaw 负责「和你对话、帮你办事」, Harness 负责「把一个软件从需求写到能跑」。 你给它一段需求,它会自己拆任务、建文件、写代码、执行命令、跑测试、看报错再改, 循环直到做出来。

形态
浏览器界面
装好后在本机开一个网页控制台,不是纯命令行黑框, 过程和文件改动都看得见。
架构
一切皆插件
模型、工具、会话、Agent 循环全是可替换的插件, 按 profile 分层组合配置。
记录
会话可回放
全过程按追加式日志落盘, 可以回溯、分支、重放,出问题能查到是哪一步。

它默认给 Agent 配了这些能力(这决定了它能干什么):

工具作用
bash / pwsh执行终端命令(Windows 走 PowerShell),装依赖、跑测试靠它
fs / fs-search读写文件、在项目里搜索
str-replace-editor精确改代码,不是整文件重写
todo / goal / workflow自己拆任务、记进度、按流程推进
subagent派生子 Agent 并行处理独立的子任务
web联网查资料
jobs跑后台任务(比如开着开发服务器)
先说清楚

这个项目非常新:当前版本是 0.1.0-rc.6, 2026 年 8 月 10 日才首次发布,还挂着 rc(候选版)标记。 适合尝鲜和做demo,暂时别拿它跑关键生产任务。

安全默认

它内置了 bash、文件、PowerShell 三重沙箱和用户审批机制 —— Agent 要执行有风险的命令时会先问你。这点比裸跑脚本让人放心, 但也别完全依赖,重要目录记得先备份。

10

安装 DeepSeek Harness

好消息:第一章装的 Node.js 和国内源在这里可以直接复用, 不用重新配。如果你跳过了第一章,先回去做第 01 步和第 03 步。

已验证

我核对过:@deepseek-ai/dsh 在国内镜像上已同步,且包的内容指纹与官方源完全一致。 所以走国内源装是安全且够快的。

最省事的方式是不安装、直接运行(第一次会自动下载,之后有缓存):

免安装直接跑
npx -y @deepseek-ai/dsh --help

如果打算长期用,装成全局命令更方便,以后直接敲 dsh:

全局安装(推荐)
npm install -g @deepseek-ai/dsh
dsh --version
会输出版本号
0.1.0-rc.6
隐私

Harness 默认开启使用数据上报,会把运行遥测发到 DeepSeek 的服务器。不想上报的话设一个环境变量关掉, 建议现在就加进去:

关闭遥测(可选)
echo 'export DSH_TELEMETRY_DISABLED=1' >> ~/.zshrc
source ~/.zshrc
关闭遥测(可选)
echo 'export DSH_TELEMETRY_DISABLED=1' >> ~/.bashrc
source ~/.bashrc
关闭遥测(可选)
[Environment]::SetEnvironmentVariable("DSH_TELEMETRY_DISABLED","1","User")
11

配置 DeepSeek 模型

这一步几乎不用做什么 —— Harness 出厂默认用的就是 DeepSeek。 我把它的默认配置导出来看过,写死在里面的是:

出厂默认(无需修改)
provider: deepseek-official
model:    deepseek-v4-flash

和第一章 OpenClaw 用的是同一个模型,所以你在第 06 步申请的那个 API Key 可以直接复用,不用再去申请一个。 如果还没有,去 platform.deepseek.com 创建一个。

Key 不是在命令行里填,而是在网页控制台的设置页里粘贴 —— 下一步启动之后就能看到入口。填进去后它会加密存在本机。

想确认配置树长什么样(排查问题时有用):

查看完整配置
dsh --profile web --dump-default-config

会打印出几百行的插件配置树,不用细看, 但排查「模型没生效」这类问题时能一眼看到实际用的是什么。

12

打开一个产品工作区

最重要的一条

你在哪个目录敲命令,哪个目录就是它的工作区。 Agent 之后建的所有文件都落在这里,也只在这个范围里活动。 所以务必先新建一个空目录再启动, 别在桌面或者家目录直接跑。

建工作区并启动
mkdir -p ~/ai-projects/knowledge-bot
cd ~/ai-projects/knowledge-bot
dsh web
建工作区并启动
mkdir -p ~/ai-projects/knowledge-bot
cd ~/ai-projects/knowledge-bot
dsh web
建工作区并启动
mkdir -Force "$HOME\ai-projects\knowledge-bot"
cd "$HOME\ai-projects\knowledge-bot"
dsh web
启动成功只有一行输出
dsh web: http://127.0.0.1:3080

把这个地址复制到浏览器打开,就进到控制台了。 先去设置页把上一步的 API Key 填进去。

安全

注意它绑的是 127.0.0.1, 只有你这台机器能访问,同一个局域网里的人也打不开。 这是刻意的安全设计,别随便改成 0.0.0.0。

如果启动时报 EADDRINUSE, 说明 3080 端口被别的程序占了,换一个即可:

换端口
dsh web --port 8080
13

写一页产品需求说明

这是整章唯一需要你动脑的一步,也是决定成品质量的一步。 需求写得含糊,它就给你一个含糊的东西;需求写得具体,它做出来的就能直接用。

一页需求说明应该包含四样东西: 要解决什么问题、给谁用、必须能做到什么、做到什么程度算完成。 最后一项最容易被忽略,但它是让 AI 能自己判断「做完没有」的关键。

下面是一份可以直接照抄的样例:做一个个人知识库问答机器人 —— 把自己的文档传进去,然后用自然语言提问,它基于你的文档回答并给出出处。

项目:个人知识库问答机器人

要解决的问题
我手里有一堆资料(课程讲义、产品文档、会议纪要、论文), 想问什么就得自己翻。希望能把它们传进一个工具里, 直接问问题,它从我的资料里找答案,并告诉我这答案是从哪一份文件的哪一段来的。

给谁用
我自己,在本机浏览器里用。不需要给别人访问。

必须能做到

  • 上传文档建立知识库,至少支持 txt、markdown、pdf、docx 四种格式
  • 可以传多份文档,可以查看已传列表,可以删除其中某一份
  • 文档自动切成片段并建立索引,切片不能把句子从中间截断
  • 提问后返回答案,并且每个答案必须附带引用: 来源文件名 + 命中的原文片段
  • 资料里没有的问题,必须明确回答「资料中未找到」,不允许自己编
  • 知识库要落盘保存,重启程序后还在

模型接入要求(重要)

  • 大模型走 OpenAI 兼容接口,在配置文件或界面里填三样: 接口地址、API Key、模型名
  • 换厂商只改这三项即可,不许把任何厂商写死在代码里。 要能接 DeepSeek、智谱、通义、月之暗面、硅基流动等
  • Key 从配置文件或环境变量读取,绝对不能硬编码进源码

检索方式

  • 默认用关键词检索,不依赖任何额外的付费接口 —— 只要有一个对话模型就能完整跑起来
  • 把检索做成可替换的模块,之后能换成向量检索而不用改其他代码
  • 中文要能正常检索,别只按空格分词

不做什么
不做用户登录、不做多人协同、不做云端部署、不做对话历史管理。 先把「传文档 → 提问 → 带出处回答」这条主线做通。

完成标准

  • 有自动化测试,且全部通过
  • 拒答测试:问一个知识库里完全没有的问题, 回答中必须出现「未找到」之类的说明,且不得给出具体事实
  • 引用真实性测试:答案里给出的原文片段, 必须能在对应的源文件里逐字找到(这一条要能被程序自动校验)
  • 召回测试:准备 5 组「问题 → 应该命中的文档」, 正确文档出现在前 3 条结果里的比例不低于 80%
  • 切片测试:随机抽 10 个切片,不能有从句子中间断开的
  • 用一条命令就能在本地启动

技术要求
用你认为最合适的轻量技术栈。优先选依赖少、装起来快的方案。 所有依赖必须能从国内网络正常安装。

为什么这样写

「完成标准」里的四条测试,是这份需求真正的价值所在。 尤其是拒答测试和引用真实性测试 —— 这两条正好卡住知识库机器人最容易出的两个毛病: 资料里没有却硬编一个答案,以及给出的「原文引用」其实是模型自己造的。

关键在于这些都能被程序自动验证: 引用片段是否逐字存在于源文件,是可以写成断言的。 有了它们,Agent 才能自己写测试、自己判断做完没有。

别让它用向量检索

需求里特意写了「默认用关键词检索」,这不是偷懒,是有原因的: 向量检索需要 embedding 接口,而 DeepSeek 官方只提供对话接口,没有 embedding。 如果不写这一条,它很可能默认给你上向量方案, 然后你拿着第一章那个 DeepSeek Key 会直接卡住。

所以要求「把检索做成可替换的模块」—— 先用零依赖的关键词跑通,想升级向量检索时再单独接一个 embedding 服务。 下一步会讲怎么接。

14

让它规划、编码、运行、测试

把上一步的需求整段粘进控制台的对话框,前面加一句话告诉它怎么干:

开工指令(粘在需求前面)
请按下面这份需求做一个能跑的应用。

先列出实现计划让我确认,再开始写代码。
写完后自己运行测试,把测试结果告诉我。
如果测试没过,自己修到过为止。

---
(在这里粘贴上一步的需求说明)

接下来你会看到它依次做这几件事,全程可以在界面上看到:

阶段它在干什么你要做什么
拆任务 把需求拆成一串待办事项,列出来 看一眼有没有理解错,有就直接打断纠正
建文件 在你的工作区里创建项目文件 不用管
写代码 逐个文件写,边写边标记待办完成 不用管
执行命令 装依赖、跑测试。这时可能弹出审批 看清楚命令再批准
看报错改 测试没过就读报错、改代码、重跑 不用管,让它自己循环
审批环节

执行终端命令时会弹出确认。 别无脑一路点同意 —— 至少扫一眼命令内容。 正常应该是 npm install、 npm test 这类; 如果看到删除、移动系统目录之类的操作,直接拒绝并让它换个做法。

这一步大概要跑 5 到 15 分钟,取决于需求复杂度。 中途可以随时打断 —— 发现它跑偏了,直接发消息纠正就行, 不用等它做完。

15

把 MVP 跑起来看看

它说做完之后,别信它的话,自己跑一遍。 先看看工作区里到底生成了什么:

另开一个终端窗口
cd ~/ai-projects/knowledge-bot
ls -la
另开一个终端窗口
cd ~/ai-projects/knowledge-bot
ls -la
另开一个 PowerShell 窗口
cd "$HOME\ai-projects\knowledge-bot"
dir

然后直接问它怎么运行,这比自己猜快得多:

问它启动方式
用一条命令告诉我怎么在本地打开这个应用,
以及怎么运行测试。直接给命令,不要解释。

按它给的命令跑起来,然后拿真实场景试一遍。 照下面这七步走一遍,就知道它到底靠不靠谱:

验收测试用例(按顺序做)

  • 1 · 传一份自己的文档
    找一份你熟悉内容的文件(课程讲义、说明书都行),传进去。 确认列表里能看到它。
  • 2 · 问一个文档里明确写了的问题
    答案要对,而且要给出文件名和原文片段。 拿引用片段去原文里搜一下,必须能一字不差地找到。
  • 3 · 问一个文档里完全没有的问题 ← 最关键
    比如传的是课程讲义,你问「明天天气怎么样」。 它必须说「资料中未找到」,而不是自信地编一个答案出来。
  • 4 · 传第二份内容不同的文档,再问第一份里的问题
    看它会不会被新文档干扰、引用错文件。
  • 5 · 传一份长文档(几十页的 PDF)
    看能不能处理完,问一个在文档中后部的问题能不能命中。
  • 6 · 关掉程序重新启动
    已传的文档还在不在,能不能继续提问。
  • 7 · 换一个厂商的 Key
    把配置里的接口地址、Key、模型名换成另一家, 不改任何代码,应该照常能用。
重点看第 3 条

拒答能力是知识库机器人的分水岭。 做得不好的实现,你问什么它都能答得头头是道 —— 因为它压根没在用你的文档,是模型自己在编。

第 2 条那个「拿引用片段回原文搜」的动作也别省。 很多实现会给出看起来很像的引用,但那段话在原文里根本不存在, 是模型顺着上下文改写出来的。逐字搜一下就露馅了。

想升级向量检索

关键词检索跑通之后,如果觉得「换个说法就搜不到」, 可以接一个 embedding 服务改成语义检索。 DeepSeek 没有 embedding 接口,需要单独找一家 —— 硅基流动的 BAAI/bge-m3 是个合适的选择:同样是 OpenAI 兼容接口 (https://api.siliconflow.cn/v1), 中文效果好,单条最长 8192 token。

让它加上向量检索(可选)
把检索模块再实现一个向量检索的版本,用 OpenAI 兼容的
embedding 接口(地址、Key、模型名同样走配置,不要写死)。

保留原来的关键词检索,在配置里可以切换用哪一种。
两种方式都要能通过原有的全部测试。
16

根据测试结果继续迭代

第一版几乎不可能一次到位,这很正常。 迭代的质量取决于你反馈的质量。

这样说
没用的反馈 「答得不准,优化一下」
「检索效果不好」
有用的反馈 「传了《传热学讲义.pdf》,问『导热微分方程的边界条件有几类』。
实际:答对了内容,但引用显示的是『第 2 章』,
我在原文里搜不到它给的那段话。
期望:引用片段必须是原文里逐字存在的。
请修复,并补一个自动校验引用片段确实存在于源文件的测试。」

差别在于:具体输入 → 实际输出 → 期望输出。 给全这三样,它基本一次就能修对; 只说「不对」,它就只能猜,很可能改坏别的地方。

再加一句「补一个覆盖这种情况的测试」,可以防止同一个问题反复出现:

迭代模板
发现一个问题。

输入:(把你操作的步骤和数据写清楚)
实际结果:(现在是什么)
期望结果:(应该是什么)

请修复,并补一个覆盖这种情况的测试,
改完把测试跑一遍告诉我结果。

功能都对了之后,可以再让它做几轮打磨:

打磨方向
# 边界情况
处理这几种异常:传空文件、传超过 50MB 的文件、
传加密的 PDF、传扫描版没有文字层的 PDF、知识库为空时提问。
每种都要给出清楚的提示,不能直接崩。

# 检索质量
现在问题里的说法和原文用词不一样时经常搜不到。
在关键词检索里加上同义扩展,并补一组这样的测试用例。

# 回答质量
让答案在引用原文的同时,标出这段话在文档中的大致位置
(第几页或第几节),方便我回去核对。

# 说明文档
写一个 README,说明怎么运行、怎么换模型厂商、
怎么运行测试、代码结构是什么样的。
这一章的收获

走完这一章,你手上会有一个能跑、有测试、可以直接演示的小产品, 而你写的只是一页需求和几轮反馈。

更重要的是这套方法本身: 把需求写到可验证,让 AI 自己跑测试自己修 —— 换个题目照样能用。把第 13 步那份需求模板改成你自己的项目, 整个流程可以完全复用。

!

报错排查

换了镜像源还是装不上 OpenClaw +

已经 npm config set registry 了,安装依然卡住 / 超时 / 报错

先跑这段自检,它会一次性把所有可能出问题的地方打出来。 把输出对照下面几条看,基本能定位到具体原因。

一键自检(整段粘贴)
echo "1. 当前源:      $(npm config get registry)"
echo "2. 代理残留:    $(npm config get proxy) / $(npm config get https-proxy)"
echo "3. URL改写:     $(npm config get replace-registry-host)"
echo -n "4. 元数据域名:  "; curl -s -o /dev/null -w "%{http_code}\n" -m 15 \
  https://registry.npmmirror.com/openclaw/latest
echo -n "5. 包体CDN:     "; curl -s -r 0-99 -o /dev/null -w "%{http_code}\n" -m 15 \
  https://cdn.npmmirror.com/packages/openclaw/2026.7.1-2/openclaw-2026.7.1-2.tgz
echo "6. 剩余空间:    $(df -h ~ | tail -1 | awk '{print $4}')"
一键自检(整段粘贴)
echo "1. 当前源:      $(npm config get registry)"
echo "2. 代理残留:    $(npm config get proxy) / $(npm config get https-proxy)"
echo "3. URL改写:     $(npm config get replace-registry-host)"
echo -n "4. 元数据域名:  "; curl -s -o /dev/null -w "%{http_code}\n" -m 15 \
  https://registry.npmmirror.com/openclaw/latest
echo -n "5. 包体CDN:     "; curl -s -r 0-99 -o /dev/null -w "%{http_code}\n" -m 15 \
  https://cdn.npmmirror.com/packages/openclaw/2026.7.1-2/openclaw-2026.7.1-2.tgz
echo "6. 剩余空间:    $(df -h ~ | tail -1 | awk '{print $4}')"
一键自检(整段粘贴到 PowerShell)
"1. 当前源:   " + (npm config get registry)
"2. 代理残留: " + (npm config get proxy) + " / " + (npm config get https-proxy)
"3. URL改写:  " + (npm config get replace-registry-host)
try { "4. 元数据:   " + (iwr https://registry.npmmirror.com/openclaw/latest `
  -UseBasicParsing -TimeoutSec 15).StatusCode } catch { "4. 元数据:   失败" }
try { "5. 包体CDN:  " + (iwr https://cdn.npmmirror.com/packages/openclaw/2026.7.1-2/openclaw-2026.7.1-2.tgz `
  -Method Head -UseBasicParsing -TimeoutSec 15).StatusCode } catch { "5. 包体CDN:  失败" }
一切正常应该长这样
1. 当前源:      https://registry.npmmirror.com/
2. 代理残留:    null / null
3. URL改写:     npmjs
4. 元数据域名:  200
5. 包体CDN:     206
6. 剩余空间:    (至少 2G)

下面按出问题的概率从高到低排列:

① 第 1 行显示的还是 npmjs.org —— 源根本没生效
最隐蔽的一种情况是你用了 sudo: sudo 会切换到 root 身份,读的是 root 的配置文件, 你给自己账号配的镜像源完全不起作用。 Mac 用户遇到权限报错后改用 sudo,就会莫名其妙掉进这个坑。

验证是不是 sudo 的锅
# 两条输出如果不一样,就是它了
npm config get registry
sudo npm config get registry

正确做法不是给 sudo 也配一遍源,而是回到 权限那一条,把 npm 装到用户目录, 从此不再需要 sudo。另外也检查一下当前目录有没有 .npmrc 文件在覆盖你的配置。

正确做法不是给 sudo 也配一遍源,而是按 第 01 步把 Node 装到 ~/.local/node,从此不需要 sudo。 另外检查当前目录有没有 .npmrc 在覆盖配置。

Windows 一般不涉及 sudo。检查一下当前目录有没有 .npmrc 文件在覆盖你的全局配置。

② 第 4 行是 200 但第 5 行失败 —— CDN 被单独拦了
这是很多人误判的地方:npm 取包信息走 registry.npmmirror.com, 但真正下载包体时会跳转到 cdn.npmmirror.com。 部分校园网、公司网只放行了前者。 症状就是「查得到版本、装不下来」。换腾讯云源可以绕开:

换用腾讯云镜像(实测可用)
npm config set registry https://mirrors.cloud.tencent.com/npm/
npm install -g openclaw@latest

③ 第 2 行不是 null —— 有失效的代理配置残留
以前配过代理、后来代理没了,npm 还在往那个地址发请求。清掉即可:

清除代理残留
npm config delete proxy
npm config delete https-proxy
npm cache clean --force
npm install -g openclaw@latest

④ 第 3 行不是 npmjs
OpenClaw 的包里带了一份 npm-shrinkwrap.json, 里面 308 个依赖的下载地址全部写死成 npmjs.org。 npm 默认会自动把它们改写成你配的镜像(这就是 replace-registry-host=npmjs 的作用)。 但如果这项被人改成了 never, npm 就会老老实实去 npmjs.org 拉 308 个包,在国内必然失败。改回来:

恢复默认改写行为
npm config set replace-registry-host npmjs

⑤ 报证书错误 —— 校园网/公司网做了 TLS 中间人
典型报错是 SELF_SIGNED_CERT_IN_CHAIN 或 UNABLE_TO_VERIFY_LEAF_SIGNATURE。 正确做法是把单位的根证书加进来,而不是关掉校验。 实在要临时应急,装完记得马上改回来:

临时应急,用完必须还原
npm config set strict-ssl false
npm install -g openclaw@latest
npm config set strict-ssl true

⑥ 网络本身就抖 —— 加大重试
OpenClaw 的包压缩后 20 MB、解压出 87 MB 共 8550 个文件, 比一般的包大不少,弱网下容易中断。让 npm 更耐心一点:

提高容错
npm config set fetch-retries 5
npm config set fetch-retry-maxtimeout 120000
npm config set maxsockets 3
npm install -g openclaw@latest

maxsockets 调小反而更容易成功 —— 并发少一点,弱网下每条连接更稳。

⑦ 以上都试过还是不行 —— 换台机器打包搬过去
找一台网络正常的机器(或者手机热点),把整棵依赖树打包带走:

在网络正常的机器上打包
npm install openclaw@latest --prefix /tmp/ocbundle \
  --registry https://registry.npmmirror.com
tar -czf openclaw-bundle.tgz -C /tmp/ocbundle .
在网络正常的机器上打包
npm install openclaw@latest --prefix /tmp/ocbundle \
  --registry https://registry.npmmirror.com
tar -czf openclaw-bundle.tgz -C /tmp/ocbundle .
在网络正常的机器上打包
npm install openclaw@latest --prefix C:\ocbundle `
  --registry https://registry.npmmirror.com
Compress-Archive -Path C:\ocbundle\* -DestinationPath openclaw-bundle.zip

注意打包的机器要和目标机器同系统同架构 (Mac 打的包不能给 Windows 用,x86 打的不能给 ARM 用), 因为里面含有预编译的原生模块。

装完 Node.js,终端说找不到 node 命令 +

command not found: node / 'node' 不是内部或外部命令

九成是终端没重启。终端只在打开的那一刻读取一次系统路径, 你装 Node.js 之前开的窗口是不知道有新命令的。 完全关掉终端窗口,重新打开一个,再试一次。

Windows 上如果重开还是不行,注销一次账户再登录,或者直接重启电脑。

Mac 上如果重开还是不行,确认安装包真的装完了(有没有中途要密码没输)。

Linux 上原因通常不一样 —— 多半是 PATH 那行没写进去,或者写进了错的文件。 先确认文件本身在不在:ls ~/.local/node/bin/node。 文件在但命令找不到,就是 PATH 的问题。

Linux:重新写 PATH
# 先看自己用的是哪个 shell
echo $SHELL

# bash 用户写这个
echo 'export PATH=$HOME/.local/node/bin:$PATH' >> ~/.bashrc && source ~/.bashrc

# zsh 用户写这个
echo 'export PATH=$HOME/.local/node/bin:$PATH' >> ~/.zshrc && source ~/.zshrc
装 OpenClaw 时提示权限不足 +

EACCES: permission denied

Mac 上 Node.js 装在系统目录,普通用户没有写入权限。 推荐的做法不是加 sudo,而是把 npm 的安装位置改到你自己的目录下, 一次设置永久生效,以后装什么包都不会再有权限问题。依次执行这三行:

改到用户目录(推荐)
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc

然后关掉终端重新打开,再跑一次第 04 步的安装命令。

Windows 上这个报错比较少见。如果遇到, 右键点 PowerShell 图标选「以管理员身份运行」,再执行安装命令。

按第 01 步那样装到 ~/.local/node 的话, 不应该遇到这个报错,因为那个目录本来就属于你。 如果还是报权限错,说明你的 node 其实是系统里另一个(比如 apt 装的)在起作用 —— 跑 which node 看一眼路径, 如果不是 ~/.local/node/bin/node, 回第 01 步重新把 PATH 配好。不要用 sudo npm 硬来。

Linux:报 GLIBC 版本找不到 +

version `GLIBC_2.28' not found (required by node)

你的系统太老了。官方 Node 二进制从 18 版起就要求 glibc 2.28 或更高,而 CentOS 7 只有 2.17, 差得比较远,没有办法通过装补丁解决。

跑 ldd --version | head -1 确认一下版本。 低于 2.28 的话,唯一的出路是换系统 —— Ubuntu 20.04 以上、 Debian 10 以上、RHEL/CentOS 8 以上、openEuler 都可以。

Linux:报 libatomic 找不到 +

error while loading shared libraries: libatomic.so.1

Node 25 以上的官方 Linux 二进制需要 libatomic 运行库, 而精简过的服务器镜像(各种 minimal、cloud image、Docker 基础镜像) 经常没有预装。装一个就好:

补装
# Debian / Ubuntu
sudo apt update && sudo apt install -y libatomic1

# RHEL / CentOS / Fedora / openEuler
sudo dnf install -y libatomic
Linux:断开 SSH 后 OpenClaw 就停了 +

退出登录后 systemctl --user status 显示服务已停止

这是 systemd 用户服务的默认行为,不是 OpenClaw 的 bug —— 用户一登出,属于他的用户服务就会被一起收掉。 开启 linger 就能让它继续跑:

开启 linger
sudo loginctl enable-linger $USER

执行一次就永久生效。想确认有没有开: loginctl show-user $USER | grep Linger, 显示 Linger=yes 就对了。

提示 Node.js 版本不兼容 +

EBADENGINE / Unsupported engine

你的电脑上原本就有一个旧版 Node.js,而且它的版本落在了 OpenClaw 不支持的区间。 注意这个区间很反直觉 —— Node 23 整个大版本、24.0 到 24.14、25.0 到 25.8 都是不支持的, 不是「版本越新越好」那么简单。

解决办法:回到第 01 步重新下载安装包装一遍, 新版会直接覆盖旧版。装完关掉终端重开,用第 02 步的检查器确认一下。

解决办法:回到第 01 步重新下载安装包装一遍, 新版会直接覆盖旧版。装完关掉终端重开,用第 02 步的检查器确认一下。

解决办法:回到第 01 步把那组命令重新跑一遍。 因为装在 ~/.local/node 并且 PATH 里排在前面, 它会盖过系统里原有的旧版 Node,不用先卸载旧的。 跑完用第 02 步的检查器确认一下。

下载卡住不动 / 半天没反应 +

ETIMEDOUT / ECONNRESET / 进度条长时间静止

先确认第 03 步真的做了 —— 跑 npm config get registry, 必须输出 https://registry.npmmirror.com/。 如果输出的是 registry.npmjs.org,说明换源没生效,重做第 03 步。

源没问题还是慢,清一下缓存重试:

清缓存重试
npm cache clean --force
npm install -g openclaw@latest
检查更新 / openclaw update 卡住不动 +

检查更新时长时间无响应或超时

这是国内环境下唯一一个换源解决不了的地方。 OpenClaw 的「检查新版本」功能把 registry.npmjs.org 写死在了代码里,不读你的镜像配置,所以在国内会卡住。

不影响使用 —— 装插件、装依赖都是走你配的国内源, 只有这个版本检查会卡。想升级 OpenClaw 的话别用它自带的更新命令, 直接用 npm 装一遍就行:

国内环境的正确升级姿势
npm install -g openclaw@latest
openclaw gateway restart
DeepSeek 报没有 API Key / 重启后模型失效 +

DEEPSEEK_API_KEY is not set / 模型不可用

典型症状是刚配好能用,重启电脑或重启服务后就不行了。 原因是 Key 只存在于你当时那个终端窗口的环境变量里, 后台守护进程读不到。写进配置文件就永久生效:

永久生效
echo 'DEEPSEEK_API_KEY=sk-你的key' >> ~/.openclaw/.env
openclaw gateway restart
飞书机器人收不到消息 +

在飞书里发消息,机器人毫无反应

按顺序排查这五条,绝大多数问题出在第 1、2 条:

1. 应用在飞书开放平台发布了吗、审核通过了吗? 只创建不发布是不会生效的
2. 事件订阅方式选的是「长连接」吗? 选成 webhook 的话需要公网地址,家用电脑收不到
3. 事件里加了 im.message.receive_v1 吗
4. 四个权限都开通了吗
5. 网关在跑吗:openclaw gateway status

看实时日志定位
openclaw logs --follow

群里不回复是另一回事:默认必须 @ 机器人, 而且群要在白名单里。先确认机器人已被拉进群,并且你 @ 了它。

微信插件装上了但连不上 +

plugins list 显示已安装,但 channels status 不通

先确认插件真的被启用了(安装和启用是两件事):

确认启用
openclaw plugins list
openclaw channels status --probe

openclaw config set plugins.entries.openclaw-weixin.enabled true
openclaw gateway restart

如果启用微信后网关开始反复重启, 把 OpenClaw 和插件都更新到最新再试:

双双更新
npm install -g openclaw@latest
openclaw plugins install "@tencent-weixin/openclaw-weixin" --force
openclaw gateway restart
镜像上还没有最新版本 +

No matching version found for openclaw@…

国内镜像是按需同步的,官方刚发布的版本可能要等一会儿才会出现。 你可以手动催它同步,把下面这行粘进终端:

手动触发同步
curl -X PUT https://registry.npmmirror.com/-/package/openclaw/syncs

会返回一段 {"ok":true,...}, 等十几秒再重新执行安装命令即可。

为什么这样装 —— 给想弄明白的人

镜像上的包和官方是同一个文件吗?

是。npm 每个包都带一个内容指纹,官方源和国内镜像上的这个指纹完全一致, 连 npm 官方的数字签名都是同一份,说明镜像只是原样搬运,没有改动包内容。

官方源 sha512-ycF3yPcbjN6bUPeaUx6Mh6vze1hQWoD3CT/wWcmD7a8xaHHHRUaAlaq+…
国内镜像 sha512-ycF3yPcbjN6bUPeaUx6Mh6vze1hQWoD3CT/wWcmD7a8xaHHHRUaAlaq+…
指纹一致 · 签名一致 · 文件数一致(8550 个)

想自己验的话,跑这两行对比输出:

自己验证
npm view openclaw@latest dist.integrity --registry https://registry.npmjs.org
npm view openclaw@latest dist.integrity --registry https://registry.npmmirror.com
为什么不推荐网上说的 openclaw-cn?

它是官方仓库的第三方分支,内置了钉钉、企业微信、QQ 等国内渠道。 这些渠道是它的真实价值,但代价是版本严重滞后 —— 而且它的「最新版」标签因为版本号规则改过,永久卡在了 2026 年 2 月的构建上。

对比项 官方 openclaw 第三方 openclaw-cn
装到的版本 2026.7.1-2 2026.2.5
该版本发布于 2026-07-18 2026-02-03
包最后更新 2026-08-15 2026-05-19
命令名 openclaw openclaw-cn

另外它的一键安装脚本默认用的其实是官方源而非国内源, 所谓「国内加速」加速的只是脚本本身的下载。真要用的话, 记得显式指定版本号而不是写 @latest。

为什么不用一键安装脚本?

官方确实提供 curl … | bash 这类一键脚本, 对已经有开发环境的人很方便。但它遇到没装 Node.js 的空白机器时, 在国内都会绕远路:

Mac 上它会调 Homebrew 去装 Node,而全新的 Mac 通常没有 Homebrew, 于是先卡在装 Homebrew 这一步,那个过程在国内更慢。

Linux 上它走的是 NodeSource 源 (deb.nodesource.com / rpm.nodesource.com), 那是国外服务器,国内拉取很慢甚至超时;而且它还要 sudo 往系统里加软件源。 本文改成直接解压官方二进制到家目录,既走国内 CDN,又完全不需要 root。

对空白机器来说,本文这条路才是最短的。

🦞 隐藏内容已解锁
给黄浦区数据局的三条进阶建议

这三条不在正文里,因为它们不是「怎么装」,而是「装完之后怎么用才有价值」—— 尤其针对政务数据场景。

  1. 先划清数据边界,再谈接入。 本教程里所有模型调用都会把内容发到厂商服务器。 涉密、涉个人信息的数据不要直接喂给公有云模型。 真要处理这类数据,走本地部署的开源模型 (OpenClaw 和 Harness 都支持接 ollama 这类本地推理服务,配置方式和接 DeepSeek 完全一样, 只是把接口地址换成本机地址)。
  2. 第二章那套方法比第二章的成果更值钱。 「把验收标准写成程序能自动验证的条件,让 AI 自己跑测试自己判断做完没有」—— 这个思路换到任何业务场景都成立:数据校验规则、报表口径、 接口联调,都能用同一套方式让 AI 自己闭环。 做出来的那个知识库机器人只是个练手载体。
  3. 把「问不出来的问题」当成资产。 知识库机器人上线后,最有价值的不是它答对的那些, 而是它答不出来的那些——那正好标出了你们文档体系里缺失的部分。 建议把「资料中未找到」的问题单独记一份日志,定期回看。
彩蛋触发方式:↑↑↓↓←→←→BA · 另外试试打开浏览器开发者工具的控制台
本文所有下载链接、版本号与命令均为实际验证结果,对应 OpenClaw 2026.7.1-2 与 Node.js 26.7.0。
为 上海市黄浦区数据局 AI 应用培训编写 · 2026 年 8 月
官方文档 docs.openclaw.ai/install · 镜像站 npmmirror.com