Tổng quan
Codex sở hữu vòng lặp mô hình gốc, việc tiếp tục luồng gốc, tiếp tục công cụ gốc và Compaction gốc. OpenClaw sở hữu định tuyến kênh, tệp phiên, phân phối thông báo hiển thị, các công cụ động của OpenClaw, phê duyệt, phân phối phương tiện và bản sao transcript bao quanh ranh giới đó. Việc định tuyến prompt tuân theo runtime đã chọn, không chỉ chuỗi nhà cung cấp. Một lượt Codex gốc nhận các chỉ dẫn dành cho nhà phát triển của app-server Codex; một tuyến tương thích OpenClaw tường minh vẫn giữ prompt hệ thống OpenClaw thông thường ngay cả khi tuyến đó sử dụng phương thức xác thực hoặc truyền tải OpenAI theo kiểu Codex. OpenClaw khởi tạo và tiếp tục các luồng Codex gốc với tính cách tích hợp sẵn của Codex bị vô hiệu hóa (personality: "none") để các tệp tính cách trong không gian làm việc
và danh tính tác nhân OpenClaw vẫn là nguồn có thẩm quyền. Ngoài ra, Codex gốc vẫn giữ
các chỉ dẫn cơ sở/mô hình do Codex sở hữu và việc tải tài liệu dự án. Các lượt chạy
OpenClaw nhẹ (ví dụ: cron) vẫn không tải tài liệu dự án.
Các chỉ dẫn dành cho nhà phát triển của OpenClaw bao quát những vấn đề của runtime OpenClaw: phân phối
qua kênh nguồn, các công cụ động của OpenClaw, ủy quyền ACP, ngữ cảnh bộ điều hợp và các
tệp hồ sơ không gian làm việc của tác nhân đang hoạt động. Danh mục skill và các con trỏ
MEMORY.md được định tuyến qua công cụ được chiếu dưới dạng chỉ dẫn cộng tác dành cho nhà phát triển
trong phạm vi lượt. Khi các công cụ bộ nhớ không khả dụng, nội dung BOOTSTRAP.md đang hoạt động
và toàn bộ MEMORY.md sẽ chuyển sang ngữ cảnh đầu vào thuần túy của lượt.
Hầu hết các công cụ động của OpenClaw sử dụng không gian tên openclaw có thể tìm kiếm. Các công cụ
được đánh dấu catalogMode: "direct-only" sử dụng openclaw_direct, được Codex giữ
hiển thị trực tiếp cho mô hình dưới dạng DirectModelOnly thay vì đưa nó vào quá trình
thực thi Code Mode lồng nhau.
Liên kết luồng và thay đổi mô hình
Khi một phiên OpenClaw được gắn vào luồng Codex hiện có, lượt tiếp theo sẽ gửi lại mô hình hiện được chọn, chính sách phê duyệt, sandbox, trình review phê duyệt và bậc dịch vụ cho app-server. Việc chuyển từopenai/gpt-5.5 sang openai/gpt-5.2 vẫn giữ liên kết luồng nhưng yêu cầu Codex
tiếp tục bằng mô hình mới được chọn.
Liên kết được giám sát là ngoại lệ. Bộ chọn mô hình OpenClaw vẫn bị khóa,
và các lần tiếp tục sẽ bỏ qua ghi đè mô hình và nhà cung cấp để Codex khôi phục mô hình
và nhà cung cấp đã được lưu của luồng chuẩn. Một điều khiển Codex gốc riêng biệt có thể
thay đổi cặp đã lưu đó, và snapshot ban đầu có thể tạo ra cảnh báo thông thường của Codex
về sự khác biệt mô hình; mô hình OpenClaw bên ngoài và chuỗi dự phòng không bao giờ
thay thế một trong hai giá trị đó.
Giám sát và tiếp tục an toàn
Giám sát Codex là một khả năng tùy chọn của cùng Plugincodex. Nó phát hiện
các luồng gốc qua một kết nối riêng biệt và chỉ chiếu những phiên chưa lưu trữ
vào danh mục Gateway. Nếu không có các thiết lập kết nối appServer tường minh,
kết nối đó sử dụng stdio thư mục chính người dùng được quản lý, trong khi harness thông thường
vẫn thuộc phạm vi tác nhân. Việc liệt kê và đọc siêu dữ liệu là thụ động: chúng không
tiếp tục luồng, đăng ký OpenClaw nhận các sự kiện trực tiếp của luồng hoặc trả lời các
yêu cầu phê duyệt của luồng.
Đối với một phiên đã lưu hoặc đang nhàn rỗi trên máy tính Gateway, Tiếp tục dưới dạng nhánh
tạo một Chat thông thường bị khóa mô hình và sao chép lịch sử giới hạn của người dùng và trợ lý
qua lượt cuối cùng đã được lưu ở trạng thái kết thúc của nguồn. Lượt Chat thông thường đầu tiên
cài đặt các trình xử lý phê duyệt thực và sử dụng một nhánh rẽ gốc tạm thời
để ghim snapshot mà không ghi đè mô hình hoặc nhà cung cấp. Codex App Server sử dụng
cấu hình gốc hiện tại và trả về cặp đã chọn; nó phát cảnh báo thông thường
nếu mô hình đó khác với mô hình được ghi nhận gần nhất của nguồn.
Trên cùng kết nối giám sát, OpenClaw khởi tạo luồng Codex harness nguồn
appServer chuẩn theo cwd và chính sách runtime của luồng đó với
chính xác mô hình và nhà cung cấp được trả về cho lần khởi tạo ban đầu đó, chèn
lịch sử hiển thị có giới hạn và lưu trữ nhánh rẽ tạm thời. Nguồn không bao giờ
được tiếp tục. Luồng chuẩn có toàn bộ bề mặt công cụ OpenClaw harness;
lập luận, lệnh gọi công cụ và kết quả công cụ từ nguồn không được sao chép vào luồng.
Phạm vi kết nối riêng tư vẫn tồn tại qua các trạng thái liên kết đang chờ xử lý và đã cam kết, vì vậy
mọi lượt sau đó vẫn ở trên kết nối đó với cấu hình xác thực và nhà cung cấp gốc.
Việc giám sát bị vô hiệu hóa hoặc liên kết/kết nối bị sai lệch sẽ đóng an toàn
thay vì chuyển sang harness thư mục chính tác nhân thông thường.
Nguồn CLI, VS Code, Atlas hoặc ChatGPT ban đầu vẫn đủ điều kiện xuất hiện trong cả hai
danh mục. Nhánh chuẩn là một luồng Codex gốc, nhưng loại nguồn của nó là
appServer; các máy khách gốc có thể lọc loại nguồn đó, vì vậy không đảm bảo
nó sẽ xuất hiện trong Codex Desktop.
Các nguồn đang hoạt động không thể bắt đầu một nhánh mới hoặc được lưu trữ; một Chat được giám sát
hiện có vẫn có thể được mở. notLoaded có nghĩa là hoạt động chưa xác định, không phải nhàn rỗi;
OpenClaw chỉ cho phép lưu trữ một hàng idle hoặc notLoaded cục bộ sau khi xác nhận tường minh
rằng không có trình chạy nào khác và đọc trạng thái cục bộ theo tiến trình mới. Codex
tuần tự hóa các thay đổi luồng trong một tiến trình App Server nhưng không cung cấp
hợp đồng thuê độc quyền cho trình chạy hoặc chủ sở hữu phê duyệt xuyên tiến trình, vì vậy lần đọc đó không thể
chứng minh rằng một tiến trình khác không sử dụng luồng. OpenClaw chặn chủ sở hữu liên kết
được biết là đang hoạt động đối với đích chính xác hoặc bất kỳ hậu duệ được tạo ra chưa lưu trữ nào
do truy vấn hậu duệ phân trang của Codex trả về. Lỗi liệt kê, chu trình và
việc cạn giới hạn an toàn đều đóng an toàn. Thao tác lưu trữ gốc vẫn có thể xảy ra đồng thời với một lượt mới
trong tiến trình khác, vì vậy xác nhận bao quát các máy khách chưa xác định và khoảng trống giữa
lần đọc trạng thái với thao tác lưu trữ. Không thể xóa Chat được giám sát và khóa mô hình trong khi
nó bảo vệ liên kết gốc.
Các danh mục Node ghép cặp chỉ chứa siêu dữ liệu trong bản phát hành ban đầu. Ranh giới
gọi Node hiện tại là yêu cầu/phản hồi và không thể truyền các sự kiện lượt tồn tại lâu dài,
yêu cầu phê duyệt hoặc đầu ra truyền phát mà một liên kết Codex harness thực sự yêu cầu.
Do đó, Continue và Archive từ xa vẫn không khả dụng ngay cả
khi hàng đang nhàn rỗi.
Xem Giám sát Codex để biết cách thiết lập dành cho người vận hành và
hành vi hiển thị của Control UI.
Phản hồi hiển thị và Heartbeat
Các lượt chat trực tiếp/từ nguồn qua Codex harness mặc định tự động phân phối phản hồi cuối cùng của trợ lý cho các bề mặt WebChat nội bộ, phù hợp với hợp đồng Pi harness: tác nhân phản hồi bình thường và OpenClaw đăng văn bản cuối cùng vào cuộc hội thoại nguồn. Đặtmessages.visibleReplies: "message_tool" để giữ
văn bản cuối cùng của trợ lý ở chế độ riêng tư trừ khi tác nhân gọi message(action="send").
Các lượt Heartbeat của Codex mặc định nhận heartbeat_respond trong danh mục công cụ
OpenClaw có thể tìm kiếm để tác nhân có thể ghi lại liệu lần đánh thức nên giữ im lặng
hay gửi thông báo. Hướng dẫn chủ động Heartbeat được gửi dưới dạng chỉ dẫn dành cho nhà phát triển
ở chế độ cộng tác Codex trong phạm vi lượt Heartbeat; các lượt chat thông thường vẫn
ở chế độ Codex Default. Khi HEARTBEAT.md không trống, các chỉ dẫn Heartbeat
hướng Codex đến tệp thay vì nhúng trực tiếp nội dung của tệp.
Ranh giới hook
OpenClaw không sử dụng các tệp
hooks.json Codex ở cấp dự án hoặc toàn cục để định tuyến
hành vi Plugin. Đối với cầu nối công cụ gốc và quyền, OpenClaw chèn
cấu hình Codex theo từng luồng cho PreToolUse, PostToolUse, PermissionRequest
và Stop.
Khi các phê duyệt app-server Codex được bật (approvalPolicy không phải là
"never"), cấu hình hook gốc được chèn mặc định sẽ bỏ qua PermissionRequest
để trình review app-server của Codex và cầu nối phê duyệt của OpenClaw xử lý các
yêu cầu nâng quyền thực sự sau khi review. Thêm permission_request vào
nativeHookRelay.events để vẫn buộc sử dụng chuyển tiếp tương thích. Các hook Codex khác
như SessionStart và UserPromptSubmit vẫn là các điều khiển cấp Codex;
chúng không được cung cấp dưới dạng hook Plugin OpenClaw trong hợp đồng v1.
Đối với các công cụ động của OpenClaw, OpenClaw thực thi công cụ sau khi Codex yêu cầu
lệnh gọi, vì vậy hành vi Plugin và middleware chạy trong bộ điều hợp harness. Đối với
các công cụ gốc của Codex, Codex sở hữu bản ghi công cụ chuẩn; OpenClaw có thể sao chép
các sự kiện được chọn nhưng không thể ghi lại luồng gốc trừ khi Codex cung cấp khả năng đó
qua app-server hoặc callback hook gốc.
Các sự kiện PreToolUse ở chế độ báo cáo của app-server Codex trì hoãn việc phê duyệt Plugin cho
phê duyệt app-server tương ứng. Nếu một hook before_tool_call của OpenClaw trả về
requireApproval trong khi payload gốc đặt openclaw_approval_mode: "report", bộ chuyển tiếp hook gốc sẽ ghi lại yêu cầu phê duyệt Plugin và
không trả về quyết định gốc. Khi Codex sau đó gửi yêu cầu phê duyệt app-server
cho cùng lần sử dụng công cụ, OpenClaw mở prompt phê duyệt Plugin và
ánh xạ quyết định trở lại Codex. Các sự kiện PermissionRequest của Codex là một
đường dẫn phê duyệt riêng biệt và vẫn có thể định tuyến qua các phê duyệt OpenClaw khi
được cấu hình cho cầu nối đó.
Thông báo mục từ app-server Codex cũng cung cấp các quan sát after_tool_call
bất đồng bộ cho những lần hoàn thành công cụ gốc chưa được chuyển tiếp
PostToolUse gốc bao quát. Chúng chỉ dùng cho đo từ xa/khả năng tương thích; chúng không thể
chặn, trì hoãn hoặc thay đổi lệnh gọi công cụ gốc.
Các phép chiếu Compaction và vòng đời LLM đến từ thông báo app-server Codex
và trạng thái bộ điều hợp OpenClaw, không phải từ lệnh hook gốc Codex.
before_compaction, after_compaction, llm_input và llm_output là
các quan sát cấp bộ điều hợp, không phải bản ghi từng byte của yêu cầu nội bộ
hoặc payload Compaction của Codex.
Thông báo app-server hook/started và hook/completed gốc của Codex được
chiếu dưới dạng sự kiện tác nhân codex_app_server.hook để theo dõi quỹ đạo và
gỡ lỗi. Chúng không gọi các hook Plugin OpenClaw.
Hợp đồng hỗ trợ V1
Được hỗ trợ trong Codex runtime v1:
Không được hỗ trợ trong runtime Codex v1:
Quyền gốc và yêu cầu cung cấp thông tin MCP
Đối vớiPermissionRequest, OpenClaw chỉ trả về quyết định cho phép hoặc từ chối rõ ràng
khi chính sách đưa ra quyết định. Kết quả không có quyết định không phải là cho phép: Codex
coi đó là hook không đưa ra quyết định và chuyển sang guardian của chính nó hoặc đường dẫn
phê duyệt của người dùng.
Các chế độ phê duyệt của Codex app-server mặc định bỏ qua hook gốc này. Điều này
áp dụng trừ khi permission_request được đưa vào rõ ràng trong
nativeHookRelay.events hoặc một runtime tương thích cài đặt hook đó.
Khi người vận hành chọn allow-always cho một yêu cầu quyền gốc của Codex,
OpenClaw ghi nhớ chính xác dấu vân tay đầu vào nhà cung cấp/phiên/công cụ/cwd đó
trong một khoảng thời gian phiên hữu hạn. Quyết định được ghi nhớ
cố ý chỉ khớp chính xác: lệnh, đối số, payload công cụ hoặc
cwd thay đổi sẽ tạo một yêu cầu phê duyệt mới.
Các yêu cầu phê duyệt công cụ MCP của Codex được định tuyến qua luồng phê duyệt
Plugin của OpenClaw khi Codex đánh dấu _meta.codex_approval_kind là "mcp_tool_call". Codex
request_user_input đăng ký một câu hỏi Gateway trung lập với nhà cung cấp cho
phiên khởi tạo. Control UI hiển thị thẻ câu hỏi Gateway, và một
lựa chọn duy nhất không chứa bí mật sử dụng các nút kênh có kiểu khi kênh hỗ trợ
chúng. Các lần nhấn nút, câu trả lời trong Control UI và phản hồi văn bản thuần tiếp theo trong hàng đợi đều
giải quyết cùng một bản ghi Gateway trước khi OpenClaw trả về câu trả lời của app-server.
Cơ chế tự động giải quyết và việc hủy lần thử của Codex giới hạn thời gian chờ và hủy bản ghi.
Các câu hỏi bí mật hoàn toàn đi theo đường dẫn trả lời bằng văn bản có cảnh báo. Các yêu cầu
cung cấp thông tin MCP khác đều bị từ chối an toàn.
Đối với luồng phê duyệt Plugin chung truyền tải các lời nhắc này, hãy xem
Yêu cầu quyền của Plugin.
Điều hướng hàng đợi
Cơ chế điều hướng hàng đợi khi lượt chạy đang hoạt động ánh xạ tớiturn/steer của app-server Codex. Với
messages.queue.mode: "steer" mặc định, OpenClaw gom các tin nhắn trò chuyện ở chế độ điều hướng
trong khoảng thời gian chờ đã cấu hình và gửi chúng dưới dạng một yêu cầu turn/steer
theo thứ tự đến.
Các lượt review Codex và Compaction thủ công có thể từ chối điều hướng trong cùng lượt. Trong
trường hợp đó, OpenClaw chờ lượt chạy đang hoạt động hoàn tất trước khi bắt đầu
prompt. Sử dụng /queue followup hoặc /queue collect khi các tin nhắn nên được đưa vào hàng đợi
theo mặc định thay vì được điều hướng. Xem Hàng đợi điều hướng.
Tải phản hồi Codex lên
Khi/diagnostics [note] được phê duyệt cho một phiên trên harness Codex
gốc, OpenClaw cũng gọi feedback/upload của app-server Codex cho các luồng
Codex liên quan, bao gồm nhật ký cho từng luồng được liệt kê và các luồng con Codex
được tạo ra khi có sẵn.
Nội dung tải lên đi qua luồng phản hồi thông thường của Codex tới các máy chủ OpenAI. Nếu
phản hồi Codex bị vô hiệu hóa trong app-server đó, lệnh sẽ trả về
lỗi app-server. Phản hồi chẩn đoán đã hoàn tất liệt kê các kênh,
id phiên OpenClaw, id luồng Codex và các lệnh codex resume <thread-id>
cục bộ cho những luồng đã được gửi.
Nếu bạn từ chối hoặc bỏ qua yêu cầu phê duyệt, OpenClaw không in các id Codex đó
và không gửi phản hồi Codex. Việc tải lên không thay thế bản xuất
chẩn đoán Gateway cục bộ. Xem Xuất chẩn đoán để biết
hành vi phê duyệt, quyền riêng tư, gói cục bộ và trò chuyện nhóm.
Chỉ sử dụng /codex diagnostics [note] khi bạn muốn tải phản hồi Codex lên
cho luồng hiện đang được đính kèm mà không cần toàn bộ gói chẩn đoán
Gateway.
Compaction và bản sao bản chép lời
Khi mô hình được chọn sử dụng harness Codex, việc Compaction luồng gốc thuộc về app-server Codex. OpenClaw không chạy Compaction kiểm tra trước cho các lượt Codex, không thay thế Compaction Codex bằng Compaction của công cụ ngữ cảnh, cũng không chuyển dự phòng sang tính năng tóm tắt của OpenClaw hoặc OpenAI công khai khi không thể bắt đầu Compaction gốc. OpenClaw duy trì một bản sao bản chép lời cho lịch sử kênh, tìm kiếm,/new, /reset và việc chuyển đổi mô hình hoặc harness trong tương lai.
Các yêu cầu Compaction rõ ràng, chẳng hạn như /compact hoặc thao tác
Compaction thủ công do Plugin yêu cầu, bắt đầu Compaction Codex gốc bằng thread/compact/start.
OpenClaw giữ yêu cầu và quyền thuê máy khách dùng chung mở cho đến khi Codex phát ra
mục hoàn tất contextCompaction tương ứng, sau đó báo cáo lượt
Compaction là đã hoàn tất. Nếu lượt kết thúc đó vượt quá thời gian chờ Compaction
đã cấu hình, OpenClaw yêu cầu ngắt lượt gốc. Quyền thuê và hàng rào
Compaction theo luồng vẫn được giữ cho đến khi Codex báo cáo trạng thái kết thúc hoặc xác nhận
RPC ngắt. Nếu Codex không xác nhận trong khoảng thời gian gia hạn
ngắt, OpenClaw ngừng sử dụng kết nối trước khi giải phóng hàng rào. Các kết nối
từ xa cũng tách liên kết luồng tương ứng để công việc sau đó không thể
chồng lấn với một lượt từ xa chưa được xác nhận. Các lượt khác trên một kết nối đã ngừng sử dụng sẽ thất bại
và có thể thử lại trên một máy khách mới. Việc đóng máy khách, hủy yêu cầu hoặc một
lượt Compaction thất bại sẽ trả về một thao tác thất bại. Compaction tự động do áp lực ngữ cảnh
là nhiệm vụ của Codex; OpenClaw chỉ bắt đầu Compaction gốc cho các trình kích hoạt
được yêu cầu thủ công.
Khi một công cụ ngữ cảnh yêu cầu phép chiếu khởi tạo luồng Codex, OpenClaw
chiếu tên và id lệnh gọi công cụ, hình dạng đầu vào và nội dung kết quả công cụ
đã biên tập vào luồng Codex mới. Hệ thống không sao chép các giá trị đối số lệnh gọi công cụ
thô vào phép chiếu đó.
Bản sao bao gồm prompt của người dùng, văn bản cuối cùng của trợ lý và các bản ghi
suy luận hoặc kế hoạch Codex tinh gọn khi app-server phát ra chúng. OpenClaw
ghi lại thời điểm bắt đầu và trạng thái kết thúc của Compaction gốc, nhưng không
cung cấp bản tóm tắt Compaction mà con người có thể đọc được hoặc danh sách có thể kiểm tra về những
mục Codex đã giữ lại sau Compaction.
Vì Codex sở hữu luồng gốc chuẩn, tool_result_persist không
ghi lại các bản ghi kết quả công cụ gốc của Codex. Nó chỉ áp dụng khi OpenClaw
ghi kết quả công cụ bản chép lời phiên do OpenClaw sở hữu.
Phương tiện và phân phối
OpenClaw tiếp tục sở hữu việc phân phối phương tiện và lựa chọn nhà cung cấp phương tiện. Hình ảnh, video, âm nhạc, PDF, TTS và khả năng hiểu phương tiện sử dụng các cài đặt nhà cung cấp/mô hình tương ứng nhưagents.defaults.imageGenerationModel,
videoGenerationModel, pdfModel và messages.tts.
Văn bản, hình ảnh, video, âm nhạc, TTS, phê duyệt và đầu ra của công cụ nhắn tin tiếp tục
đi qua luồng phân phối OpenClaw thông thường; việc tạo phương tiện không yêu cầu
runtime cũ. Khi Codex phát ra một mục tạo hình ảnh gốc với
savedPath, OpenClaw chuyển tiếp chính xác tệp đó qua đường dẫn phương tiện phản hồi
thông thường ngay cả khi lượt Codex không có văn bản của trợ lý.