跳到主内容
快讯直播
AI智模界
教程

上手 OpenClaw:把常驻个人智能体装进日常工作流

适用场景

如果你想有一个 7×24 小时在线、能通过聊天软件随时派活的 AI 助手——早上自动汇总待办、白天帮你查资料改稿、晚上把结果推到手机上——而不是每次打开网页重新解释一遍背景,那么把 OpenClaw 这类可自托管的智能体常驻在一台小机器上是个务实的选择。这套方案适合有一定命令行基础、愿意自己管一台 VPS 或闲置 Mac mini 的开发者、运维和重度工具型用户,解决的是「智能体只在对话框里、进不了真实工作流」的问题。本文跑通的是最小可用闭环:装好、接上聊天渠道、把权限收紧、下发第一个任务、看得见 AI 词典:Token">Token 花在哪。

环境与前置条件

  • 机器:一台可以长期开机的设备。1 核 2 GB 内存的 VPS 能跑起来,但如果你打算让它执行编译、跑脚本这类任务,建议 2 核 4 GB 起步。磁盘留 20 GB 以上,模型缓存、日志和临时文件会持续增长。
  • 不建议装在你的主力工作机上。常驻智能体能读写文件、执行命令,装在存着 SSH 私钥、浏览器 Cookie、公司代码的机器上,等于把攻击面拉满。宁可多花一台小机器的钱。
  • 操作系统:主流 Linux 发行版(Debian/Ubuntu 系最省事)或 macOS。Windows 建议走 WSL2,别直接装在宿主机。
  • 运行时:Node.js,具体主版本要求以 OpenClaw 官方文档当前版本为准。装之前先用 node -v 确认,版本过低会在安装阶段直接报 EBADENGINE。
  • 模型 API Key:至少一个可用的模型服务商密钥(Anthropic、OpenAI 或兼容接口的第三方网关)。
  • 一个聊天渠道的凭证:Telegram Bot Token 最容易拿到,本文以它为例;WhatsApp、Discord、Slack 等渠道的接入方式以官方文档为准。
  • 网络:能访问模型 API 和消息平台。国内机器访问部分服务商可能需要额外处理,这一点在选机器时先想清楚。

分步骤部署

步骤 1:创建专用系统用户

不要让智能体以 root 或你的日常账号运行。单独开一个用户,把它的家目录当作它的「整个世界」。

```bash

sudo adduser --disabled-password --gecos "" claw

sudo su - claw

```

adduser 交互式地创建用户,成功后 id 命令能看到 uid=... (claw)。之后所有安装和运行都在这个用户下进行。

步骤 2:安装 Node.js

用发行版自带的包管理器装的 Node 往往版本偏旧。推荐用 nvm 或官方二进制包,版本按官方文档要求选 LTS。

```bash

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

source ~/.bashrc

nvm install --lts

node -v

npm -v

```

能打印出版本号即为成功。如果 nvm 命令找不到,说明 shell 配置文件没重新加载,重开一个终端或 source ~/.bashrc。

步骤 3:全局安装 OpenClaw

```bash

npm install -g openclaw@latest

openclaw --version

```

安装命令与包名以官方文档当前给出的为准,@latest 表示装最新版。openclaw --version 能输出版本号,说明二进制已经进了 PATH。如果提示 command not found,多半是 npm 全局 bin 目录不在 PATH 里,用 npm config get prefix 查一下路径,把它的 bin 子目录加进 ~/.bashrc 的 export PATH=。

步骤 4:跑引导向导,接入模型

```bash

openclaw onboard

```

向导会交互式地问你:用哪个模型服务商、API Key 是什么、用什么渠道、工作目录放哪。按提示填完,配置会落到用户目录下的配置文件夹(通常是 ~/.openclaw,以官方文档为准)。

Key 不要直接写在命令行历史里。可以先 export ANTHROPIC_API_KEY=...(或对应服务商的环境变量名),向导一般能读到你已有的环境变量。

这一步成功的标志是向导最后打印出配置已保存的提示,并且 openclaw config 或等价命令能列出你选的默认模型。

步骤 5:接上 Telegram

在 Telegram 里找 @BotFather,/newbot 建一个机器人,拿到 Bot Token。然后:

```bash

openclaw channels add telegram

```

把 Token 粘进去。接着在 Telegram 里给你的 bot 发一条消息,看有没有回复。同时在配置文件里把允许对话的用户 ID 写进白名单——只留你自己的账号,否则任何搜到你 bot 的人都能指挥它。

步骤 6:让进程常驻

前台跑着,SSH 一断就没了。用 systemd 托管:

```bash

sudo tee /etc/systemd/system/openclaw.service > /dev/null <<'EOF'

[Unit]

Description=OpenClaw Agent

After=network-online.target

[Service]

Type=simple

User=claw

WorkingDirectory=/home/claw

ExecStart=/bin/bash -lc 'openclaw gateway'

Restart=always

RestartSec=10

[Install]

WantedBy=multi-user.target

EOF

sudo systemctl daemon-reload

sudo systemctl enable --now openclaw

```

ExecStart 里的子命令名(这里是 gateway)以官方文档为准,不同版本可能叫法不同,用 openclaw --help 核对。

```bash

systemctl status openclaw

```

看到 active (running) 即成功。macOS 上对应改用 launchd,或者先用 tmux 顶一阵子。

步骤 7:权限收敛

这是最容易被跳过、也最该认真做的一步。

  • 目录边界:把工作目录限制在 /home/claw/workspace,配置里明确写死允许读写的路径,不要给整个 home。
  • 工具白名单:默认只开你真正需要的工具。文件读写、shell 执行、浏览器控制这几类风险等级不同,先只开读文件和搜索,确认跑顺了再逐个放开。
  • 命令确认:如果有关闭「执行前询问」的开关,日常任务为主的场景可以保留询问,只在定时任务里用宽松模式。
  • 密钥隔离:API Key 放在 ~/.openclaw/.env 之类的文件里,chmod 600,不要写进代码或聊天记录。
  • 不做的事:不要给智能体你公司的生产环境凭证,不要让它可以 sudo,不要让它监听公网端口(除非你清楚自己在做什么并配好鉴权)。

改完配置重启服务:sudo systemctl restart openclaw。

步骤 8:下发第一个任务

在 Telegram 里直接说话就行,例如:

> 帮我看一下 ~/workspace/inbox 目录下今天新增的文件,把每个文件的标题和要点整理成 5 条以内的清单发给我。

再配一个定时任务,让它自己动起来:

```bash

openclaw cron add \

--name "morning-brief" \

--schedule "30 8 * * *" \

--prompt "汇总昨天我发给你但还没处理的待办,输出成三条以内的清单"

```

定时任务的具体子命令和参数以官方文档为准,用 openclaw cron --help 看当前语法。成功的标志是第二天早上 8:30 你确实收到一条消息。

步骤 9:盯住 Token 成本

常驻智能体的花费来自三处:你主动对话、定时任务、心跳或后台巡检。前两项好理解,第三项容易被忽略——一个每 15 分钟醒一次的配置,一天就是近百次调用,哪怕每次很便宜,累积起来也够看。

做法:

  • 在模型服务商后台设置月度消费上限和余额告警,这是最后一道闸。
  • 用 openclaw 自带的用量查询(命令名以 openclaw --help 为准)每周看一次调用次数和 token 消耗。
  • 把后台巡检的间隔从分钟级调到小时级,能省掉大部分无意义调用。
  • 定时任务尽量指定便宜的小模型,只有需要长文推理的任务才走高配模型。

费用取决于所选模型单价与你实际的 token 用量,具体数字以服务商官方定价页面为准,这里不给估算。

验证部署是否成功

按顺序跑一遍,每项都过才算真的通了:

```bash

1. 进程状态

systemctl status openclaw --no-pager

2. 版本与配置

openclaw --version

openclaw config list

3. 健康自检(命令名以 openclaw --help 为准)

openclaw doctor

4. 最近日志有无报错

journalctl -u openclaw -n 100 --no-pager

```

预期结果:第 1 条出现 active (running);第 3 条各项检查为通过状态,至少包含模型连通性、渠道连通性两项;第 4 条里没有连续的 ERROR、401、ECONNREFUSED。

最后做端到端验证:在 Telegram 里发一句「现在几点,你运行在哪台机器上」,两分钟内收到带时间和你主机名的回复,说明模型、渠道、执行环境三层全通。

常见报错与解决

1. npm ERR! code EBADENGINE / Unsupported engine

→ 原因:Node.js 版本低于 OpenClaw 要求的最低主版本。

→ 解决:

```bash

node -v

nvm install --lts && nvm use --lts

npm install -g openclaw@latest

```

装完重新 node -v 确认版本已切换。

2. openclaw: command not found

→ 原因:npm 全局 bin 目录不在 PATH 中,或安装到了别的用户下(比如用 sudo 装成了 root 的)。

→ 解决:

```bash

npm config get prefix

echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.bashrc

source ~/.bashrc

which openclaw

```

如果 which 仍为空,检查是不是用 root 装的,卸掉重来:sudo npm uninstall -g openclaw,再切回 claw 用户安装。

3. 模型调用返回 401 Unauthorized 或 invalid api key

→ 原因:Key 没被读到、抄漏字符、或环境变量名与配置里引用的名字不一致。

→ 解决:

```bash

env | grep -i api_key # 确认变量存在

openclaw config list # 确认配置引用的变量名一致

sudo systemctl restart openclaw

```

注意 systemd 启动的服务不会继承你 SSH 会话里的临时 export。要么写进服务用户的环境文件,要么在 unit 里加 EnvironmentFile=/home/claw/.openclaw/.env。

4. Telegram 侧报 409 Conflict: terminated by other getUpdates request

→ 原因:同一个 Bot Token 被两处同时轮询。常见于你在前台手动跑了一份,systemd 服务又在跑一份。

→ 解决:

```bash

ps aux | grep -i openclaw # 找出重复进程

sudo systemctl restart openclaw

```

只保留 systemd 托管的那一个实例,其余 kill 掉。

5. 服务反复重启,日志出现 EADDRINUSE

→ 原因:上次进程没退干净,端口被占。

→ 解决:

```bash

ss -lntp | grep <端口号>

kill -9 <占用的 PID>

sudo systemctl restart openclaw

```

6. 任务执行中途被杀,日志里是 Killed 或 OOM 相关字样

→ 原因:内存不足。小内存 VPS 上跑带浏览器的任务很容易触发。

→ 解决:加 swap,或者把这类任务改成异步、分批处理。

```bash

free -h

sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile

sudo mkswap /swapfile && sudo swapon /swapfile

```

后续维护

备份:整个 ~/.openclaw 目录就是它的全部状态——配置、渠道凭证、记忆、会话历史。每周打包一次,加密后传到别处:

```bash

tar czf ~/openclaw-backup-$(date +%F).tar.gz ~/.openclaw

```

备份包里含 API Key,别扔进公开仓库。

升级:先看官方 CHANGELOG 里有没有破坏性变更,再动手。

```bash

npm install -g openclaw@latest

sudo systemctl restart openclaw

openclaw doctor

```

升级后跑一遍 doctor,确认渠道和模型仍然连通,再观察一天日志。

日志:journalctl -u openclaw -f 日常看;担心磁盘被撑爆时,在 unit 里加 SystemMaxUse=500M 限制 journal 总量。

监控:最省事的做法是让智能体每天给自己发一条心跳消息,连续两天没收到就说明挂了。再往前一步,用 uptime 监控服务盯住端口,或者写个 cron 定时 systemctl is-active openclaw,异常时推送到你的另一个渠道。

成本与密钥:每月对一次账,看服务商账单和你的用量记录是否对得上;API Key 建议每季度轮换一次,换完记得同步更新环境文件并重启服务。

迭代节奏:先把单渠道、单任务跑稳两周,再逐步加渠道、加技能、放开工具权限。常驻智能体的坑大多出在「一次开太多」——先用最小闭环建立信任,再谈自动化到什么程度。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。