Chuyển đến nội dung chính
Tham chiếu này trình bày cấu hình chi tiết cho plugin codex chính thức. Để thiết lập và đưa ra quyết định định tuyến, hãy bắt đầu với bộ khung Codex.

Bề mặt cấu hình plugin

Tất cả cài đặt của bộ khung Codex nằm trong plugins.entries.codex.config.
Các trường cấp cao nhất:

Giám sát

Theo mặc định, tính năng khám phá phiên gốc liệt kê các phiên Codex chưa lưu trữ từ máy tính Gateway và các Node đã ghép cặp có chủ đích. Chỉ tắt danh mục đó bằng:
supervision kiểm soát riêng các công cụ dành cho tác nhân: Các mục điểm cuối chấp nhận các trường sau: Trang Phiên Codex sử dụng App Server giám sát của plugin và chỉ hiển thị các phiên chưa lưu trữ. Khi không có cài đặt kết nối appServer rõ ràng, kết nối đó là stdio thư mục chính của người dùng được quản lý. Các hàng cục bộ đã lưu hoặc đang nhàn rỗi có thể tạo một cuộc trò chuyện bị khóa theo mô hình với lịch sử người dùng và trợ lý có giới hạn cho đến lượt nguồn cuối cùng ở trạng thái kết thúc đã được lưu bền vững. Liên kết riêng tư của cuộc trò chuyện duy trì nhánh rẽ từ ảnh chụp nhanh, nhánh nguồn appServer chính tắc, việc chèn lịch sử và các lượt sau đó trên kết nối đó. Lần bắt đầu chính tắc đầu tiên sử dụng cặp do thao tác rẽ nhánh trả về. Các lần tiếp tục sau bỏ qua phần ghi đè mô hình và nhà cung cấp của OpenClaw để Codex khôi phục cặp đã lưu bền vững của luồng chính tắc; một thay đổi gốc riêng biệt có thể cập nhật cặp đó, nhưng mô hình bên ngoài và chuỗi dự phòng không bao giờ thay thế cặp này. Các hàng đã lưu và đang nhàn rỗi có thể được lưu trữ sau khi xác nhận không có trình chạy nào khác, trừ khi một liên kết OpenClaw đang hoạt động khác sở hữu đúng đích hoặc một trong các hậu duệ được tạo ra và chưa lưu trữ của đích đó. OpenClaw tuân theo cơ chế phân trang hậu duệ của Codex và đóng an toàn khi gặp lỗi liệt kê, chu kỳ hoặc cạn giới hạn an toàn. Việc xác nhận vẫn bao quát các máy khách gốc không xác định và tình huống tranh chấp từ trạng thái sang lưu trữ. Không thể xóa một cuộc trò chuyện được giám sát và bị khóa theo mô hình khi cuộc trò chuyện đó bảo vệ liên kết gốc. Các nguồn đang hoạt động không thể tạo nhánh hoặc được lưu trữ, nhưng vẫn có thể mở một cuộc trò chuyện được giám sát hiện có. Mọi hàng của Node đã ghép cặp đều ở chế độ chỉ đọc; phương thức truyền tải của Node chưa cung cấp vòng đời phát trực tuyến mà bộ khung cần. Chỉ riêng appServer.homeScope: "user" thay đổi thư mục chính Codex mà một tiến trình bộ khung được quản lý sử dụng; cài đặt này không công bố danh mục đội máy. Việc bật giám sát không thay đổi giá trị mặc định của bộ khung. Thay vào đó, kết nối giám sát riêng biệt mặc định dùng stdio thư mục chính của người dùng được quản lý khi không có cài đặt kết nối appServer rõ ràng. Các cài đặt rõ ràng được tuân thủ cho kết nối đó. Các liên kết được giám sát đang chờ xử lý và đã cam kết duy trì kết nối đó cho mọi lượt; giám sát bị tắt hoặc độ lệch kết nối/vòng đời sẽ đóng an toàn thay vì dự phòng về bộ khung dùng thư mục chính của tác nhân. Kết nối mặc định chia sẻ các phiên đã lưu với máy khách Codex gốc, nhưng không chia sẻ trạng thái hoạt động cục bộ theo tiến trình của chúng. Các cài đặt plugins.entries.codex-supervisor cũ đã bị loại bỏ. Chạy openclaw doctor --fix để di chuyển mục cũ, định nghĩa điểm cuối, cờ chính sách và tham chiếu cho phép/từ chối plugin vào khối này. Các giá trị codex.config.supervision chính tắc được đặt rõ ràng sẽ được ưu tiên khi có xung đột.

Phương thức truyền tải của máy chủ ứng dụng

Đối với các lượt bộ khung thông thường, OpenClaw khởi động tệp nhị phân Codex được quản lý đi kèm plugin chính thức (hiện là @openai/codex 0.144.6):
Điều này giữ phiên bản máy chủ ứng dụng gắn với plugin codex chính thức thay vì bất kỳ Codex CLI riêng biệt nào tình cờ được cài đặt cục bộ. Chỉ đặt appServer.command khi bạn chủ ý muốn dùng một tệp thực thi khác. Các lượt được quản lý thông thường với thư mục chính tác nhân cô lập mặc định ưu tiên gói được ghim này ngay cả khi đã cài đặt gói ứng dụng máy tính macOS. Khi Computer Use được bật, hoặc khi homeScope"user" và có thể tải trạng thái Computer Use gốc, quy trình khởi động được quản lý sẽ ưu tiên tệp nhị phân của ứng dụng máy tính sở hữu các quyền macOS cần thiết. Quy tắc ưu tiên ứng dụng máy tính tương tự được áp dụng khi cấu hình Codex hiệu lực của thư mục chính tác nhân cô lập bật Computer Use gốc. Nếu không cài đặt gói ứng dụng máy tính, OpenClaw dự phòng về tệp nhị phân của gói được ghim. Việc bàn giao tệp thực thi và phân vùng cấu hình gốc điều phối các máy khách bên trong một tiến trình Gateway đang chạy. Hãy khởi động lại Gateway sau khi một tiến trình khác thay đổi cấu hình plugin Codex gốc. Giám sát phân giải một kết nối riêng biệt. Khi không có cài đặt kết nối appServer rõ ràng, nó sử dụng stdio được quản lý với homeScope: "user"; bộ khung thông thường vẫn sử dụng stdio được quản lý với homeScope: "agent". Cả hai đường dẫn đều tuân thủ các cài đặt kết nối rõ ràng. Đặt homeScope: "user" rõ ràng khi bộ khung thông thường cần chia sẻ $CODEX_HOME (hoặc ~/.codex) với các máy khách gốc. Một liên kết được giám sát riêng tư sử dụng kết nối giám sát bất kể giá trị mặc định của bộ khung thông thường. Các tiến trình App Server độc lập duy trì trạng thái trực tiếp và trạng thái phê duyệt riêng biệt. Để kiểm thử ngoài môi trường sản xuất với một máy chủ ứng dụng đang chạy, phương thức truyền tải WebSocket khả dụng:
Codex phân loại phương thức truyền tải WebSocket là thử nghiệm và không được hỗ trợ. Nên ưu tiên stdio được quản lý hoặc socket điều khiển Unix cục bộ cho tải công việc sản xuất. Các trường appServer: appServer.networkProxy được khai báo rõ ràng vì nó thay đổi hợp đồng sandbox của Codex. Khi được bật, OpenClaw cũng đặt features.network_proxy.enableddefault_permissions trong cấu hình luồng Codex để hồ sơ quyền được tạo có thể khởi động mạng do Codex quản lý. Theo mặc định, OpenClaw tạo tên hồ sơ openclaw-network-<fingerprint> có khả năng chống xung đột từ nội dung hồ sơ; chỉ sử dụng profileName khi cần một tên cục bộ ổn định.
Nếu runtime app-server thông thường sẽ là danger-full-access, việc bật networkProxy sẽ sử dụng quyền truy cập hệ thống tệp kiểu workspace cho hồ sơ quyền được tạo. Việc thực thi chính sách mạng do Codex quản lý là mạng được sandbox, vì vậy hồ sơ toàn quyền truy cập sẽ không bảo vệ lưu lượng đi. Plugin chặn các quá trình bắt tay app-server cũ hơn, mới hơn nhưng chưa được xác thực, bản phát hành trước, có hậu tố bản dựng hoặc không có phiên bản. Codex app-server phải báo cáo một phiên bản ổn định từ 0.143.0 đến 0.144.6 đi kèm. OpenClaw coi các URL app-server WebSocket không phải loopback là từ xa và yêu cầu xác thực WebSocket mang thông tin định danh thông qua appServer.authToken hoặc header Authorization. appServer.authToken và mỗi giá trị appServer.headers.* có thể là một SecretInput; runtime bí mật phân giải SecretRef và dạng viết tắt env trước khi OpenClaw tạo các tùy chọn khởi động app-server, còn SecretRef có cấu trúc chưa được phân giải sẽ gây lỗi trước khi bất kỳ token hoặc header nào được gửi. Khi các plugin Codex gốc được cấu hình, OpenClaw sử dụng mặt phẳng điều khiển plugin của app-server đã kết nối để cài đặt hoặc làm mới các plugin đó, rồi làm mới danh mục ứng dụng để các ứng dụng thuộc sở hữu plugin hiển thị với luồng Codex. app/list vẫn là nguồn danh mục và siêu dữ liệu có thẩm quyền, nhưng chính sách OpenClaw quyết định liệu thread/start có gửi config.apps[appId].enabled = true cho một ứng dụng có thể truy cập trong danh sách hay không, ngay cả khi Codex hiện đánh dấu ứng dụng đó là đã tắt. ID ứng dụng không xác định hoặc bị thiếu vẫn bị từ chối theo nguyên tắc đóng an toàn; đường dẫn này chỉ kích hoạt các plugin marketplace thông qua plugin/install và làm mới danh mục. Chỉ kết nối OpenClaw với các app-server từ xa đáng tin cậy để chấp nhận việc cài đặt plugin và làm mới danh mục ứng dụng do OpenClaw quản lý.

Chế độ phê duyệt và sandbox

Theo mặc định, các phiên app-server stdio cục bộ sử dụng chế độ YOLO: approvalPolicy: "never", approvalsReviewer: "user"sandbox: "danger-full-access". Trạng thái vận hành cục bộ đáng tin cậy này cho phép các lượt chạy và Heartbeat OpenClaw không có người giám sát tiếp tục tiến triển mà không cần lời nhắc phê duyệt gốc vốn không có ai ở đó để phản hồi. Nếu tệp yêu cầu hệ thống cục bộ của Codex không cho phép các giá trị phê duyệt YOLO, người review hoặc sandbox ngầm định, OpenClaw sẽ coi giá trị mặc định ngầm định là guardian và chọn các quyền guardian được phép. tools.exec.mode: "auto" cũng bắt buộc các phê duyệt Codex được guardian review và không giữ lại các ghi đè approvalPolicy: "never" hoặc sandbox: "danger-full-access" cũ không an toàn; đặt tools.exec.mode: "full" khi chủ ý không sử dụng phê duyệt. Các mục [[remote_sandbox_config]] khớp tên máy chủ trong cùng tệp yêu cầu được tuân thủ khi quyết định giá trị sandbox mặc định. Đặt appServer.mode: "guardian" để sử dụng các phê duyệt Codex được guardian review:
Giá trị đặt sẵn guardian được mở rộng thành approvalPolicy: "on-request", approvalsReviewer: "auto_review"sandbox: "workspace-write" khi các giá trị đó được phép. Các trường chính sách riêng lẻ ghi đè mode. Giá trị người review guardian_subagent cũ hơn vẫn được chấp nhận làm bí danh tương thích, nhưng cấu hình mới nên sử dụng auto_review. Khi sandbox OpenClaw đang hoạt động, tiến trình Codex app-server cục bộ vẫn chạy trên máy chủ Gateway. Do đó, OpenClaw vô hiệu hóa Code Mode gốc của Codex, các máy chủ MCP của người dùng và việc thực thi plugin dựa trên ứng dụng cho lượt đó, thay vì coi sandbox phía máy chủ Codex là tương đương với backend sandbox của OpenClaw. Quyền truy cập shell được cung cấp thông qua các công cụ động dựa trên sandbox OpenClaw như sandbox_execsandbox_process khi các công cụ exec/process thông thường khả dụng.
Trên các máy chủ sandbox OpenClaw dựa trên Docker (agents.defaults.sandbox.mode được đặt thành backend Docker), openclaw doctor thăm dò xem máy chủ có cho phép các namespace người dùng không đặc quyền (và namespace mạng khi lưu lượng mạng đi của sandbox Docker bị tắt) mà bwrap Codex lồng nhau cần cho việc thực thi shell workspace-write bên trong container sandbox hay không. Thăm dò thất bại thường hiển thị dưới dạng bwrap: setting up uid map: Permission denied hoặc bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted trên các máy chủ Ubuntu/AppArmor. Hãy sửa chính sách namespace máy chủ được báo cáo cho người dùng dịch vụ OpenClaw và khởi động lại Gateway; ưu tiên hồ sơ AppArmor giới hạn phạm vi cho tiến trình dịch vụ thay vì phương án dự phòng toàn máy chủ kernel.apparmor_restrict_unprivileged_userns=0, và không cấp đặc quyền container Docker rộng hơn chỉ để đáp ứng bwrap lồng nhau.

Thực thi gốc trong sandbox

Giá trị mặc định ổn định là đóng an toàn: sandbox OpenClaw đang hoạt động sẽ vô hiệu hóa các bề mặt thực thi Codex gốc mà nếu không sẽ chạy từ máy chủ Codex app-server. Chỉ sử dụng appServer.experimental.sandboxExecServer: true khi muốn thử hỗ trợ môi trường từ xa của Codex với backend sandbox của OpenClaw. Đường dẫn xem trước này hoạt động với mọi phiên bản Codex app-server được hỗ trợ.
Khi cờ được bật và phiên OpenClaw hiện tại nằm trong sandbox, OpenClaw khởi động một exec-server loopback cục bộ dựa trên sandbox đang hoạt động, đăng ký nó với Codex app-server, rồi khởi động luồng và lượt Codex bằng môi trường thuộc sở hữu OpenClaw đó. Nếu app-server không thể đăng ký môi trường, lần chạy sẽ thất bại theo nguyên tắc đóng an toàn thay vì âm thầm quay về thực thi trên máy chủ. Đường dẫn xem trước này chỉ dành cho cục bộ. Một app-server WebSocket từ xa không thể truy cập exec-server loopback trừ khi nó chạy trên cùng máy chủ, vì vậy OpenClaw từ chối tổ hợp đó.

Xác thực và cô lập môi trường

Trong thư mục home mặc định theo từng agent, phương thức xác thực được chọn theo thứ tự sau:
  1. Một hồ sơ xác thực Codex OpenClaw được chỉ định rõ ràng cho agent.
  2. Tài khoản hiện có của app-server trong thư mục home Codex của agent đó.
  3. Chỉ đối với các lần khởi chạy app-server stdio cục bộ, CODEX_API_KEY, sau đó là OPENAI_API_KEY, khi không có tài khoản app-server và vẫn cần xác thực OpenAI.
Khi OpenClaw phát hiện hồ sơ xác thực Codex kiểu gói thuê bao ChatGPT (loại thông tin xác thực OAuth hoặc token), nó xóa CODEX_API_KEYOPENAI_API_KEY khỏi tiến trình con Codex được khởi chạy. Điều này giữ các khóa API cấp Gateway khả dụng cho embedding hoặc các mô hình OpenAI trực tiếp mà không khiến các lượt Codex app-server gốc vô tình được tính phí qua API. Các hồ sơ khóa API Codex được chỉ định rõ ràng và phương án dự phòng khóa env stdio cục bộ sử dụng đăng nhập app-server thay vì kế thừa env của tiến trình con. Các kết nối app-server WebSocket không nhận phương án dự phòng khóa API env của Gateway; hãy sử dụng hồ sơ xác thực được chỉ định rõ ràng hoặc tài khoản riêng của app-server từ xa. Theo mặc định, các lần khởi chạy app-server stdio kế thừa môi trường tiến trình của OpenClaw. OpenClaw sở hữu cầu nối tài khoản Codex app-server và đặt CODEX_HOME thành thư mục theo từng agent trong trạng thái OpenClaw của agent đó. Điều này giữ cấu hình, tài khoản, bộ nhớ đệm/dữ liệu plugin và trạng thái luồng Codex trong phạm vi agent OpenClaw, thay vì rò rỉ từ thư mục home ~/.codex cá nhân của người vận hành. Đặt appServer.homeScope: "user" để chia sẻ trạng thái Codex gốc với Codex Desktop và CLI. Chế độ thư mục home người dùng cục bộ này hỗ trợ stdio được quản lý và phương thức truyền Unix được chỉ định rõ ràng. Chế độ này sử dụng $CODEX_HOME khi được đặt và ~/.codex trong trường hợp còn lại, bao gồm xác thực, cấu hình, plugin và luồng gốc. OpenClaw bỏ qua cầu nối hồ sơ xác thực của mình cho app-server. Các lượt của chủ sở hữu đã xác minh có thể sử dụng codex_threads để liệt kê (với bộ lọc search tùy chọn), đọc, phân nhánh, đổi tên, lưu trữ và bỏ lưu trữ các luồng đó. Hãy phân nhánh một luồng trước khi tiếp tục luồng đó trong OpenClaw; các tiến trình Codex độc lập không phối hợp những tiến trình ghi đồng thời cho cùng một luồng. Lựa chọn tham gia homeScope đó áp dụng cho các phiên harness thông thường. Một Chat được tạo thông qua Codex Sessions sẽ sử dụng kết nối giám sát riêng của nó, giúp duy trì cấu hình xác thực và nhà cung cấp của kết nối gốc cho nhánh chuẩn và các lần tiếp tục trong tương lai. Trong một Chat được giám sát và khóa mô hình, codex_threads không thể đính kèm một nhánh khác hoặc lưu trữ luồng gốc đã liên kết của Chat. Khả năng liệt kê và đọc chỉ siêu dữ liệu vẫn khả dụng. Việc đọc bản chép lời thô yêu cầu allowRawTranscripts; khi tùy chọn này bị tắt, tìm kiếm danh sách cũng bị từ chối vì tìm kiếm gốc có thể khớp với bản xem trước bản chép lời. Việc đổi tên, bỏ lưu trữ, phân nhánh tách rời và lưu trữ một luồng không liên quan, không thuộc sở hữu của Chat OpenClaw khác, yêu cầu allowWriteControls. Không tùy chọn nào bỏ qua một liên kết đã khóa. OpenClaw không ghi lại HOME cho các lần khởi chạy app-server cục bộ thông thường. Các tiến trình con do Codex chạy như openclaw, gh, git, các CLI đám mây và lệnh shell nhìn thấy thư mục home tiến trình thông thường và có thể tìm thấy cấu hình cùng token trong thư mục home người dùng. Codex cũng có thể phát hiện $HOME/.agents/skills$HOME/.agents/plugins/marketplace.json; việc phát hiện .agents đó được chủ ý chia sẻ với thư mục home của người vận hành và tách biệt với trạng thái ~/.codex được cô lập. Trong phạm vi agent mặc định, các plugin OpenClaw và ảnh chụp Skills OpenClaw vẫn đi qua sổ đăng ký plugin và trình tải Skills riêng của OpenClaw; các tài nguyên ~/.codex Codex cá nhân thì không. Nếu có các kỹ năng hoặc plugin Codex CLI hữu ích từ một thư mục home Codex cần trở thành một phần của agent OpenClaw được cô lập, hãy kiểm kê chúng một cách rõ ràng:
Nếu một triển khai cần cô lập môi trường bổ sung, hãy thêm các biến đó vào appServer.clearEnv:
appServer.clearEnv chỉ ảnh hưởng đến tiến trình con Codex app-server được khởi chạy. OpenClaw xóa CODEX_HOMEHOME khỏi danh sách này trong quá trình chuẩn hóa khởi chạy cục bộ: CODEX_HOME tiếp tục trỏ đến phạm vi agent hoặc người dùng đã chọn, còn HOME tiếp tục được kế thừa để các tiến trình con có thể sử dụng trạng thái thư mục home người dùng thông thường.

Công cụ động

Theo mặc định, các công cụ động Codex sử dụng cách tải searchable, được cung cấp trong namespace openclaw với deferLoading: true. OpenClaw thường không cung cấp các công cụ động trùng lặp với thao tác workspace gốc của Codex hoặc bề mặt tìm kiếm công cụ riêng của Codex:
  • read
  • write
  • edit
  • apply_patch
  • exec
  • process
  • update_plan
  • tool_call
  • tool_describe
  • tool_search
  • tool_search_code
Khi danh sách cho phép runtime hữu hạn vô hiệu hóa Code Mode gốc, OpenClaw gửi một lựa chọn môi trường thực thi trống. Trong trường hợp trực tiếp, không được sandbox đó, OpenClaw giữ lại các công cụ execprocess đã được lọc theo chính sách làm phương án dự phòng shell. Danh sách cho phép runtime và codexDynamicToolsExclude vẫn được áp dụng. Hầu hết các công cụ tích hợp OpenClaw còn lại, chẳng hạn như nhắn tin, phương tiện, cron, trình duyệt, node, Gateway, heartbeat_respondweb_search, đều có sẵn thông qua tính năng tìm kiếm công cụ Codex trong namespace đó. Điều này giúp ngữ cảnh ban đầu của mô hình nhỏ hơn. Một nhóm nhỏ công cụ vẫn có thể được gọi trực tiếp bất kể codexDynamicToolsLoading, vì tính năng tìm kiếm công cụ Codex có thể không khả dụng hoặc chỉ phân giải được một tập hợp gồm các trình kết nối: agents_list, sessions_spawnsessions_yield. Các chỉ dẫn dành cho nhà phát triển vẫn hướng các subagent Codex thông thường đến spawn_agent gốc cho công việc subagent gốc của Codex, trong khi sessions_spawn vẫn khả dụng cho việc ủy quyền OpenClaw hoặc ACP rõ ràng. Các phản hồi nguồn chỉ dùng công cụ nhắn tin cũng vẫn được gửi trực tiếp, vì đó là một hợp đồng kiểm soát lượt. Các công cụ được đánh dấu catalogMode: "direct-only", bao gồm công cụ OpenClaw computer, được nhóm trong openclaw_direct. OpenClaw thêm namespace đó vào danh sách code_mode.direct_only_tool_namespaces của Codex mà không thay thế các mục do người vận hành cung cấp. Do đó, Codex hiển thị các công cụ đó dưới dạng DirectModelOnly trong các luồng thông thường và luồng chỉ dùng chế độ mã, thay vì định tuyến chúng qua các lệnh gọi Code Mode tools.* lồng nhau. Ranh giới này là bắt buộc đối với các kết quả chứa hình ảnh: quá trình tuần tự hóa Code Mode lồng nhau làm phẳng đầu ra hình ảnh thành văn bản, khiến ảnh chụp màn hình cần cho thao tác máy tính tiếp theo bị loại bỏ. Chỉ đặt codexDynamicToolsLoading: "direct" khi kết nối với một app-server Codex tùy chỉnh không thể tìm kiếm các công cụ động được trì hoãn hoặc khi gỡ lỗi toàn bộ tải công cụ.

Thời gian chờ

Các lệnh gọi công cụ động do OpenClaw sở hữu được giới hạn độc lập với appServer.requestTimeoutMs. Mỗi yêu cầu Codex item/tool/call sử dụng thời gian chờ khả dụng đầu tiên theo thứ tự sau:
  • Đối số timeoutMs dương cho mỗi lệnh gọi.
  • Đối với image_generate, agents.defaults.imageGenerationModel.timeoutMs.
  • Đối với image_generate không có thời gian chờ được cấu hình, giá trị mặc định tạo hình ảnh là 120 giây.
  • Đối với công cụ nhận hiểu phương tiện image, tools.media.image.timeoutSeconds được chuyển đổi thành mili giây hoặc giá trị mặc định cho phương tiện là 60 giây. Đối với nhận hiểu hình ảnh, giá trị này áp dụng cho chính yêu cầu và không bị giảm bởi công việc chuẩn bị trước đó.
  • Đối với công cụ message, giá trị mặc định cố định là 120 giây.
  • Giá trị mặc định cho công cụ động là 90 giây.
Bộ giám sát này là ngân sách item/tool/call động bên ngoài. Thời gian chờ yêu cầu riêng theo nhà cung cấp chạy bên trong lệnh gọi đó và giữ nguyên ngữ nghĩa thời gian chờ riêng. Ngân sách công cụ động được giới hạn ở 600000 ms. Khi hết thời gian chờ, OpenClaw hủy tín hiệu công cụ nếu được hỗ trợ và trả về phản hồi công cụ động thất bại cho Codex để lượt có thể tiếp tục thay vì để phiên ở trạng thái processing. Sau khi Codex chấp nhận một lượt và sau khi OpenClaw phản hồi một yêu cầu app-server theo phạm vi lượt, harness kỳ vọng Codex tạo tiến triển cho lượt hiện tại và cuối cùng hoàn tất lượt gốc bằng turn/completed. Nếu app-server không có hoạt động trong appServer.turnCompletionIdleTimeoutMs, OpenClaw cố gắng ngắt lượt Codex, ghi lại chẩn đoán hết thời gian chờ và giải phóng làn phiên OpenClaw để các tin nhắn trò chuyện tiếp theo không bị xếp hàng sau một lượt gốc đã lỗi thời. Hầu hết thông báo không kết thúc cho cùng một lượt đều vô hiệu hóa bộ giám sát ngắn đó vì Codex đã chứng minh lượt vẫn đang hoạt động. Việc bàn giao công cụ sử dụng ngân sách nhàn rỗi sau công cụ dài hơn: sau khi OpenClaw trả về phản hồi item/tool/call, sau khi các mục công cụ gốc như commandExecution hoàn tất, sau khi các lượt hoàn tất custom_tool_call_output thô, và sau tiến triển trợ lý thô sau công cụ, lượt hoàn tất suy luận thô hoặc tiến triển suy luận. Bộ bảo vệ sử dụng appServer.postToolRawAssistantCompletionIdleTimeoutMs khi được cấu hình và mặc định là năm phút nếu không. Ngân sách sau công cụ đó cũng kéo dài bộ giám sát tiến triển cho khoảng tổng hợp im lặng trước khi Codex phát ra sự kiện tiếp theo của lượt hiện tại. Các lượt hoàn tất suy luận, lượt hoàn tất agentMessage trong phần bình luận, và tiến triển suy luận hoặc trợ lý thô trước công cụ có thể được tiếp nối bằng phản hồi cuối cùng tự động, vì vậy chúng sử dụng bộ bảo vệ phản hồi sau tiến triển thay vì giải phóng làn phiên ngay lập tức. Chỉ các mục agentMessage đã hoàn tất dạng cuối cùng/không phải bình luận và các lượt hoàn tất trợ lý thô trước công cụ mới kích hoạt việc giải phóng đầu ra trợ lý: nếu sau đó Codex không có hoạt động mà không có turn/completed, OpenClaw cố gắng ngắt lượt gốc và giải phóng làn phiên. Các lỗi app-server stdio an toàn khi phát lại, bao gồm hết thời gian chờ nhàn rỗi khi hoàn tất lượt mà không có bằng chứng về trợ lý, công cụ, mục đang hoạt động hoặc tác dụng phụ, được thử lại một lần trên một lần thử app-server mới. Các trường hợp hết thời gian chờ không an toàn vẫn loại bỏ máy khách app-server bị kẹt và giải phóng làn phiên OpenClaw. Chúng cũng xóa liên kết luồng gốc đã lỗi thời thay vì tự động phát lại. Các trường hợp hết thời gian chờ theo dõi hoàn tất hiển thị văn bản thời gian chờ dành riêng cho Codex: các trường hợp an toàn khi phát lại cho biết phản hồi có thể chưa đầy đủ, trong khi các trường hợp không an toàn yêu cầu người dùng xác minh trạng thái hiện tại trước khi thử lại. Chẩn đoán thời gian chờ công khai bao gồm các trường cấu trúc như phương thức thông báo app-server gần nhất, id/loại/vai trò của mục phản hồi trợ lý thô, số lượng yêu cầu/mục đang hoạt động và trạng thái theo dõi đã kích hoạt. Khi thông báo cuối cùng là một mục phản hồi trợ lý thô, chúng cũng bao gồm bản xem trước văn bản trợ lý có giới hạn. Chúng không bao gồm nội dung prompt hoặc công cụ thô.

Khám phá mô hình

Theo mặc định, Plugin Codex yêu cầu app-server cung cấp các mô hình khả dụng. Tính khả dụng của mô hình do app-server Codex sở hữu, vì vậy danh sách có thể thay đổi khi OpenClaw nâng cấp phiên bản @openai/codex đi kèm hoặc khi một triển khai trỏ appServer.command đến một tệp nhị phân Codex khác. Tính khả dụng cũng có thể được giới hạn theo tài khoản. Sử dụng /codex models trên một Gateway đang chạy để xem danh mục trực tiếp cho harness và tài khoản đó. Nếu quá trình khám phá thất bại hoặc hết thời gian chờ, OpenClaw sử dụng danh mục dự phòng đi kèm:
Harness đi kèm hiện tại là @openai/codex 0.144.6. Một phép thăm dò model/list đối với app-server đi kèm đó đã trả về các hàng bộ chọn công khai sau:Danh mục app-server có thể báo cáo ultra; các điều khiển suy luận của OpenClaw hiện hiển thị các mức đến max.Các hàng bộ chọn trực tiếp được giới hạn theo tài khoản và có thể thay đổi theo tài khoản, danh mục Codex hoặc phiên bản đi kèm; hãy chạy /codex models để lấy danh sách hiện tại thay vì dựa vào bất kỳ bảng tại một thời điểm cụ thể nào. Các mô hình ẩn cũng có thể xuất hiện trong danh mục app-server cho các luồng nội bộ hoặc chuyên biệt mà không phải là lựa chọn thông thường trong bộ chọn mô hình.
Điều chỉnh quá trình khám phá trong plugins.entries.codex.config.discovery:
Tắt quá trình khám phá khi bạn muốn quá trình khởi động tránh thăm dò Codex và chỉ sử dụng danh mục dự phòng:

Tệp khởi tạo workspace

Codex tự xử lý AGENTS.md thông qua tính năng khám phá tài liệu dự án gốc. OpenClaw không ghi các tệp tài liệu dự án Codex tổng hợp hoặc phụ thuộc vào tên tệp dự phòng của Codex cho các tệp persona, vì các phương án dự phòng Codex chỉ áp dụng khi AGENTS.md bị thiếu. Để đảm bảo tính tương đương của workspace OpenClaw, harness Codex chuyển tiếp các tệp khởi tạo khác dưới dạng chỉ dẫn dành cho nhà phát triển, nhưng không hoàn toàn giống nhau:
  • TOOLS.md được chuyển tiếp dưới dạng chỉ dẫn nhà phát triển Codex được kế thừa, vì vậy các subagent Codex gốc được tạo trong lượt cũng nhìn thấy nó.
  • SOUL.md, IDENTITY.mdUSER.md được chuyển tiếp dưới dạng chỉ dẫn cộng tác theo phạm vi lượt. Các subagent Codex gốc không kế thừa chúng, nhờ đó các lượt subagent không nhận persona và hồ sơ người dùng của tác nhân cha.
  • Danh sách Skills OpenClaw đã nạp ở dạng rút gọn cũng được chuyển tiếp dưới dạng chỉ dẫn nhà phát triển cộng tác theo phạm vi lượt, vì vậy các subagent Codex gốc cũng không kế thừa danh sách đó.
  • Nội dung HEARTBEAT.md không được chèn; các lượt Heartbeat nhận được một con trỏ ở chế độ cộng tác để đọc tệp khi tệp tồn tại và không rỗng.
  • Nội dung MEMORY.md từ workspace của tác nhân đã cấu hình không được dán vào đầu vào lượt Codex gốc khi các công cụ bộ nhớ khả dụng cho workspace đó; khi nội dung này tồn tại, harness thêm một con trỏ bộ nhớ workspace nhỏ vào chỉ dẫn nhà phát triển cộng tác theo phạm vi lượt và Codex nên sử dụng memory_search hoặc memory_get khi bộ nhớ bền vững có liên quan. Nếu các công cụ bị tắt, tìm kiếm bộ nhớ không khả dụng hoặc workspace đang hoạt động khác với workspace bộ nhớ của tác nhân, MEMORY.md sử dụng đường dẫn ngữ cảnh lượt có giới hạn thông thường.
  • Khi có, BOOTSTRAP.md được chuyển tiếp dưới dạng ngữ cảnh tham chiếu đầu vào lượt của OpenClaw.

Ghi đè môi trường

Các ghi đè môi trường vẫn khả dụng cho việc kiểm thử cục bộ:
  • OPENCLAW_CODEX_APP_SERVER_BIN
  • OPENCLAW_CODEX_APP_SERVER_ARGS
  • OPENCLAW_CODEX_APP_SERVER_MODE=yolo|guardian
  • OPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICY
  • OPENCLAW_CODEX_APP_SERVER_SANDBOX
OPENCLAW_CODEX_APP_SERVER_BIN bỏ qua tệp nhị phân được quản lý khi appServer.command chưa được đặt. OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1 đã bị xóa. Thay vào đó, hãy sử dụng plugins.entries.codex.config.appServer.mode: "guardian" hoặc OPENCLAW_CODEX_APP_SERVER_MODE=guardian để kiểm thử cục bộ một lần. Cấu hình được ưu tiên cho các triển khai có thể lặp lại vì nó giữ hành vi của Plugin trong cùng tệp đã được review với phần còn lại của thiết lập harness Codex.

Liên quan