配置 (Config)
Codex 支持多种方式来设置配置值:
特定的命令行参数,例如
--model o3
(优先级最高)。通用的
-c
/--config
参数,接受key=value
对,例如--config model="o3"
。- key 可以包含点号,用于设置嵌套的值,例如:
--config model_providers.openai.wire_api="chat"
。 为了与
config.toml
一致,值是 TOML 格式,而不是 JSON。例如应写作key='{a = 1, b = 2}'
,而不是key='{"a": 1, "b": 2}'
。- 外层引号是必须的,否则 shell 会在空格处分割参数,导致 Codex 收到错误的值。
值可以是任意 TOML 对象,例如:
--config shell_environment_policy.include_only='["PATH", "HOME", "USER"]'
如果
value
不是合法 TOML,会被当作字符串。例如:-c model='"o3"'
和-c model=o3
等效。-c key="true"
会被解析为布尔值true
,如果需要字符串"true"
,则写成-c key='"true"'
。
- key 可以包含点号,用于设置嵌套的值,例如:
$CODEX_HOME/config.toml
配置文件,其中CODEX_HOME
默认路径是~/.codex
。 (注意:CODEX_HOME
也是 Codex 存储日志和运行时数据的目录。)
示例配置 (Examples)
TOML 配置文件
model = "o3"
temperature = 0.2
[model_providers.openai]
api_key = "sk-xxxxxx"
wire_api = "chat"
JSON 配置(通过 —config 传入)
codex --config model='"o3"' \
--config temperature=0.2 \
--config model_providers.openai.api_key='"sk-xxxxxx"' \
--config model_providers.openai.wire_api='"chat"'
Python 脚本动态配置
import os
import json
# 设置环境变量
os.environ["CODEX_HOME"] = "/home/user/.codex"
# 动态生成 JSON 配置
config = {
"model": "o3",
"temperature": 0.2,
"model_providers": {
"openai": {
"api_key": "sk-xxxxxx",
"wire_api": "chat"
}
}
}
print(json.dumps(config, indent=2))
日志 (Logging)
Codex 会将日志写入 $CODEX_HOME/logs/
。
你可以通过设置 RUST_LOG
环境变量来调整日志级别,例如:
RUST_LOG=debug codex
模型提供者 (Model Providers)
Codex 支持多个模型提供者。每个 provider 都可以在 config.toml
里配置。
示例:
[model_providers.openai]
api_key = "sk-xxxxxx"
wire_api = "chat"
你也可以配置多个 provider 并切换使用:
[model_providers.anthropic]
api_key = "sk-yyyyyy"
[model_providers.openai]
api_key = "sk-xxxxxx"
Shell 策略 (Shell Policies)
Codex 可以执行 shell 命令。你可以通过策略限制环境变量或命令。
示例:只允许传递部分环境变量:
[shell_environment_policy]
include_only = ["PATH", "HOME", "USER"]
示例:阻止危险命令:
[shell_command_policy]
deny = ["rm -rf /", "shutdown", "reboot"]
代理 (Proxies)
Codex 可以使用代理。示例配置:
[proxy]
http = "http://localhost:7890"
https = "http://localhost:7890"
缓存 (Cache)
Codex 会缓存模型的响应。你可以在配置文件里启用/禁用:
[cache]
enabled = true
dir = "~/.codex/cache"
安全 (Security)
你可以启用安全模式,禁止某些高风险操作:
[security]
sandbox_enabled = true
API 服务器 (API Server)
Codex 也可以作为 API 服务器运行:
[server]
enabled = true
host = "127.0.0.1"
port = 8080
启动:
codex server