☰
Ubuntu 24.04 上安装 OpenClaw:从零到可用的智能体框架实践
2026/10/8 2:50:57 网站建设 项目流程

上周我在 Ubuntu 24.04 上把 OpenClaw 装起来了。整个流程其实没有想象中复杂,真正花时间的反而是装完之后的模型接入和技能调试。OpenClaw 是一个偏向自托管的开源智能体运行框架,你可以把它理解成一个跑在自己机器上的 AI 助理内核:给它配好模型、挂上技能,它就能在终端里帮你写脚本、整理文件、调接口,甚至通过 companion 组件跟电脑和手机联动。这篇记录从零到可用的完整安装过程,包括环境准备、三种安装方式、模型接入和常见坑。适合正在选型 Agent 工具、又想把数据留在本机的朋友。

1. 装之前,先把这几个问题想明白

1.1 OpenClaw 到底是什么角色

如果你用过 Claude Code 或者 Codex,OpenClaw 的上手成本会低很多。它本质上是一个智能体运行框架,核心思路是让大模型通过一套受控的接口去调用工具、读写文件、执行命令,最终替你把具体任务干完。和那些只能在一个 IDE 里跑的助手不同,OpenClaw 把模型接入、技能扩展、多端联动都做成了相对独立的模块,你可以只把它当终端助手用,也可以把它的核心服务跑在一台 Ubuntu 机器上,再通过官方 companion 组件接到 Windows 或手机上操作。

很多后来出现的 Agent 工具(包括有人提到的 WorkBuddy)在设计上确实有相似之处,但与其去纠结谁参考了谁,不如直接把它看成同一个方向的产物:让模型从“聊天”走向“干活”。OpenClaw 更吸引我的点在于它没有绑定某一家模型服务,本地模型和云端 API 都能接,而且技能(skill)体系足够开放,遇到没有的能力,自己写一个配置文件加上脚本就能补上。

1.2 硬件、系统要求和部署方式选型

先泼一盆冷水:如果你只是想体验一下对话,随便一台能装 Ubuntu 的机器都可以;但如果你打算跑本地大模型,那硬件门槛不在 OpenClaw 本身,而在模型推理上。我这次用的是一台普通 x86_64 台式机,内存 32GB,CPU 是常规的多核处理器,没有独显。最终选了本地 Ollama 跑 7B 模型,效果够用。

项目纯 API 模式本地模型模式
内存最低 2GB建议 16GB 以上
磁盘约 500MB模型体积另算,7B 量化版约 4~6GB
CPU双核即可四核以上更舒服
系统Ubuntu 20.04+Ubuntu 22.04/24.04 均可
架构x86_64 / arm64优先 x86_64

OpenClaw 常见有四种装法:官方脚本、npm 包、源码编译、Docker。我的建议很直白:第一次用选官方脚本,脚本会帮你做依赖检查和目录初始化;习惯命令行之后再考虑源码和 Docker。

安装方式适合人群优点缺点
官方脚本大多数用户一个命令搞定,自动建目录需要先信任脚本内容
npm 安装已有 Node 环境全局命令干净,更新方便对 Node 版本有要求
源码编译想改内部逻辑灵活,可调试耗时长,依赖多
Docker追求环境隔离卸载干净,不影响系统网络和卷映射要额外配置

1.3 我为什么最后选择了这种组合

我最终用的是“官方脚本安装 + 源码目录保留”的组合。先通过脚本把可执行程序和目录结构建立好,再把官方仓库单独克隆一份放在~/openclaw-src里备用。这样日常用的时候走安装好的命令,需要看源码或者改 skill 的时候直接去仓库目录里翻,两边互不干扰。这种方式的好处是排查问题时能同时看到“运行环境”和“实现代码”,对后续理解 OpenClaw 的行为帮助很大。

2. Ubuntu 环境准备:少走半小时弯路的关键

2.1 系统更新和基础依赖

我开始犯的一个低级错误是:拿到新机器直接跑安装脚本,结果提示缺少一堆依赖。后来学乖了,任何工具装之前先把系统更新一遍,再把基础包补齐。

sudo apt update sudo apt upgrade -y sudo apt install -y curl wget git ca-certificates build-essential

build-essential可能看起来不是 OpenClaw 的直接依赖,但后面用源码编译或者装某些 npm 包时,它会提供 gcc、g++、make 这些编译工具。尤其当你需要自己编 Python 或 C 插件时,缺了它基本都会报错。另外,开始之前检查一下磁盘空间:

df -h /

如果你是用虚拟机装的 Ubuntu,分区经常默认只给几十 GB,模型一拉下来就满了。我建议至少留出 20GB 可用空间给 OpenClaw 生态,这还没算 Docker 镜像的占用。

2.2 Node.js 环境:OpenClaw 的地基

OpenClaw 的核心运行时依赖 Node.js,官方要求 Node 18 以上,我实测 20 LTS 表现最正常。这里强烈不建议直接apt install nodejs,因为 Ubuntu 自带源里的 Node 版本往往偏旧,20.04 上甚至可能给你装一个 12,这会导致 OpenClaw 直接拒绝启动。

用 nvm 管理 Node 是更稳妥的做法。nvm 的安装脚本本身来自它的官方仓库,完整命令如下:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 nvm alias default 20 node -v npm -v

安装完成后,node -v应该输出v20.x.x。如果你source ~/.bashrc之后发现nvm命令找不到,多半是当前终端会话没有重新加载配置文件,关掉终端重新开一个即可。

这里有一个容易踩的坑:不要用 sudo 去执行 npm 或 openclaw 命令。用 nvm 安装的 Node 属于当前用户,一旦用 sudo 运行,系统会去 root 用户的全局路径里找 node,结果找不到或权限错乱。碰到这类问题,先确认自己当前是不是普通用户,再检查which node是否指向 nvm 的目录。

2.3 Git 与 SSH 密钥准备(可选但建议)

官方脚本安装其实不需要 Git,但源码编译和后续拉取技能包都用得到。Git 安装比较简单:

sudo apt install -y git git --version

如果你计划拉取私有仓库或者需要向自己的远端仓库推送内容,建议把 SSH 密钥准备好:

ssh-keygen -t ed25519 -C "you@example.com" eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519

生成的公钥在~/.ssh/id_ed25519.pub,按照实际平台的提示添加到账号设置里就行。这个步骤不是 OpenClaw 强制的,但提前配好会让你后续操作顺滑很多。

3. 安装 OpenClaw:三条路线实测记录

3.1 路线一:官方脚本安装(适合大多数人)

官方脚本安装我的建议是别急着直接执行管道命令,先把脚本下载下来看看内容。虽然麻烦一点,但你至少知道它要做哪些事情。

wget <官方文档页面里提供的install.sh地址> -O openclaw-install.sh less openclaw-install.sh bash openclaw-install.sh

脚本一般会做四件事:检查操作系统类型和 CPU 架构、确认 Node 版本是否满足要求、创建~/.openclaw配置目录、把可执行文件复制到系统路径或改环境变量。这个过程通常不会超过两分钟。

安装完成后,新开一个终端,输入openclaw version如果能输出版本号,说明主程序已经就位。这里重点提醒:不要用sudo执行安装脚本。OpenClaw 的配置目录默认放在用户主目录,如果用 root 权限安装,它可能会把目录权限搞成 root 所有,之后普通用户运行就只剩“Permission denied”的报错。

3.2 路线二:源码编译(适合想改扩展的人)

源码编译是理解 OpenClaw 内部结构最好的方式。先去官方仓库把代码拉下来:

git clone <官方仓库地址> openclaw cd openclaw npm install npm run build npm link

npm install阶段会比较久,具体时间取决于机器性能和网络情况。如果中途报错说缺少 Python、make 或者 g++,先回头安装build-essential,再重新执行npm install。npm link会把当前的命令软链接到全局,让你可以直接在终端里执行 openclaw。

编译安装的好处是你能随时改动源码后重新构建。坏处是升级要自己手动拉代码再编译一遍,不像脚本安装那样有现成的更新入口。所以我个人推荐“脚本安装为主、源码拉取为辅”,不把源码方式作为日常使用的主版本。

3.3 路线三:Docker 运行(适合要干净环境的人)

Docker 方式最大的价值就是污染小。想把主机环境保持干净,或者需要同时跑多个不同版本的 OpenClaw,用容器隔离会舒服很多。Ubuntu 下安装 Docker 可以直接用发行版自带的包:

sudo apt install -y docker.io docker-compose-v2 sudo systemctl enable --now docker sudo usermod -aG docker $USER

注意执行完usermod之后要重新登录,用户组才会生效。然后拉取官方镜像并运行:

docker run -it --rm \ -v ~/.openclaw:/root/.openclaw \ <OpenClaw镜像名> \ openclaw init

这里把宿主机的~/.openclaw映射到容器的/root/.openclaw,是为了让配置和数据持久化,否则容器一删配置就没了。Docker 方式有个容易踩的坑:容器内部访问宿主机的 Ollama 服务时,不能直接用localhost或127.0.0.1,因为那指向的是容器自己。后面我会单独讲这个问题。

3.4 安装完先做这四步验证

无论用哪种方式安装,建议按顺序验证一遍,别急着配模型。

openclaw version openclaw doctor ls -la ~/.openclaw openclaw chat

openclaw doctor是最重要的一个命令,它会自动检查 Node 版本、配置目录权限、依赖是否完整。很多人安装完直接跑模型报错,最后发现就是环境变量没有生效或者目录权限不对。openclaw chat会尝试启动一个交互会话,如果这一步能进入,说明服务和终端链路已经通了。

4. 模型接入配置:本地 Ollama 和 API 到底怎么选

4.1 接 Ollama:让算力留在本机

很多人问 OpenClaw 是不是只能用 API 方式调用算力,其实不是。本地模型是它非常主流的用法。我选择 Ollama 作为本地推理服务,安装方式如下:

curl -fsSL https://ollama.com/install.sh | sh ollama pull qwen2.5:7b

默认情况下 Ollama 会监听本机的 11434 端口,并暴露一个 OpenAI 兼容的接口。然后把 OpenClaw 的模型提供方切到 Ollama:

openclaw config set model.provider ollama openclaw config set model.base_url http://127.0.0.1:11434 openclaw config set model.name qwen2.5:7b

用本地模型的好处很明显:数据不出本机,离线也能用,没有按 token 计费的成本焦虑。代价就是 7B 这个规模的模型,在复杂推理任务上明显不如云端大模型,写简单脚本、整理文档、处理日常自动化任务够用,指望它一次性搞定大型项目重构就有点吃力。

验证 Ollama 服务是否正常的命令:

curl http://127.0.0.1:11434/v1/models

如果这个接口能返回模型列表,OpenClaw 这边的连接就不会有大问题。再提醒一次,OpenClaw 要求的base_url通常要写到http://127.0.0.1:11434这一层,而不是带/v1,因为框架会自己拼接后续路径。不同版本的 OpenClaw 对地址处理方式可能不同,最稳妥的办法是跑一次openclaw doctor看它给出的提示。

4.2 接云端 API:多模型随时切

本地模型跑不动复杂任务时,接一个云端 API 就是很自然的选择。OpenClaw 对模型提供方的抽象做得比较薄,你可以把它理解成“只要能提供 OpenAI 兼容接口的服务都能接”。配置方式写环境变量比写文件更安全,避免密钥散落在配置文件里:

export OPENCLAW_OPENAI_API_KEY="你的key" export OPENCLAW_OPENAI_BASE_URL="你的服务地址" openclaw config set model.provider openai openclaw config set model.name gpt-4o-mini

这里需要特别说明的是,我用的都是环境变量方式,因为配置文件一旦被同步工具传到其他地方,泄露风险太高。你可以把export这两行放到~/.bashrc末尾,以后新终端自动生效。换模型也很简单,在 OpenClaw 的交互会话里查看帮助命令,通常都有/model这类切换指令。

4.3 Skill 让 OpenClaw 真正变“趁手”

如果只把 OpenClaw 当聊天框用,它跟网页版模型没什么本质区别。它的真正价值在 skill 体系上。skill 可以理解为一个给模型准备的“操作手册 + 工具函数”的集合,模型遇到对应场景时会自动参考里面的说明来调用脚本。

常用命令先列出来:

openclaw skill list openclaw skill install <技能名> openclaw skill create my-skill

执行create之后,会在~/.openclaw/skills/my-skill/生成标准结构,核心是SKILL.md和scripts/目录。SKILL.md用自然语言描述这个技能是干什么的、在什么条件下触发、有哪些参数,scripts/放真正执行的脚本。

我举一个实际例子:我需要一个“读取日志并提取最近报错”的技能。先在SKILL.md里写清楚它应该接受日志文件路径,再用一段 Python 脚本负责解析报错内容并输出摘要。模型在对话中一旦判断用户需求匹配,就会主动调用这个技能脚本。注意一个安全点:skill 里的脚本有系统权限,别随便从陌生平台下载技能包,要有选择地安装。

5. 常见问题与排查技巧实录

5.1 安装脚本下载失败、校验不通过

这类问题常见表现有几种:wget下载到一半中断、文件大小明显不对、执行时提示校验失败。网上很多教程会让你直接换源或者改 DNS,但我的建议是先排查最基础的:确认当前网络能正常访问目标地址,然后重新下载,用sha256sum对比官方给出的校验值。

sha256sum openclaw-install.sh

如果是证书相关的报错,更新系统根证书一般能解决:

sudo apt install --reinstall ca-certificates

说到底,这类问题 80% 和网络环境有关,剩下的原因是下载了不完整文件就开始执行。宁可多等一会把文件下载完整,也别图省事。

5.2 Node 版本过低和依赖安装报错

最常见的启动报错就是:

error: openclaw requires Node >= 18

如果你是用 nvm 安装的 Node,执行nvm install 20再nvm alias default 20基本就解决了。麻烦的情况是系统里同时存在 apt 版本和 nvm 版本的 Node,终端里which node指向混乱。可以用which -a node看一下,两个路径同时存在时,把 nvm 那行的 PATH 调整到靠前位置就好。

npm install阶段遇到EACCES: permission denied时,不要一冲动就用sudo npm install,这会污染 root 的全局环境。正确做法是确认这是 nvm 管理的用户级 Node,普通用户权限直接安装就不会有权限问题。

5.3 模型连接不上:先查这三处

启动 OpenClaw 之后发现对话没有反应,别急着怀疑框架坏了,按顺序排查:

curl http://127.0.0.1:11434/v1/models openclaw config get model tail -f ~/.openclaw/logs/*.log

先确认 Ollama 服务活没活,再确认配置里的模型地址和名称对不对,最后看日志里具体的报错。我遇到过一次非常隐蔽的问题:base_url被误写成http://127.0.0.1:11434/v1,OpenClaw 框架请求时又在后面追加了一个/chat/completions,导致整条路径多了一层,服务端返回 404。改成http://127.0.0.1:11434之后立刻正常。所以配地址时不要自己脑补路径,仔细读文档说明。

5.4 Docker 模式下访问宿主服务的坑

如果你用 Docker 方式跑 OpenClaw,同时又用宿主机上的 Ollama,这里有个很经典的坑:容器里的localhost不是宿主机。默认桥接网络下,容器访问宿主机需要用host.docker.internal这个特殊主机名。

修改配置时把 base_url 写成:

openclaw config set model.base_url http://host.docker.internal:11434

如果还是不通,还有一个更彻底的方案:直接让容器用宿主网络跑,Linux 下支持比较好:

docker run -it --rm --network host \ -v ~/.openclaw:/root/.openclaw \ <OpenClaw镜像名> \ openclaw chat

用--network host之后,容器和宿主机共用网络栈,127.0.0.1自然就能访问到 Ollama。副作用是端口暴露范围变大了,自己本地用问题不大,但在有公网访问的环境里要谨慎。

5.5 卸载 OpenClaw 的完整姿势

有时代码更新太激进,或者你想从源码版切回脚本版,会需要彻底卸载。卸载前最重要的一步是备份配置目录:

mv ~/.openclaw ~/.openclaw.bak.$(date +%Y%m%d)

然后根据安装方式做清理。如果是 npm 方式,找到包名后执行全局卸载;如果命令目录是手动放的,直接删除对应可执行文件和配置目录:

rm -rf ~/.openclaw rm -f /usr/local/bin/openclaw

不要一上来就rm -rf,先把配置备份留好,万一新版本不如意还能回滚。我曾经因为贪图省事直接删了配置,结果辛辛苦苦调好的技能全部要重建,教训很深刻。

5.6 中文输入、GPU 驱动、GCC 失败的一些小提醒

有人反馈在终端交互界面输入中文时出现乱码或无法输入,这通常不是 OpenClaw 的锅,而是系统缺少中文输入法。Ubuntu 24.04 下可以安装 fcitx5:

sudo apt install -y fcitx5 fcitx5-chinese-addons im-config -n fcitx5

重启后切换到 fcitx5 输入法框架即可。另外,如果你想让本地模型跑在显卡上,需要先确认系统已经识别 NVIDIA 驱动和 CUDA 环境,运行nvidia-smi看看结果。很多人装 GCC 失败是因为没有先apt update,软件源还没刷新就直接安装,导致找不到依赖。先把源更新一遍,再apt install build-essential,这类问题基本能绕过去。

装完 OpenClaw 只是开始。我自己最深的感受是,这类工具装好后要花点时间在模型接入和 skill 设计上,直接用默认配置跑出的效果往往一般。如果你拿它跟 Claude Code 或 Codex 对比,也不用急着下结论“谁更好”,先把同一个任务跑一遍,观察它在工具调用和上下文管理上的差别,再决定主用哪个。最后再分享一个小经验:每次改完配置,都先跑一次openclaw doctor,它会快速提示配置项是否合法、依赖是否齐全。很多莫名其妙的启动问题,都是环境变量没生效造成的,与其翻日志不如先自查。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询