Hướng dẫn sử dụng Codex với mọi mô hình mã nguồn mở (Chế độ OSS)

Chạy các mô hình mã nguồn mở bên trong OpenAI Codex. Hướng dẫn chế độ OSS đầy đủ: thiết lập Ollama và LM Studio, cấu hình nhà cung cấp tùy chỉnh cho DeepSeek và Qwen, cùng với những đánh đổi.

Ashley Innocent

Ashley Innocent

19 tháng 8 2026

Hướng dẫn sử dụng Codex với mọi mô hình mã nguồn mở (Chế độ OSS)

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Codex đi kèm với các mô hình OpenAI theo mặc định, nhưng nó không buộc bạn phải sử dụng chúng. CLI có chế độ OSS tích hợp sẵn cho các môi trường chạy cục bộ như Ollama và LM Studio, cùng với hệ thống nhà cung cấp tùy chỉnh cho phép tác nhân kết nối với bất kỳ điểm cuối tương thích nào bạn định nghĩa trong tệp TOML. Điều đó có nghĩa là bạn có thể chạy gpt-oss trên máy tính xách tay của mình, điều khiển Codex bằng API DeepSeek hoặc Qwen được lưu trữ, hoặc chuyển đổi giữa các nhà cung cấp cho từng dự án.

Hướng dẫn này sẽ trình bày toàn bộ thiết lập: chế độ OSS làm gì, các khóa cấu hình chính xác, công thức cho từng mô hình và những đánh đổi bạn chấp nhận khi thay thế các mô hình của OpenAI. Mọi thông tin ở đây đều đến từ tài liệu cấu hình nâng cao chính thức của Codex. Những chỗ tài liệu không rõ ràng, tôi sẽ chỉ rõ thay vì phỏng đoán.

Một lưu ý trước khi bắt đầu. Khi mô hình của bạn đang chạy bên trong Codex, mô hình chỉ là một nửa của quy trình làm việc. Nửa còn lại là xác minh các API mà tác nhân của bạn xây dựng và gọi. Đó là nơi Apidog phát huy tác dụng, và chúng ta sẽ đề cập đến sự kết hợp này ở gần cuối.

Tóm tắt (TL;DR)

Chế độ Codex OSS là một tính năng của CLI. Chạy codex --oss và Codex sẽ nói chuyện với một máy chủ Ollama hoặc LM Studio cục bộ thay vì OpenAI. Đặt oss_provider = "ollama" trong ~/.codex/config.toml để đặt nó làm mặc định, và truyền -m <model> để chọn mô hình cục bộ nào chạy. Đối với các mô hình mã nguồn mở được lưu trữ (DeepSeek, Qwen, GLM thông qua API của họ), hãy định nghĩa một khối [model_providers.<id>] với base_urlenv_key, sau đó chọn nó bằng model_provider. Vấn đề là: tài liệu tham khảo cấu hình hiện tại liệt kê responses là giá trị wire_api duy nhất được hỗ trợ, vì vậy điểm cuối của bạn cần phải tuân thủ giao thức Responses API.

Chế độ OSS là gì

Chế độ OSS là lối tắt của Codex để chạy với các máy chủ mô hình mã nguồn mở cục bộ. Tài liệu mô tả hai nhà cung cấp cục bộ được hỗ trợ:

Bạn kích hoạt nó bằng cờ --oss. Từ tài liệu tham khảo lệnh nhà phát triển Codex:

--oss: Sử dụng nhà cung cấp mô hình mã nguồn mở cục bộ. Codex sử dụng --local-provider, oss_provider đã cấu hình của bạn hoặc nhắc bạn chọn giữa LM Studio và Ollama.

Có một cờ đồng hành, --local-provider, chấp nhận lmstudio hoặc ollama và ghi đè mặc định của bạn cho một lần chạy duy nhất. Nếu bạn không đặt cả cờ lẫn cấu hình mặc định, CLI tương tác sẽ nhắc bạn chọn. Lệnh codex exec không tương tác sẽ không nhắc; nó sẽ thoát với lỗi. Vì vậy, đối với các tập lệnh và CI, hãy luôn đặt nhà cung cấp một cách rõ ràng.

Một lưu ý chân thật về các giao diện: tài liệu đề cập đến chế độ OSS và các nhà cung cấp tùy chỉnh trong hệ thống config.toml của CLI. Tiện ích mở rộng IDE và Codex cloud không được đề cập là hỗ trợ các nhà cung cấp cục bộ trong bất kỳ tài liệu cấu hình nào. [XÁC MINH: liệu tiện ích mở rộng IDE của Codex có đọc model_providers từ config.toml theo cách tương tự như CLI hay không; tài liệu không nói rõ cả hai.] Hãy coi đây là một quy trình làm việc CLI cho đến khi OpenAI tài liệu hóa khác đi.

Tại sao lại chạy một mô hình mã nguồn mở bên trong Codex

Câu hỏi hợp lý, vì Codex là tác nhân của chính OpenAI. Dưới đây là một vài lý do thực tế:

Nơi cấu hình cư trú

Codex lưu trữ trạng thái dưới CODEX_HOME, mặc định là ~/.codex. Cấu hình cấp người dùng của bạn là ~/.codex/config.toml, và một kho lưu trữ có thể chứa các ghi đè cấp dự án trong .codex/config.toml. Mọi thứ bên dưới sẽ được đặt trong một trong hai tệp này.

Bắt đầu nhanh: Codex với Ollama

Con đường nhanh nhất để có một mô hình mã nguồn mở trong Codex là Ollama.

  1. Cài đặt Ollama từ ollama.com và khởi động nó. Nó cung cấp một API tương thích OpenAI trên cổng 11434.
  2. Kéo một mô hình. Bản phát hành mã nguồn mở của OpenAI là lựa chọn đầu tiên tự nhiên; trang thư viện gpt-oss có các biến thể 20b và 120b. Chúng tôi đã đề cập đến thiết lập độc lập trong bài cách chạy gpt-oss bằng Ollama.
ollama pull gpt-oss:20b
  1. Chạy Codex ở chế độ OSS và đặt tên mô hình:
codex --oss -m gpt-oss:20b

Cờ -m/--model ghi đè mô hình đã cấu hình, và kết hợp với --oss nó chọn mô hình cục bộ nào chạy. Đối với việc sử dụng không tương tác:

codex exec --oss --local-provider ollama -m gpt-oss:20b "add input validation to the signup route"
  1. Đặt nó làm mặc định để bạn có thể bỏ qua các cờ. Trong ~/.codex/config.toml:
# Default local provider used with `--oss`
oss_provider = "ollama" # or "lmstudio"

Đó là toàn bộ tính năng dành cho các mô hình cục bộ. Không cần khóa API, không cần khối nhà cung cấp tùy chỉnh. LM Studio hoạt động tương tự: tải một mô hình vào ứng dụng, khởi động máy chủ cục bộ của nó và chạy codex --oss --local-provider lmstudio. Xem lmstudio.ai để biết thiết lập máy chủ.

Các nhà cung cấp tùy chỉnh: kết nối Codex với bất kỳ điểm cuối tương thích nào

Chế độ OSS bao gồm Ollama và LM Studio. Đối với tất cả những thứ khác, như API DeepSeek hoặc Qwen được lưu trữ, một proxy, một máy chủ vLLM trên mạng LAN của bạn, Codex có các nhà cung cấp mô hình tùy chỉnh. Tài liệu định nghĩa nhà cung cấp là “cách Codex kết nối với một mô hình (URL cơ sở, API giao thức, xác thực và các tiêu đề HTTP tùy chọn).”

Mẫu từ tài liệu chính thức:

model = "gpt-5.6-terra"
model_provider = "proxy"

[model_providers.proxy]
name = "OpenAI using LLM proxy"
base_url = "http://proxy.example.com"
env_key = "OPENAI_API_KEY"

[model_providers.local_ollama]
name = "Ollama"
base_url = "http://localhost:11434/v1"

[model_providers.mistral]
name = "Mistral"
base_url = "https://api.mistral.ai/v1"
env_key = "MISTRAL_API_KEY"

Các khóa quan trọng:

Khóa Chức năng
model_provider ID nhà cung cấp mà Codex sử dụng (mặc định: openai)
model Tên mô hình được gửi đến nhà cung cấp đó
name Tên hiển thị của nhà cung cấp
base_url URL cơ sở của API
env_key Biến môi trường chứa khóa API
wire_api Giao thức được sử dụng bởi nhà cung cấp
query_params Các tham số truy vấn bổ sung được thêm vào các yêu cầu
http_headers / env_http_headers Các tiêu đề tĩnh, hoặc các tiêu đề được điền từ biến môi trường

Điều chỉnh mạng cho từng nhà cung cấp cũng có sẵn: request_max_retries (mặc định 4), stream_max_retries (mặc định 5) và stream_idle_timeout_ms (mặc định 300000). Phần cứng cục bộ chậm sẽ hưởng lợi từ thời gian chờ không hoạt động lâu hơn, vì một mô hình 120b trên máy tính xách tay có thể nằm im một lúc giữa các token.

Hai quy tắc được tài liệu trực tiếp nêu ra. Thứ nhất, các ID openai, ollamalmstudio được bảo lưu; bạn không thể ghi đè các nhà cung cấp tích hợp sẵn. Để thay đổi URL cơ sở của nhà cung cấp OpenAI tích hợp sẵn, hãy đặt openai_base_url thay vì tạo [model_providers.openai]. Thứ hai, và điều này định hình mọi thứ: tài liệu tham khảo cấu hình nêu rõ rằng đối với wire_api, “responses là giá trị duy nhất được hỗ trợ, và đó là giá trị mặc định khi bị bỏ qua.”

Đó là một ràng buộc thực sự. Các phiên bản Codex trước đây chấp nhận wire_api = "chat" cho các điểm cuối Chat Completions, và trang tổng quan mô hình vẫn nói rằng bạn có thể kết nối Codex với các nhà cung cấp hỗ trợ “API Chat Completions hoặc Responses.” Tài liệu tham khảo và trang tổng quan không thống nhất. [XÁC MINH: liệu wire_api = "chat" vẫn hoạt động trong bản phát hành CLI hiện tại hay không; tài liệu tham khảo cấu hình nói chỉ hỗ trợ responses, trang mô hình ngụ ý rằng chat vẫn hoạt động. Hãy kiểm tra với một điểm cuối chỉ hỗ trợ chat trước khi xuất bản.] Nếu chỉ hỗ trợ responses là đúng, thì nhà cung cấp của bạn cần một điểm cuối Responses API, điều mà hầu hết các máy chủ tương thích OpenAI hiện nay đều cung cấp nhưng một số API được lưu trữ vẫn chưa.

Công thức cấu hình từng mô hình

Mỗi công thức dưới đây là một khối cấu hình cộng với lệnh để chạy. Đặt biến môi trường khóa API trước khi khởi chạy.

DeepSeek (API được lưu trữ)

DeepSeek đã thêm hỗ trợ Responses API cùng với bản beta V4 Flash của họ, đây chính xác là những gì giao thức của Codex mong muốn. Chúng tôi đã đề cập đến việc triển khai đó trong bài viết DeepSeek V4 Flash, Responses API và Codex.

model = "deepseek-chat"
model_provider = "deepseek"

[model_providers.deepseek]
name = "DeepSeek"
base_url = "https://api.deepseek.com"
env_key = "DEEPSEEK_API_KEY"
export DEEPSEEK_API_KEY="sk-..."
codex

Kiểm tra tài liệu API của DeepSeek để biết các ID mô hình hiện tại. [XÁC MINH: đường dẫn base_url chính xác mà DeepSeek tài liệu hóa để truy cập giao thức Responses; đường dẫn /v1 chat có thể khác với đường dẫn Responses.]

Qwen (được lưu trữ qua Model Studio)

Model Studio (DashScope) của Alibaba cung cấp chế độ tương thích OpenAI cho dòng Qwen 3.8. Điểm cuối chế độ tương thích này theo lịch sử có dạng Chat Completions. [XÁC MINH: liệu chế độ tương thích của DashScope hiện có phục vụ giao thức Responses hay không; nếu không, công thức này phụ thuộc vào câu hỏi wire_api = "chat" ở trên.]

model = "qwen3.8-max"
model_provider = "qwen"

[model_providers.qwen]
name = "Qwen via Model Studio"
base_url = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
env_key = "DASHSCOPE_API_KEY"

Hướng dẫn API Qwen 3.8 của chúng tôi đề cập đến các khóa, ID mô hình và giá cả cho tuyến đường được lưu trữ.

Kimi, GLM và các mô hình mã nguồn mở khác (cục bộ qua Ollama)

Bất cứ thứ gì bạn có thể kéo vào Ollama đều hoạt động qua chế độ OSS đơn giản, không cần khối nhà cung cấp:

ollama pull <model>
codex --oss -m <model>

Điều đó bao gồm các mô hình mã nguồn mở GLM và Qwen, cộng với Kimi K3 nếu phần cứng của bạn chịu đựng được (trọng lượng K3 là 594 GB ở MXFP4, vì vậy hầu hết mọi người nên đọc chạy Kimi K3 cục bộ trước khi thử). Đối với các máy tầm trung, gpt-oss:20b hoặc bản dựng Qwen coder được lượng tử hóa là lựa chọn thực tế.

vLLM tự lưu trữ hoặc máy chủ LAN

Một máy chủ vLLM hoặc máy chủ tương thích OpenAI tương tự trên một máy khác là một nhà cung cấp tùy chỉnh, không phải chế độ OSS:

model_provider = "lan_vllm"

[model_providers.lan_vllm]
name = "vLLM on the workstation"
base_url = "http://192.168.1.50:8000/v1"
env_key = "VLLM_API_KEY"

Hồ sơ: thay đổi "bộ não" theo từng tác vụ

Bạn không cần phải chọn một thiết lập duy nhất. Các hồ sơ của Codex là các tệp TOML riêng biệt tại ~/.codex/<profile-name>.config.toml, được xếp chồng lên cấu hình cơ sở của bạn khi bạn truyền --profile. Một hồ sơ mô hình cục bộ trông như thế này:

# ~/.codex/oss-local.config.toml
oss_provider = "ollama"
model = "gpt-oss:20b"
codex --profile oss-local
codex exec --profile oss-local "write unit tests for utils/dates.ts"

Giữ cấu hình mặc định của bạn cho các mô hình OpenAI để tái cấu trúc khó khăn và bật --profile oss-local để sửa lỗi cú pháp, xây dựng khung kiểm thử và viết tài liệu. Các ghi đè một lần cũng hoạt động mà không cần hồ sơ: codex -c model='"deepseek-chat"' -c model_provider='"deepseek"'.

Sự đánh đổi so với các mô hình OpenAI

Hãy thành thật với bản thân về những gì bạn đang đánh đổi:

Sự phân chia thực tế: các mô hình cục bộ hoặc được lưu trữ giá rẻ cho công việc khối lượng lớn, ít rủi ro; các mô hình tiên tiến cho các tác vụ mà một lần chạy thất bại sẽ khiến bạn mất cả buổi chiều.

Xác minh các API mà tác nhân của bạn tương tác

Bất kể mô hình nào chạy bên trong Codex, đầu ra thường là mã gọi hoặc định nghĩa API, và các mô hình mã nguồn mở thường xuyên tạo ra các điểm cuối và lược đồ không có thật hơn so với các mô hình tiên tiến. Hãy phát hiện điều đó ở lớp API thay vì trong môi trường sản xuất.

Apidog bao quát phía đó của quy trình làm việc. Hãy trỏ máy chủ Apidog MCP vào dự án của bạn và tác nhân Codex của bạn có thể đọc đặc tả API thực tế trong khi nó viết mã, thay vì tự ý tạo tên trường. Sau đó, sử dụng Apidog CLI bên trong Codex để cho phép tác nhân chạy các kịch bản kiểm thử của bạn từ terminal sau mỗi thay đổi: nó chỉnh sửa, nó kiểm thử, bạn xem xét một bản diff đã vượt qua. Vòng lặp đó càng quan trọng hơn, chứ không phải ít hơn, khi một mô hình nhỏ hơn viết mã. Tải xuống Apidog để kết nối nó; CLI và máy chủ MCP hoạt động với bất kỳ mô hình nào bạn đã cấu hình.

Khắc phục sự cố

Câu hỏi thường gặp (FAQ)

Chế độ OSS của Codex có hoạt động trong tiện ích mở rộng IDE hoặc Codex cloud không?

Các tài liệu mô tả chế độ OSS và các nhà cung cấp tùy chỉnh như một phần của hệ thống cấu hình CLI. Hỗ trợ IDE hoặc đám mây cho các nhà cung cấp cục bộ không được tài liệu hóa, vì vậy hãy coi đây là một tính năng của CLI. [XÁC MINH trước khi dựa vào hỗ trợ IDE.]

Những mô hình nào hoạt động tốt nhất với Codex ở chế độ OSS?

Bất cứ điều gì Ollama hoặc LM Studio có thể phục vụ trên phần cứng của bạn. gpt-oss:20b là mặc định ít ma sát. Các tùy chọn mã hóa mã nguồn mở mạnh mẽ bao gồm dòng Qwen 3.8 và GLM; đối với các mô hình khổng lồ như Kimi K3, hãy kiểm tra tính toán phần cứng trong hướng dẫn Kimi K3 cục bộ của chúng tôi trước.

Tôi có thể sử dụng OpenRouter hoặc một trình tổng hợp khác với Codex không?

Bất kỳ trình tổng hợp nào cung cấp một điểm cuối tương thích đều phù hợp với mẫu [model_providers.<id>]: đặt base_urlenv_key, sau đó chọn nó bằng model_provider. Câu hỏi mở là về giao thức: tài liệu tham khảo cấu hình liệt kê responseswire_api duy nhất được hỗ trợ, vì vậy hãy xác nhận rằng trình tổng hợp của bạn phục vụ Responses API.

Tôi có cần khóa API OpenAI để chạy Codex với một mô hình mã nguồn mở không?

Không cần khóa nào cho chế độ OSS với máy chủ Ollama hoặc LM Studio cục bộ. Các nhà cung cấp được lưu trữ tùy chỉnh sử dụng khóa riêng của họ thông qua env_key. Bạn vẫn đăng nhập vào Codex như bình thường đối với bất kỳ thứ gì liên quan đến dịch vụ của OpenAI.

Hãy thiết lập phù hợp với tác vụ. Một gpt-oss cục bộ cho các vòng lặp chi phí thấp, DeepSeek hoặc Qwen khi bạn muốn tốc độ được lưu trữ với chi phí thấp hơn, và các mô hình tiên tiến của OpenAI khi vấn đề khó. Cấu hình của Codex làm cho cả ba chỉ cách nhau một cờ, và với Apidog xử lý xác minh ở phía API, mô hình trở thành một phần có thể thay thế được thay vì một cam kết.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API