最近后台和读者群里被问爆了一个问题:OpenClaw、Hermes Agent、Claude Code、Codex CLI这四个AI Agent到底有什么区别?到底该装哪个?我自己从春节后陆续把四个工具都装了一遍,有的在Mac上跑,有的丢到Linux服务器上,还有一个专门在Windows下折腾了半天,算是把坑都踩得差不多了。这篇就把我对这几个工具的理解、部署过程、实际使用感受一次性说清楚,主要面向两类人:一类是做AI编程、想让Agent帮自己写代码改代码的开发者;另一类是只想搭一个个人助手,能接飞书、能回消息、能跑任务的效率党。看完你应该就能判断哪个值得装、哪个适合吃灰了。
这四个名字看着都是“AI Agent”,实际上定位差别很大。Claude Code和Codex CLI是终端里的AI编程工具,核心是“帮你在项目里写代码、执行命令、修bug”;OpenClaw和Hermes Agent则更偏“个人数字助手”,核心是“帮你完成日常任务、对接各种平台”。我接下来会先讲清楚定位,再给安装步骤,最后把高频报错和解决方案整理成速查表,方便你直接抄作业。
1. 四个工具,先搞清楚它们分别是什么料
1.1 OpenClaw:能动手会接平台的“私人管家”
OpenClaw从名字上就透着一股“爪子”的味道,它更像一个长在各种聊天软件里的数字管家。它的核心能力不是写代码,而是把大模型接进你的工作流:你可以在飞书群里@它,让它查资料、记日程、执行脚本、访问内部系统,甚至把它部署到安卓手机上的Termux里,做成一个随身携带的语音/文本助手。OpenClaw的优势是对多平台接入做了很多优化,比如飞书、Slack这类IM工具,还有魔搭(ModelScope)这样的模型平台,通过API对接后可以直接切换不同的大模型后端。部署方式也灵活,官方提供一键脚本,支持Mac、Linux、Windows的WSL2环境,也能在Android上原生跑。
我第一次装OpenClaw是在一台8GB内存的旧笔记本上,跑起来挺轻的。它的架构分成了“消息接入层”和“任务执行层”,前端通过适配器接IM平台,后端通过配置接模型API。换句话说,你完全可以把OpenClaw当成一个中转控制台,IM只是入口,真正干活的是后面挂载的模型、脚本和插件。这种设计对不爱折腾的人来说可能稍显复杂,但对喜欢自定义的玩家来说,扩展空间非常大。
1.2 Hermes Agent:更像一个“任务编排中心”
Hermes Agent和OpenClaw的最大区别,在我看来是它更强调“编排”和“桌面端体验”。它有正式的桌面客户端,Windows下也有对应的本地安装包,安装完后会有一个图形化界面,能管理多个Agent会话、插件和技能包。不怎么用命令行的人也能比较舒服地操作。它的定位是“Agent的中控台”:你可以把不同任务拆解成流程,让Hermes去调用工具、搜索信息、写文件,甚至把多个小Agent串成一个流水线。
我在局域网内部署Hermes Agent时,发现它对Docker比较友好,官方提供了镜像,可以在NAS或Linux服务器上跑成一个常驻服务,然后局域网内所有设备通过网页或客户端访问。这也意味着它非常适合家庭或小型团队共享:一个后端,多人使用。不过它的配置项比OpenClaw要多一些,模型API地址、工具权限、插件开关都需要在配置里写清楚,新手刚上手会有点头大,但一旦跑起来,任务编排的粒度确实更细。
1.3 Claude Code:终端里的结对编程老手
Claude Code是Anthropic推出的命令行AI编码工具,本质上是一个跑在终端里的智能体。它不是简单的“问答补全”,而是可以读取当前仓库的目录结构、打开文件、搜索代码、修改内容、执行测试,然后根据报错继续修。这意味着你需要给它一个明确的项目上下文,它才能真正帮上忙。
我用Claude Code最大的感受是“它敢动手”:你让它改一个模块,它会自己找到相关的文件,改动后还会跑一下linter或测试命令来验证。配合Skills机制,你还能在~/.claude/skills目录下放一些自定义技能描述,让它在特定任务上表现得更好。对于熟悉终端操作的老手来说,Claude Code学习成本很低,装完绑定账号就能用;对纯新手,可能需要先搞懂几个基础命令和编辑器操作,不过网上也有很多“超级小白入门指南”,基本套路就是先让它读README,再让它解释代码,再让它改小bug,一步步来。
1.4 Codex CLI:OpenAI系的代码智能体
Codex CLI是OpenAI出的同类终端编码工具,名字和Codex模型一脉相承。和Claude Code相比,它更强调“自动完成整个任务链路”:你告诉它目标,它把需要修改的文件列出来,逐一改动,然后调用命令编译或执行,过程中会请求你确认关键操作。对用惯了GPT系列模型的人,Codex CLI的思维方式会更熟悉,它在自然语言转代码、多文件修改的场景下表现稳定。
Codex CLI安装也是走npm,装完直接在终端输入codex就能进交互界面。我实测下来,它对Python、TypeScript这类主流语言支持得很顺,尤其是在一个独立仓库里做重构时,它能自己生成一次commit summary,方便你review。需要注意的一点是,Codex CLI本质还是依赖OpenAI的账号和API权限,所以终端环境要能正常访问API,最好在项目根目录下运行,避免它的“对话记忆”被无关目录的代码干扰。
1.5 横向对比:四张牌到底怎么选
| 工具 | 定位 | 部署方式 | 主要使用场景 | 上手难度 |
|---|---|---|---|---|
| OpenClaw | 个人助手/消息机器人 | 一键脚本、Docker、安卓Termux | 接飞书、微信类IM、执行日常脚本 | 中等 |
| Hermes Agent | 任务编排/桌面客户端 | Windows安装包、Docker | 局域网共享助手、任务流程整合 | 中等偏上 |
| Claude Code | AI编程智能体 | npm全局安装 | 仓库代码阅读、修改、测试 | 较低 |
| Codex CLI | AI编程智能体 | npm全局安装 | 多文件改造、自动执行任务 | 较低 |
一个简单的选择方法:如果你主要想让Agent“干活”,比如定时跑脚本、收消息、触发自动化,优先看OpenClaw和Hermes;如果你主要想让Agent“写代码”,直接上Claude Code或Codex CLI。当然,实际使用中也可以混搭,比如用OpenClaw做飞书入口,把Claude Code作为它执行编程任务的外部命令,后面我会讲这种组合玩法。
2. 部署与安装:裸机、容器和桌面端怎么选
2.1 Claude Code:一条npm命令装完,VSCode也能接
Claude Code的安装很简单,前提是你电脑上有Node.js环境,我建议Node版本不低于18。然后开一个终端,执行:
npm install -g @anthropic-ai/claude-code装完以后在项目目录里输入claude就能启动。第一次启动会让你登录Anthropic账号,绑定好之后就开始对话。为了方便日常使用,我通常会先在VSCode里打开项目,然后直接用它的集成终端跑claude,这样左侧文件树和终端对话可以同时看到,改代码比较直观。
如果你不太习惯命令行,也可以装VSCode扩展来获取图形入口,但本质上它还是会在终端里启动一个会话。这里提一句Skills配置:Claude Code支持把自定义技能放到~/.claude/skills里面,每个技能是一个文件夹,里面写一个SKILL.md说明文件。比如我写了一个“生成单元测试”的技能,定义好触发词和执行步骤,后面只需要说“按技能生成测试”,它就会按固定套路跑一遍。这对团队统一代码规范很有用。
2.2 Codex CLI:同样走npm,但报错要重点排查
Codex CLI的安装路径和Claude Code几乎一样:
npm install -g @openai/codex安装后输入codex进入交互模式,第一次会检查登录凭证和运行时依赖。很多人在这一步卡住,最常见的就是终端提示:
chatgpt failed to start. unable to locate the codex cli binary or required runtime components.这个报错我一开始也被吓到了,其实90%的情况是PATH没有刷新。Windows下用npm安装完新命令后,已经打开的终端不会自动更新环境变量,要么关掉重开一个,要么手动执行refreshenv(配合包管理器工具)或者重新加载~/.zshrc。如果你确认PATH没问题,那就重新执行一次全局安装,让npm把最新的二进制链接到位。另外,如果你在Windows Terminal里运行,务必以普通用户权限打开,不要用管理员权限,否则某些目录的访问权限会不一样,反而找不到二进制文件。
Codex CLI在Linux服务器上的表现更稳,我通常把它和Git worktree一起用:每个任务开一个独立的worktree分支,让Codex在隔离的目录里改代码,改完不会污染主工作区,review通过后再合并。这是多人协作和AI修改场景下的一个实用技巧。
2.3 Hermes Agent:Windows本地安装和Docker两条路
Hermes Agent的安装方式和前两个不太一样,它有官方桌面版,Windows下可以直接下载安装包,装完后会有一个图形界面。桌面版的好处是自带模型配置向导,填入API地址和密钥,就能开始对话。如果你想把Hermes变成局域网服务,官方推荐Docker方式:
docker pull hermes-agent/hermes-agent:latest docker run -d --name hermes -p 8080:8080 -v /path/to/config:/config hermes-agent/hermes-agent:latest注意国内拉取镜像如果比较慢,可以给Docker配置镜像加速,这是通用操作,自己搜一下registry mirror就行。我第一次在Windows下装桌面版时遇到过“请求的名称有效”这个报错,当时怎么都想不通。后来排查发现是Windows的主机名解析问题,服务启动后要解析本机机器名,但hosts文件里没有对应的条目。解决办法是在C:\Windows\System32\drivers\etc\hosts里加一行127.0.0.1 <你的主机名>,然后重启服务就好了。
如果你用的是国产Linux系统,比如Kylin v10,其实也能跑Hermes的Docker版,只是要注意先配好Docker源,再把/etc/hosts里的主机名映射也检查一下,网络通了基本就没问题。
2.4 OpenClaw:一键脚本、Mac、安卓Termux都能跑
OpenClaw的部署选项最多。在Mac或Linux上,最简单的是一键脚本:
curl -fsSL https://openclaw.example/install.sh | bash装完执行openclaw init初始化配置,按提示填入模型API、IM平台密钥等。如果只是本地测试,可以先用内置的控制台模式聊几句;如果要用飞书机器人,就去飞书开放平台创建应用,拿到App ID和App Secret,填到配置里,再把事件订阅地址指向OpenClaw服务的回调接口。
安卓端我试过在Termux里原生部署,不需要proot,这点很关键。因为proot会套一层虚拟化,性能损耗大,而且很多内核功能不能用。原生Termux方式是直接把OpenClaw的依赖装进系统,跑起来CPU占用低,内存也省。不过安卓上要注意保持Termux后台运行,否则一锁屏服务就被系统杀了。可以借助Termux:Boot这类插件,或者把OpenClaw注册成前台服务。
在Windows上跑OpenClaw时,我踩过一个很典型的坑,终端报警告说“openclaw could not safely verify the wsl2 environment.”。原因是OpenClaw检测到当前环境是WSL2,但安全校验没过。这种情况一般是WSL版本太旧或者Windows功能没开全,可以先确认Windows里“适用于Linux的Windows子系统”和“虚拟机平台”两个功能都已经开启,然后在PowerShell里执行:
wsl --update wsl --version把WSL升级到2.0以上,问题基本就解决了。如果还是不行,干脆就别在Windows里折腾WSL,用Docker Desktop跑OpenClaw容器,或者直接用Linux服务器,一劳永逸。
2.5 部署阶段的小结建议
如果你是第一次接触这些Agent,我建议不要一上来就四个都装。先用Claude Code或Codex CLI体验“AI能帮你写代码”的感觉,因为安装最快、反馈最直观。等你熟悉了Agent的工作方式,再装OpenClaw或Hermes来处理日常任务和消息接入,这样不容易被一堆配置劝退。另外,所有Agent都建议在干净的独立目录或容器里跑第一次,避免和现有开发环境互相干扰。
3. 承包日常任务:个人助手Agent的实战玩法
3.1 OpenClaw接飞书和魔搭:从群聊机器人到办事员
OpenClaw最吸引人的玩法就是接飞书。整个流程是:飞书群里有一个机器人,你@它发布任务,它通过事件订阅转发给OpenClaw,OpenClaw调用大模型理解意图,再执行脚本或者调用API,最后把结果回复到群里。实际部署的时候,需要在飞书开放平台创建一个企业自建应用,开通机器人能力,配置事件订阅地址为你的OpenClaw回调地址。要注意飞书要求回调地址必须是公网可访问的HTTPS地址,如果你没有云服务器,可以用内网穿透工具把本地端口映射出去。本地开发和调试时,也可以先用飞书的“长连接”模式,省去公网IP的麻烦。
用OpenClaw对接魔搭模型也很简单,魔搭平台有OpenAI兼容的API接口,你只要在OpenClaw配置里把model_provider改成魔搭,填入API Key和模型名,就能用国产开源模型当后端。我试过用Qwen系列模型跑OpenClaw,中文理解很好,日常指令都能接得住,而且API调用成本比国际通用模型低不少。如果你想省成本,这个组合值得试。
3.2 飞书输出被截断:问题出在分片策略上
很多人在群里让OpenClaw输出长文本,结果发现内容被截断,这其实是IM消息长度限制导致的。飞书单条消息文本长度限制一般比较严格,超过就发不出去。OpenClaw在发送长回复时,最好开启自动分片,让消息按固定长度拆成多条发送。你可以在配置里设置max_message_length,比如每段1500字符,同时加一个“继续”的提示,让群聊阅读体验更顺。另外,如果回复里有代码块,建议先用临时文件保存代码,再给一个文件链接或摘要,避免把一大段代码直接怼进聊天框。
3.3 Hermes Agent做局域网共享助手,桌面端和容器各有取舍
Hermes Agent很适合放进家庭或小型办公环境。我在一个内部网络里用Docker版本部署了Hermes,然后让同事通过浏览器访问,实现了一个“团队用的AI助手”。它有几个能力很实用:可以定时拉取公司内部RSS或邮件摘要,可以把任务列表转成待办事项,还可以调用服务器上的外部脚本。因为这些操作都发生在局域网内部,数据不出网,安全性比单纯用公共聊天机器人高很多。
桌面端则更适合个人单独用。它的插件系统比较友好,你写一个简单的Python脚本,注册成工具,Hermes就能在对话中调用。比如我写过一个“生成周报”的插件,输入本周关键词,它自动从Git提交记录里聚合信息,然后生成一份Markdown周报。这种可扩展性是我觉得Hermes最大的价值。
配置Hermes时有一些细节容易踩坑。首先是模型API地址,如果你在局域网内部部署,服务端要能访问到模型API;如果模型也部署在内网,要填内网地址而不是localhost。其次是权限控制,Hermes支持给不同工具设置允许/拒绝,默认比较保守,如果你发现某个工具无法调用,去工具权限列表里看看是不是被禁用了。
3.4 把Codex CLI接入飞书,实现异步编程任务
这个玩法相对进阶:你可以把Codex CLI封装成一个后端服务,接收飞书机器人发来的任务,然后在服务器上跑一个独立的编码Agent,完成后再把结果回传到飞书。我实际实现时,用了一个简单的消息队列:飞书机器人把用户消息推送到一个HTTP接口,接口解析任务后写入Redis队列,后台Worker从队列里取到任务,调用codex命令行执行,最后把stdout/日志组装成飞书消息发出去。
这样做的好处是,你不需要一直开着电脑,随时随地给飞书发一条“帮我写一个Python脚本,读取某个目录下所有CSV,合并后去重”,服务器上的Codex会异步处理,完成后通知你。使用中要注意设置任务超时、限制的工作目录、以及日志保留。千万别让Agent在服务器全局目录下乱跑,所有任务集中在一个/workspace目录,命令执行完就清理临时分支。接入飞书机器人本身的步骤和OpenClaw类似,只是后端从OpenClaw换成你写的代理服务而已。
4. AI编程能力对比:谁更适合进你的开发流
4.1 Claude Code的Skills和项目上下文管理
Claude Code最值得花时间研究的是Skills。简单说,Skills就是一套“行为规范”,你告诉Claude在处理什么任务时遵循什么步骤、调用什么工具。我在团队里推广的时候,把代码规范、提交信息格式、测试要求都写进了一个Skill,这样无论谁在项目里运行Claude Code,生成出来的代码风格都基本一致。
实际使用时,我习惯进入项目后先让它“读一遍项目结构”,然后用对话方式确认需求,再开始改代码。Claude Code对项目上下文的感知做得不错,它能看到文件树,能grep关键词,还能打开具体文件。遇到大仓库时,我会在.claudeignore里排除node_modules、build这些目录,减少无关信息的干扰。如果项目特别大,也可以只把Claude Code启动在子模块目录里,按模块粒度维护上下文。
和Codex CLI相比,Claude Code在“理解人类编程意图”这块的对话感更强。比如你说“这个接口并发有问题,帮我优化”,它会先分析当前实现,给出瓶颈判断,再改代码。这种先解释再动手的风格,对代码审查和教学场景非常友好。
4.2 Codex CLI的多文件修改与任务执行闭环
Codex CLI让我印象深刻的是它的“多文件修改+自动执行”闭环。你给出一个目标,它会列出计划,比如“修改A.py、B.py,新增C.py”,然后逐个改动,最后执行命令验证。如果你不想让它直接跑高危命令,可以在配置里把命令执行模式设为“手动确认”,这样每个关键命令都会弹确认。我自己的习惯是:对于涉及数据库迁移、删除文件、安装依赖的操作,必须手动确认;对于只读命令和测试命令,可以自动执行。
从使用体验上看,Codex CLI更适合“一次性任务式开发”:比如“把这个CLI脚本从Python迁移到Rust”这种明确目标的任务,它能在你给足上下文后独立完成80%。但如果是交互式探索,比如“为什么这个页面性能差”,我还是更愿意用Claude Code,因为它更擅长边解释边改。你把这两个工具配合起来用,一个做主攻,一个做审查,会非常顺。
4.3 同一仓库里用两个Agent?先开Git worktree
我试过让Claude Code和Codex CLI同时在一个仓库里改代码,结果差点把文件搞乱。后来改成用Git worktree隔离:每个Agent在独立worktree里干活,互不干扰。具体操作是:
git worktree add ../project-agent1 -b feature/agent1 git worktree add ../project-agent2 -b feature/agent2然后分别进入两个目录,启动各自的Agent。等两边都完成,在主干分支上逐个merge。这个方法还有一个额外好处:每个Agent看到的代码版本完全独立,不会被另一个Agent的临时修改影响,审查时也能对比两个方案。
如果你主要用AI编程工具处理小需求,可能用不上worktree;但一旦开始跑比较大的重构或者多任务并行,这个技巧能省掉很多恢复代码的时间。AI改代码再快,也架不住两个AI同时改同一行带来的冲突,提前隔离比事后解决冲突划算。
4.4 二开与集成:Claude Code怎么嵌进自己的工具链
除了直接用命令行,Claude Code也支持一些二次开发能力。你可以通过命令行传参数执行一次性任务,比如:
claude -p "给 src/utils.ts 增加一个防抖函数并导出"这里的-p是非交互模式,适合被其他脚本调用。我就在自己的CI流程里加了一个步骤:当PR描述里带有特定前缀时,自动调用Claude Code生成改动建议并post到PR评论。这样AI变成团队协作的一环,而不是只在本地终端里自嗨。Hermes Agent的二开逻辑类似,但它偏插件体系,需要按官方文档写插件描述文件,声明工具的输入输出格式,好在有模板可以参考。
5. 常见问题排查实录:我踩过的坑一次性列给你
安装和使用的过程中,下面这些问题几乎每个人都会碰到,我以速查表的形式整理出来。
| 问题现象 | 可能原因 | 解决思路 |
|---|---|---|
| openclaw could not safely verify the wsl2 environment | WSL版本过低或Windows功能未完全开启 | 执行wsl --update,确认“虚拟机平台”和“适用于Linux的Windows子系统”已开启 |
| openclaw在飞书输出容易被截断 | 单条IM消息长度超限 | 配置max_message_length,开启自动分片,长代码用文件链接 |
| unable to locate the codex cli binary or required runtime components | PATH未刷新或npm全局目录不在PATH | 重开终端或刷新环境变量,重新执行npm全局安装 |
| hermes agent安装报“请求的名称有效” | Windows主机名解析异常 | 在hosts文件中添加127.0.0.1 主机名,重启服务 |
| chatgpt failed to start. unable to locate the codex cli binary | Codex依赖未正确安装 | 检查Node版本,重装@openai/codex,确保npm全局bin目录在环境变量中 |
| 麒麟v10部署Hermes Agent时Docker拉镜像慢 | 没有配置镜像加速或网络慢 | 给Docker配置registry mirror,检查DNS和主机名映射 |
| Claude Code在大型仓库中上下文混乱 | 大量无关文件被扫描 | 配置.claudeignore忽略构建产物和依赖目录,或只在子模块目录启动 |
这些报错里,我最想强调的还是环境变量的问题。很多新手以为是工具坏了,其实只是终端会话没更新。每次装完npm全局命令,第一件事就是重开终端,先执行claude --version或codex --version,确认命令能被找到,再继续下一步。
另外,所有Agent都建议保留一份原始配置文件备份。因为你很可能在调参数时把配置改坏,比如模型地址填错、密钥多加了一个空格、权限开关关错了,恢复备份比重新初始化省事太多。
6. 我的选型体会和踩坑建议
四个工具我都实际跑过一段不短的时间,最后形成的搭配是:日常消息类任务全部交给OpenClaw,因为飞书机器人接得最稳,安卓端也能跑;团队内的任务编排用Hermes Agent,它有可视化的桌面端,非技术同事也能上手;写代码时主力用Claude Code,它读代码和解释逻辑的能力让我更放心;遇到明确的重构任务时,我会开一个Codex CLI的worktree去跑,给两个Agent各自独立的空间。
这几个工具并不是竞争关系,更像是不同岗位的员工。不要指望一个Agent解决所有问题,也不要因为安装出错就放弃。我个人的建议是:先从一个安装最顺手的开始,把日常最简单的一个任务交给它,比如“每天早上的群消息总结”,跑通之后再慢慢加任务。等你知道Agent在哪些环节容易出错、哪些环节需要人工兜底,自然就能根据项目需求调整工具组合。AI Agent这东西,真正上手用过一周,比看十篇对比文章都管用。