Yêu cầu về khả năng tương thích của gateway

Gateway cho Codex phải duy trì hành vi của Responses API được mô tả tại đây: điểm cuối, truyền theo luồng, tiếp nối hội thoại, gọi công cụ, xác thực, định tuyến và lỗi hữu ích.

Yêu cầu và điểm cuối

Cấu hình nhà cung cấp gateway bằng wire_api = "responses". Với URL cơ sở chẳng hạn như https://gateway.example.com/v1, gateway phải chấp nhận POST /v1/responses và giữ nguyên các trường yêu cầu và phản hồi mà máy khách sử dụng. Điểm cuối Chat Completions hoặc Anthropic Messages hoạt động không đủ để xác nhận khả năng tương thích với Responses.

Các điểm cuối kiểm tra tình trạng và liệt kê mô hình là công cụ hỗ trợ vận hành tùy chọn. Chúng không kiểm tra hội thoại Codex hoặc chứng minh khả năng hỗ trợ công cụ.

Truyền theo luồng

Chuyển tiếp các sự kiện do máy chủ gửi (SSE) theo từng phần thay vì lưu đệm toàn bộ câu trả lời. Giữ nguyên loại sự kiện và payload, bao gồm sự kiện kết thúc thành công response.completed. Chuyển tiếp các sự kiện lỗi và thất bại để máy khách có thể phân biệt phản hồi thất bại với kết nối bị ngưng trệ.

Xác minh toàn bộ luồng qua bộ cân bằng tải và proxy ngược cũng như qua gateway. Một câu trả lời văn bản mà không có luồng hoàn tất là chưa đủ.

Tiếp nối hội thoại

Giữ nguyên dữ liệu đầu vào hội thoại được gửi lại qua các lượt tiếp theo. Gateway phải chấp nhận các tin nhắn, lệnh gọi công cụ và kết quả công cụ trước đó cần thiết cho lượt tiếp theo.

Nếu bật WebSocket hoặc cơ chế truyền tăng dần, hãy xác minh cả hành vi previous_response_id của cơ chế đó. Đường kết nối HTTP Responses không trạng thái có thể dùng dữ liệu đầu vào được gửi lại mà không cần cơ chế tiếp nối đó.

Công cụ

Giữ nguyên các mục gọi hàm và các mục function_call_output tương ứng, bao gồm các mã định danh liên kết lệnh gọi với kết quả. Toàn bộ chu trình phải hoạt động: Codex nhận lệnh gọi, thực thi công cụ, gửi kết quả và nhận câu trả lời cuối cùng.

Một yêu cầu văn bản thành công không xác minh được chu trình này. Hãy kiểm thử các mô hình và tính năng máy khách thực tế mà bạn dự định bật. Việc gateway chấp nhận một trường yêu cầu không chứng minh rằng mô hình thượng nguồn của nó triển khai khả năng tương ứng.

Xác thực và header

Hỗ trợ cơ chế xác thực máy khách được chọn cho triển khai: env_key hoặc bearer token dựa trên lệnh, hoặc env_http_headers cho thông tin xác thực được gửi trong header tùy chỉnh. Dùng biến môi trường cho các giá trị header bí mật; không ghi cố định chúng trong cấu hình. Xem tài liệu tham khảo về nhà cung cấp tùy chỉnh để biết cấu hình và đặc tả trình trợ giúp thông tin xác thực.

Xác thực nhà phát triển riêng biệt với danh tính nhà cung cấp thượng nguồn của gateway. Giữ khóa quản trị viên và thông tin xác thực thượng nguồn trên gateway. Giữ nguyên các header mà việc định tuyến và xác định người dùng phụ thuộc vào, đồng thời kiểm thử việc hết hạn, gia hạn và thu hồi thông tin xác thực.

Định tuyến mô hình và siêu dữ liệu

Mỗi tên mô hình mà Codex sử dụng phải được định tuyến tới mô hình thượng nguồn dự kiến. Xác minh tuyến định tuyến trong bản ghi gateway thay vì dựa vào phần tự mô tả của mô hình.

Dùng tên được phiên bản Codex đã triển khai nhận diện, hoặc cung cấp danh mục tương ứng cho bí danh tùy chỉnh. Đồng thời xem xét tính khả dụng của mô hình và siêu dữ liệu chuyển đổi: mọi mô hình thay thế phải được định tuyến qua gateway. Với bí danh do tổ chức sở hữu không có chuyển đổi, đặt upgrade trong mục danh mục của bí danh đó thành null. Siêu dữ liệu danh mục định hướng hành vi của máy khách; nó không bổ sung khả năng cho mô hình hay tạo tuyến định tuyến gateway. Xác minh giới hạn ngữ cảnh, tùy chọn suy luận và công cụ dựa trên mô hình thượng nguồn và nhà cung cấp thực tế. Kết nối gateway thông thường không tự động nhận các điều chỉnh siêu dữ liệu do những tích hợp nhà cung cấp có sẵn của Codex thực hiện.

Tên mô hình được nhận diện

Dùng chính xác tên mô hình được phiên bản Codex đã triển khai nhận diện làm bí danh gateway và model của Codex. Xác nhận nhà cung cấp thượng nguồn hỗ trợ mô hình và tổ chức của bạn phê duyệt mô hình đó.

Kiểm tra codex --version và chọn thẻ rust-v<version> tương ứng trong danh mục mô hình Codex. Với bản dựng tùy chỉnh, hãy dùng commit mã nguồn của bản dựng đó; với triển khai ứng dụng máy tính, hãy khớp với phiên bản CLI đi kèm. Kiểm tra các giá trị slug của các mục để tìm những tên mà phiên bản đó nhận diện. Nếu gateway thay đổi khả năng của mô hình, hãy cung cấp siêu dữ liệu danh mục phản ánh những khác biệt đó ngay cả khi tên đã được nhận diện.

Lỗi

Giữ lại sự phân biệt hữu ích giữa lỗi xác thực máy khách, tuyến mô hình không xác định, giới hạn tốc độ và lỗi thượng nguồn. Không gộp mọi lỗi thành một phản hồi 500 chung. Trả về đủ thông tin để chẩn đoán lớp xảy ra lỗi mà không làm lộ token, thông tin xác thực nhà cung cấp hoặc nội dung yêu cầu nhạy cảm.

Ranh giới dữ liệu và công cụ

Lưu lượng mô hình đi theo đường sau:

Codex client -> LLM gateway -> model provider

Máy khách xác thực với gateway bằng thông tin xác thực của nhà phát triển. Gateway sử dụng thông tin xác thực nhà cung cấp thượng nguồn để truy cập mô hình. Các câu lệnh, đoạn trích mã nguồn, đối số công cụ và kết quả công cụ có trong yêu cầu mô hình có thể đi qua gateway. Thiết lập các biện pháp kiểm soát ghi nhật ký, lưu giữ, che dữ liệu nhạy cảm, truy cập và xuất dữ liệu cho phù hợp.

Gateway mô hình không định tuyến mọi kết nối do Codex tạo ra. Các lệnh cục bộ chạy trong môi trường thực thi của máy khách. MCP servers, dịch vụ plugin, tương tác với trình duyệt và ứng dụng, cùng các dịch vụ khác được bật có thể có đường mạng và thông tin xác thực riêng. Cấu hình nhà cung cấp mô hình không cấp các quyền đó hoặc thay thế các biện pháp kiểm soát mạng của chúng. Xem Phê duyệt và bảo mật tác nhân và MCP để biết các ranh giới đó.

Danh sách kiểm tra đáp ứng yêu cầu

Ghi lại bằng chứng cho từng tổ hợp máy khách, gateway và mô hình đã triển khai:

  • Các trường yêu cầu và phản hồi Responses.
  • Truyền SSE theo từng phần và kết thúc thành công.
  • Các lượt tiếp theo với dữ liệu đầu vào được gửi lại.
  • previous_response_id khi cơ chế truyền được chọn sử dụng nó.
  • Lệnh gọi hàm, kết quả tương ứng và câu trả lời cuối cùng.
  • Định tuyến mô hình chính xác và siêu dữ liệu tương ứng.
  • Xác định từng người dùng, gia hạn và thu hồi.
  • Lỗi xác thực, định tuyến, giới hạn tốc độ và thượng nguồn hữu ích.
  • Thông tin chẩn đoán đã che dữ liệu nhạy cảm và chính sách ghi nhật ký dự kiến.

Sử dụng quy trình kiểm thử triển khai để thu thập bằng chứng này trước khi phân phối cấu hình.