Thời gian chạy máy chủ ứng dụng Codex
Hermes có thể tùy ý giao
OpenAI/* và
OpenAI-Codex/* chuyển sang Codex CLI app-server thay vì chạy vòng công cụ của riêng mình. Khi được bật, các lệnh đầu cuối, chỉnh sửa tệp, hộp cát và công cụ MCP đều được thực thi trong thời gian chạy của Codex - Hermes trở thành lớp vỏ bao quanh nó (phiên DB, lệnh gạch chéo, cổng, bộ nhớ và đánh giá kỹ năng).
Đây là chỉ chọn tham gia. Hành vi mặc định của Hermes không thay đổi trừ khi bạn lật cờ. Hermes không bao giờ tự động định tuyến bạn vào thời gian chạy này.
Tại sao
- Chạy tác nhân OpenAI chống lại đăng ký ChatGPT của bạn (không cần khóa API) bằng cách sử dụng cùng một quy trình xác thực mà Codex CLI sử dụng.
- Sử dụng bộ công cụ và hộp cát riêng của Codex —
shellcho terminal/đọc/ghi/tìm kiếm,apply_patchcho các chỉnh sửa có cấu trúc,update_planđể lập kế hoạch, tất cả đều chạy bên trong dây an toàn/hộp cát khóa đất. - Các plugin Codex gốc — Tuyến tính, GitHub, Gmail, Lịch, Canva, v.v. — được cài đặt qua
Codex pluginsẽ được tự động di chuyển và hoạt động trong phiên Hermes của bạn. - Các công cụ phong phú hơn của Hermes xuất hiện — web_search, web_extract, tự động hóa trình duyệt, tầm nhìn, tạo hình ảnh, kỹ năng và TTS hoạt động thông qua lệnh gọi lại MCP. Codex gọi lại cho Hermes để yêu cầu những công cụ mà nó không tích hợp sẵn.
- Thúc đẩy bộ nhớ và kỹ năng tiếp tục hoạt động — Các sự kiện của Codex được chiếu thành hình dạng thông điệp của Hermes để vòng lặp tự cải thiện nhìn thấy bản ghi trông bình thường.
Mô hình thực sự có những công cụ gì
Đây là phần mà hầu hết người dùng muốn biết trước. Khi thời gian chạy này bật, mô hình chạy đến lượt của bạn có ba nguồn công cụ độc lập:
1. Bộ công cụ tích hợp của Codex (luôn bật)
Những chiếc này đi kèm với chính `Codex app-server
- không có sự tham gia của Hermes, không có MCP, không có plugin. Tất cả năm đều có sẵn vào thời điểm thời gian chạy bắt đầu:
- ** `shell
** — chạy các lệnh shell tùy ý bên trong sandbox. Đây là cách mô hình đọc các tệp ( `cat
, `head
, `tail
), ghi chúng ( `echo > foo
, heredocs), tìm kiếm chúng ( `find
, `rg
, `grep
), điều hướng các thư mục ( `ls
, `cd
), chạy các bản dựng, quản lý các quy trình và bất kỳ điều gì khác mà bạn làm trong bash.
- ** `apply_patch
** — áp dụng khác biệt nhiều tệp có cấu trúc trong định dạng bản vá của Codex. Mô hình sử dụng điều này để chỉnh sửa mã không tầm thường (thêm chức năng, tái cấu trúc trên các tệp); shell heredocs vẫn có sẵn để ghi một lần.
- ** `update_plan
** — công cụ theo dõi kế hoạch/việc cần làm nội bộ của Codex. Tương đương với công cụ
todo của Hermes nhưng được quản lý hoàn toàn trong thời gian chạy của Codex.
- ** `view_image
** — tải tệp hình ảnh cục bộ vào cuộc trò chuyện để mô hình có thể nhìn thấy.
- ** `web_search
** — Codex có tính năng tìm kiếm trên web tích hợp sẵn khi được định cấu hình. Hermes cũng tiết lộ
web_search (Được hỗ trợ bởi Firecrawl) thông qua lệnh gọi lại bên dưới; mô hình chọn bất cứ điều gì nó thích.
Vì vậy bất cứ điều gì bạn làm thông qua terminal — đọc/ghi/tìm kiếm/tìm/chạy — Codex thực hiện một cách tự nhiên. Cấu hình hộp cát (
:workspace ` theo mặc định khi bạn bật thời gian chạy) kiểm soát những gì có thể ghi.
2. Các plugin Codex gốc (được di chuyển tự động từ bản cài đặt
Codex plugin của bạn)
Khi bạn bật thời gian chạy, Hermes truy vấn RPC
plugin/list của Codex và viết mục nhập
[plugins."<name>@OpenAI-curated"] ` cho mọi plugin bạn đã cài đặt. Bản thân các plugin này được quản lý bởi Codex và được cấp phép một lần thông qua giao diện người dùng riêng của Codex.
Ví dụ (những ví dụ mà chuỗi OpenClaw đánh dấu là "xứng đáng với video trên YouTube"):
- Tuyến tính — tìm/cập nhật vấn đề
- GitHub — mã tìm kiếm, xem PR, bình luận
- Gmail — đọc/gửi thư
- Lịch Google — tạo/tìm sự kiện
- Lịch/email Outlook — hình dạng tương tự thông qua trình kết nối Microsoft
- Canva — thế hệ thiết kế
- ...bất cứ thứ gì khác mà bạn đã cài đặt qua `Codex plugin marketplace add OpenAI-curated
`Codex plugin install ... ``Những gì KHÔNG được di chuyển:
- Các plugin bạn chưa cài đặt - trước tiên hãy cài đặt chúng trong Codex.
- Các mục nhập thị trường ứng dụng ChatGPT ( `app/list
) — những mục nhập này đã được kích hoạt bên trong Codex nhờ xác thực tài khoản của bạn.
3. Gọi lại công cụ Hermes (máy chủ MCP, được đăng ký trong
~/.Codex/config.TOML
)
Hermes tự đăng ký làm máy chủ MCP để Codex có thể gọi lại cho các công cụ mà Codex không cung cấp. Có sẵn thông qua cuộc gọi lại:- ** `web_search
** / ** `web_extract
** — Được hỗ trợ bởi Firecrawl; có xu hướng sạch hơn so với việc cạo nội dung có cấu trúc.
- **
browser_navigate/browser_CLIck/browser_type/browser_press/browser_snapshot/browser_scroll/browser_back/browser_get_images/browser_console/ `browser_vision
** — tự động hóa trình duyệt hoàn toàn thông qua Camofox hoặc cơ sở trình duyệt.
- ** `vision_analyze
** — gọi một mô hình thị giác riêng biệt để kiểm tra hình ảnh (khác với
view_image của Codex tải nó vào cuộc trò chuyện).
- ** `image_generate
** — tạo hình ảnh thông qua chuỗi plugin image_gen của Hermes.
- **
skill_view/ `skills_list
** — đọc từ thư viện kỹ năng của Hermes.
- ** `text_to_speech
** — TTS thông qua nhà cung cấp được định cấu hình của Hermes.
Khi mô hình muốn một trong những điều này, Codex sẽ tạo ra quy trình con
Hermes_tools_MCP_server thông qua stdio MCP, cuộc gọi được gửi đi thông qua
model_tools.handle_function_call() (cùng đường dẫn mã với thời gian chạy mặc định của Hermes) và kết quả được trả về Codex giống như bất kỳ phản hồi MCP nào khác.
Những gì KHÔNG có trong thời gian chạy này
Bốn công cụ Hermes này yêu cầu bối cảnh AIAgent đang chạy (trạng thái giữa vòng lặp) để gửi đi và lệnh gọi lại MCP không trạng thái không thể thúc đẩy chúng. Chuyển về thời gian chạy mặc định (
/Codex-runtime auto
) khi bạn cần bất kỳ thứ nào trong số chúng:
- ** `delegate_task
** — tác nhân phụ sinh sản
- ** `memory
** — Kho lưu trữ bộ nhớ liên tục của Hermes
- ** `session_search
** — tìm kiếm giữa các phiên
- ** `todo
** — Cửa hàng việc cần làm của Hermes (
update_plan của Codex tương đương trong thời gian chạy)
Tính năng quy trình làm việc (
/goal
, kanban, cron)
/goal ` (vòng lặp Ralph)
Hoạt động trong thời gian chạy này. Các mục tiêu vẫn tồn tại trong
state_meta được khóa theo id phiên, lời nhắc tiếp tục phản hồi lại dưới dạng tin nhắn người dùng thông thường thông qua
run_conversation() và Codex thực thi lượt tiếp theo một cách tự nhiên. Đánh giá mục tiêu chạy thông qua máy khách phụ trợ (được định cấu hình qua
auxiliary.goal_judge trong config.yaml), không phụ thuộc vào thời gian chạy nào đang hoạt động. Phán quyết "bị chặn, cần người dùng nhập" của thẩm phán là một lối thoát rõ ràng nếu Codex trì hoãn việc phê duyệt.
Một điều cần lưu ý: mỗi lời nhắc tiếp tục là một lượt Codex mới, có nghĩa là Codex sẽ đánh giá lại chính sách phê duyệt lệnh từ đầu. Nếu bạn đang thực hiện một mục tiêu dài hạn với nhiều lượt ghi, bạn sẽ nhận được nhiều lời nhắc phê duyệt hơn những gì bạn thấy đối với một nhiệm vụ trong phiên. Đặt
default_permissions = ":workspace" (mà Hermes tự động thực hiện khi bạn bật thời gian chạy) để việc ghi không gian làm việc đơn giản không cần phải nhắc.
Kanban (điều phối cây làm việc đa tác nhân)
Hoạt động trong thời gian chạy này, với một sự phụ thuộc tinh vi. Trình điều phối kanban sinh ra mỗi công nhân dưới dạng một quy trình con
Hermes chat -q riêng biệt để đọc cấu hình của người dùng — có nghĩa là nếu
model.OpenAI_runtime: Codex_app_server được đặt trên toàn cầu, các công nhân cũng xuất hiện trong thời gian chạy Codex.
Những gì hoạt động bên trong một nhân viên Codex-runtime:
- Bộ công cụ đầy đủ của Codex (shell, apply_patch, update_plan, view_image, web_search) — nhân viên thực hiện nhiệm vụ thực tế của mình một cách tự nhiên
- Các plugin Codex được di chuyển - Linear, GitHub, v.v.
- Công cụ Hermes gọi lại cho browser_*, tầm nhìn, image_gen, kỹ năng, TTS
Điều gì cũng hoạt động vì lệnh gọi lại MCP hiển thị chúng:
- **
kanban_complete/kanban_block/kanban_comment/ `kanban_heartbeat
** — công cụ bàn giao công nhân. Chúng đọc
Hermes_KANBAN_TASK từ env (do người điều phối đặt), truy cập cổng chính xác và ghi vào SQLite DB trên mỗi bảng được ghim bởi
`Hermes_KANBAN_DB
. Nếu không có những thông tin này trong lệnh gọi lại, một nhân viên trong thời gian chạy này có thể thực hiện nhiệm vụ của mình nhưng không thể báo cáo lại và treo cho đến khi người điều phối hết thời gian chờ.
- **
kanban_show/ `kanban_list
** — truy vấn bảng chỉ đọc để nhân viên kiểm tra ngữ cảnh của chính mình.
- **
kanban_create/kanban_unblock/ `kanban_link
** — hoạt động chỉ dành cho người điều phối. Có sẵn cho các tác nhân điều phối chạy trên thời gian chạy Codex cần gửi tác vụ mới.Các công cụ kanban được kiểm soát bởi
Hermes_KANBAN_TASK env var bộ điều phối - var đó được truyền đến quy trình con Codex (Codex kế thừa env) và từ đó đến quy trình con máy chủ
Hermes-tools MCP được sinh ra. Vì vậy, các công cụ nhìn đúng id nhiệm vụ và cổng một cách chính xác. Đối với nhân viên máy chủ ứng dụng Codex, Hermes cũng chuyển các ghi đè hộp cát máy chủ ứng dụng hẹp khi có
`Hermes_KANBAN_TASK
: giữ hộp cát `workspace-write
, thêm thư mục DB bảng cùng với mọi đường dẫn Kanban mà bộ điều phối đã ghim làm gốc có thể ghi bổ sung ( `Hermes_KANBAN_WORKSPACES_ROOT
, `Hermes_KANBAN_WORKSPACE
,
Hermes_KANBAN_ROOT kế thừa — loại bỏ trùng lặp, DB-dir trước) và giữ cho mạng bị tắt theo mặc định. Điều này tránh được cách giải quyết dễ vỡ của
:danger-no-sandbox
trong khi cho phép kanban_complete
/ kanban_block
` cập nhật DB bảng và cho phép nhân viên viết báo cáo/tạo phẩm trong các khung không gian làm việc nằm bên ngoài thư mục DB (ví dụ:
/media/.../kanban-workspaces/... ` trên một ổ đĩa riêng — issue #27941).
Công việc định kỳ`Chưa được kiểm tra cụ thể. Các công việc định kỳ chạy qua
cronjob →
`AIAgent.run_conversation
, cùng đường dẫn mã với CLI. Nếu cấu hình của cron job có
OpenAI_runtime: Codex_app_server thì nó sẽ chạy trên Codex. Các quy tắc tương tự về tính khả dụng của công cụ cũng được áp dụng - các công cụ tích hợp Codex + plugin + hoạt động gọi lại MCP, các công cụ vòng lặp tác nhân (delegate_task, bộ nhớ, session_search, todo) thì không. Nếu công việc định kỳ của bạn phụ thuộc vào những điều đó, hãy đưa cron vào một cấu hình sử dụng thời gian chạy mặc định.
Đánh đổi
| Thời gian chạy mặc định của Hermes | Máy chủ ứng dụng Codex (chọn tham gia) | |
|---|---|---|
| Đại lý phụ | ||
| `delegate_task | ||
| ` | vâng | không có sẵn - cần bối cảnh vòng lặp tác nhân |
| `memory |
, `session_search
,
todo | vâng | không có sẵn - cần bối cảnh vòng lặp tác nhân |
|
`web_search
,
web_extract | vâng | có (thông qua gọi lại MCP) |
| Tự động hóa trình duyệt (Camofox/Browserbase) | vâng | có (thông qua gọi lại MCP) |
|
`vision_analyze
,
image_generate | vâng | có (thông qua gọi lại MCP) |
|
`skill_view
,
skills_list | vâng | có (thông qua gọi lại MCP) |
|
text_to_speech | vâng | có (thông qua gọi lại MCP) |
| Codex
shell (terminal/đọc/ghi/tìm kiếm/tìm/chạy) | — | có (Tích hợp Codex) |
| Codex
apply_patch (chỉnh sửa nhiều tệp có cấu trúc) | — | có (Tích hợp Codex) |
| Codex
update_plan (việc cần làm trong thời gian chạy) | — | có (Tích hợp Codex) |
| Codex
view_image (tải hình ảnh vào cuộc hội thoại) | — | có (Tích hợp Codex) |
| Hộp cát Codex (dây an toàn/khóa khóa, hồ sơ) | — | có (Tích hợp Codex) |
| Xác thực đăng ký ChatGPT | — | có (thông qua nhà cung cấp
`OpenAI-Codex
) | | Các plugin Codex gốc (Tuyến tính, GitHub, v.v.) | — | có (tự động di chuyển) | | Máy chủ MCP của người dùng | vâng | có (tự động di chuyển sang Codex) | | Ôn lại trí nhớ + kỹ năng (nền) | vâng | có (thông qua phép chiếu mục) | | Cuộc trò chuyện nhiều lượt | vâng | vâng | |
/goal ` (Vòng lặp Ralph) | vâng | vâng | | Công văn Kanban | vâng | có (thông qua gọi lại) | | Công cụ điều phối Kanban | vâng | có (thông qua gọi lại) | | Tất cả các nền tảng cổng | vâng | vâng | | Nhà cung cấp AI không thuộc OpenAI | vâng | n/a — Phạm vi OpenAI/Codex |
Điều kiện tiên quyết
- Đã cài đặt Codex CLI:
npm i -g @OpenAI/Codex
Codex --version # 0.130.0 or newer
`
2. **Đăng nhập Codex OAuth.** Quy trình con Codex đọc
~/.Codex/auth.JSON
. Hai cách để điền nó:
``` bash
Codex login # writes tokens to ~/.Codex/auth.JSON
```Hermes auth login Codex
` của Hermes ghi vào
~/.Hermes/auth.JSON
- đó là một phiên riêng biệt. **Chạy riêng
`Codex login
`
** nếu bạn chưa có.
3. **(Tùy chọn) Cài đặt các plugin Codex mà bạn muốn.** Khi bạn bật thời gian chạy, Hermes sẽ tự động di chuyển bất kỳ plugin tuyển chọn nào mà bạn đã cài đặt qua Codex CLI:
``` bash
Codex plugin marketplace add OpenAI-curated
# then via Codex's TUI, install Linear / GitHub / Gmail / etc.
`
Hermes sẽ phát hiện ra chúng và tự động ghi các mục
[plugins."<name@OpenAI-curated"]
` vào
~/.Codex/config.TOML
.
## Đang kích hoạt
Trong phiên Hermes:
`
/Codex-runtime Codex_app_server
`
`Lệnh đó:
- Xác minh
`Codex
` CLI đã được cài đặt (chặn có gợi ý cài đặt nếu chưa).
- Duy trì
`model.OpenAI_runtime: Codex_app_server
` vào config.yaml của bạn.
- Di chuyển máy chủ MCP của người dùng từ
~/.Hermes/config.yaml
` sang
~/.Codex/config.TOML
.
- **Khám phá và di chuyển các plugin Codex gốc đã cài đặt** (Tuyến tính, GitHub, Gmail, Lịch, Canva, v.v.) bằng cách truy vấn RPC
`plugin/list
` của Codex.
- **Đăng ký các công cụ của Hermes làm máy chủ MCP** để quy trình con Codex có thể gọi lại cho các công cụ mà Codex không cung cấp.
- **Ghi
`default_permissions = ":workspace"
** để hộp cát cho phép ghi trong không gian làm việc mà không cần nhắc mọi thao tác.
- Cho bạn biết những gì đã được di chuyển. Có hiệu lực trong phiên **tiếp theo** — tác nhân được lưu vào bộ nhớ đệm hiện tại sẽ giữ nguyên thời gian chạy trước đó để các bộ nhớ đệm nhắc nhở vẫn hợp lệ.
Từ đồng nghĩa:
/Codex-runtime on
,
/Codex-runtime off
,
/Codex-runtime auto
.
Để kiểm tra trạng thái hiện tại mà không thay đổi bất cứ điều gì:
`
/Codex-runtime
`
``Bạn cũng có thể đặt thủ công trong
~/.Hermes/config.yaml
:
`
``` yaml
model:
OpenAI_runtime: Codex_app_server # default is "auto" (= Hermes runtime)
`
## Vòng lặp tự cải thiện (bộ nhớ + thúc đẩy kỹ năng)
Khả năng tự cải thiện nền tảng của Hermes kích hoạt các ngưỡng truy cập:
- Cứ sau 10 lời nhắc của người dùng → một nhân viên đánh giá phân nhánh sẽ xem xét cuộc trò chuyện và quyết định xem có nên lưu nội dung nào vào bộ nhớ hay không.
- Cứ 10 lần lặp lại công cụ trong một lượt → cùng một ý tưởng nhưng về kỹ năng (
`skill_manage
` viết).
**Cả hai đều tiếp tục hoạt động trong thời gian chạy Codex.** Đường dẫn Codex chiếu từng mục
`commandExecution
` /
`fileChange
` /
`MCPToolCall
` /
`dynamicToolCall
` thành thông báo kết quả
`assistant tool_call
+
`tool
` tổng hợp, do đó, vào thời điểm quá trình đánh giá diễn ra, nó sẽ có hình dạng giống như trên thời gian chạy Hermes mặc định.
Làm thế nào hệ thống dây điện vẫn tương đương:
| | Thời gian chạy mặc định | Thời gian chạy Codex |
|---|---|---|
| Gia tăng
`_turns_since_memory
` | theo lời nhắc của người dùng, trong vòng lặp trước run_conversation | cùng một đường dẫn mã, trước khi trả về sớm |
| Gia tăng
`_iters_since_skill
` | mỗi lần lặp lại công cụ trong vòng lặp hoàn thành trò chuyện | bởi
`turn.tool_iterations
` sau khi lượt Codex trở lại |
| Kích hoạt bộ nhớ (
`_turns_since_memory >= _memory_nudge_interval
) | được tính toán trước vòng lặp, kích hoạt sau phản hồi | được tính toán trong vòng lặp trước, được chuyển tới trình trợ giúp Codex |
| Kích hoạt kỹ năng (
`_iters_since_skill >= _skill_nudge_interval
) | tính toán sau vòng lặp | tính toán sau lần lượt Codex |
|
`_spawn_background_review(messages_snapshot=..., review_memory=..., review_skills=...)
` | được gọi khi một trong hai kích hoạt kích hoạt | được gọi giống hệt nhau khi một trong hai trình kích hoạt kích hoạt |
Một chi tiết: bản thân bản đánh giá cần gọi các công cụ vòng lặp đại lý của Hermes (
`memory
,
`skill_manage
), công cụ này yêu cầu công văn riêng của Hermes. Vì vậy, khi tác nhân mẹ sử dụng
`Codex_app_server
, nhánh đánh giá sẽ **hạ cấp xuống
`Codex_responses
** — cùng thông tin xác thực OAuth, cùng nhà cung cấp
`OpenAI-Codex
` nhưng nói chuyện trực tiếp với API phản hồi của OpenAI để Hermes sở hữu vòng lặp và các công cụ vòng lặp tác nhân hoạt động. Điều này là vô hình đối với người dùng.
Hiệu ứng thực: kích hoạt thời gian chạy Codex và các cú huých bộ nhớ + kỹ năng của bạn tiếp tục kích hoạt chính xác như bình thường.
## Cách thức hoạt động của phê duyệt
Codex yêu cầu phê duyệt trước khi thực hiện lệnh hoặc áp dụng các bản vá. Những điều này được dịch sang lời nhắc "Lệnh nguy hiểm" tiêu chuẩn của Hermes:
`
╭───────────────────────────────────────╮
│ Dangerous Command │
│ │
│ /bin/bash -lc 'echo hello > foo.txt' │
│ │
│ ❯ 1. Allow once │
│ 2. Allow for this session │
│ 3. Deny │
│ │
│ Codex requests exec in /your/cwd │
╰───────────────────────────────────────╯
`
- **Cho phép một lần** → phê duyệt lệnh này.
- **Cho phép phiên này** → Codex sẽ không nhắc lại các lệnh tương tự.
- **Từ chối** → lệnh bị từ chối; Codex tiếp tục ở chế độ chỉ đọc.
Đối với phê duyệt
`apply_patch
` (chỉnh sửa tệp), Hermes hiển thị bản tóm tắt về những gì đã thay đổi (
`1 add, 1 update: /tmp/new.py, /tmp/old.py
) khi Codex cung cấp dữ liệu thông qua mục
`fileChange
` tương ứng.
## Hồ sơ cấp phép
Codex có ba hồ sơ cấp phép tích hợp:
-
:read-only
` — không ghi; mọi lệnh shell đều cần có sự phê duyệt
-
:workspace
` — cho phép ghi trong không gian làm việc hiện tại mà không cần lời nhắc (mặc định của Hermes khi bạn bật thời gian chạy)
-
:danger-no-sandbox
` — hoàn toàn không có sandbox (không sử dụng cái này trừ khi bạn hiểu nó)
Bạn có thể ghi đè mặc định trong
~/.Codex/config.TOML
` bên ngoài khối được quản lý của Hermes:
``` toml
default_permissions = ":read-only"
`
``(Hermes sẽ duy trì thông tin ghi đè của bạn khi di chuyển lại miễn là nó nằm ngoài các điểm đánh dấu
`
# managed by Hermes-agent
.)
## Nhiệm vụ phụ trợ và phí đăng ký ChatGPTKhi thời gian chạy này bật với nhà cung cấp
`OpenAI-Codex
, **các tác vụ phụ trợ (tạo tiêu đề, nén ngữ cảnh, tự động phát hiện tầm nhìn, nhánh đánh giá tự cải thiện nền) cũng chảy qua đăng ký ChatGPT của bạn theo mặc định**, vì máy khách phụ của Hermes sử dụng nhà cung cấp/mô hình chính khi không thiết lập ghi đè theo mỗi tác vụ.
Điều này không cụ thể đối với
`Codex_app_server
` — điều này cũng đúng với đường dẫn
`Codex_responses
` hiện có — nhưng nó hiển thị rõ ràng hơn ở đây vì bạn đang chọn tham gia thanh toán đăng ký một cách rõ ràng.
Để định tuyến các tác vụ phụ trợ cụ thể đến một mô hình rẻ hơn/khác, hãy đặt các phần ghi đè rõ ràng trong
~/.Hermes/config.yaml
:
``` yaml
auxiliary:
title_generation:
provider: OpenRouter
model: Google/Gemini-3-flash-preview
context_compression:
provider: OpenRouter
model: Google/Gemini-3-flash-preview
vision_detect:
provider: OpenRouter
model: Google/Gemini-3-flash-preview
goal_judge:
provider: OpenRouter
model: Google/Gemini-3-flash-preview
`
``Ngã ba đánh giá tự cải tiến kế thừa thời gian chạy chính thông qua
`_current_main_runtime()
` và Hermes tự động hạ cấp nó từ
`Codex_app_server
` xuống
`Codex_responses
` (vì vậy, ngã ba thực sự có thể gọi
`memory
` và
`skill_manage
` — các công cụ vòng lặp tác nhân của riêng Hermes). Ngã ba đó vẫn sử dụng xác thực đăng ký của bạn trừ khi bạn đã định tuyến các tác vụ phụ trợ ở nơi khác.
## Chỉnh sửa
~/.Codex/config.TOML
` một cách an toàn
Hermes gói mọi thứ nó quản lý giữa hai nhận xét đánh dấu:
`TOML
# managed by Hermes-agent —
`Hermes Codex-runtime migrate
` regenerates this section
default_permissions = ":workspace"
[MCP_servers.filesystem]
...
[plugins."GitHub@OpenAI-curated"]
...
# end Hermes-agent managed section
`
``Bất cứ thứ gì **bên ngoài** khối đó đều là của bạn. Quá trình di chuyển đang chạy lại (thông qua
/Codex-runtime Codex_app_server
` hoặc bất cứ khi nào bạn bật thời gian chạy) sẽ thay thế khối được quản lý tại chỗ nhưng vẫn giữ nguyên nguyên văn nội dung của người dùng ở trên và dưới khối đó. Điều này có nghĩa là bạn có thể:
- Thêm máy chủ MCP của riêng bạn mà Hermes không biết
- Ghi đè
`default_permissions
` thành
:read-only
` nếu bạn muốn được nhắc
- Định cấu hình các tùy chọn chỉ dành cho Codex (kiểu máy, nhà cung cấp, otel, v.v.)
- Thêm hồ sơ quyền do người dùng xác định trong bảng
[permissions.<name]
``Bất cứ điều gì bạn thêm **bên trong** khối được quản lý sẽ bị ghi đè trong lần di chuyển tiếp theo. Nếu bạn cần một chỉnh sửa yêu cầu chỉnh sửa khối được quản lý, hãy gửi vấn đề và chúng tôi sẽ thêm nút điều chỉnh.
## Thiết lập nhiều cấu hình / nhiều người thuê
Theo mặc định, Hermes trỏ quy trình con Codex vào
~/.Codex/
` bất kể hồ sơ Hermes nào đang hoạt động. Điều này có nghĩa là
`Hermes -p work
` và
`Hermes -p personal
` chia sẻ cùng một xác thực, plugin và cấu hình Codex. Đối với hầu hết người dùng, đây là hành vi đúng đắn — nó phù hợp với những gì việc chạy trực tiếp
`Codex
` CLI sẽ thực hiện.
Nếu bạn muốn cách ly Codex cho mỗi cấu hình (xác thực riêng, plugin được cài đặt riêng, cấu hình riêng), hãy đặt
`Codex_HOME
` rõ ràng cho mỗi cấu hình. Cách rõ ràng nhất là trỏ vào một thư mục trong
`Hermes_HOME
` của bạn:
``` bash
# Inside the work profile, you might wrap Hermes:
Codex_HOME=~/.Hermes/profiles/work/Codex Hermes chat
`
``Bạn sẽ cần chạy lại
`Codex login
` một lần với bộ
`Codex_HOME
` đó để mã thông báo OAuth nằm ở vị trí trong phạm vi hồ sơ. Sau đó,
`Hermes -p work
` sẽ hoạt động ở trạng thái Codex biệt lập.
Chúng tôi không tự động xác định phạm vi này vì việc di chuyển
~/.Codex/
` của người dùng hiện tại sẽ âm thầm vô hiệu hóa xác thực Codex CLI của họ — bất kỳ ai đã chạy
`Codex login
` sẽ phải xác thực lại. Việc chọn tham gia mang lại cảm giác an toàn hơn so với việc khiến người dùng ngạc nhiên.
## Truyền qua biến môi trường HOME
Hermes KHÔNG viết lại
`HOME
` khi sinh ra quy trình con máy chủ ứng dụng Codex (chúng tôi sử dụng
`os.environ.copy()
` và chỉ phủ
`Codex_HOME
` và
`Rust_LOG
). Điều này có nghĩa là:
- Các lệnh Codex chạy qua công cụ
`shell
` của nó xem người dùng thực
`HOME
` và tìm
~/.gitconfig
,
~/.gh/
,
~/.aws/
,
~/.npmrc
, v.v. một cách chính xác.
- Trạng thái bên trong của Codex vẫn bị cô lập thông qua
`Codex_HOME
` (theo mặc định trỏ vào
~/.Codex/
).
Điều này phù hợp với ranh giới mà OpenClaw đã đạt được sau một số thử nghiệm ban đầu: cô lập trạng thái của Codex, để người dùng yên tâm ở nhà. (Xem OpenClaw/OpenClaw#81562.)
## Di chuyển máy chủ MCP
Cấu hình
`MCP_servers
` của Hermes được tự động dịch sang định dạng TOML mà Codex mong đợi. Quá trình di chuyển diễn ra mỗi khi bạn bật thời gian chạy và không có hiệu lực — các lần chạy lại sẽ thay thế phần được quản lý nhưng vẫn giữ nguyên mọi cấu hình Codex do người dùng chỉnh sửa.
Dịch gì:`| Hermes (
`config.yaml
) | Codex (
`config.TOML
) |
|---|---|
|
`command
+
`args
+
`env
` | vận chuyển stdio |
|
`url
+
`headers
` | truyền tải_http có thể phát trực tuyến |
|
`timeout
` |
`tool_timeout_sec
` |
|
`connect_timeout
` |
`startup_timeout_sec
` |
|
`enabled: false
` |
`enabled = false
` |Những gì không được di chuyển:
- Các khóa dành riêng cho Hermes như
`sampling
` (ứng dụng khách MCP của Codex không có khóa tương đương - những khóa này bị loại bỏ kèm theo cảnh báo trên mỗi máy chủ).
## Di chuyển plugin Codex gốc
Các plugin được cài đặt qua
`Codex plugin
` (Tuyến tính, GitHub, Gmail, Lịch, Canva, v.v.) được phát hiện thông qua RPC
`plugin/list
` của Codex. Đối với mỗi plugin có
`installed: true
, Hermes viết khối
[plugins."<name@OpenAI-curated"]
` kích hoạt nó trong phiên Hermes của bạn.
Điều này có nghĩa là: khi bạn của bạn nói "Tôi đã thiết lập Lịch và GitHub trong Codex CLI của tôi" và họ kích hoạt thời gian chạy Codex của Hermes, Hermes sẽ tự động kích hoạt chúng. Không cần cấu hình lại.
Những gì KHÔNG được di chuyển:
- Các plugin bạn chưa cài đặt - trước tiên hãy cài đặt chúng trong Codex.
- Các plugin trong đó Codex báo cáo
`availability != AVAILABLE
` (cài đặt bị hỏng, OAuth hết hạn, bị xóa khỏi thị trường, v.v.). Chúng được bỏ qua để tránh việc ghi cấu hình không thành công khi kích hoạt.
- Các mục nhập thị trường ứng dụng ChatGPT (kết quả
`app/list
` cho mỗi tài khoản - những kết quả này đã được kích hoạt bên trong Codex nhờ xác thực tài khoản của bạn).
- Plugin OAuth — bạn ủy quyền cho mỗi plugin một lần trong chính Codex; Hermes không chạm vào thông tin xác thực.
## Gọi lại công cụ Hermes (máy chủ MCP mới)
Bộ công cụ tích hợp của Codex bao gồm các hoạt động/bản vá lỗi shell/file nhưng không có tìm kiếm trên web, tự động hóa trình duyệt, tầm nhìn, tạo hình ảnh, v.v. Để giữ những thứ đó có thể sử dụng được trong lượt Codex, Hermes tự đăng ký làm máy chủ MCP trong
~/.Codex/config.TOML
:
``` toml
[MCP_servers.Hermes-tools]
command = "/path/to/Python"
args = ["-m", "agent.transports.Hermes_tools_MCP_server"]
env = { Hermes_HOME = "/your/.Hermes", PythonPATH = "...", Hermes_QUIET = "1" }
startup_timeout_sec = 30.0
tool_timeout_sec = 600.0
`
``Khi mô hình gọi
`web_search
` (hoặc một công cụ Hermes khác), Codex sẽ sinh ra quy trình con
`Hermes_tools_MCP_server
` thông qua stdio, yêu cầu được gửi qua
`model_tools.handle_function_call()
` và kết quả được chiếu trở lại Codex giống như bất kỳ phản hồi MCP nào khác.
**Các công cụ có sẵn thông qua lệnh gọi lại:**
`web_search
,
`web_extract
,
`browser_navigate
,
`browser_CLIck
,
`browser_type
,
`browser_press
,
`browser_snapshot
,
`browser_scroll
,
`browser_back
,
`browser_get_images
,
`browser_console
,
`browser_vision
,
`vision_analyze
,
`image_generate
,
`skill_view
,
`skills_list
,
`text_to_speech
.
**Công cụ KHÔNG có sẵn:**
`delegate_task
,
`memory
,
`session_search
,
`todo
. Chúng cần bối cảnh AIAgent đang chạy để gửi đi (trạng thái giữa vòng lặp) và lệnh gọi lại MCP không trạng thái không thể điều khiển chúng. Sử dụng thời gian chạy Hermes mặc định (
/Codex-runtime auto
) khi bạn cần những thứ này.
## Vô hiệu hóa
Chuyển trở lại bất cứ lúc nào:
`
/Codex-runtime auto
`
``Có hiệu lực vào buổi tiếp theo. Khối được quản lý Codex vẫn nằm trong
~/.Codex/config.TOML
` để bạn có thể bật lại sau mà không làm mất cấu hình — hoặc xóa khối này theo cách thủ công nếu muốn.
## Hạn chế
Thời gian chạy này là **chọn tham gia beta**. Hoạt động như Hermes Agent 2026.5 + Codex CLI 0.130.0:
- Cuộc trò chuyện nhiều lượt
- Phê duyệt
`commandExecution
` và
`fileChange
` (apply_patch) thông qua giao diện người dùng Hermes
- Cuộc gọi công cụ MCP (được xác minh dựa trên
@modelcontextprotocol/server-filesystem
` và cuộc gọi lại
`Hermes-tools
` mới)
- Di chuyển plugin Codex gốc (được xác minh dựa trên khoảng không quảng cáo Tuyến tính / GitHub / Lịch)
- Từ chối/hủy đường dẫn
- Bật/tắt chu kỳ
- Bộ đếm tốc độ ghi nhớ và kỹ năng (được xác minh trực tiếp thông qua các bài kiểm tra tích hợp)
- Hermes web_search thông qua Codex (đã được xác minh trực tiếp: "OpenAI Codex CLI – Getting Started" được trả về từ đầu đến cuối)
Những hạn chế đã biết:- **Hermes auth và Codex auth là các phiên riêng biệt.** Bạn cần cả
`Codex login
` VÀ
`Hermes auth login Codex
` để có UX sạch nhất (thời gian chạy sử dụng phiên của Codex cho lệnh gọi LLM). Đây là lựa chọn thiết kế có chủ ý trong
`_import_Codex_CLI_tokens
` của Hermes - Hermes sẽ không chia sẻ trạng thái OAuth với Codex CLI để tránh ghi đè lẫn nhau khi làm mới mã thông báo.
- **
`delegate_task
,
`memory
,
`session_search
,
`todo
` không khả dụng trong thời gian chạy này.** Chúng cần bối cảnh AIAgent đang chạy mà lệnh gọi lại MCP không trạng thái không thể cung cấp. Sử dụng
/Codex-runtime auto
` khi bạn cần những thứ này.
- **Không có bản xem trước bản vá nội tuyến trong lời nhắc phê duyệt khi Codex không theo dõi bộ thay đổi.** Thông số phê duyệt
`fileChange
` của Codex không phải lúc nào cũng chứa bộ thay đổi. Hermes lưu trữ dữ liệu từ thông báo
`item/started
` tương ứng vào bộ nhớ đệm khi có thể, nhưng nếu phê duyệt đến trước khi mục được phát trực tuyến thì lời nhắc sẽ quay trở lại bất kỳ mã
`reason
` nào cung cấp.
- **Việc hủy dưới giây không được đảm bảo.** Các ngắt giữa luồng (Ctrl+C trong khi Codex đang phản hồi) được gửi qua
`turn/interrupt
, nhưng nếu Codex đã xóa thông báo cuối cùng thì bạn vẫn nhận được phản hồi.
Nếu bạn tìm thấy lỗi, [open an issue](https://GitHub.com/NousResearch/Hermes-agent/issues) có đầu ra là
`Hermes logs --since 5m
. Đề cập đến
`Codex-runtime
` trong tiêu đề để dễ dàng phân loại.
## Kiến trúc
`
┌─── Hermes shell (CLI / TUI / gateway) ───┐
│ sessions DB · slash commands · memory │
│ & skill review · cron · session pickers │
└──┬──────────────────────────────────────┬┘
│ user_message final │
▼ text + │
┌──────────────────────────────────┐ projected │
│ AIAgent.run_conversation() │ messages │
│ if API_mode == Codex_app_server │ │
│ → CodexAppServerSession │ │
│ else: chat_completions / Codex_responses (default)
└────┬─────────────────────────────┘ │
│ JSON-RPC over stdio │
▼ │
┌──────────────────────────────────┐ │
│ Codex app-server (subprocess) │──────────────┘
│ thread/start, turn/start │
│ item/* notifications │
│ shell + apply_patch + update_plan│
│ view_image + sandbox │
│ ┌─────────────────────────┐ │
│ │ MCP CLIent │ │
│ │ ├─ user MCP servers │ │
│ │ ├─ native plugins │ │
│ │ │ (linear, GitHub, │ │
│ │ │ gmail, calendar, │ │
│ │ │ canva, ...) │ │
│ │ └─ Hermes-tools ───────┼─────────────────┐
│ │ (callback to │ │ │
│ │ Hermes' richer │ │ │
│ │ tools) │ │ │
│ └─────────────────────────┘ │ │
└──────────────────────────────────┘ │
│
▼
┌──────────────────────────────────────────────────────────┐
│ Hermes_tools_MCP_server.py (subprocess on demand) │
│ web_search, web_extract, browser_*, vision_analyze, │
│ image_generate, skill_view, skills_list, text_to_speech│
└──────────────────────────────────────────────────────────┘
`
``Để biết chi tiết triển khai, hãy xem [PR #24182](https://GitHub.com/NousResearch/Hermes-agent/pull/24182) và [Codex app-server protocol README](https://GitHub.com/OpenAI/Codex/blob/main/Codex-rs/app-server/README.md).