最近我手上的活儿几乎都变成了同一个模式:先让 Agent 跑一遍,我再接手改。AI 编程工具和个人助手 Agent 爆发的速度太快,后台问得最多的就是 OpenClaw、Hermes Agent、Claude Code、Codex CLI 这四款到底该用哪个。这篇文章就来自我这几个月实机部署和日常使用的记录,会把每一个工具的定位、安装、典型用法、踩坑经验和选型思路都摊开讲,适合正在评估 AI 编程工具、准备部署个人助手 Agent,或者被各种网络教程绕晕的朋友直接参考。
先说结论:这不是同类工具的四个版本,而是两条路线。Claude Code 和 Codex CLI 是终端里的编程 Agent,做的是“在代码仓库里帮你改代码”;OpenClaw 和 Hermes Agent 是个人助理 Agent,做的是“接入聊天软件帮你跑日常任务”。把这两类区分清楚,大部分选择困难就解决了。
1. 先分清两类 Agent,别在对比上跑偏
1.1 终端编程 Agent 解决的是什么问题
Claude Code 和 Codex CLI 这类工具的定位非常单一:它们坐在你的终端里,能读项目文件、改代码、执行命令、跑测试、做 git 提交。你给它一个任务描述,它自己规划步骤,自己读取相关文件,自己动手修改,遇到编译错误还会自己看日志修复,直到完成或者碰壁把问题抛给你。
这背后的结构其实不复杂。通常说“编程 Agent”时,包含两大部分:一个是大模型本身,负责推理和生成改动;另一个是外围的 harness,负责给模型提供文件读写、命令执行、代码搜索等工具。可以简单理解成模型是大脑,harness 是手和脚。不同编程 Agent 用起来体验差异那么大,根源主要不在模型,而在 harness 设计得好不好——上下文管理、权限确认、diff 展示、多文件修改能力这些,才是决定你用得顺不顺的关键。这也是社区讨论到“harness 和 agent 区别”时最常被忽略的一点。
1.2 个人助理 Agent 的定位完全不同
OpenClaw 和 Hermes Agent 属于另一类。它们的目标不是“帮你写代码”,而是“接管你的数字生活”:对接 IM 平台(比如飞书、Telegram、Discord),监听消息并自动响应;挂上日程提醒、定时任务、网页信息抓取;像一个小管家一样常驻运行,谁在群里 @ 它、谁发你私信、哪个股票到价了,都能第一时间处理。
这类 Agent 的核心能力在于集成和编排。写代码只是它众多能力之一——如果它接了代码工具,也能执行编码任务,但大部分情况下它是作为生活和工作流的中枢存在。它们的优点是“随时可用”,不需要打开终端,在聊天框里就能指挥;缺点是单点任务的深度不如专用编程 Agent。个人助理 Agent 更像调度中心,编程 Agent 更像某个岗位上的专家。
1.3 四款工具的定位速览
| 项目 | 开源情况 | 核心定位 | 主要交互环境 | 典型使用场景 |
|---|---|---|---|---|
| OpenClaw | 开源 | 自托管个人助理 Agent | 飞书、Telegram、终端等 | IM 机器人、日常自动化、任务编排 |
| Hermes Agent | 开源 | 轻量级个人助手 Agent | 终端、Web、IM | 轻量任务自动化、简单对话、脚本触发 |
| Claude Code | 官方客户端 | 终端编程 Agent | 终端、VSCode 等编辑器 | 仓库级编码、重构、Bug 修复、运维脚本 |
| Codex CLI | 官方客户端 | 终端编程 Agent | 终端、VSCode 等编辑器 | 仓库级编码、批量文件改动、任务执行 |
看到这里你应该明白了:拿 Claude Code 和 OpenClaw 去对比,就像拿一个程序员和一台服务器比谁更好用,方向不对。正确的选型思路是先确定你要做什么场景,再回到这个表格里找对应工具。下面逐一拆解我实际用下来的细节。
2. Claude Code:最像“结对程序员”的终端 Agent
2.1 安装前置条件与第一印象
Claude Code 的安装门槛不高,底层依赖 Node.js 环境。安装命令非常常规:
npm install -g @anthropic-ai/claude-code装完之后,在项目根目录敲一个claude就能启动会话。首次启动会要求登录,有两种方式:一种是使用 Claude 订阅账号授权,另一种是配置 Anthropic API Key。这里要注意,两种方式的计费逻辑完全不同:订阅账号一般包含在套餐额度内,API Key 则按 token 单独计费。如果你只是偶尔用一下,订阅额度可能更划算;如果每天要跑大量任务,API 计费反而灵活。
我装完后第一感觉是“安静”。它不会一启动就甩一堆提示文案,只是告诉你当前目录、模型版本、可以输入/help查看命令。你在终端输入任务描述时,它会在底部动态展示当前在读取哪个文件、修改哪个文件,每一步都看得见。第一次用的时候,我说“帮我把日志输出改成 JSON 格式”,它自己翻了 utils 目录、改了三个文件、跑了一遍测试,最后把 diff 缩成一个列表让我确认。这种体验确实把“程序员助手”这个定位立住了。
2.2 在 VSCode 里配置 Claude Code
很多朋友习惯在 VSCode 里用,官方提供了集成方案。我推荐的搭配是:在 VSCode 终端里直接启动claude,这样左侧文件树、右侧 diff 视图和终端会话能同时工作。
配置要点有这几个:
- 在 VSCode 的设置里把默认终端 Shell 切换成你日常用的那个,确保 PATH 里能找到 npm 全局目录。
- 如果安装了官方扩展,它可以在侧边栏单独开一个面板,但本质还是调用同一个 CLI。我个人觉得终端启动方式最稳,扩展面板偶尔会有焦点切换的延迟。
- 建议在项目根目录建一个
CLAUDE.md,把项目结构、命名规范、常用命令写进去。Claude Code 会自动读取它作为项目背景,比每次在对话里重复说明高效得多。
这里有一个我实际觉得特别有用的技巧:和 git worktree 配合使用。当你需要让 Claude Code 同时处理两个独立任务时,可以在两个 git worktree 分支目录里各开一个 claude 会话,互不干扰,也不会出现两个会话同时改同一个文件带来的冲突。对重度用户来说,这个组合能直接把并行度拉满。
2.3 Skills 功能与实用经验
新版 Claude Code 支持 Skills,可以把固定套路沉淀成可复用的技能包。我本地的做法是维护一个~/.claude/skills目录,每个技能是一个带描述文档的目录。比如我写了一个 “changelog-updater” 技能,专门负责在版本发布后更新 CHANGELOG 文件:描述文档里写清楚适用场景、执行步骤、需要遵守的格式规范,再配上一个小脚本。之后只要在会话里说“跑一下 changelog-updater”,它就会自动按技能流程执行,输出格式每次都一致。
这个机制的核心价值不是省几条指令,而是把隐性经验固化下来。团队里如果有统一规范,Skills 就是最好的载体。不过要注意,Skills 本身还在快速迭代,创建目录的具体位置和写法要以你安装版本的官方文档为准,老版本之间可能会有差异。我升级过两次,目录约定基本没变,但新增了一些配置字段,建议升级后花两分钟看一眼 changelog。
Claude Code 也不是没有槽点。它的上下文窗口虽然大,但在超大型仓库里还是会有“记不住前面改了哪里”的情况。我的应对办法是把大任务拆小:一个会话只处理一个模块,完成一个模块后整理一份简短变更说明,再开新会话继续下一个模块。实测下来完成度比“一个会话干到底”高不少。
3. Codex CLI:OpenAI 阵营的终端编程能手
3.1 安装和登录方式
Codex CLI 是 OpenAI 官方的终端编程 Agent,理念和 Claude Code 很像。安装命令同样非常简单:
npm install -g @openai/codex装完后执行codex --version能确认版本。它的登录方式有两种:一种是 ChatGPT 账号授权,另一种是 OpenAI API Key。登录后会启动一个会话,在项目目录下可以直接开始描述任务。
第一次用 Codex CLI 时,我明显感觉到它和 Claude Code 在设计取向上有一点不同:它对工具调用的展示更“过程化”,你能看到模型一步步规划、执行、验证的过程,每个操作之间的逻辑链更清晰。如果你习惯了 ChatGPT 的交互风格,会上手很快。
这里要特别提醒 Windows 用户一个坑:如果你在 Windows 命令行里已经装好了 codex,codex --version也能正常输出版本,但集成终端、编辑器插件或 ChatGPT 桌面客户端却报“failed to start”或“unable to locate the codex cli binary”,这几乎都是 PATH 不一致导致的。npm 全局目录在你当前 shell 里生效,不代表所有应用都能找到。解决方案是找到 npm 的全局 bin 目录,把它加入系统环境变量的 PATH,然后完全退出重开客户端。
3.2 实际使用体验:权限与沙箱机制
Codex CLI 的执行模型比 Claude Code 更强调安全确认。第一次让它改动文件时,它会列出将要执行的命令,并等待你按 y 确认。你还可以切换成自动执行模式,但我不建议一开始就这么干——它在终端里跑 rm、移动文件这类操作时速度很快,确认一次还是放心一点。
我对 Codex CLI 比较满意的一个点是沙箱设计。它可以限制 Agent 对文件系统、网络访问的能力边界,比如只允许当前工作目录写入、禁止访问外网等。对做开源项目维护或者需要批处理大量脚本任务的人来说,这个边界很实用。
在真实编码任务上,Codex CLI 的代码生成质量和 Claude Code 在伯仲之间。差别体现在一些细节场景:比如对已有代码风格的理解,Claude Code 在“沿用当前项目风格”上稍微自然一点;而 Codex CLI 在大规模重命名、跨文件结构调整这类任务上,步骤拆解更稳健。我的建议是:如果你主要使用 OpenAI 生态模型,直接选 Codex CLI;如果你的模型预算在 Anthropic,选 Claude Code。不要为了“功能更多”强迫自己混用两家,成本和管理都会复杂。
3.3 和 Claude Code 的关键差异对比
| 维度 | Claude Code | Codex CLI |
|---|---|---|
| 底层模型 | Claude 系列 | OpenAI Codex/GPT 系列 |
| 安装依赖 | Node.js | Node.js |
| 登录鉴权 | Claude 账号 / API Key | ChatGPT 账号 / API Key |
| 安全确认 | 逐步确认 | 逐步确认,支持沙箱限制 |
| 项目背景文件 | CLAUDE.md | 类似机制 |
| 扩展机制 | Skills | 逐步完善中 |
| 强项 | 项目风格理解、多文件联动 | 过程透明、沙箱安全、批量任务 |
这两款都是当前最值得用的终端编程 Agent。选型上不用太纠结,核心看你的模型订阅习惯和项目环境。对了,提醒一句:Codex CLI 的版本更新频率也比较快,过一段时间codex --apply-patch这类高级用法会越来越多,建议订阅官方更新日志,别只盯着旧教程。
4. OpenClaw:把 Agent 部署进聊天软件
4.1 为什么有人需要 OpenClaw
如果说 Claude Code 和 Codex CLI 是“程序员自己的工具”,那 OpenClaw 更像是“给团队或家庭准备的智能管家”。它最吸引我的地方,是终于把 Agent 从终端里搬到了聊天软件里。部署完成之后,你不需要学习任何命令行,直接在飞书群里发一条消息说“帮我整理今天所有的会议纪要并生成待办”,它就能自己完成。
OpenClaw 的开源背景决定了它的可玩性非常高。我见过有人用它做群聊自动问答机器人,有人做定时新闻推送,有人把它接到智能家居的 HTTP 接口控制灯光和空调,还有人给它配了日历插件做行程管理。它的能力不局限于“问答”,而是偏向“执行”——这也是为什么我会把它归类为个人助理 Agent 而不是编程工具。
4.2 部署 OpenClaw:Linux 服务器、WSL2 和 Termux
OpenClaw 的部署方式比较灵活。最简单的是在 Linux 服务器上跑:拉取项目代码,准备 Node.js 运行时,复制配置文件,填上大模型 API Key 和 IM 平台凭证,然后启动。整个过程大概十几分钟。
在 Windows 上,我吃过不少亏,最终建议在 WSL2 里部署,而不是用 PowerShell 或 Git Bash 直接启动。OpenClaw 对环境的检测比较严格,在 Windows 侧直接运行很容易出现“could not safely verify the WSL2 environment”这类环境校验报错。这个报错的根因是 OpenClaw 检测到了 WSL 相关进程或文件系统,但无法确认当前环境是否安全。我的解决方案很直接:要不要都在 WSL2 发行版内部做,别在 Windows 侧跨层调用。如果你只是想在 Windows 上体验,可以先wsl --update升级内核,再在 WSL 终端里执行安装命令。
安卓 Termux 部署则更轻量。有社区方案指出可以原生部署而不依赖 proot,关键是安装 Termux 后准备 Node.js 和必要依赖,允许 Termux 在后台运行,然后按项目 README 执行启动脚本。手机部署的好处是 Agent 随身跑,但要注意安卓系统对后台进程的省电限制,否则 Agent 可能会在息屏后被系统杀掉。我没有把生产环境放在手机上,但做演示和测试确实很方便。
4.3 接入飞书等 IM 平台与输出截断问题
OpenClaw 对接飞书是目前社区里比较热门的玩法。大体流程是:在飞书开放平台创建应用,拿到 App ID 和 App Secret,配置消息订阅和权限,然后在 OpenClaw 的配置文件里填上这部分凭证,把飞书作为消息入口。配置好之后,你在飞书里私聊机器人或者把它拉进群,都能直接对话。
实际使用中有一个很典型的问题:OpenClaw 在飞书里输出内容容易被截断。这是因为飞书对单条消息长度有限制,超过一定字符数的内容会被系统截掉,尤其 Agent 输出长文本、完整代码或长报告时特别明显。解决方案是在配置里开启消息分片或长文本分段发送,让 OpenClaw 把一次输出拆成多条消息按顺序发送。我当时排查了很久,最后发现不是 Agent 生成不完整,而是消息发送端被限制。
如果你打算长时间跑 OpenClaw,建议把它部署在一台常开机的 Linux 服务器或者低功耗主机上,比笔记本和手机都省心。它还支持把终端模式和 IM 模式同时挂载,调试时在终端里看日志,使用时在飞书里发指令,两边互不冲突。
5. Hermes Agent:轻量个人助手路线的另一种选择
5.1 和 OpenClaw 的定位差异
Hermes Agent 在社区里的热度不如 OpenClaw 高,但它踩中了另一个需求点:轻量、快速、不折腾。我理解它是一个更克制的个人助手 Agent:同样可以接入 IM 和自动化任务,但默认功能集更小,启动和配置过程也更简单。对只是想“先跑一个 AI 助手试试水”的人来说,Hermes Agent 的学习曲线更平缓。
我的实际感受是,OpenClaw 的能力上限更高,插件和集成更丰富,但也意味着配置项更多;Hermes Agent 则更像是“开箱即用”的轻量方案。它适合你不想维护一套复杂配置,只想在团队内快速搭一个可对话、可执行简单任务的 Agent。在一些社区评测里,Hermes Agent 也被当作 Agent eval 的基线对象,用来验证一套评估流程是否合理。
5.2 Hermes Agent 的典型用法
你可以把 Hermes Agent 当作一个简单的任务执行中枢:部署在云服务器群聊场景,配置 LLM API,接入飞书或 Telegram 机器人,然后指定它可以访问的脚本和工具。它可以做查询天气、读取网页链接生成摘要、定时发送提醒这类日常任务。对于更复杂的编码工作,它也能调用外部命令执行,但深度不如专用编程 Agent。
我建议的项目边界是:不要试图让 Hermes Agent 替代 Claude Code 或 Codex CLI。它更适合做“消息入口 + 简单任务执行”,把重度编码任务转给专门的编程 Agent 去处理。两个 Agent 之间可以通过消息队列或者 Webhook 联动,这在实际工程里是一个很成熟的模式。
5.3 什么时候选 Hermes Agent,什么时候选 OpenClaw
如果你需要长时间运行、大量插件、复杂的日程和事务编排,直接选 OpenClaw;如果你只想在实验室或小团队里快速验证一个 Agent 助手的效果,Hermes Agent 更合适。两者都是开源项目,成本主要是大模型 API 的调用费。也可以先部署 Hermes Agent 跑通完整流程,再逐步迁移到 OpenClaw 挖掘更多能力。
6. 从实际场景出发做选型判断
6.1 按人群和任务选型
不要被“哪个 Agent 更强”这个问题绑架,更准确的问题是“哪个 Agent 更符合我目前的场景”。我自己的判断标准是:
| 使用人群和典型场景 | 推荐选择 | 理由 |
|---|---|---|
| 日常写代码、改 Bug 的开发者 | Claude Code 或 Codex CLI | 专职编程,深度和可靠性高 |
| 技术负责人,希望管理群里的常规事务 | OpenClaw 或 Hermes Agent | 集成 IM,能处理群内请求 |
| 多平台个人助理,需要连接大量服务 | OpenClaw | 插件生态和可扩展性更好 |
| 刚接触 Agent 概念,想快速跑通演示 | Hermes Agent | 配置简单,可视化和反馈快 |
| 团队有多套脚本、定时任务需要统一入口 | OpenClaw | 更方便做任务编排和消息分发 |
6.2 预算与模型成本怎么看
OpenClaw 和 Hermes Agent 本身是开源免费的,真正的成本是大模型 API 调用。如果你每天高频对话,建议选一个便宜的模型做日常响应,把复杂任务手动指定给更强的模型。Claude Code 和 Codex CLI 的费用则取决于订阅套餐或 API 用量。编码任务往往 token 消耗大,尤其是一次性改动多个文件会产生大量输出,建议一个月跑下来再估算成本,不要只看单次对话的单价。
6.3 我目前的推荐搭配
我个人的生产环境是:Claude Code 作为主力编码终端,负责代码仓库内的所有操作;Codex CLI 作为第二选择,处理批量任务和对比验证;OpenClaw 部署在服务器上接入飞书,负责日常团队消息、时间提醒和信息整合;Hermes Agent 则放在实验环境里做轻量测试。实际用下来,这个组合覆盖了从“写代码”到“当管家”的完整链路。
如果你只想从零开始,我建议先部署 Claude Code 或 Codex CLI 体验“AI 编程”的效率提升,再根据是否有日常助手诉求决定要不要上 OpenClaw。把两个都推向生产环境是没有必要的,会显著增加维护成本。
7. 常见报错与排查实录
7.1 OpenClaw 提示 could not safely verify the WSL2 environment
这个报错多数出现在 Windows 侧启动 OpenClaw 时。原因是 OpenClaw 在做环境安全校验时检测到了 WSL2 相关组件,但又无法确认当前运行环境的完整性。最稳妥的处理方式是进入到 WSL2 终端里安装和启动,避免跨 Windows/WSL 边界;或者执行wsl --update更新内核后再试。个别版本支持手动关闭环境校验开关,建议先翻阅对应版本的配置文档确认,不要盲目加环境变量。
7.2 Codex CLI 报 unable to locate the codex cli binary
这个报错通常是两类原因:一是 codex 根本没有安装成功,检查npm install -g @openai/codex的日志是否报错;二是安装了,但所在目录不在应用能识别的 PATH 中。在 Windows 上尤其常见。解决步骤可以说得很直接:执行npm prefix -g找到全局路径,把<路径>加入系统 PATH 环境变量,重启终端或客户端。如果 ChatGPT 桌面客户端报类似 “ChatGPT failed to start”,优先查 PATH,而不是重装。
7.3 Claude Code 安装后提示认证失败
多半是登录会话过期或凭证格式问题。可以先执行claude看是否有登录提示;如果用的是 API Key,确认 Key 还有额度且没有空格。另外也要确认你所在环境的网络能正常访问 API 服务,这个因素在排查里很容易被忽略,但占比很高。
7.4 OpenClaw 飞书输出容易被截断
如前面所说,这是飞书单条消息长度限制造成的。在 OpenClaw 的 IM 配置里找到长消息处理或分片发送相关选项,打开即可。如果你已经开启分片仍然截断,看看是不是自定义了消息模板导致字符数膨胀。我先排查了生成端,再排查发送端,最后才发现是发送端限制,建议你直接先去看发送配置,节省时间。
7.5 Agent 执行到一半报 execution terminated due to error
这类通用错误没有固定的格式。我的排查顺序是:第一步看 Agent 日志,确认是模型调用出错还是工具执行出错;第二步检查 API Key 配额,配额超限经常表现为任务中途报错;第三步看是不是上下文长度超限,大文件操作时很常见。如果你开了多个 Agent 并行跑同一个仓库,还要检查 git worktree 之间是否出现文件锁冲突。
最后一个我个人强烈建议:为你的 Agent 建一份自己的测评清单,也就是 agent evals。不要靠几次聊天印象判断工具好不好,把日常固定任务写成一个列表,每周用同一个任务集去测试当前版本的 Agent,记录成功率、耗时、出错类型。我在跑过两轮评测之后发现,工具升级带来的变化往往比直觉感受更可靠,而且自己的筛选标准也变清晰了。这是我从这次选型对比里得到的最重要经验。