Tiếng Việt

Tham chiếu cấu hình

Tài liệu tham chiếu đầy đủ về config.toml và requirements.toml của Codex

Hãy dùng trang này làm tài liệu tham chiếu có thể tìm kiếm cho các tệp cấu hình Codex. Để xem hướng dẫn về khái niệm và các ví dụ, hãy bắt đầu với Kiến thức cơ bản về cấu hìnhCấu hình nâng cao.

config.toml

Cấu hình cấp người dùng nằm trong ~/.codex/config.toml. Bạn cũng có thể thêm các giá trị ghi đè theo phạm vi dự án trong các tệp .codex/config.toml. Codex chỉ tải các tệp cấu hình theo phạm vi dự án khi bạn tin cậy dự án đó.

Cấu hình theo phạm vi dự án không thể ghi đè nhà cung cấp cục bộ trên máy, thông tin xác thực, siêu dữ liệu yêu cầu ứng dụng do máy chủ sở hữu, thông báo, lựa chọn hồ sơ cấu hình hoặc các khóa định tuyến dữ liệu đo từ xa. Codex bỏ qua openai_base_url, chatgpt_base_url, apps_mcp_product_sku, model_provider, model_providers, notify, profile, profiles, experimental_realtime_ws_base_urlotel khi chúng xuất hiện trong một .codex/config.toml cục bộ của dự án; thay vào đó, hãy đặt các khóa về nhà cung cấp, thông báo và dữ liệu đo từ xa trong cấu hình cấp người dùng. Các tệp hồ sơ cấu hình nằm cạnh config.toml dưới dạng $CODEX_HOME/profile-name.config.toml; chọn một tệp bằng --profile profile-name.

Đối với các khóa hộp cát và phê duyệt (approval_policy, sandbox_modesandbox_workspace_write.*), hãy sử dụng tài liệu tham chiếu này cùng với Hộp cát và phê duyệt, Các đường dẫn được bảo vệ trong thư mục gốc có thể ghiQuyền truy cập mạng. Đối với hồ sơ quyền đang ở giai đoạn beta, hãy xem Quyền.

<ConfigTable options={[ { key: "model", type: "string", description: "Mô hình sẽ sử dụng (ví dụ: gpt-5.5).", }, { key: "review_model", type: "string", description: "Mô hình ghi đè tùy chọn được /review sử dụng (mặc định là mô hình của phiên hiện tại).", }, { key: "model_provider", type: "string", description: "ID nhà cung cấp từ model_providers (mặc định: openai).", }, { key: "openai_base_url", type: "string", description: "Ghi đè URL cơ sở cho nhà cung cấp mô hình openai tích hợp sẵn.", }, { key: "model_context_window", type: "number", description: "Số token trong cửa sổ ngữ cảnh khả dụng cho mô hình đang hoạt động.", }, { key: "model_auto_compact_token_limit", type: "number", description: "Ngưỡng token kích hoạt tự động thu gọn lịch sử (nếu không đặt, hệ thống dùng giá trị mặc định của mô hình).", }, { key: "model_auto_compact_token_limit_scope", type: "total | body_after_prefix", description: "Kiểm soát việc ngưỡng tự động thu gọn tính toàn bộ ngữ cảnh đang hoạt động (total, giá trị mặc định) hay chỉ phần tăng thêm sau tiền tố cửa sổ thu gọn được giữ lại (body_after_prefix).", }, { key: "model_catalog_json", type: "string (path)", description: "Đường dẫn tùy chọn đến danh mục mô hình JSON được tải khi khởi động. Tệp hồ sơ $CODEX_HOME/profile-name.config.toml đã chọn có thể ghi đè giá trị này cho từng hồ sơ.", }, { key: "oss_provider", type: "lmstudio | ollama", description: "Nhà cung cấp cục bộ mặc định được dùng khi chạy với --oss (mặc định sẽ hỏi nếu chưa đặt).", }, { key: "approval_policy", type: "untrusted | on-request | never | { granular = { sandbox_approval = bool, rules = bool, mcp_elicitations = bool, request_permissions = bool, skill_approval = bool } }", description: "Kiểm soát thời điểm Codex tạm dừng để xin phê duyệt trước khi thực thi lệnh. Bạn cũng có thể dùng approval_policy = { granular = { ... } } để cho phép hoặc tự động từ chối các nhóm lời nhắc cụ thể trong khi vẫn giữ các lời nhắc khác ở chế độ tương tác. on-failure đã lỗi thời; hãy dùng on-request cho lượt chạy tương tác hoặc never cho lượt chạy không tương tác.", }, { key: "approval_policy.granular.sandbox_approval", type: "boolean", description: "Khi là true, lời nhắc phê duyệt nâng quyền sandbox được phép hiển thị.", }, { key: "approval_policy.granular.rules", type: "boolean", description: "Khi là true, các yêu cầu phê duyệt do quy tắc execpolicy prompt kích hoạt được phép hiển thị.", }, { key: "approval_policy.granular.mcp_elicitations", type: "boolean", description: "Khi là true, lời nhắc yêu cầu thông tin của MCP được phép hiển thị thay vì bị tự động từ chối.", }, { key: "approval_policy.granular.request_permissions", type: "boolean", description: "Khi là true, lời nhắc từ công cụ request_permissions được phép hiển thị.", }, { key: "approval_policy.granular.skill_approval", type: "boolean", description: "Khi là true, lời nhắc phê duyệt tập lệnh kỹ năng được phép hiển thị.", }, { key: "approvals_reviewer", type: "user | auto_review", description: "Chủ thể xem xét các lời nhắc phê duyệt đủ điều kiện theo on-request hoặc chính sách phê duyệt chi tiết. Mặc định là user; auto_review sử dụng tác nhân phụ chuyên xem xét. Thiết lập này không thay đổi sandbox hay các hành động xem xét đã được phép trong sandbox.", }, { key: "auto_review.policy", type: "string", description: "Hướng dẫn chính sách Markdown cục bộ để tự động xem xét. guardian_policy_config được quản lý có mức ưu tiên cao hơn. Các giá trị trống sẽ bị bỏ qua.", }, { key: "allow_login_shell", type: "boolean", description: "Cho phép các công cụ dựa trên shell sử dụng ngữ nghĩa login shell. Mặc định là true; khi là false, các yêu cầu login = true bị từ chối và login bị bỏ qua sẽ mặc định dùng shell không đăng nhập.", }, { key: "sandbox_mode", type: "read-only | workspace-write | danger-full-access", description: "Chính sách sandbox cho quyền truy cập hệ thống tệp và mạng trong khi thực thi lệnh.", }, { key: "sandbox_workspace_write.writable_roots", type: "array", description: 'Các thư mục gốc có thể ghi bổ sung khi dùng sandbox_mode = "workspace-write".', }, { key: "sandbox_workspace_write.network_access", type: "boolean", description: "Cho phép truy cập mạng ra ngoài bên trong sandbox workspace-write.", }, { key: "sandbox_workspace_write.exclude_tmpdir_env_var", type: "boolean", description: "Loại $TMPDIR khỏi các thư mục gốc có thể ghi trong chế độ workspace-write.", }, { key: "sandbox_workspace_write.exclude_slash_tmp", type: "boolean", description: "Loại /tmp khỏi các thư mục gốc có thể ghi trong chế độ workspace-write.", }, { key: "windows.sandbox", type: "unelevated | elevated", description: "Chế độ sandbox gốc chỉ dành cho Windows khi chạy Codex trực tiếp trên Windows.", }, { key: "windows.sandbox_private_desktop", type: "boolean", description: "Theo mặc định, chạy tiến trình con cuối cùng trong sandbox trên màn hình nền riêng tư của Windows gốc. Chỉ đặt thành false để tương thích với hành vi Winsta0\\\\Default cũ hơn.", }, { key: "computer_use.windows.always_allowed_app_ids", type: "array", description: "Các mã định danh ứng dụng Windows mà Computer Use có thể mở không cần hỏi. Ứng dụng không có trong danh sách cần được phê duyệt; hãy xóa các mục đã lưu trong phần cài đặt Computer Use của ứng dụng ChatGPT dành cho máy tính.", }, { key: "notify", type: "array", description: "Lệnh được gọi để gửi thông báo; nhận một tải trọng JSON từ Codex.", }, { key: "check_for_update_on_startup", type: "boolean", description: "Kiểm tra bản cập nhật Codex khi khởi động (chỉ đặt thành false khi các bản cập nhật được quản lý tập trung).", }, { key: "feedback.enabled", type: "boolean", description: "Bật gửi phản hồi qua /feedback trên các máy khách cục bộ (mặc định: true).", }, { key: "analytics.enabled", type: "boolean", description: "Bật hoặc tắt phân tích dữ liệu cho máy/hồ sơ này. Khi chưa đặt, giá trị mặc định của máy khách được áp dụng.", }, { key: "instructions", type: "string", description: "Dành riêng cho mục đích sử dụng trong tương lai; ưu tiên model_instructions_file hoặc AGENTS.md.", }, { key: "developer_instructions", type: "string", description: "Hướng dẫn bổ sung dành cho nhà phát triển được chèn vào phiên (tùy chọn).", }, { key: "log_dir", type: "string (path)", description: "Thư mục nơi Codex ghi các tệp nhật ký; mặc định là $CODEX_HOME/log. Việc đặt rõ giá trị này cũng bật nhật ký TUI văn bản thuần theo cơ chế chọn tham gia, codex-tui.log, trong thư mục đó.", }, { key: "sqlite_home", type: "string (path)", description: "Thư mục nơi Codex lưu cơ sở dữ liệu trạng thái dựa trên SQLite mà các công việc của tác nhân và trạng thái thời gian chạy có thể tiếp tục khác sử dụng.", }, { key: "compact_prompt", type: "string", description: "Giá trị ghi đè nội tuyến cho lời nhắc thu gọn lịch sử.", }, { key: "model_instructions_file", type: "string (path)", description: "Nội dung thay thế cho hướng dẫn tích hợp sẵn thay vì AGENTS.md.", }, { key: "personality", type: "none | friendly | pragmatic", description: "Phong cách giao tiếp mặc định cho các mô hình công bố supportsPersonality; có thể ghi đè theo từng luồng/lượt hoặc qua /personality.", }, { key: "service_tier", type: "string", description: "Cấp dịch vụ ưu tiên cho các lượt mới. Dùng fast hoặc một cấp khác do mô hình đang hoạt động công bố; fast ánh xạ tới giá trị yêu cầu priority.", }, { key: "experimental_compact_prompt_file", type: "string (path)", description: "Tải giá trị ghi đè lời nhắc thu gọn từ một tệp (thử nghiệm).", }, { key: "skills.config", type: "array", description: "Các giá trị ghi đè trạng thái bật theo từng kỹ năng được lưu trong config.toml.", }, { key: "skills.config..path", type: "string (path)", description: "Đường dẫn đến thư mục kỹ năng chứa SKILL.md.", }, { key: "skills.config..enabled", type: "boolean", description: "Bật hoặc tắt kỹ năng được tham chiếu.", }, { key: "apps..enabled", type: "boolean", description: "Bật hoặc tắt một ứng dụng/trình kết nối cụ thể theo ID (mặc định: true).", }, { key: "apps._default.enabled", type: "boolean", description: "Trạng thái bật ứng dụng mặc định cho tất cả ứng dụng, trừ khi được ghi đè theo từng ứng dụng.", }, { key: "apps._default.destructive_enabled", type: "boolean", description: "Mặc định cho phép/từ chối các công cụ ứng dụng có destructive_hint = true.", }, { key: "apps._default.open_world_enabled", type: "boolean", description: "Mặc định cho phép/từ chối các công cụ ứng dụng có open_world_hint = true.", }, { key: "apps._default.approvals_reviewer", type: "user | auto_review", description: "Người xem xét mặc định cho lời nhắc phê duyệt công cụ ứng dụng, trừ khi được ghi đè theo từng ứng dụng. Khi bị bỏ qua, ứng dụng kế thừa giá trị approvals_reviewer cấp cao nhất.", }, { key: "apps._default.default_tools_approval_mode", type: "auto | prompt | writes | approve", description: "Hành vi phê duyệt mặc định cho các công cụ ứng dụng không có giá trị ghi đè theo ứng dụng hoặc theo công cụ.", }, { key: "apps..destructive_enabled", type: "boolean", description: "Cho phép hoặc chặn các công cụ trong ứng dụng này có công bố destructive_hint = true.", }, { key: "apps..open_world_enabled", type: "boolean", description: "Cho phép hoặc chặn các công cụ trong ứng dụng này có công bố open_world_hint = true.", }, { key: "apps..default_tools_enabled", type: "boolean", description: "Trạng thái bật mặc định cho các công cụ trong ứng dụng này, trừ khi có giá trị ghi đè theo công cụ.", }, { key: "apps..approvals_reviewer", type: "user | auto_review", description: "Người xem xét lời nhắc phê duyệt công cụ của ứng dụng này. Ghi đè apps._default.approvals_reviewer.", }, { key: "apps..default_tools_approval_mode", type: "auto | prompt | writes | approve", description: "Hành vi phê duyệt mặc định cho các công cụ trong ứng dụng này, trừ khi có giá trị ghi đè theo công cụ.", }, { key: "apps..tools..enabled", type: "boolean", description: "Giá trị ghi đè trạng thái bật theo công cụ cho một công cụ ứng dụng (ví dụ: repos/list).", }, { key: "apps..tools..approval_mode", type: "auto | prompt | writes | approve", description: "Giá trị ghi đè hành vi phê duyệt theo công cụ cho một công cụ ứng dụng.", }, { key: "tool_suggest.discoverables", type: "array", description: 'Cho phép đề xuất công cụ cho các trình kết nối hoặc plugin bổ sung có thể khám phá. Mỗi mục sử dụng type = "connector" hoặc "plugin" cùng với một id.', }, { key: "tool_suggest.disabled_tools", type: "array
", description: 'Tắt đề xuất cho các trình kết nối hoặc plugin cụ thể có thể khám phá. Mỗi mục sử dụng type = "connector" hoặc "plugin" cùng với một id.', }, { key: "features.apps", type: "boolean", description: "Bật tích hợp ứng dụng (trình kết nối) (ổn định; mặc định được bật).", }, { key: "features.hooks", type: "boolean", description: "Bật các hook vòng đời được tải từ hooks.json hoặc cấu hình [hooks] nội tuyến. features.codex_hooks là bí danh đã lỗi thời.", }, { key: "features.code_mode.enabled", type: "boolean", description: "Bật cấu hình tính năng chế độ mã. Tính năng này đang được phát triển và mặc định bị tắt.", }, { key: "features.code_mode.excluded_tool_namespaces", type: "array", description: "Các không gian tên công cụ mà chế độ mã loại khỏi hướng dẫn công cụ chế độ mã lồng nhau và khả năng hiển thị cho trình thực thi.", }, { key: "features.code_mode.direct_only_tool_namespaces", type: "array", description: "Các không gian tên công cụ mà chế độ mã chỉ có thể sử dụng thông qua lệnh gọi công cụ trực tiếp.", }, { key: "features.rollout_budget.enabled", type: "boolean", description: "Bật theo dõi ngân sách rollout. Tính năng này đang được phát triển và mặc định bị tắt. Khi bật, features.rollout_budget.limit_tokens là bắt buộc.", }, { key: "features.rollout_budget.limit_tokens", type: "integer", description: "Giới hạn token dương để theo dõi ngân sách rollout. Bắt buộc khi ngân sách rollout được bật.", }, { key: "features.rollout_budget.reminder_interval_tokens", type: "integer", description: "Khoảng token dương giữa các lời nhắc ngân sách rollout. Mặc định là 10% của limit_tokens, tối thiểu 1 token.", }, { key: "features.rollout_budget.sampling_token_weight", type: "number", description: "Hệ số hữu hạn không âm cho token lấy mẫu khi hạch toán ngân sách rollout. Mặc định là 1.0.", }, { key: "features.rollout_budget.prefill_token_weight", type: "number", description: "Hệ số hữu hạn không âm cho token điền trước khi hạch toán ngân sách rollout. Mặc định là 1.0.", }, { key: "hooks", type: "table", description: "Các hook vòng đời được cấu hình nội tuyến trong config.toml. Sử dụng cùng lược đồ sự kiện với hooks.json; xem hướng dẫn Hooks để biết ví dụ và các sự kiện được hỗ trợ.", }, { key: "hooks.", type: "array
", description: "Các nhóm trình khớp cho sự kiện hook như PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, SubagentStart, SubagentStop, UserPromptSubmit hoặc Stop.", }, { key: "hooks.[].hooks", type: "array
", description: "Các trình xử lý hook cho một nhóm trình khớp. Hook lệnh hiện được hỗ trợ; trình xử lý hook lời nhắc và tác nhân được phân tích cú pháp nhưng bị bỏ qua.", }, { key: "hooks.[].hooks[].commandWindows", type: "string", description: "Giá trị ghi đè lệnh chỉ dành cho Windows đối với hook lệnh. Bí danh TOML command_windows cũng được chấp nhận.", }, { key: "features.memories", type: "boolean", description: "Bật Memories (mặc định tắt).", }, { key: "mcp_servers..command", type: "string", description: "Lệnh khởi chạy cho máy chủ MCP stdio.", }, { key: "mcp_servers..args", type: "array", description: "Các đối số được truyền cho lệnh máy chủ MCP stdio.", }, { key: "mcp_servers..env", type: "map<string,string>", description: "Các biến môi trường được chuyển tiếp tới máy chủ MCP stdio.", }, { key: "mcp_servers..env_vars", type: 'array<string | { name = string, source = "local" | "remote" }>', description: 'Các biến môi trường bổ sung cần đưa vào danh sách cho phép cho máy chủ MCP stdio. Mục dạng chuỗi mặc định là source = "local"; chỉ dùng source = "remote" với stdio từ xa dựa trên trình thực thi.', }, { key: "mcp_servers..cwd", type: "string", description: "Thư mục làm việc cho tiến trình máy chủ MCP stdio.", }, { key: "mcp_servers..url", type: "string", description: "Điểm cuối cho máy chủ MCP HTTP có thể truyền luồng.", }, { key: "mcp_servers..auth", type: "oauth | chatgpt", description: "Phương án xác thực dự phòng cho máy chủ MCP HTTP sau các bearer token và tiêu đề ủy quyền đã cấu hình. oauth (mặc định) sử dụng thông tin xác thực MCP OAuth đã lưu khi có. chatgpt sử dụng phiên ChatGPT hiện tại cho nguồn ChatGPT bên thứ nhất đáng tin cậy, rồi chuyển sang OAuth đã lưu. Cả hai chế độ đều có thể kết nối không cần xác thực nếu không tìm thấy nguồn thông tin xác thực nào.", }, { key: "mcp_servers..bearer_token_env_var", type: "string", description: "Biến môi trường cung cấp bearer token cho máy chủ MCP HTTP.", }, { key: "mcp_servers..http_headers", type: "map<string,string>", description: "Các tiêu đề HTTP tĩnh được đưa vào mỗi yêu cầu MCP HTTP.", }, { key: "mcp_servers..env_http_headers", type: "map<string,string>", description: "Các tiêu đề HTTP được điền từ biến môi trường cho máy chủ MCP HTTP.", }, { key: "mcp_servers..enabled", type: "boolean", description: "Tắt máy chủ MCP mà không xóa cấu hình của máy chủ đó.", }, { key: "mcp_servers..required", type: "boolean", description: "Khi là true, quá trình khởi động/tiếp tục sẽ thất bại nếu máy chủ MCP đang bật này không thể khởi tạo.", }, { key: "mcp_servers..startup_timeout_sec", type: "number", description: "Ghi đè thời gian chờ khởi động mặc định 10 giây cho máy chủ MCP.", }, { key: "mcp_servers..startup_timeout_ms", type: "number", description: "Bí danh của startup_timeout_sec, tính bằng mili giây.", }, { key: "mcp_servers..tool_timeout_sec", type: "number", description: "Ghi đè thời gian chờ mặc định 60 giây cho mỗi công cụ của máy chủ MCP.", }, { key: "mcp_servers..enabled_tools", type: "array", description: "Danh sách cho phép gồm tên các công cụ do máy chủ MCP cung cấp.", }, { key: "mcp_servers..disabled_tools", type: "array", description: "Danh sách từ chối được áp dụng sau enabled_tools cho máy chủ MCP.", }, { key: "mcp_servers..default_tools_approval_mode", type: "auto | prompt | writes | approve", description: "Hành vi phê duyệt mặc định cho các công cụ MCP trên máy chủ này, trừ khi có giá trị ghi đè theo công cụ.", }, { key: "mcp_servers..tools..approval_mode", type: "auto | prompt | writes | approve", description: "Giá trị ghi đè hành vi phê duyệt theo công cụ cho một công cụ MCP trên máy chủ này.", }, { key: "mcp_servers..scopes", type: "array", description: "Các phạm vi OAuth cần yêu cầu khi xác thực với máy chủ MCP đó.", }, { key: "mcp_servers..oauth_resource", type: "string", description: "Tham số tài nguyên OAuth RFC 8707 tùy chọn cần đưa vào khi đăng nhập MCP.", }, { key: "mcp_servers..experimental_environment", type: "local | remote", description: "Vị trí thử nghiệm cho máy chủ MCP. remote khởi động máy chủ stdio thông qua môi trường trình thực thi từ xa; vị trí từ xa cho HTTP có thể truyền luồng chưa được triển khai.", }, { key: "agents", type: "table", description: "Cài đặt đa tác nhân và khai báo vai trò tùy chỉnh. Tên của các thiết lập vô hướng được dành riêng và không thể dùng làm tên vai trò tùy chỉnh.", }, { key: "agents.enabled", type: "boolean", description: "Bật hoặc tắt các công cụ đa tác nhân (mặc định: true).", }, { key: "agents.max_concurrent_threads_per_session", type: "number", description: "Số luồng tác nhân được tạo tối đa có thể mở đồng thời, không tính luồng chính. Khi chưa đặt, Codex chọn giá trị mặc định.", }, { key: "agents.max_threads", type: "number", description: "Bí danh cũ của agents.max_concurrent_threads_per_session.", }, { key: "agents.default_subagent_model", type: "string", description: "Mô hình mặc định cho các tác nhân được tạo. Mô hình được chỉ định rõ khi tạo có mức ưu tiên cao hơn.", }, { key: "agents.default_subagent_reasoning_effort", type: "string", description: "Mức độ suy luận mặc định cho các tác nhân được tạo. Mức độ được chỉ định rõ khi tạo có mức ưu tiên cao hơn.", }, { key: "agents.interrupt_message", type: "boolean", description: "Ghi lại một thông báo mà mô hình có thể thấy khi lượt của tác nhân bị gián đoạn (mặc định: true).", }, { key: "agents..description", type: "string", description: "Hướng dẫn vai trò hiển thị cho Codex khi chọn và tạo loại tác nhân đó.", }, { key: "agents..config_file", type: "string (path)", description: "Đường dẫn đến lớp cấu hình TOML cho vai trò đó; đường dẫn tương đối được phân giải từ tệp cấu hình khai báo vai trò.", }, { key: "memories.generate_memories", type: "boolean", description: "Khi là false, các luồng mới tạo không được lưu làm đầu vào tạo bộ nhớ. Mặc định là true.", }, { key: "memories.use_memories", type: "boolean", description: "Khi là false, Codex bỏ qua việc chèn bộ nhớ hiện có vào các phiên sau. Mặc định là true.", }, { key: "memories.disable_on_external_context", type: "boolean", description: "Khi là true, các luồng sử dụng ngữ cảnh bên ngoài như lệnh gọi công cụ MCP, tìm kiếm web hoặc tìm kiếm công cụ sẽ không được dùng để tạo bộ nhớ. Mặc định là false. Bí danh cũ: memories.no_memories_if_mcp_or_web_search.", }, { key: "memories.max_raw_memories_for_consolidation", type: "number", description: "Số bộ nhớ thô gần đây tối đa được giữ lại để hợp nhất toàn cục. Mặc định là 256 và bị giới hạn ở 4096.", }, { key: "memories.max_unused_days", type: "number", description: "Số ngày tối đa kể từ lần gần nhất một bộ nhớ được sử dụng trước khi không còn đủ điều kiện hợp nhất. Mặc định là 30 và được giới hạn trong khoảng 0-365.", }, { key: "memories.max_rollout_age_days", type: "number", description: "Tuổi tối đa của các luồng được xem xét để tạo bộ nhớ. Mặc định là 30 và được giới hạn trong khoảng 0-90.", }, { key: "memories.max_rollouts_per_startup", type: "number", description: "Số ứng viên rollout tối đa được xử lý trong mỗi lượt khởi động. Mặc định là 16 và bị giới hạn ở 128.", }, { key: "memories.min_rollout_idle_hours", type: "number", description: "Thời gian không hoạt động tối thiểu trước khi một luồng được xem xét để tạo bộ nhớ. Mặc định là 6 và được giới hạn trong khoảng 1-48.", }, { key: "memories.min_rate_limit_remaining_percent", type: "number", description: "Tỷ lệ phần trăm còn lại tối thiểu cần có trong các cửa sổ giới hạn tốc độ của Codex trước khi bắt đầu tạo bộ nhớ. Mặc định là 25 và được giới hạn trong khoảng 0-100.", }, { key: "memories.extract_model", type: "string", description: "Mô hình ghi đè tùy chọn để trích xuất bộ nhớ theo từng luồng.", }, { key: "memories.consolidation_model", type: "string", description: "Mô hình ghi đè tùy chọn để hợp nhất bộ nhớ toàn cục.", }, { key: "features.unified_exec", type: "boolean", description: "Sử dụng công cụ thực thi hợp nhất dựa trên PTY (ổn định; mặc định được bật, ngoại trừ trên Windows).", }, { key: "features.shell_snapshot", type: "boolean", description: "Chụp nhanh môi trường shell để tăng tốc các lệnh lặp lại (ổn định; mặc định được bật).", }, { key: "features.multi_agent", type: "boolean", description: "Bật các công cụ cộng tác đa tác nhân (spawn_agent, send_input, resume_agent, wait_agentclose_agent) (ổn định; mặc định được bật).", }, { key: "features.goals", type: "boolean", description: "Bật mục tiêu được duy trì và tự động tiếp tục (ổn định; mặc định được bật).", }, { key: "features.remote_plugin", type: "boolean", description: "Bật danh mục plugin từ xa (ổn định; mặc định được bật).", }, { key: "features.personality", type: "boolean", description: "Bật các điều khiển chọn tính cách (ổn định; mặc định được bật).", }, { key: "features.network_proxy", type: "boolean | table", description: "Bật kết nối mạng trong sandbox. Dùng dạng bảng khi đặt các tùy chọn chính sách mạng như domains (thử nghiệm; mặc định tắt).", }, { key: "features.network_proxy.enabled", type: "boolean", description: "Bật kết nối mạng trong sandbox. Mặc định là false.", }, { key: "features.network_proxy.domains", type: "map<string, allow | deny>", description: "Chính sách tên miền cho kết nối mạng trong sandbox. Mặc định chưa được đặt, nghĩa là không cho phép đích bên ngoài nào cho đến khi bạn thêm quy tắc allow. Hỗ trợ máy chủ chính xác, *.example.com chỉ cho tên miền phụ, **.example.com cho tên miền gốc và tên miền phụ, cùng quy tắc cho phép toàn cục *; ưu tiên quy tắc có phạm vi vì * mở rộng quyền truy cập ra ngoài công khai. Thêm quy tắc deny cho các đích bị chặn; deny được ưu tiên khi xung đột.", }, { key: "features.network_proxy.unix_sockets", type: "map<string, allow | deny>", description: "Chính sách Unix socket cho kết nối mạng trong sandbox. Mặc định chưa được đặt; hãy thêm các mục allow cho socket được phép.", }, { key: "features.network_proxy.allow_local_binding", type: "boolean", description: "Cho phép quyền truy cập mạng cục bộ/riêng tư rộng hơn. Mặc định là false; quy tắc cho phép đối với địa chỉ IP cục bộ chính xác hoặc localhost vẫn có thể cho phép các đích cục bộ cụ thể.", }, { key: "features.network_proxy.enable_socks5", type: "boolean", description: "Cung cấp hỗ trợ SOCKS5. Mặc định là true.", }, { key: "features.network_proxy.enable_socks5_udp", type: "boolean", description: "Cho phép UDP qua SOCKS5. Mặc định là true.", }, { key: "features.network_proxy.allow_upstream_proxy", type: "boolean", description: "Cho phép kết nối qua proxy thượng nguồn từ môi trường. Mặc định là true.", }, { key: "features.network_proxy.dangerously_allow_non_loopback_proxy", type: "boolean", description: "Cho phép địa chỉ trình lắng nghe không phải loopback. Mặc định là false; bật tùy chọn này có thể làm lộ trình lắng nghe proxy ra ngoài localhost.", }, { key: "features.network_proxy.dangerously_allow_all_unix_sockets", type: "boolean", description: "Cho phép đích Unix socket tùy ý thay vì chỉ truy cập theo danh sách cho phép. Mặc định là false; chỉ sử dụng trong môi trường được kiểm soát chặt chẽ.", }, { key: "features.network_proxy.proxy_url", type: "string", description: 'URL trình lắng nghe HTTP cho kết nối mạng trong sandbox. Mặc định là "http://127.0.0.1:3128".', }, { key: "features.network_proxy.socks_url", type: "string", description: 'URL trình lắng nghe SOCKS5. Mặc định là "http://127.0.0.1:8081".', }, { key: "features.web_search", type: "boolean", description: "Nút bật/tắt cũ đã lỗi thời; ưu tiên thiết lập web_search cấp cao nhất.", }, { key: "features.web_search_cached", type: "boolean", description: 'Nút bật/tắt cũ đã lỗi thời. Khi web_search chưa được đặt, true ánh xạ tới web_search = "cached".', }, { key: "features.web_search_request", type: "boolean", description: 'Nút bật/tắt cũ đã lỗi thời. Khi web_search chưa được đặt, true ánh xạ tới web_search = "live".', }, { key: "features.shell_tool", type: "boolean", description: "Bật công cụ shell mặc định để chạy lệnh (ổn định; mặc định được bật).", }, { key: "features.enable_request_compression", type: "boolean", description: "Nén nội dung yêu cầu truyền luồng bằng zstd khi được hỗ trợ (ổn định; mặc định được bật).", }, { key: "features.skill_mcp_dependency_install", type: "boolean", description: "Cho phép nhắc và cài đặt các phần phụ thuộc MCP còn thiếu cho kỹ năng (ổn định; mặc định được bật).", }, { key: "features.fast_mode", type: "boolean", description: "Bật lựa chọn cấp dịch vụ trong danh mục mô hình ở TUI, bao gồm các lệnh cấp Fast khi mô hình đang hoạt động công bố hỗ trợ (ổn định; mặc định được bật).", }, { key: "features.prevent_idle_sleep", type: "boolean", description: "Ngăn máy chuyển sang chế độ ngủ khi một lượt đang hoạt động (thử nghiệm; mặc định tắt).", }, { key: "suppress_unstable_features_warning", type: "boolean", description: "Ẩn cảnh báo xuất hiện khi các cờ tính năng đang phát triển được bật.", }, { key: "model_providers.", type: "table", description: "Định nghĩa nhà cung cấp tùy chỉnh. Các ID nhà cung cấp tích hợp sẵn (openai, ollamalmstudio) được dành riêng và không thể ghi đè.", }, { key: "model_providers..name", type: "string", description: "Tên hiển thị cho nhà cung cấp mô hình tùy chỉnh.", }, { key: "model_providers..base_url", type: "string", description: "URL API cơ sở cho nhà cung cấp mô hình.", }, { key: "model_providers..env_key", type: "string", description: "Biến môi trường cung cấp API key của nhà cung cấp.", }, { key: "model_providers..env_key_instructions", type: "string", description: "Hướng dẫn thiết lập tùy chọn cho API key của nhà cung cấp.", }, { key: "model_providers..experimental_bearer_token", type: "string", description: "Bearer token trực tiếp cho nhà cung cấp (không khuyến khích; hãy dùng env_key).", }, { key: "model_providers..requires_openai_auth", type: "boolean", description: "Nhà cung cấp sử dụng xác thực OpenAI (mặc định là false).", }, { key: "model_providers..wire_api", type: "responses", description: "Giao thức mà nhà cung cấp sử dụng. responses là giá trị duy nhất được hỗ trợ và là giá trị mặc định khi bị bỏ qua.", }, { key: "model_providers..query_params", type: "map<string,string>", description: "Các tham số truy vấn bổ sung được nối vào yêu cầu tới nhà cung cấp.", }, { key: "model_providers..http_headers", type: "map<string,string>", description: "Các tiêu đề HTTP tĩnh được thêm vào yêu cầu tới nhà cung cấp.", }, { key: "model_providers..env_http_headers", type: "map<string,string>", description: "Các tiêu đề HTTP được điền từ biến môi trường khi có.", }, { key: "model_providers..request_max_retries", type: "number", description: "Số lần thử lại yêu cầu HTTP tới nhà cung cấp (mặc định: 4).", }, { key: "model_providers..stream_max_retries", type: "number", description: "Số lần thử lại khi luồng SSE bị gián đoạn (mặc định: 5).", }, { key: "model_providers..stream_idle_timeout_ms", type: "number", description: "Thời gian chờ khi luồng SSE không hoạt động, tính bằng mili giây (mặc định: 300000).", }, { key: "model_providers..supports_websockets", type: "boolean", description: "Nhà cung cấp đó có hỗ trợ phương thức truyền WebSocket của Responses API hay không.", }, { key: "model_providers..supports_standalone_web_search", type: "boolean", description: "Công bố hỗ trợ điểm cuối tìm kiếm web độc lập tương thích (mặc định: false). Tìm kiếm độc lập vẫn đang được phát triển và mặc định bị tắt; chỉ khả năng tương thích của nhà cung cấp không tự bật tính năng này.", }, { key: "model_providers..auth", type: "table", description: "Cấu hình bearer token dựa trên lệnh cho nhà cung cấp tùy chỉnh. Không kết hợp với env_key, experimental_bearer_token hoặc requires_openai_auth.", }, { key: "model_providers..auth.command", type: "string", description: "Lệnh cần chạy khi Codex cần bearer token. Lệnh phải in token ra stdout.", }, { key: "model_providers..auth.args", type: "array", description: "Các đối số được truyền cho lệnh lấy token.", }, { key: "model_providers..auth.timeout_ms", type: "number", description: "Thời gian chạy tối đa của lệnh lấy token, tính bằng mili giây (mặc định: 5000).", }, { key: "model_providers..auth.refresh_interval_ms", type: "number", description: "Tần suất Codex chủ động làm mới token, tính bằng mili giây (mặc định: 300000). Đặt thành 0 để chỉ làm mới sau khi thử lại xác thực.", }, { key: "model_providers..auth.cwd", type: "string (path)", description: "Thư mục làm việc cho lệnh lấy token.", }, { key: "model_providers.amazon-bedrock.aws.profile", type: "string", description: "Tên hồ sơ AWS được nhà cung cấp amazon-bedrock tích hợp sẵn sử dụng.", }, { key: "model_providers.amazon-bedrock.aws.region", type: "string", description: "Vùng AWS được nhà cung cấp amazon-bedrock tích hợp sẵn sử dụng.", }, { key: "model_reasoning_effort", type: "minimal | low | medium | high | xhigh", description: "Điều chỉnh mức độ suy luận cho các mô hình được hỗ trợ (chỉ Responses API; xhigh phụ thuộc vào mô hình).", }, { key: "plan_mode_reasoning_effort", type: "none | minimal | low | medium | high | xhigh", description: "Giá trị ghi đè mức độ suy luận dành riêng cho chế độ Lập kế hoạch. Khi chưa đặt, chế độ Lập kế hoạch sử dụng giá trị đặt sẵn tích hợp.", }, { key: "model_reasoning_summary", type: "auto | concise | detailed | none", description: "Chọn mức độ chi tiết của bản tóm tắt suy luận hoặc tắt hoàn toàn bản tóm tắt.", }, { key: "model_verbosity", type: "low | medium | high", description: "Giá trị ghi đè độ dài phản hồi tùy chọn cho GPT-5 Responses API; khi chưa đặt, giá trị mặc định của mô hình/cấu hình đặt sẵn đã chọn được sử dụng.", }, { key: "model_supports_reasoning_summaries", type: "boolean", description: "Buộc Codex gửi hoặc không gửi siêu dữ liệu suy luận.", }, { key: "shell_environment_policy.inherit", type: "all | core | none", description: "Mức kế thừa môi trường cơ sở khi tạo tiến trình con.", }, { key: "shell_environment_policy.ignore_default_excludes", type: "boolean", description: "Giữ lại các biến chứa KEY, SECRET hoặc TOKEN trước khi chạy các bộ lọc khác (mặc định: true). Đặt thành false để áp dụng cơ chế tự động loại trừ tên bí mật.", }, { key: "shell_environment_policy.filters", type: "map<string, include | exclude>", description: "Các bộ lọc mẫu biến môi trường chuẩn hóa, không phân biệt chữ hoa chữ thường. Mục include tạo danh sách cho phép và không thể khôi phục giá trị đã bị loại trừ. Các giá trị set rõ ràng được áp dụng sau khi loại trừ. Không kết hợp bộ lọc với mảng exclude hoặc include_only cũ trong cùng một lớp.", }, { key: "shell_environment_policy.exclude", type: "array", description: "Các mẫu loại trừ biến môi trường cũ. Hãy dùng shell_environment_policy.filters cho cấu hình mới; không kết hợp cả hai dạng trong cùng một lớp.", }, { key: "shell_environment_policy.include_only", type: "array", description: "Danh sách cho phép cũ gồm các mẫu biến môi trường. Hãy dùng shell_environment_policy.filters cho cấu hình mới; không kết hợp cả hai dạng trong cùng một lớp.", }, { key: "shell_environment_policy.set", type: "map<string,string>", description: "Các giá trị môi trường rõ ràng được chèn sau khi loại trừ; bộ lọc include vẫn có thể loại bỏ chúng.", }, { key: "shell_environment_policy.experimental_use_profile", type: "boolean", description: "Sử dụng hồ sơ shell của người dùng khi tạo tiến trình con.", }, { key: "project_root_markers", type: "array", description: "Danh sách tên tệp đánh dấu thư mục gốc dự án; được dùng khi tìm kiếm thư mục gốc dự án trong các thư mục cha.", }, { key: "project_doc_max_bytes", type: "number", description: "Số byte tối đa được đọc từ AGENTS.md khi xây dựng hướng dẫn dự án.", }, { key: "project_doc_fallback_filenames", type: "array", description: "Các tên tệp bổ sung cần thử khi thiếu AGENTS.md.", }, { key: "history.persistence", type: "save-all | none", description: "Kiểm soát việc Codex có lưu bản chép lại phiên vào history.jsonl hay không.", }, { key: "tool_output_token_limit", type: "number", description: "Ngân sách token để lưu từng đầu ra của công cụ/hàm trong lịch sử.", }, { key: "background_terminal_max_timeout", type: "number", description: "Cửa sổ thăm dò tối đa tính bằng mili giây cho các lần thăm dò write_stdin trống (thăm dò terminal nền). Mặc định: 300000 (5 phút). Thay thế khóa background_terminal_timeout cũ hơn.", }, { key: "history.max_bytes", type: "number", description: "Nếu được đặt, giới hạn kích thước tệp lịch sử theo byte bằng cách loại bỏ các mục cũ nhất.", }, { key: "file_opener", type: "vscode | vscode-insiders | windsurf | cursor | none", description: "Lược đồ URI được dùng để mở trích dẫn từ đầu ra Codex (mặc định: vscode).", }, { key: "otel.environment", type: "string", description: "Nhãn môi trường được áp dụng cho các sự kiện OpenTelemetry phát ra (mặc định: dev).", }, { key: "otel.exporter", type: "none | otlp-http | otlp-grpc", description: "Chọn trình xuất OpenTelemetry và cung cấp mọi siêu dữ liệu điểm cuối.", }, { key: "otel.trace_exporter", type: "none | otlp-http | otlp-grpc", description: "Chọn trình xuất dấu vết OpenTelemetry và cung cấp mọi siêu dữ liệu điểm cuối.", }, { key: "otel.metrics_exporter", type: "none | statsig | otlp-http | otlp-grpc", description: "Chọn trình xuất chỉ số OpenTelemetry (mặc định là statsig).", }, { key: "otel.log_user_prompt", type: "boolean", description: "Chọn tham gia xuất lời nhắc thô của người dùng cùng nhật ký OpenTelemetry.", }, { key: "otel.exporter..endpoint", type: "string", description: "Điểm cuối trình xuất cho nhật ký OTEL.", }, { key: "otel.exporter..protocol", type: "binary | json", description: "Giao thức mà trình xuất OTLP/HTTP sử dụng.", }, { key: "otel.exporter..headers", type: "map<string,string>", description: "Các tiêu đề tĩnh được đưa vào yêu cầu của trình xuất OTEL.", }, { key: "otel.trace_exporter..endpoint", type: "string", description: "Điểm cuối trình xuất dấu vết cho nhật ký OTEL.", }, { key: "otel.trace_exporter..protocol", type: "binary | json", description: "Giao thức mà trình xuất dấu vết OTLP/HTTP sử dụng.", }, { key: "otel.trace_exporter..headers", type: "map<string,string>", description: "Các tiêu đề tĩnh được đưa vào yêu cầu của trình xuất dấu vết OTEL.", }, { key: "otel.exporter..tls.ca-certificate", type: "string", description: "Đường dẫn chứng chỉ CA cho TLS của trình xuất OTEL.", }, { key: "otel.exporter..tls.client-certificate", type: "string", description: "Đường dẫn chứng chỉ máy khách cho TLS của trình xuất OTEL.", }, { key: "otel.exporter..tls.client-private-key", type: "string", description: "Đường dẫn khóa riêng của máy khách cho TLS của trình xuất OTEL.", }, { key: "otel.trace_exporter..tls.ca-certificate", type: "string", description: "Đường dẫn chứng chỉ CA cho TLS của trình xuất dấu vết OTEL.", }, { key: "otel.trace_exporter..tls.client-certificate", type: "string", description: "Đường dẫn chứng chỉ máy khách cho TLS của trình xuất dấu vết OTEL.", }, { key: "otel.trace_exporter..tls.client-private-key", type: "string", description: "Đường dẫn khóa riêng của máy khách cho TLS của trình xuất dấu vết OTEL.", }, { key: "tui", type: "table", description: "Các tùy chọn dành riêng cho TUI, chẳng hạn như bật thông báo nội tuyến trên máy tính.", }, { key: "tui.notifications", type: "boolean | array", description: "Bật thông báo TUI; có thể giới hạn ở các loại sự kiện cụ thể.", }, { key: "tui.notification_method", type: "auto | osc9 | bel", description: "Phương thức thông báo cho thông báo terminal (mặc định: auto).", }, { key: "tui.notification_condition", type: "unfocused | always", description: "Kiểm soát việc thông báo TUI chỉ kích hoạt khi terminal không được lấy nét hay bất kể trạng thái lấy nét. Mặc định là unfocused.", }, { key: "tui.animations", type: "boolean", description: "Bật hiệu ứng terminal (màn hình chào mừng, hiệu ứng lấp lánh, biểu tượng xoay) (mặc định: true).", }, { key: "tui.alternate_screen", type: "auto | always | never", description: "Kiểm soát việc sử dụng màn hình thay thế cho TUI (mặc định: auto; auto bỏ qua màn hình này trong Zellij để giữ lịch sử cuộn).", }, { key: "tui.resume_cwd", type: "current | session", description: "Thư mục làm việc cần dùng khi tiếp tục hoặc phân nhánh một phiên. Khi chưa đặt, Codex yêu cầu bạn chọn nếu thư mục hiện tại khác với thư mục đã lưu của phiên.", }, { key: "tui.vim_mode_default", type: "boolean", description: "Khởi động trình soạn thảo ở chế độ thường của Vim thay vì chế độ chèn (mặc định: false). Bạn vẫn có thể chuyển đổi theo từng phiên bằng /vim.", }, { key: "tui.raw_output_mode", type: "boolean", description: "Khởi động TUI ở chế độ lịch sử cuộn thô để dễ chọn và sao chép trong terminal (mặc định: false). Bạn có thể chuyển đổi bằng /raw hoặc phím tắt alt-r mặc định.", }, { key: "tui.show_tooltips", type: "boolean", description: "Hiển thị chú giải hướng dẫn bắt đầu trong màn hình chào mừng TUI (mặc định: true).", }, { key: "tui.status_line", type: "array | null", description: "Danh sách có thứ tự các mã định danh mục trên dòng trạng thái chân trang TUI. null tắt dòng trạng thái.", }, { key: "tui.terminal_title", type: "array | null", description: 'Danh sách có thứ tự các mã định danh mục trong tiêu đề cửa sổ/thẻ terminal. Mặc định là ["spinner", "project"]; null tắt cập nhật tiêu đề.', }, { key: "tui.theme", type: "string", description: "Giá trị ghi đè giao diện tô sáng cú pháp (tên giao diện dạng kebab-case).", }, { key: "tui.keymap..", type: "string | array", description: "Liên kết phím tắt cho một hành động TUI. Các ngữ cảnh được hỗ trợ gồm global, chat, composer, editor, vim_normal, vim_operator, vim_text_object, pager, listapproval. Các hành động trình soạn thảo được chọn sẽ dùng liên kết tui.keymap.global tương ứng làm phương án dự phòng; liên kết dành riêng cho ngữ cảnh được ưu tiên khi được hỗ trợ.", }, { key: "tui.keymap.. = []", type: "empty array", description: "Hủy liên kết hành động trong ngữ cảnh sơ đồ phím đó. Tên phím sử dụng các chuỗi đã chuẩn hóa như ctrl-a, shift-enter, page-down hoặc minus.", }, { key: "plugins..mcp_servers..enabled", type: "boolean", description: "Bật hoặc tắt máy chủ MCP đi kèm plugin đã cài đặt mà không thay đổi tệp kê khai plugin.", }, { key: "plugins..mcp_servers..default_tools_approval_mode", type: "auto | prompt | writes | approve", description: "Hành vi phê duyệt mặc định cho các công cụ trên máy chủ MCP do plugin cung cấp.", }, { key: "plugins..mcp_servers..enabled_tools", type: "array", description: "Danh sách cho phép gồm các công cụ được cung cấp từ máy chủ MCP do plugin cung cấp.", }, { key: "plugins..mcp_servers..disabled_tools", type: "array", description: "Danh sách từ chối được áp dụng sau enabled_tools cho máy chủ MCP do plugin cung cấp.", }, { key: "plugins..mcp_servers..tools..approval_mode", type: "auto | prompt | writes | approve", description: "Giá trị ghi đè hành vi phê duyệt theo công cụ cho một công cụ MCP do plugin cung cấp.", }, { key: "tui.model_availability_nux.", type: "integer", description: "Trạng thái chú giải khởi động nội bộ được lập khóa theo slug mô hình.", }, { key: "hide_agent_reasoning", type: "boolean", description: "Ẩn các sự kiện suy luận trong cả TUI và đầu ra codex exec.", }, { key: "show_raw_agent_reasoning", type: "boolean", description: "Hiển thị nội dung suy luận thô khi mô hình đang hoạt động phát ra nội dung đó.", }, { key: "disable_paste_burst", type: "boolean", description: "Tắt phát hiện thao tác dán hàng loạt trong TUI.", }, { key: "windows_wsl_setup_acknowledged", type: "boolean", description: "Theo dõi việc xác nhận hướng dẫn thiết lập Windows (chỉ Windows).", }, { key: "chatgpt_base_url", type: "string", description: "Ghi đè URL cơ sở được dùng trong luồng đăng nhập ChatGPT.", }, { key: "cli_auth_credentials_store", type: "file | keyring | auto", description: "Kiểm soát nơi CLI lưu thông tin xác thực đã lưu vào bộ nhớ đệm (auth.json dựa trên tệp hoặc chuỗi khóa của hệ điều hành).", }, { key: "mcp_oauth_credentials_store", type: "auto | file | keyring", description: "Kho lưu trữ ưu tiên cho thông tin xác thực MCP OAuth.", }, { key: "mcp_oauth_callback_port", type: "integer", description: "Cổng cố định tùy chọn cho máy chủ callback HTTP cục bộ được dùng trong quá trình đăng nhập MCP OAuth. Khi chưa đặt, Codex liên kết với một cổng tạm thời do hệ điều hành chọn.", }, { key: "mcp_oauth_callback_url", type: "string", description: "Giá trị ghi đè URL callback cơ sở tùy chọn cho đăng nhập MCP OAuth (ví dụ: URL ingress của devbox). Codex nối thêm ID callback dành riêng cho máy chủ trước khi gửi OAuth redirect_uri cuối cùng, vì vậy hãy đăng ký URI hoàn chỉnh được tạo ra với nhà cung cấp của bạn. mcp_oauth_callback_port vẫn kiểm soát cổng trình lắng nghe callback.", }, { key: "experimental_use_unified_exec_tool", type: "boolean", description: "Tên cũ để bật thực thi hợp nhất; ưu tiên [features].unified_exec hoặc codex --enable unified_exec.", }, { key: "tools.web_search", type: 'boolean | { context_size = "low|medium|high", allowed_domains = [string], location = { country, region, city, timezone } }', description: "Cấu hình công cụ tìm kiếm web tùy chọn. Dạng boolean cũ vẫn được chấp nhận, nhưng dạng đối tượng cho phép bạn đặt kích thước ngữ cảnh tìm kiếm, tên miền được phép và vị trí gần đúng của người dùng.", }, { key: "tools.view_image", type: "boolean", description: "Bật công cụ đính kèm hình ảnh cục bộ view_image.", }, { key: "web_search", type: "disabled | cached | indexed | live", description: 'Chế độ tìm kiếm web (mặc định: "cached"; cached sử dụng chỉ mục do OpenAI duy trì mà không cần truy cập web bên ngoài; indexed chỉ cho phép truy cập bên ngoài khi được chỉ mục tìm kiếm kiểm soát; nếu bạn dùng --yolo hoặc một thiết lập sandbox toàn quyền truy cập khác, chế độ mặc định là "live"). Dùng "live" để truy xuất trực tiếp không hạn chế hoặc "disabled" để loại bỏ công cụ.', }, { key: "default_permissions", type: "string", description: "Tên hồ sơ quyền mặc định cần áp dụng cho các lệnh gọi công cụ trong sandbox. Các hồ sơ tích hợp sẵn là :read-only, :workspace:danger-full-access; tên hồ sơ tùy chỉnh yêu cầu các bảng [permissions.<name>] tương ứng. Không kết hợp với sandbox_mode hoặc [sandbox_workspace_write].", }, { key: "permissions..description", type: "string", description: "Mô tả dễ đọc cho hồ sơ có tên này. Hồ sơ không kế thừa mô tả của hồ sơ cha thông qua extends.", }, { key: "permissions..extends", type: "string", description: "Hồ sơ cha tùy chọn được áp dụng trước hồ sơ có tên này. Đặt thành một hồ sơ có tên khác, :read-only hoặc :workspace; :danger-full-access, hồ sơ cha chưa định nghĩa và chu trình đều bị từ chối.", }, { key: "permissions..workspace_roots", type: "table", description: "Các thư mục gốc không gian làm việc do hồ sơ xác định, nhận quy tắc hệ thống tệp :workspace_roots cùng với các thư mục gốc không gian làm việc thời gian chạy của phiên.", }, { key: "permissions..workspace_roots.", type: "boolean", description: "Thêm một đường dẫn vào tập thư mục gốc không gian làm việc của hồ sơ khi là true. Các mục đã tắt vẫn không hoạt động.", }, { key: "permissions..filesystem", type: "table", description: "Hồ sơ quyền hệ thống tệp có tên. Mỗi khóa là một đường dẫn tuyệt đối hoặc token đặc biệt như :minimal hoặc :workspace_roots.", }, { key: "permissions..filesystem.glob_scan_max_depth", type: "number", description: "Độ sâu tối đa để mở rộng mẫu glob từ chối đọc trên các nền tảng chụp nhanh kết quả khớp trước khi khởi động sandbox. Khi đặt, giá trị phải ít nhất là 1.", }, { key: "permissions..filesystem.", type: '"read" | "write" | "deny" | table', description: 'Cấp quyền truy cập trực tiếp cho một đường dẫn, mẫu glob hoặc token đặc biệt, hoặc giới hạn phạm vi các mục lồng nhau dưới thư mục gốc đó. Dùng "deny" để từ chối đọc các đường dẫn khớp.', }, { key: 'permissions..filesystem.":workspace_roots".', type: '"read" | "write" | "deny"', description: 'Quyền truy cập hệ thống tệp có phạm vi tương đối với mỗi thư mục gốc không gian làm việc có hiệu lực. Dùng "." cho chính thư mục gốc; các đường dẫn con dạng glob như "**/*.env" có thể từ chối đọc bằng "deny".', }, { key: "permissions..network.enabled", type: "boolean", description: "Bật quyền truy cập mạng cho hồ sơ quyền có tên này. Thao tác này thay đổi chính sách mạng sandbox; nó không tự khởi động proxy mạng.", }, { key: "permissions..network.proxy_url", type: "string", description: "URL trình lắng nghe HTTP được dùng khi hồ sơ quyền này bật kết nối mạng trong sandbox.", }, { key: "permissions..network.enable_socks5", type: "boolean", description: "Cung cấp hỗ trợ SOCKS5 khi hồ sơ quyền này bật kết nối mạng trong sandbox.", }, { key: "permissions..network.socks_url", type: "string", description: "Điểm cuối proxy SOCKS5 mà hồ sơ quyền này sử dụng.", }, { key: "permissions..network.enable_socks5_udp", type: "boolean", description: "Cho phép UDP qua trình lắng nghe SOCKS5 khi được bật.", }, { key: "permissions..network.allow_upstream_proxy", type: "boolean", description: "Cho phép kết nối mạng trong sandbox đi qua một proxy thượng nguồn khác.", }, { key: "permissions..network.dangerously_allow_non_loopback_proxy", type: "boolean", description: "Cho phép địa chỉ liên kết không phải loopback cho trình lắng nghe kết nối mạng trong sandbox. Bật tùy chọn này có thể làm lộ trình lắng nghe ra ngoài localhost.", }, { key: "permissions..network.dangerously_allow_all_unix_sockets", type: "boolean", description: "Cho phép đích Unix socket tùy ý thay vì tập đích hạn chế mặc định. Chỉ sử dụng trong môi trường được kiểm soát chặt chẽ.", }, { key: "permissions..network.mode", type: "limited | full", description: "Chế độ proxy mạng được dùng cho lưu lượng của tiến trình con.", }, { key: "permissions..network.domains", type: "table", description: "Quy tắc tên miền cho kết nối mạng trong sandbox. Hỗ trợ máy chủ chính xác, *.example.com chỉ cho tên miền phụ, **.example.com cho tên miền gốc và tên miền phụ, cùng quy tắc cho phép toàn cục *. deny được ưu tiên khi xung đột.", }, { key: "permissions..network.domains.", type: "allow | deny", description: "Cho phép hoặc từ chối một máy chủ chính xác hay mẫu ký tự đại diện có phạm vi như *.example.com hoặc **.example.com.", }, { key: "permissions..network.unix_sockets", type: "table", description: "Giá trị ghi đè danh sách cho phép Unix socket cho kết nối mạng trong sandbox. Dùng đường dẫn socket làm khóa; allow thêm đường dẫn và deny từ chối đường dẫn đó.", }, { key: "permissions..network.unix_sockets.", type: "allow | deny", description: "Thêm đường dẫn Unix socket tuyệt đối vào danh sách cho phép có hiệu lực bằng allow hoặc từ chối bằng deny. Các mục bị từ chối không được đưa vào danh sách cho phép có hiệu lực.", }, { key: "permissions..network.allow_local_binding", type: "boolean", description: "Cho phép quyền truy cập mạng cục bộ/riêng tư rộng hơn thông qua kết nối mạng trong sandbox. Quy tắc cho phép đối với địa chỉ IP cục bộ chính xác hoặc localhost vẫn có thể cho phép các đích cục bộ cụ thể khi giá trị này vẫn là false.", }, { key: "projects..trust_level", type: "string", description: 'Đánh dấu dự án hoặc worktree là đáng tin cậy hay không đáng tin cậy ("trusted" | "untrusted"). Dự án không đáng tin cậy bỏ qua các lớp .codex/ có phạm vi dự án, bao gồm cấu hình, hook và quy tắc cục bộ của dự án.', }, { key: "notice.hide_full_access_warning", type: "boolean", description: "Theo dõi việc xác nhận lời nhắc cảnh báo toàn quyền truy cập.", }, { key: "notice.hide_world_writable_warning", type: "boolean", description: "Theo dõi việc xác nhận cảnh báo về các thư mục Windows mà mọi người đều có thể ghi.", }, { key: "notice.hide_rate_limit_model_nudge", type: "boolean", description: "Theo dõi việc từ chối lời nhắc chuyển mô hình do giới hạn tốc độ.", }, { key: "notice.hide_gpt5_1_migration_prompt", type: "boolean", description: "Theo dõi việc xác nhận lời nhắc di chuyển sang GPT-5.1.", }, { key: "notice.hide_gpt-5.1-codex-max_migration_prompt", type: "boolean", description: "Theo dõi việc xác nhận lời nhắc di chuyển sang gpt-5.1-codex-max.", }, { key: "notice.model_migrations", type: "map<string,string>", description: "Theo dõi các lần di chuyển mô hình đã xác nhận dưới dạng ánh xạ old->new.", }, { key: "forced_login_method", type: "chatgpt | api", description: "Giới hạn Codex ở một phương thức xác thực cụ thể.", }, { key: "forced_chatgpt_workspace_id", type: "string (uuid)", description: "Giới hạn đăng nhập ChatGPT ở một mã định danh không gian làm việc cụ thể.", }, ]} client:load />

Bạn có thể xem JSON schema mới nhất cho config.toml tại đây.

Để nhận gợi ý tự động hoàn thành và thông tin chẩn đoán khi chỉnh sửa config.toml trong VS Code hoặc Cursor, bạn có thể cài đặt tiện ích Even Better TOML và thêm dòng này vào đầu config.toml:

#:schema https://developers.openai.com/codex/config-schema.json

Lưu ý: Đổi tên experimental_instructions_file thành model_instructions_file. Codex đã ngừng khuyến nghị khóa cũ; hãy cập nhật các cấu hình hiện có sang tên mới.

requirements.toml

requirements.toml là tệp cấu hình do quản trị viên thực thi, dùng để áp đặt giới hạn đối với các thiết lập nhạy cảm về bảo mật mà người dùng không thể ghi đè. Để biết chi tiết, vị trí và ví dụ, hãy xem Yêu cầu do quản trị viên thực thi.

Đối với người dùng ChatGPT Business và Enterprise, Codex cũng có thể áp dụng các yêu cầu được tải từ đám mây. Hãy xem trang bảo mật để biết chi tiết về thứ tự ưu tiên.

Sử dụng [features] trong requirements.toml để cố định các cờ tính năng thời gian chạy theo cùng các khóa chuẩn mà config.toml sử dụng. Yêu cầu cũng có thể bao gồm các khóa chỉ dành cho ứng dụng đã được ghi trong tài liệu, vốn không thuộc config.toml. Các khóa bị bỏ qua sẽ không bị ràng buộc.

Một số yêu cầu được quản lý thực thi một giá trị cấu hình chính xác thay vì một danh sách cho phép. Người dùng không thể ghi đè đường dẫn, tùy chọn cập nhật, chính sách login shell, thiết lập phản hồi hoặc thiết lập màn hình riêng tư trên Windows đã được thực thi.

Danh sách hồ sơ quyền được quản lý yêu cầu Codex 0.138.0 trở lên. Codex 0.137.0 trở về trước bỏ qua allowed_permission_profilesdefault_permissions được quản lý.

Sử dụng allowed_sandbox_modes cùng với sandbox_mode. Đối với các bản triển khai hồ sơ quyền, hãy sử dụng allowed_permission_profiles cùng với default_permissions được quản lý.

Bảng [models.new_thread] cung cấp các giá trị mặc định được quản lý, không phải cơ chế thực thi. Các lựa chọn khởi chạy tường minh từ cờ CLI chuyên dụng hoặc giá trị ghi đè --config sẽ được ưu tiên. Giá trị ghi đè tường minh cho mô hình hoặc mức độ suy luận sẽ bỏ qua cả hai trường mô hình được quản lý; service_tier hoạt động độc lập.

<ConfigTable options={[ { key: "sqlite_home", type: "string (path)", description: "Thực thi thư mục nơi Codex lưu trạng thái thời gian chạy dựa trên SQLite.", }, { key: "log_dir", type: "string (path)", description: "Thực thi thư mục nơi Codex ghi các tệp nhật ký cục bộ.", }, { key: "model_catalog_json", type: "string (path)", description: "Thực thi danh mục mô hình JSON mà Codex sử dụng khi khởi động.", }, { key: "check_for_update_on_startup", type: "boolean", description: "Thực thi việc Codex có kiểm tra bản cập nhật khi khởi động hay không.", }, { key: "allow_login_shell", type: "boolean", description: "Thực thi việc các công cụ shell có thể khởi động login shell hay không.", }, { key: "feedback", type: "table", description: "Các thiết lập phản hồi được quản lý.", }, { key: "feedback.enabled", type: "boolean", description: "Thực thi việc người dùng có thể gửi phản hồi trên các máy khách Codex hay không.", }, { key: "allowed_approval_policies", type: "array", description: "Các giá trị được phép cho approval_policy (ví dụ: untrusted, on-request, nevergranular).", }, { key: "allowed_approvals_reviewers", type: "array", description: "Các giá trị được phép cho approvals_reviewer, chẳng hạn như userauto_review.", }, { key: "guardian_policy_config", type: "string", description: "Chỉ dẫn chính sách Markdown được quản lý cho quy trình đánh giá tự động. Thiết lập này được ưu tiên hơn [auto_review].policy cục bộ. Các giá trị trống sẽ bị bỏ qua.", }, { key: "allowed_permission_profiles", type: "table", description: "Danh sách đầy đủ các hồ sơ quyền được phép. Các hồ sơ được đặt thành true sẽ được phép. Các hồ sơ bị bỏ qua hoặc được đặt thành false sẽ bị từ chối, bao gồm cả hồ sơ được thêm trong các phiên bản tương lai. Khi kết hợp các nguồn yêu cầu, các mục được đối chiếu theo tên hồ sơ.", }, { key: "allowed_permission_profiles.", type: "boolean", description: "Cho phép hoặc từ chối một hồ sơ quyền tích hợp sẵn hay tùy chỉnh được định nghĩa trong cấu hình hoặc nguồn yêu cầu đã tải. Một nguồn yêu cầu có độ ưu tiên cao hơn và xuất hiện sau có thể sử dụng false để tắt hồ sơ được nguồn có độ ưu tiên thấp hơn và xuất hiện trước cho phép.", }, { key: "default_permissions", type: "string", description: "Hồ sơ quyền mặc định được quản lý. Hồ sơ phải được allowed_permission_profiles cho phép. Hãy đặt giá trị này tường minh để có hành vi có thể dự đoán; nếu bị bỏ qua, Codex chỉ mặc định thành :workspace khi cả :workspace:read-only đều được cho phép tường minh.", }, { key: "enforce_residency", type: "string", description: "Yêu cầu lưu lượng dịch vụ Codex sử dụng một khu vực lưu trú dữ liệu được hỗ trợ. Hiện chấp nhận us.", }, { key: "models", type: "table", description: "Giá trị mặc định của mô hình được quản lý cho các luồng mới. Các giá trị này được ưu tiên hơn giá trị mặc định của người dùng và dự án, nhưng lựa chọn tường minh cho luồng mới có thể ghi đè chúng.", }, { key: "models.new_thread", type: "table", description: "Các giá trị mặc định sẽ áp dụng khi một luồng cục bộ mới bắt đầu. Mỗi thiết lập mô hình đều không bắt buộc.", }, { key: "models.new_thread.model", type: "string", description: "Mô hình mặc định cho các luồng mới. Giá trị ghi đè --model hoặc --config về mô hình/suy luận được chỉ định tường minh sẽ được ưu tiên.", }, { key: "models.new_thread.model_reasoning_effort", type: "string", description: "Mức độ suy luận mặc định cho các luồng mới. Giá trị ghi đè tường minh về mô hình hoặc mức độ suy luận sẽ bỏ qua cả hai trường mô hình được quản lý.", }, { key: "models.new_thread.service_tier", type: "string", description: "Cấp dịch vụ mặc định cho các luồng mới. Giá trị ghi đè cấp dịch vụ tường minh được ưu tiên độc lập với các trường mô hình.", }, { key: "permissions", type: "table", description: "Các hồ sơ quyền do quản trị viên định nghĩa, được lập chỉ mục theo tên hồ sơ. Sử dụng cùng các trường hồ sơ như config.toml.", }, { key: "permissions.", type: "table", description: "Hồ sơ quyền do quản trị viên định nghĩa. Tên không được bắt đầu bằng :, sử dụng tên dành riêng filesystem hoặc trùng với hồ sơ từ cấu hình đã tải. Sử dụng cùng các trường hồ sơ như config.toml; hãy xem hướng dẫn Quyền để biết schema hồ sơ đầy đủ.", }, { key: "allowed_sandbox_modes", type: "array", description: "Các giá trị được phép cho sandbox_mode.", }, { key: "windows", type: "table", description: "Các yêu cầu sandbox gốc trên Windows.", }, { key: "windows.allowed_sandbox_implementations", type: "array", description: "Các cách triển khai sandbox gốc trên Windows được phép cho windows.sandbox (elevatedunelevated). Danh sách không được để trống. Khi cả hai đều được phép và chưa chọn chế độ, Codex ưu tiên elevated.", }, { key: "windows.sandbox_private_desktop", type: "boolean", description: "Thực thi việc sandbox gốc trên Windows có khởi động tiến trình con trên một màn hình riêng tư hay không.", }, { key: "remote_sandbox_config", type: "array

", description: "Các yêu cầu sandbox dành riêng cho máy chủ. Mục đầu tiên có hostname_patterns khớp với tên máy chủ đã phân giải sẽ ghi đè allowed_sandbox_modes cấp cao nhất cho nguồn yêu cầu đó. Hiện tại, các mục dành riêng cho máy chủ chỉ ghi đè chế độ sandbox.", }, { key: "remote_sandbox_config[].hostname_patterns", type: "array", description: "Các mẫu tên máy chủ không phân biệt chữ hoa chữ thường. Hỗ trợ * cho chuỗi ký tự bất kỳ và ? cho một ký tự.", }, { key: "remote_sandbox_config[].allowed_sandbox_modes", type: "array", description: "Các chế độ sandbox được phép áp dụng khi mục dành riêng cho máy chủ này khớp.", }, { key: "allowed_web_search_modes", type: "array", description: "Các giá trị được phép cho web_search (disabled, cached, indexed, live). disabled luôn được phép; danh sách trống trên thực tế chỉ cho phép disabled.", }, { key: "allow_managed_hooks_only", type: "boolean", description: "Khi là true, Codex bỏ qua hook của người dùng, dự án, phiên và plugin, nhưng vẫn cho phép hook được quản lý từ requirements.toml và các lớp cấu hình được quản lý khác.", }, { key: "allow_appshots", type: "boolean", description: "Đặt thành false để vô hiệu hóa Appshots đối với người dùng được quản lý. Nếu bị bỏ qua, Appshots không bị các yêu cầu ràng buộc và tuân theo trạng thái sẵn có thông thường của sản phẩm.", }, { key: "allow_remote_control", type: "boolean", description: "Đặt thành false để vô hiệu hóa tính năng điều khiển thiết bị từ xa đối với người dùng được quản lý. Nếu bị bỏ qua, tính năng điều khiển thiết bị từ xa không bị các yêu cầu ràng buộc và tuân theo trạng thái sẵn có thông thường của sản phẩm.", }, { key: "features.plugin_sharing", type: "boolean", description: "Đặt thành false trong requirements.toml được quản lý trên đám mây để vô hiệu hóa việc chia sẻ trong không gian làm việc đối với các plugin được tạo cục bộ.", }, { key: "features", type: "table", description: "Các giá trị tính năng được cố định. Sử dụng tên chuẩn từ config.toml cho các tính năng thời gian chạy; các khóa yêu cầu chỉ dành cho ứng dụng đã được ghi trong tài liệu cũng được hỗ trợ tại đây.", }, { key: "features.", type: "boolean", description: "Yêu cầu một tính năng thời gian chạy hoặc ứng dụng đã được ghi trong tài liệu luôn ở trạng thái bật hoặc tắt.", }, { key: "features.apps", type: "boolean", description: "Cố định trạng thái bật hoặc tắt của khả năng tích hợp Apps đối với người dùng được quản lý.", }, { key: "features.in_app_updates", type: "boolean", description: "Đặt thành false trong requirements.toml để vô hiệu hóa cập nhật trong ứng dụng. Cập nhật vẫn được bật theo mặc định khi yêu cầu này bị bỏ qua.", }, { key: "features.in_app_browser", type: "boolean", description: "Đặt thành false trong requirements.toml để vô hiệu hóa ngăn trình duyệt tích hợp.", }, { key: "features.browser_use", type: "boolean", description: "Đặt thành false trong requirements.toml để vô hiệu hóa Computer Use trong trình duyệt và khả năng sử dụng Browser Agent.", }, { key: "features.browser_use_external", type: "boolean", description: "Đặt thành false trong requirements.toml để vô hiệu hóa Computer Use trong các trình duyệt bên ngoài.", }, { key: "features.browser_use_full_cdp_access", type: "boolean", description: "Đặt thành false trong requirements.toml để vô hiệu hóa quyền truy cập đầy đủ vào Chrome DevTools Protocol trong môi trường chạy cục bộ, bao gồm chế độ Browser Developer, đồng thời ngăn ứng dụng ChatGPT dành cho máy tính bật thiết lập tương ứng. Nếu bị bỏ qua, trạng thái sẵn có thông thường của sản phẩm sẽ được áp dụng.", }, { key: "features.fast_mode", type: "boolean", description: "Cố định tính năng chuẩn fast_mode ở trạng thái bật hoặc tắt đối với người dùng được quản lý.", }, { key: "features.guardian_approval", type: "boolean", description: "Cố định trạng thái bật hoặc tắt của khả năng phê duyệt Guardian đối với người dùng được quản lý.", }, { key: "features.memories", type: "boolean", description: "Cố định trạng thái bật hoặc tắt của Memories đối với người dùng được quản lý.", }, { key: "features.multi_agent", type: "boolean", description: "Cố định trạng thái bật hoặc tắt của tính năng đa tác nhân đối với người dùng được quản lý.", }, { key: "features.plugins", type: "boolean", description: "Cố định trạng thái bật hoặc tắt của plugin đối với người dùng được quản lý.", }, { key: "features.remote_plugin", type: "boolean", description: "Cố định trạng thái bật hoặc tắt của danh mục plugin từ xa đối với người dùng được quản lý.", }, { key: "features.computer_use", type: "boolean", description: "Đặt thành false trong requirements.toml để vô hiệu hóa Computer Use, Record & Replay và các quy trình cài đặt hoặc kích hoạt liên quan.", }, { key: "features.workspace_dependencies", type: "boolean", description: "Cố định trạng thái bật hoặc tắt của môi trường chạy phần phụ thuộc không gian làm việc đi kèm đối với người dùng được quản lý.", }, { key: "computer_use", type: "table", description: "Các yêu cầu Computer Use được thực thi từ requirements.toml.", }, { key: "computer_use.allow_locked_computer_use", type: "boolean", description: "Đặt thành false để ngăn Computer Use hoạt động sau khi thiết bị macOS được quản lý bị khóa. Nếu bị bỏ qua, việc sử dụng khi thiết bị bị khóa không bị các yêu cầu ràng buộc.", }, { key: "experimental_network", type: "table", description: "Các yêu cầu truy cập mạng được thực thi từ requirements.toml. Các ràng buộc này tách biệt với features.network_proxy và có thể cấu hình mạng trong sandbox mà không cần cờ tính năng của người dùng.", }, { key: "experimental_network.enabled", type: "boolean", description: "Bật các yêu cầu mạng trong sandbox. Thiết lập này không cấp quyền truy cập mạng khi sandbox đang hoạt động vẫn tắt khả năng kết nối mạng của lệnh.", }, { key: "experimental_network.http_port", type: "integer", description: "Cổng trình lắng nghe HTTP loopback dùng cho các yêu cầu [experimental_network].", }, { key: "experimental_network.socks_port", type: "integer", description: "Cổng trình lắng nghe SOCKS5 loopback dùng cho các yêu cầu [experimental_network].", }, { key: "experimental_network.allow_upstream_proxy", type: "boolean", description: "Cho phép mạng trong sandbox nối tiếp qua một proxy thượng nguồn từ môi trường.", }, { key: "experimental_network.dangerously_allow_non_loopback_proxy", type: "boolean", description: "Cho phép địa chỉ trình lắng nghe không phải loopback cho các yêu cầu [experimental_network]. Việc bật tùy chọn này có thể làm lộ các trình lắng nghe ra ngoài localhost.", }, { key: "experimental_network.dangerously_allow_all_unix_sockets", type: "boolean", description: "Cho phép đích Unix socket bất kỳ thay vì chỉ truy cập theo danh sách cho phép. Chỉ sử dụng trong các môi trường được kiểm soát chặt chẽ.", }, { key: "experimental_network.domains", type: "map<string, allow | deny>", description: "Chính sách miền dạng ánh xạ của quản trị viên dành cho mạng trong sandbox. Hỗ trợ máy chủ khớp chính xác, *.example.com chỉ cho miền con, **.example.com cho miền gốc cùng các miền con và quy tắc cho phép toàn cục *; nên ưu tiên các quy tắc có phạm vi giới hạn vì * mở rộng quyền truy cập công khai ra bên ngoài. deny được ưu tiên khi có xung đột. Không kết hợp thiết lập này với experimental_network.allowed_domains hoặc experimental_network.denied_domains.", }, { key: "experimental_network.allowed_domains", type: "array", description: "Các quy tắc cho phép dạng danh sách của quản trị viên dành cho mạng trong sandbox. Không kết hợp thiết lập này với experimental_network.domains.", }, { key: "experimental_network.denied_domains", type: "array", description: "Các quy tắc từ chối dạng danh sách của quản trị viên dành cho mạng trong sandbox. Không kết hợp thiết lập này với experimental_network.domains.", }, { key: "experimental_network.managed_allowed_domains_only", type: "boolean", description: "Khi là true, chỉ các quy tắc cho phép do quản trị viên quản lý còn hiệu lực trong lúc các yêu cầu mạng trong sandbox đang hoạt động; các mục người dùng thêm vào danh sách cho phép sẽ bị bỏ qua. Nếu không có quy tắc cho phép được quản lý, các quy tắc cho phép miền do người dùng thêm sẽ không còn hiệu lực.", }, { key: "experimental_network.unix_sockets", type: "map<string, allow | deny>", description: "Chính sách Unix socket do quản trị viên quản lý dành cho mạng trong sandbox.", }, { key: "experimental_network.allow_local_binding", type: "boolean", description: "Cho phép quyền truy cập mạng cục bộ/riêng tư rộng hơn đối với mạng trong sandbox. Các quy tắc cho phép khớp chính xác với IP cục bộ dạng literal hoặc localhost vẫn có thể cho phép các đích cục bộ cụ thể khi giá trị này vẫn là false.", }, { key: "hooks", type: "table", description: "Các hook vòng đời được quản lý và do quản trị viên thực thi. Yêu cầu một thư mục hook được quản lý và sử dụng cùng schema sự kiện như [hooks] nội tuyến trong config.toml.", }, { key: "hooks.managed_dir", type: "string (absolute path)", description: "Thư mục chứa các tập lệnh hook được quản lý trên macOS và Linux. Codex xác thực rằng đây là đường dẫn tuyệt đối và tồn tại trước khi tải các hook được quản lý.", }, { key: "hooks.windows_managed_dir", type: "string (absolute path)", description: "Thư mục chứa các tập lệnh hook được quản lý trên Windows. Codex xác thực rằng đây là đường dẫn tuyệt đối và tồn tại trước khi tải các hook được quản lý.", }, { key: "hooks.", type: "array
", description: "Các nhóm đối sánh cho một sự kiện hook như PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, SubagentStart, SubagentStop, UserPromptSubmit hoặc Stop.", }, { key: "hooks.[].hooks", type: "array
", description: "Các trình xử lý hook cho một nhóm đối sánh. Hook lệnh hiện được hỗ trợ; trình xử lý hook lời nhắc và tác nhân được phân tích cú pháp nhưng bị bỏ qua.", }, { key: "hooks.[].hooks[].commandWindows", type: "string", description: "Giá trị ghi đè lệnh chỉ dành cho Windows đối với hook lệnh. Bí danh TOML command_windows cũng được chấp nhận.", }, { key: "permissions.filesystem.deny_read", type: "array", description: "Các lệnh cấm đọc hệ thống tệp do quản trị viên thực thi. Mục nhập có thể là đường dẫn hoặc mẫu glob và người dùng không thể nới lỏng chúng bằng cấu hình cục bộ.", }, { key: "mcp_servers", type: "table", description: "Danh sách cho phép các máy chủ MCP có thể được bật. Cả tên máy chủ (<id>) và danh tính của máy chủ đều phải khớp thì máy chủ MCP mới được bật. Mọi máy chủ MCP đã cấu hình nhưng không có trong danh sách cho phép (hoặc có danh tính không khớp) đều bị vô hiệu hóa.", }, { key: "mcp_servers..identity", type: "table", description: "Quy tắc danh tính cho một máy chủ MCP. Đặt command (stdio) hoặc url (HTTP có thể truyền phát).", }, { key: "mcp_servers..identity.command", type: "string | table", description: "Cho phép máy chủ MCP stdio bằng chuỗi lệnh khớp chính xác hoặc sử dụng bảng đối sánh để yêu cầu tệp thực thi khớp chính xác cùng các bộ đối sánh đối số có thứ tự. Dạng chuỗi không kiểm tra đối số, cwd, env hoặc env_vars.", }, { key: "mcp_servers..identity.command.executable", type: "string", description: "Tệp thực thi mà command đã cấu hình của máy chủ stdio phải khớp chính xác.", }, { key: "mcp_servers..identity.command.args", type: "array
", description: "Các bộ đối sánh đối số có thứ tự cho máy chủ stdio. Danh sách đối số đã cấu hình phải có cùng độ dài và mọi vị trí đều phải khớp. Bộ đối sánh lệnh không kiểm tra cwd, env hoặc env_vars.", }, { key: "mcp_servers..identity.command.args[].match", type: "exact | prefix | regex", description: "Phép đối sánh cho vị trí đối số này.", }, { key: "mcp_servers..identity.command.args[].value", type: "string", description: "Giá trị được bộ đối sánh đối số exact hoặc prefix sử dụng.", }, { key: "mcp_servers..identity.command.args[].expression", type: "string", description: "Biểu thức chính quy được bộ đối sánh đối số regex sử dụng. Biểu thức phải hợp lệ và khớp với toàn bộ giá trị đối số.", }, { key: "mcp_servers..identity.url", type: "string | table", description: "Cho phép máy chủ MCP HTTP có thể truyền phát bằng chuỗi URL khớp chính xác hoặc sử dụng bảng đối sánh giá trị exact, prefix hoặc regex.", }, { key: "mcp_servers..identity.url.match", type: "exact | prefix | regex", description: "Phép đối sánh cho URL máy chủ MCP đã cấu hình.", }, { key: "mcp_servers..identity.url.value", type: "string", description: "Giá trị được bộ đối sánh URL exact hoặc prefix sử dụng.", }, { key: "mcp_servers..identity.url.expression", type: "string", description: "Biểu thức chính quy được bộ đối sánh URL regex sử dụng. Biểu thức phải hợp lệ và khớp với toàn bộ giá trị URL.", }, { key: "plugins", type: "table", description: "Danh sách cho phép máy chủ MCP dành riêng cho plugin, được lập chỉ mục theo mã định danh plugin. Khi bảng này hiện diện, các máy chủ đi kèm plugin không có mục plugin và máy chủ tương ứng sẽ bị vô hiệu hóa.", }, { key: "plugins..mcp_servers", type: "table", description: "Danh sách cho phép các máy chủ MCP đi kèm một plugin. Yêu cầu đối với máy chủ plugin sử dụng cùng các dạng danh tính chính xác và bộ đối sánh như yêu cầu mcp_servers cấp cao nhất.", }, { key: "plugins..mcp_servers..identity", type: "table", description: "Quy tắc danh tính cho một máy chủ MCP đi kèm plugin. Đặt command (stdio) hoặc url (HTTP có thể truyền phát).", }, { key: "plugins..mcp_servers..identity.command", type: "string | table", description: "Cho phép máy chủ MCP stdio của plugin bằng chuỗi lệnh khớp chính xác hoặc sử dụng bảng đối sánh để yêu cầu tệp thực thi khớp chính xác cùng các bộ đối sánh đối số có thứ tự.", }, { key: "plugins..mcp_servers..identity.command.executable", type: "string", description: "Tệp thực thi mà lệnh đã cấu hình của máy chủ stdio đi kèm plugin phải khớp chính xác.", }, { key: "plugins..mcp_servers..identity.command.args", type: "array
", description: "Các bộ đối sánh đối số có thứ tự cho máy chủ stdio đi kèm plugin. Danh sách đối số đã cấu hình phải có cùng độ dài và mọi vị trí đều phải khớp.", }, { key: "plugins..mcp_servers..identity.command.args[].match", type: "exact | prefix | regex", description: "Phép đối sánh cho vị trí đối số này.", }, { key: "plugins..mcp_servers..identity.command.args[].value", type: "string", description: "Giá trị được bộ đối sánh đối số exact hoặc prefix sử dụng.", }, { key: "plugins..mcp_servers..identity.command.args[].expression", type: "string", description: "Biểu thức chính quy được bộ đối sánh đối số regex sử dụng. Biểu thức phải khớp với toàn bộ giá trị đối số.", }, { key: "plugins..mcp_servers..identity.url", type: "string | table", description: "Cho phép máy chủ MCP HTTP có thể truyền phát của plugin bằng chuỗi URL khớp chính xác hoặc sử dụng bảng đối sánh giá trị exact, prefix hoặc regex.", }, { key: "plugins..mcp_servers..identity.url.match", type: "exact | prefix | regex", description: "Phép đối sánh cho URL máy chủ MCP đi kèm plugin.", }, { key: "plugins..mcp_servers..identity.url.value", type: "string", description: "Giá trị được bộ đối sánh URL exact hoặc prefix sử dụng.", }, { key: "plugins..mcp_servers..identity.url.expression", type: "string", description: "Biểu thức chính quy được bộ đối sánh URL regex sử dụng. Biểu thức phải khớp với toàn bộ giá trị URL.", }, { key: "marketplaces", type: "table", description: "Các yêu cầu của quản trị viên đối với nguồn chợ plugin. Các quy tắc có hiệu lực khi restrict_to_allowed_sourcestrue.", }, { key: "marketplaces.restrict_to_allowed_sources", type: "boolean", description: "Khi là true, yêu cầu các nguồn chợ do người dùng cấu hình phải khớp với allowed_sources đối với thao tác thêm chợ, cài đặt plugin và làm mới chợ Git đã cấu hình. Các chợ OpenAI do Codex quản lý vẫn được phép khi nguồn và tên dành riêng của chúng khớp. Thiết lập này không lọc các chợ của người dùng đã được cấu hình tại thời gian chạy.", }, { key: "marketplaces.allowed_sources", type: "table", description: "Các nguồn chợ được phép, được lập chỉ mục theo tên quy tắc do quản trị viên chọn. Các tên riêng biệt được tích lũy qua các lớp yêu cầu; các trường dưới cùng một tên tuân theo thứ tự ưu tiên lớp thông thường.", }, { key: "marketplaces.allowed_sources.", type: "table", description: "Một quy tắc nguồn được phép. Giá trị source cuối cùng sau khi hợp nhất yêu cầu quyết định các trường cùng cấp mà Codex diễn giải.", }, { key: "marketplaces.allowed_sources..source", type: "git | host_pattern | local", description: "Loại bộ đối sánh nguồn chợ. Sử dụng git cho một kho lưu trữ, host_pattern cho các máy chủ Git được đối sánh bằng biểu thức chính quy hoặc local cho một thư mục.", }, { key: "marketplaces.allowed_sources..url", type: "string", description: 'URL kho lưu trữ Git bắt buộc khi là source = "git". Codex chuẩn hóa URL đã cấu hình và URL được phép trước khi yêu cầu kho lưu trữ khớp chính xác.', }, { key: "marketplaces.allowed_sources..ref", type: "string", description: "Git ref chính xác, không bắt buộc, cho quy tắc git. Khi bị bỏ qua, quy tắc cho phép mọi ref của kho lưu trữ tương ứng.", }, { key: "marketplaces.allowed_sources..host_pattern", type: "string", description: 'Biểu thức chính quy bắt buộc khi là source = "host_pattern". Codex đối sánh biểu thức này với tên máy chủ viết thường được phân tích từ nguồn Git kiểu HTTPS, SSH hoặc SCP. Sử dụng ^$ để yêu cầu khớp toàn bộ tên máy chủ.', }, { key: "marketplaces.allowed_sources..path", type: "string (absolute path)", description: 'Thư mục chợ cục bộ bắt buộc khi là source = "local". Codex yêu cầu đường dẫn tuyệt đối và so sánh các đường dẫn sau khi chuẩn hóa.', }, { key: "apps", type: "table", description: "Các yêu cầu ứng dụng được quản lý, được lập chỉ mục theo mã định danh ứng dụng. Yêu cầu có thể vô hiệu hóa một ứng dụng hoặc ràng buộc hành vi phê duyệt cho từng công cụ.", }, { key: "apps..enabled", type: "boolean", description: "Đặt thành false để vô hiệu hóa một ứng dụng. Yêu cầu vô hiệu hóa vẫn giữ tính hạn chế khi nhiều nguồn yêu cầu được hợp nhất.", }, { key: "apps..tools..approval_mode", type: "auto | prompt | writes | approve", description: "Đặt chế độ phê duyệt được quản lý cho một công cụ ứng dụng.", }, { key: "rules", type: "table", description: "Các quy tắc lệnh do quản trị viên thực thi được hợp nhất với các tệp .rules. Quy tắc yêu cầu phải có tính hạn chế.", }, { key: "rules.prefix_rules", type: "array
", description: "Danh sách các quy tắc tiền tố được thực thi. Mỗi quy tắc phải bao gồm patterndecision.", }, { key: "rules.prefix_rules[].pattern", type: "array
", description: "Tiền tố lệnh được biểu diễn dưới dạng các token mẫu. Mỗi token đặt token hoặc any_of.", }, { key: "rules.prefix_rules[].pattern[].token", type: "string", description: "Một token literal duy nhất tại vị trí này.", }, { key: "rules.prefix_rules[].pattern[].any_of", type: "array", description: "Danh sách các token thay thế được phép tại vị trí này.", }, { key: "rules.prefix_rules[].decision", type: "prompt | forbidden", description: "Bắt buộc. Quy tắc yêu cầu chỉ có thể nhắc phê duyệt hoặc cấm (không thể cho phép).", }, { key: "rules.prefix_rules[].justification", type: "string", description: "Lý do không trống, không bắt buộc, được hiển thị trong lời nhắc phê duyệt hoặc thông báo từ chối.", }, ]} client:load />