Skip to main content

Hãy để agent của tôi thiết lập việc này

Sao chép tác vụ này vào một agent đang chạy trên máy tính của bạn:

Cách thức hoạt động của kết nối

OpenCodex là một proxy cục bộ giữa Codex và các API mô hình. Hướng dẫn này sử dụng OpenCodex 2.73.0 và Codex CLI 0.149.0. Tích hợp Chat Completions của preset TokenLab đã được phát hành và kiểm chứng toàn trình (end-to-end) trong phiên bản 2.72.0. Phiên bản 2.73.0 giữ nguyên tích hợp đó và bổ sung định tuyến Responses cũng như Anthropic Messages riêng cho từng mô hình. Các tuyến định tuyến liệt kê dưới đây đã được kiểm tra với TokenLab bằng văn bản truyền theo luồng (streamed text) và các chu kỳ gọi hàm/trả kết quả (function-call/result round trips). Codex gửi các yêu cầu Responses tới proxy OpenCodex cục bộ. Sau đó OpenCodex sẽ gửi yêu cầu của mô hình đã chọn tới TokenLab. Một yêu cầu Responses trên kết nối cục bộ không có nghĩa là mô hình đó được gọi thông qua Responses API của TokenLab. Base URL của preset là https://api.tokenlab.sh/v1. Hãy giữ nguyên giá trị này: OpenCodex tự động xây dựng URL Messages hoặc Responses tương ứng. Các mô hình nằm ngoài cấu hình mặc định Responses được liệt kê và định tuyến Claude sẽ sử dụng adapter Chat của preset. TokenLab hỗ trợ API gốc của Gemini cho các mô hình có khai báo, nhưng preset TokenLab của OpenCodex 2.73.0 gọi Gemini thông qua Chat Completions. Không thay đổi toàn bộ provider thành Responses hoặc Gemini; điều đó cũng sẽ làm thay đổi các yêu cầu đối với những mô hình không chấp nhận định dạng đó.

Cài đặt hoặc cập nhật

Sử dụng Node.js 18 trở lên cho việc cài đặt qua npm:
Codex cũng phải được cài đặt. OpenCodex cung cấp hướng dẫn cài đặt và hướng dẫn kết nối Codex. Windows gốc và WSL có các cấu hình riêng biệt; hãy chạy thiết lập và Codex trong cùng một môi trường.

Thêm TokenLab

Tạo một khóa trong TokenLab API Keys. Đối với thiết lập qua terminal, hãy làm theo Bắt đầu nhanh để thiết lập TOKENLAB_API_KEY mà không lưu giá trị của nó vào lịch sử lệnh. Khởi động OpenCodex từ terminal đó; một dịch vụ chạy ngầm cần biến môi trường này trong môi trường khởi chạy riêng của nó. Đối với bản cài đặt OpenCodex mới, hãy chạy ocx init, chọn TokenLab, rồi nhập khóa trực tiếp trên máy cục bộ hoặc sử dụng tham chiếu biến môi trường nguyên văn ${TOKENLAB_API_KEY}. Xem lại các tùy chọn kết nối Codex và tự động khởi động (autostart) của trình hướng dẫn trước khi áp dụng. Đối với bản cài đặt hiện có, thêm preset mà không thay thế các provider khác:
Dấu ngoặc đơn giúp lưu lại tham chiếu biến môi trường chứ không phải giá trị của khóa. Lệnh này cũng hoạt động trong PowerShell. Nếu tokenlab đã tồn tại, hãy chỉnh sửa provider đó trong dashboard thay vì ghi đè bằng --force. Bạn cũng có thể chọn TokenLab trong danh sách Add provider của dashboard và nhập khóa tại đó. OpenCodex lưu cấu hình của nó tại $OPENCODEX_HOME/config.json, thông thường là ~/.opencodex/config.json. Khởi động proxy nếu nó chưa chạy, sau đó mở dashboard của nó:
Tại trang provider, kiểm tra Base URL và các mô hình đã được phát hiện. Preset này truy vấn GET /v1/models?category=chat và giữ lại các mô hình có khả năng tool-use. Hình ảnh, video, âm thanh, embeddings và các mô hình đưa ra quyết định (decision models) đều bị loại trừ. Quá trình phát hiện cùng với khóa API sẽ phản ánh quyền truy cập mô hình và delivery policy của khóa đó. Chạy ocx sync để kết nối Codex và làm mới danh mục mô hình, sau đó bắt đầu một phiên Codex mới. Thao tác này sẽ thay đổi kết nối proxy và danh mục của Codex; hãy xem lại các cài đặt provider tùy chỉnh hiện có và sao lưu trước khi đồng bộ. Thao tác này không yêu cầu thay thế tài khoản hoặc chính sách cấp quyền của bạn.

Chọn mô hình và xác minh yêu cầu

Chọn mục tokenlab/<model-id> trong bộ chọn mô hình của Codex, hoặc chọn nó cho một lần khởi chạy CLI:
OpenCodex sử dụng tokenlab/ để chọn provider; ID mô hình gửi tới TokenLab là gpt-6.1-sol. Hãy chọn chính xác một ID hiện đang khả dụng từ Models. Để kiểm tra kết nối nhanh, hãy gửi:
Yêu cầu này sẽ sử dụng số dư TokenLab của bạn. Kiểm tra phản hồi cùng với mô hình, thời gian và trạng thái tương ứng trong Requests. Chỉ riêng việc phát hiện provider và khởi động thành công là chưa đủ để xác minh quyền truy cập suy luận (inference access). Streaming và function calling hoạt động trên các tuyến trong bảng. Đầu vào hình ảnh và các tùy chỉnh thinking phụ thuộc vào mô hình được chọn: hãy kiểm tra các khả năng của mô hình và chỉ sử dụng các mức effort mà OpenCodex cung cấp cho mô hình đó. Các yêu cầu đầu vào hình ảnh và thinking đã được kiểm tra trên các mô hình đại diện cho các tuyến Responses và Messages; đầu vào hình ảnh của Gemini đã được kiểm tra trên tuyến Chat của nó. Một mô hình hỗ trợ thinking không nhất thiết phải hiển thị văn bản thinking hoặc hỗ trợ mọi mức effort.

Giữ mô hình Responses ở lại Chat Completions

Để sử dụng đường dẫn Chat cho một trong các mô hình Responses được liệt kê, hãy hợp nhất một mục modelAdapters vào đối tượng providers.tokenlab hiện có trong cấu hình của OpenCodex. Ví dụ này giữ gpt-6-astra trên Chat cho Codex:
Đây là ví dụ về một trường của provider, không phải là nội dung thay thế toàn bộ cấu hình. Hãy giữ lại các ghi đè mô hình, thông tin xác thực và provider khác, sau đó khởi động lại proxy và mở một phiên Codex mới. Chỉ xóa mục mô hình này sẽ khôi phục lại mặc định Responses của nó. Định tuyến Messages của Claude được liên kết với endpoint TokenLab chuẩn. Ghi đè Chat ở trên chỉ áp dụng cho các cấu hình mặc định của Responses; nó không chuyển Claude sang Chat. Đối với client hỗ trợ Chat gốc, các mô hình Responses được liệt kê đã tự động sử dụng Chat mà không cần ghi đè này. Xem OpenCodex provider routing.

Delivery policy và các công cụ TokenLab khác

Preset không bắt buộc dùng header X-TokenLab-Delivery-Policy. TokenLab sử dụng delivery policy mặc định của API key của bạn. Việc lựa chọn Chat, Responses, hoặc Messages tách biệt với việc chọn delivery policy; xem TokenLab provider settings. Thêm TokenLab MCP server cho các công cụ API khác, hoặc TokenLab Skills để xem hướng dẫn tích hợp. Những công cụ này không làm thay đổi provider hoặc định dạng API của mô hình chính. JEV Auto trong OpenCodex 2.73.0 sử dụng backend quyết định của TypeSafe. Tính năng này không cung cấp TokenLab làm backend đó. Việc gọi System One API của TokenLab thông qua MCP là một tác vụ riêng biệt; không nhập khóa TokenLab vào trường thông tin xác thực của TypeSafe.

Khắc phục sự cố và khôi phục thiết lập của bạn

  • Thiếu TokenLab trong bộ chọn: kiểm tra ocx --version; hướng dẫn này dành cho phiên bản 2.73.0. Làm mới danh mục bằng ocx sync và bắt đầu một phiên Codex mới.
  • Lỗi 401 hoặc thiếu thông tin xác thực: kiểm tra xem khóa có đang hoạt động và khả dụng cho tiến trình đang chạy OpenCodex hay không. Biến môi trường trong một terminal khác sẽ không cập nhật cho dịch vụ đang chạy sẵn.
  • Mô hình bị thiếu: kiểm tra chính xác ID, quyền của khóa và tính khả dụng hiện tại. Các mô hình non-chat và mô hình chat không có khả năng tool-use sẽ không được bao gồm trong preset này.
  • Yêu cầu không được hỗ trợ hoặc sai endpoint: so sánh mô hình đã chọn với bảng định tuyến và kiểm tra các ghi đè adapter đã lưu. Định dạng bắt buộc là tokenlab.accepted_request_formats trong chi tiết mô hình; danh sách mô hình không thể thay thế cho trường chi tiết đó. Claude và Gemini không được gửi tới Responses chỉ vì Codex sử dụng Responses cục bộ.
  • Công cụ hoặc đầu vào hình ảnh bị lỗi: giữ lại lỗi gốc và Request ID. Kiểm tra khả năng của mô hình và tuyến OpenCodex đang hoạt động trước khi thay đổi cài đặt; không xóa lịch sử hội thoại hoặc kết quả công cụ để ẩn lỗi.
Để dừng định tuyến Codex qua proxy, hãy sử dụng ocx stop; OpenCodex sẽ dừng proxy và khôi phục kết nối Codex gốc. Lệnh ocx restore sẽ khôi phục kết nối gốc trong khi vẫn duy trì proxy hoạt động cho các client khác. Xem lại tài liệu tham khảo OpenCodex CLI trước khi thay đổi một bản cài đặt được chia sẻ với các client khác.