最近后台一直有人问同样的问题:OpenClaw、Hermes Agent、Claude Code、Codex CLI这四个东西到底有啥区别,是不是装一个就够了。老实说,这几个名字放在一起确实容易让人犯迷糊——它们都叫Agent,但实际干的事、部署方式、使用门槛差得非常远。这篇就把我实际部署和日常使用下来的经验一次性说清楚,包括每个工具的定位、安装过程、真实踩过的坑,以及最后怎么选型。
我会尽量按“从零装到能跑”的顺序来写,每个工具都给出我自己实测过的流程。这篇文章适合这几类人:想本地跑一个能接入飞书、钉钉、Telegram的私人助理的,想找编程Agent但不知道选Claude Code还是Codex CLI的,以及在公司内网要评估Agent部署方案的。新手可以按顺序通读,已经用过其中一两款的朋友可以直接跳到对比部分。
1. 先搞清楚定位:四款工具不是同一类东西
1.1 一句话定位
先把结论放在前面:
- OpenClaw 是个人助理型Agent网关,主打“多渠道接入”,典型玩法是把一个AI助手接进飞书、钉钉、Telegram、Slack,让它在消息流里帮你干活。
- Hermes Agent 更像一个可私有化部署的Agent服务平台,偏企业级使用,支持桌面端,也支持局域网部署,强调可控性和内部系统集成。
- Claude Code 是Anthropic官方出的编程Agent,跑在终端里,目标是帮程序员写代码、改代码、跑测试。
- Codex CLI 是OpenAI官方的编程Agent,和Claude Code定位几乎一样,可以看作OpenAI生态里的对应物。
这四者里,前两个更偏“个人助手/服务型Agent”,后两个更偏“编码Agent”。它们的共同点是都叫Agent,都支持命令行或某种服务方式运行,但设计目标决定了它们在安装方式、模型依赖、交互形态上有本质差异。
1.2 设计目标背后的选型逻辑
为什么会有这种差异?我觉得可以从“为谁服务”这个角度来看。
OpenClaw的出发点是“让AI主动出现在你的消息渠道里”。它的前身其实是一批个人助理机器人项目,核心价值在于打通渠道:你今天在飞书群里@它,明天在Telegram里找它,它都能响应,而且能调用工具、查资料、操作一些脚本。这种设计决定了它一定要轻量、开放、部署灵活,否则没法在树莓派或者闲置安卓机上跑。
Hermes Agent则不同,它从一开始就考虑了多智能体协作和内部系统对接。从社区里关于“harness和agent区别”的讨论能看出,它引入了不少工程化概念,比如任务编排、Agent之间的协作机制。这种项目在企业内网里很常见,因为企业需要的是能对接IM、内部API、数据库这些基础设施的Agent,而不是一个只能聊天的玩具。
Claude Code和Codex CLI就更直接了,它们就是给程序员用的“结对编程对象”。它们的核心不是渠道接入,而是理解代码仓库、调用工具、执行命令、处理多文件修改。这也是为什么它们都以CLI为主要形态——程序员本来就在终端里工作。
搞清楚这层逻辑,后面的所有对比就顺理成章了:OpenClaw和Hermes Agent比的是渠道和部署能力,Claude Code和Codex CLI比的是代码理解和执行能力。
2. 部署和安装实测:从零到能跑
这一节我按每个工具分别讲,重点是我自己实操验证过的流程,以及安装过程中的关键点和容易翻车的地方。
2.1 OpenClaw:安装面最广,坑也最多
OpenClaw最吸引人的一点是部署面极广,从普通Linux服务器到macOS、Windows WSL2,甚至安卓Termux都能跑。我实际测试下来,最稳的其实是Docker方式,因为官方镜像把所有依赖都打包好了,省去环境折腾的麻烦。
常规安装流程大概是:
- 准备一台能跑Docker的机器,Linux或macOS都行,Windows建议用WSL2。
- 执行官方提供的一键安装脚本,或者用docker compose部署。
- 首次启动时配置渠道接入,比如填飞书机器人的App ID和App Secret。
- 启动后就能在飞书或钉钉群里和它对话。
如果你是老手,想用命令行直接跑,也可以克隆仓库后通过命令行方式启动。但这个过程依赖Node.js、Python等多个运行时,版本对不上很容易报错。
我特别想强调的是安卓Termux部署这个事。很多人都以为在手机上跑OpenClaw必须装proot,其实不是。新版Termux在较新的安卓版本上已经可以直接运行,不需要proot,但需要满足几个前提:安卓系统版本不能太老,Termux本身要保持最新,还要注意存储权限设置。这样部署完后,一台闲置旧手机就能变成24小时在线的个人Agent,功耗还特别低。这个玩法很适合折腾党。
2.2 Hermes Agent:本地化最省心
Hermes Agent的安装明显比OpenClaw“工业化”很多。官网提供安装包,Windows、macOS、Linux都有对应版本,还有桌面版可以直接装。我还在Windows本地装过,整体流程就是下载、安装、配置,没有太多需要手动编译的东西。
对于企业局域网场景,我实测过用Docker方式部署。需要注意的一点是,在部分网络环境下拉取镜像可能需要配置镜像加速器,否则镜像拉取会卡住。这个在部署文档里一般也会提及,不是什么大问题,但第一次部署时容易忽略。
还有一种是内网多团队共用Hermes Agent的场景。它的服务端需要能访问到企业内部的一些系统,比如数据库、知识库、API网关,安装后要花时间在配置这些连接上。但一旦配好,后续的维护比OpenClaw省心得多,因为它自带更完善的管理界面和日志系统。
2.3 Claude Code:一条命令的事,门槛在账号
Claude Code的安装是四个工具里最简单的,本质上就是一个npm包:
npm install -g @anthropic-ai/claude-code装完之后在终端里执行claude就能进入交互界面。如果你用的是VSCode,还可以通过官方扩展或命令行集成方式把它接进去,在编辑器侧边栏直接对话,这个体验比较舒服。
真正的门槛其实是账号。Claude Code依赖Anthropic的API或订阅服务,你需要有一个能访问Claude模型的账号。这个点在实际部署时最容易被忽略——很多人把包装好了,结果执行claude时才发现卡在登录验证上。
我个人的建议是,先确认你的账号有权限,再开始安装,避免“装了半天装了个寂寞”。如果你在公司网络环境里使用,还要确认终端能正常访问API服务端。
2.4 Codex CLI:装完还要处理环境变量
Codex CLI同样通过npm安装:
npm install -g @openai/codex装完之后,还需要确保系统能找到codex这个命令。这里有个非常经典的坑:很多人用Windows命令提示符装了Codex CLI,codex --version也能正常输出版本号,但换到Windows Terminal或者VSCode集成终端里就报“找不到命令”。
这个问题的本质是环境变量没同步。在Windows上,npm全局包的安装路径往往不在系统PATH里,或者新装的路径没有立即刷新到已打开的终端会话中。解决办法也不复杂:
- 执行npm config get prefix查看npm全局目录。
- 把这个目录加到系统PATH里。
- 重启终端,再试codex --version。
另外还有一个很常见的报错是“unable to locate the codex cli binary or required runtime components”。这个我在第4节详细说,这里先提一句:它多发生在ChatGPT桌面版调用Codex CLI时,不是你的安装一定出了问题,而很可能是路径配置或版本不匹配。
3. 核心能力拆解:编程、助手、渠道接入
3.1 编程能力对比
如果把四个工具放在“编程能力”这个维度上排个序,我的结论是这样的:
Claude Code目前是我的主力。它的代码理解能力、多文件编辑的准确度、对大型代码仓库的处理能力都处于第一梯队。它不只是“聊天里贴代码”,而是能真正读取项目结构、搜索符号、修改多个文件,然后运行命令验证结果。配合Skills机制,还可以给它装各种技能包,比如自动生成提交信息、自动跑特定测试流程等。
Codex CLI和Claude Code的定位几乎一样,我用下来觉得它的强项在于和OpenAI模型体系的无缝集成,以及一些偏研究性的编程任务。不过在真实的工程场景里,它的代码库感知和Claude Code相比还有一截差距,尤其在理解项目上下文方面,经常需要你手动补充信息。
OpenClaw和Hermes Agent本质上不是“编程Agent”,它们更偏“能执行任务的助手”。虽然也可以通过配置工具调用方式让它们执行脚本、调用API,但它们的代码编辑能力远远不如前两者。我在OpenClaw里最常用的编程相关操作是让它跑一个现成的脚本,而不是让它帮我改代码。
3.2 个人助手和消息渠道接入
这一块是OpenClaw的绝对主场。它的核心能力就是把AI接到各种IM渠道里。我实测过的有飞书和Telegram,过程大致是:创建一个机器人应用、配置回调地址、把消息事件转发给Agent、Agent处理后把结果回复到群里。OpenClaw的插件系统还支持记忆、定时任务、联网搜索等能力,基本就是“私人助理该有的功能”。
Hermes Agent在助手能力上同样不弱,但形态不太一样。它更像一个服务平台,你可以在上面定义多个Agent,每个Agent对接不同的知识库和工具,然后通过统一入口调用。企业里常见的用法是做一个“IT支持助手”和一个“HR助手”,分别对接运维知识库和人事文档,再统一挂在企业IM或内部门户上。
这里有个很重要的差异点:OpenClaw的“助手”是你个人能随意改造的玩具,Hermes Agent的“助手”是要能被团队稳定使用的基础设施。两者的稳定性、权限管理、审计要求不在一个量级上。
所以如果你想在飞书里快速跑一个AI助手,OpenClaw是性价比最高的方案;如果你们公司需要一个能对接内部系统的Agent平台,Hermes Agent更合适。
3.3 模型接入和扩展性
四个工具的模型接入策略各不相同,这点在选型时也值得关注。
OpenClaw对模型的支持比较开放,你可以配置不同的模型提供商,甚至对接开源模型服务。我还在一些讨论里看到有人把OpenClaw对接魔塔(ModelScope)上的模型,相当于在国产模型生态里也能跑。这意味着它的使用成本可以压得非常低,完全用开源模型跑一个基础版助手,这对个人用户来说很友好。
Hermes Agent在模型接入上也有一定灵活性,但更强调“受控”——你可以配置默认模型,也可以约束某些Agent只能使用特定模型。这种可控性在企业场景里很重要,毕竟不是所有业务都适合用同一个模型处理。
Claude Code基本绑定Anthropic系的模型。这对大多数用户来说不是问题,因为它的能力本身就依赖这些模型,绑定反而保证了体验的一致性。
Codex CLI则绑定OpenAI生态。ChatGPT桌面版甚至把Codex CLI作为一个底层组件来调用,这也是为什么会有“chatgpt failed to start. unable to locate the codex cli binary”这种报错——桌面应用找不到底层CLI,自然起不来。
4. 实操中的典型问题与排查
这一节把我实际遇到过的、以及社区里高频出现的几个问题拿出来单独讲,每个都给排查思路。
4.1 OpenClaw:WSL2校验失败和飞书输出截断
先说WSL2环境校验失败这个问题。错误信息大概是“could not safely verify the WSL2 environment”。我第一次遇到时很懵,明明WSL2装得好好的,Docker也能跑,为什么OpenClaw会卡在这一步。
后来排查发现,问题通常出在WSL2的版本或者内核参数上。OpenClaw在启动时会对运行环境做一些安全检查,如果你用的WSL2发行版比较旧,或者Windows侧的WSL版本没有更新,就可能无法通过校验。解决办法很简单:
- 在PowerShell里执行wsl --update,把WSL更新到最新版本。
- 更新完重启终端和Docker Desktop。
- 再重新启动OpenClaw。
绝大多数情况都能解决。如果还不行,检查一下你是不是在旧内核下装了比较新的Docker Desktop,这种情况建议直接重装Docker Desktop,让两者版本匹配。
再说飞书输出截断的问题。OpenClaw接飞书后,遇到长回复很容易被截断。这不是OpenClaw或者飞书的bug,而是飞书消息长度限制导致的。解决思路有两个层面:一是调整OpenClaw的输出策略,让它把长回复拆成多条短消息发送,或者用更精简的方式回复;二是让它在输出前先自己压缩内容。后一种方式实测更有效,既节省token又避免截断。
4.2 Codex CLI:找不到二进制的经典报错
“unable to locate the codex cli binary or required runtime components”这个报错,我在两种场景下都遇到过。
第一种是全新安装后直接运行,原因通常是npm安装路径不在PATH里。这种解决办法就是前面说的把npm全局目录加进PATH,但其实这里还有一个隐藏细节:如果你是通过某些Node版本管理器装的Node,npm全局目录可能会被隔离,导致系统级PATH里永远找不到codex。这时候建议用npm config get prefix确认路径,然后把路径写进用户级PATH。
第二种更隐蔽,发生在ChatGPT桌面版调用Codex CLI时。ChatGPT桌面版会尝试调用系统里的codex二进制,如果它找不到,或者找到的版本和它内部需要的版本不一致,就会报这个错。我遇到的情况是机器上装了一个非常老的Codex版本,和桌面版要求的版本不匹配。解决方法是把旧版本卸载干净,重装最新版,然后确保安装路径在所有终端会话中都可见。
这里有个容易忽略的点:某些环境下npm全局安装后的可执行文件可能在~/AppData/Roaming/npm(Windows)或者/usr/local/bin(macOS/Linux),不同工具链调用的搜索路径不一样。如果是给ChatGPT桌面版用,最好把codex的安装路径明确添加到系统级PATH里,不要只放在用户级PATH。
4.3 Hermes Agent:Windows安装报错
Hermes Agent在Windows本地安装时,有用户反馈报“请求的名称有效”类似描述的错误。这个其实是Windows网络层面的错误,常见于带括号或特殊字符的共享路径、网络驱动器映射失败、或者Windows服务无法解析机器名。
我排查过的一次是这个情况:安装程序在写入配置文件时,尝试访问一个局域网共享路径,但当前用户没有该共享的访问权限。报错信息看起来像网络错误,实际上权限问题。解决方法是先用文件资源管理器手动访问一遍那个路径,确认权限和网络连通性正常,再重试安装。
如果你是做局域网部署,还容易遇到端口冲突或者防火墙拦截的问题。由于这些Agent服务往往会监听一些本机端口,建议安装前先确认端口没有和其他进程冲突,或者在防火墙里显式放行程序。
4.4 Claude Code:Skills与环境配置
Claude Code在日常使用中相对稳定,但有两个点值得单独说。
第一个是登录验证。Claude Code首次使用必须完成账号验证。如果你所在网络无法连接到Anthropic服务,启动时会卡在验证界面很久,这时需要先确认网络连通性再继续,不要反复重启进程,那样只会浪费时间。
第二个是Skills的安装。Skills是Claude Code的能力扩展机制,能让它做更专业的任务。安装Skills时,文件路径、目录结构、权限都要正确,否则会出现“看起来装了,但用不了”的问题。我的经验是严格按照官方模板的目录结构来放,不要自作聪明改位置。装完之后用claude --skill类似的子命令检查一下是否被识别。
还有一个容易被忽略的是,在多用户系统上,不同用户的Claude Code配置是隔离的,你在用户A下装的Skills,在用户B下看不到。如果你是给团队配置,需要每个用户单独处理,或者放到系统级配置目录。
5. 选型建议:什么场景选什么
5.1 场景对照表
| 维度 | OpenClaw | Hermes Agent | Claude Code | Codex CLI |
|---|---|---|---|---|
| 核心定位 | 个人助手/多渠道接入 | 企业级Agent服务平台 | 编程Agent | 编程Agent |
| 安装难度 | 中等偏难,渠道多坑多 | 简单,有桌面版 | 很简单(npm) | 简单(npm),注意PATH |
| 编程能力 | 弱 | 弱 | 强 | 中上 |
| 渠道接入 | 强(飞书/钉钉/Telegram等) | 中(偏企业内部门户) | 无 | 无 |
| 模型绑定 | 开放(可接开源模型) | 可控(可配置) | 绑定Anthropic | 绑定OpenAI |
| 适合场景 | 个人助理、极客折腾 | 企业私有化部署 | 程序员写代码 | 程序员写代码 |
5.2 按需求选型的实用建议
如果你只想找一个能24小时在飞书或钉钉里待命的AI助理,让你随时问问题、查资料、触发一些自动化任务,OpenClaw是首选。它的部署虽然有点折腾,但胜在灵活,渠道覆盖广,还支持接开源模型降低成本。折腾一次,后面收益很大。
如果你是在公司里负责技术基础设施,需要给团队或者某一个部门部署一套Agent服务,Hermes Agent更合适。它的安装相对省心,管理能力更强,还支持局域网部署。你不用担心某一天某个成员乱改配置影响整体稳定性,毕竟它是按“服务”的标准设计的。
如果你是程序员,主要诉求是让AI帮你写代码、改bug、做代码审查,那就直接在Claude Code和Codex CLI里选。我的个人结论是Claude Code在代码理解、多文件编辑、仓库全局检索上更强,写工程代码选它更省力。如果你深度使用OpenAI系产品,或者公司内部已经在用OpenAI的API,那Codex CLI是更顺理成章的选择,毕竟同一个生态里的衔接会少很多配置成本。
如果你能力很强且有一定的工程底子,也可以把OpenClaw和Claude Code组合起来用:OpenClaw负责最外层的用户请求接入,对应到具体的编程任务时再调用后端的Claude Code去执行。这种方式让团队成员能通过企业IM直接下发代码修改请求,算是一种比较前卫的玩法,适合喜欢折腾的团队尝试。
进入实际使用阶段之后,我最大的体会是:工具迭代速度非常快,今天写的安装步骤和报错现象,可能几个月后就有变化。如果你照着文章操作时发现某个坑不存在了,或者出现了我没提到的报错,大概率是版本更新了。遇到这种情况,优先查工具的官方更新日志和GitHub Issues,那是信息最准的地方。
还有一个经验是,不要盲目追新,也不要被“全能Agent”的概念带着跑。先搞清楚你要解决的具体问题是什么,再根据问题选工具。需要写代码就选编程Agent,需要消息助理就选OpenClaw或Hermes Agent,需要企业级可控性就选Hermes Agent。工具是拿来干活的,适合你场景的才是最好的。