今天看到 Hermes 官方文档更新了一个功能,之前一直没太注意,仔细看完之后觉得值得专门聊一下。
简单说就是:Hermes 现在可以把 OpenAI 相关的任务交给 Codex CLI 的 app-server 来跑,自己退到外面当壳——管会话、管记忆、管技能、管消息平台。核心执行全部走 Codex 的运行时。
这意味着什么?你可以用 ChatGPT 订阅额度来跑 Hermes Agent,不用额外配 API key。
为什么要这么干
Hermes 默认走自己的工具循环,模型调用、工具执行、沙盒隔离全在 Hermes 内部完成。这个方案一直能用,但有个问题:你要单独付 API 费用。
Codex App-Server Runtime 做的事情,是把“执行”这一层交给 Codex。Codex 自带沙盒(seatbelt/landlock),自带终端读写、文件编辑、计划管理,还有一堆原生插件——Linear、GitHub、Gmail、Google Calendar、Canva 这些,你在 Codex 里装过什么,切到这个运行时之后自动迁移过来。
Hermes 自己的能力也没丢。网页搜索、浏览器自动化、视觉分析、图片生成、技能库、TTS,这些通过 MCP 回调的方式继续可用。Codex 跑到一半需要调 Hermes 的工具,会自动回调过来拿结果。
本质上就是:Codex 负责干活,Hermes 负责思考和记忆。
三套工具同时在线
开了这个运行时之后,你的 agent 手里有三套工具:
第一套是 Codex 自带的。 shell 跑终端命令,apply_patch 做多文件编辑,update_plan 管理任务计划,view_image 看图,web_search 搜网页。这些是 Codex 的基础能力,开箱即用,不需要任何额外配置。
第二套是你在 Codex 里装过的插件。 Linear、GitHub、Gmail、Calendar、Canva 等等,Hermes 启动时会自动查询 Codex 的 plugin/list 接口,把你装过的插件全部迁移过来。
第三套是 Hermes 通过 MCP 回调提供的。 网页搜索和提取(Firecrawl 支持)、完整的浏览器自动化(Camofox/Browserbase)、视觉分析、图片生成、技能读取、TTS。Codex 内置没有这些能力的时候,会自动回调 Hermes 拿。
三套工具在同一个会话里无缝切换,你感觉不到它们来自不同的地方。
也有用不了的东西
四个 Hermes 工具在这个运行时下不可用:delegate_task(派子 agent)、memory(持久记忆写入)、session_search(跨会话搜索)、todo(任务列表)。
这几个工具需要 Hermes 自己的 agent 循环上下文才能工作,MCP 回调的方式驱动不了它们。如果你的任务依赖这些能力,切回默认运行时就行:/codex-runtime auto。
不过日常使用影响不大。Codex 自带的 update_plan 可以替代 todo 的功能,记忆和技能的后台审查也照常运行——Hermes 会把 Codex 的执行事件转换成自己熟悉的消息格式,审查流程完全感知不到差异。
/goal 和看板都能用
/goal 命令正常工作。 目标持久化在 state_meta 里,续接提示通过正常的用户消息通道发给 Codex,目标判断逻辑走独立的辅助客户端,跟用哪个运行时无关。有一个细节要注意:每次续接都是一个全新的 Codex turn,如果你的任务涉及大量写操作,审批提示会比默认运行时多。Hermes 会自动把 default_permissions 设成 :workspace,让工作区内的写操作不需要每次审批。
多 agent 看板也能跑。 看板调度器以独立子进程的方式启动 worker,如果全局配了 openai_runtime: codex_app_server,worker 也会走 Codex 运行时。Codex 自带的工具、原生插件、Hermes 回调工具全部可用。看板的完成、阻断、评论、心跳这些交接工具也通过 MCP 回调暴露了,worker 能正常汇报结果。
开启方式
前提条件:装好 Codex CLI(0.130.0 以上),跑过 codex login 完成 OAuth 授权。
然后在 Hermes 会话里一条命令:
/codex-runtime codex_app_server
这条命令会做几件事:检查 Codex CLI 是否安装、把配置写进 config.yaml、把你的 MCP 服务器迁移到 Codex 配置里、自动发现并迁移已装的 Codex 插件、把 Hermes 的工具注册为 MCP 服务器供 Codex 回调、设置工作区写权限免审批。
注意:切完之后当前 session 不会立即生效,下一个 session 才会用新的运行时。 这是为了保持 prompt 缓存的有效性。
想切回来的话:/codex-runtime off 或者 /codex-runtime auto。
订阅额度的坑
开了 Codex 运行时之后,不只是你的主对话走 ChatGPT 订阅,Hermes 的辅助任务也会跟着走订阅——标题生成、上下文压缩、视觉检测、会话搜索摘要、后台自我改进审查,全部算在你的订阅额度里。
这个在用之前最好心里有数。如果你不想让这些辅助任务烧订阅额度,可以在 config.yaml 里单独给它们指定便宜的模型:
auxiliary:
title_generation:
provider: openrouter
model: google/gemini-3-flash-preview
context_compression:
provider: openrouter
model: google/gemini-3-flash-preview
这样主对话走 Codex 订阅,辅助任务走便宜的 API,各管各的。
我的判断
这个功能对已经在用 ChatGPT Plus/Pro 的人来说是个实打实的利好。你不需要额外掏 API 费用,就能让 Hermes 的记忆系统、技能系统、消息平台能力全部跑起来,底层执行走 Codex 的沙盒和工具链。
两个运行时之间切换也很方便,一个命令的事。需要子 agent 或跨会话搜索的时候切回默认,日常任务走 Codex 省钱。
如果你既有 ChatGPT 订阅又在用 Hermes,建议试一下。尤其是你已经在 Codex 里装了一堆插件(Linear、GitHub 之类的),切过来之后这些插件直接可用,不用重复配置。