首页
看点啥
插画图片
首页 看点啥 Codex config.toml配置实战手册

Codex config.toml配置实战手册

2026-07-18 0

Codex 桌面应用实际配置,逐项说明每个配置项的作用、触发场景和验证方法。

一、引言

Codex 桌面应用的配置文件 ~/.codex/config.toml 控制着 Agent 的核心行为。本文档记录当前环境的完整配置状态,帮助快速定位问题、理解能力边界。

适用场景:

预期收获: 读完本文档,你能:

  1. 快速定位任意配置项的作用和验证方法
  2. 理解 Feature Flags 如何影响 Agent 的工具集
  3. 知道哪些配置是"被动生效"、哪些需要"主动触发"

二、配置文件概览

2.1 文件位置与格式

~/.codex/config.toml

2.2 当前配置结构

# 全局配置
model_provider = "custom"
model = "qwen3.7-max"
web_search = "cached"
personality = "friendly"
# 模型提供商
[model_providers.custom]
...
# MCP 服务器(17 个)
[mcp_servers.node_repl]
[mcp_servers.brave-search]
...
# 插件(14 个)
[plugins."browser@openai-bundled"]
...
# 功能开关(11 个)
[features]
multi_agent = true
...

三、全局配置项详解

3.1 模型与推理配置

配置项当前值作用何时触发
model_provider"custom"指定模型提供商每次会话启动时
model"qwen3.7-max"默认模型新会话自动使用
model_reasoning_effort"high"推理力度(low/medium/high/xhigh)模型支持推理时
disable_response_storagetrue禁止存储响应内容隐私敏感场景

验证方法:

# 检查当前生效的模型
codex --version
# 或在会话中输入 /model 查看

[!NOTE]
model_reasoning_effort = "high" 会消耗更多 token,复杂任务建议保持 high。如果代&理不支持 reasoning 参数,会被忽略,不会报错。

3.2 网络搜索与个性化

配置项当前值作用触发场景
web_search"cached"网络搜索模式Codex 需要查询外部信息时
personality"friendly"交流风格所有会话自动应用

web_search 三种模式对比:

模式数据源风险适用场景
cachedOpenAI 维护的缓存索引低,减少外部注入推荐日常使用
live实时网络获取中,可能注入广告/无关内容需要最新信息时
disabled关闭搜索工具纯本地任务

personality 三种风格:

风格特点示例
friendly友好、温暖,有温度“我来帮你看看这个配置…”
pragmatic务实、简洁,直奔主题“配置项作用是 X,验证方法 Y。”
"none"禁用个性化,纯工具“作用:X。验证:Y。”

四、Feature Flags 详解

Feature Flags 是 Codex 的能力开关,控制哪些工具和机制可用。

4.1 当前状态总览

[features]
computer_use = true      # 计算机控制
js_repl = false          # JS REPL(关闭)
goals = true             # 目标管理
multi_agent = true       # 子 Agent 协作
hooks = true             # 生命周期钩子
shell_snapshot = true    # Shell 快照加速
fast_mode = true         # 快速模式
undo = true              # Git Ghost 撤销
personality = true       # 个性化控件
apps = true              # ChatGPT Apps/Connectors
memories = true          # 跨会话记忆

4.2 multi_agent(子 Agent 协作)

作用: 启用 spawn_agentwait_agentclose_agent 三个工具,允许 Codex 派生子 Agent 并行执行任务。

何时触发:

典型场景:

用户:实现一个用户登录功能,包括前端表单、后端接口、数据库设计。

Codex 主 Agent:
  → spawn_agent("前端表单", task_description)
  → spawn_agent("后端接口", task_description)
  → spawn_agent("数据库设计", task_description)
  → wait_agent(所有子 Agent)
  → 汇总结果

验证方法:

  1. 重启 Codex 后,在会话中请求一个多文件任务
  2. 观察是否有多个子 Agent 并行工作
  3. 或在终端输入 /tools 查看工具列表,应包含 spawn_agent

4.3 hooks(生命周期钩子)

作用: 在工具调用前后、会话启动时执行自定义脚本。

当前已配置的钩子:

插件事件作用
claude-memPreToolUse工具调用前检查
claude-memPostToolUse工具调用后记录
claude-memSessionStart会话启动时加载记忆
claude-memUserPromptSubmit用户提交 prompt 时处理
claude-memStop会话结束时保存
superpowersSessionStart加载 superpowers 指令

验证方法:

# 查看已信任的钩子
grep -A 5 "[hooks.state]" ~/.codex/config.toml

[!TIP]
钩子脚本需要被信任后才会执行。使用 /hooks 命令可以查看、审查、信任钩子。

4.4 shell_snapshot(Shell 快照加速)

作用: 首次执行某个命令时快照 shell 环境,后续相同命令直接复用,启动更快。

何时触发: 自动触发,无感。

性能提升示例:

第一次执行 ls -la:
  - 初始化 shell 环境:~200ms
  - 执行命令:~50ms
  - 总计:~250ms

第二次执行 ls -la:
  - 复用快照:~10ms
  - 执行命令:~50ms
  - 总计:~60ms(提速 4x)

验证方法:

4.5 fast_mode(快速模式)

作用: 使用 service_tier = "fast" 的模型层,响应更快、成本更低。

何时触发: 自动触发,适用于简单任务。

[!NOTE]
如果当前代&理不支持该参数,会被忽略。复杂推理任务仍会使用 model_reasoning_effort 配置的力度。

4.6 undo(Git Ghost 撤销)

作用: 每次编辑文件前做一次 git ghost 快照,支持回滚到任意历史状态。

何时触发:

工作原理:

验证方法:

  1. 让 Codex 修改一个文件
  2. 说"撤销刚才的改动"
  3. 观察文件是否恢复到修改前

[!WARNING]
Ghost 快照不会出现在 git log 中。重启 Codex 后,之前的快照会丢失。

4.7 personality(个性化控件)

作用: 启用个性化交流风格,根据 personality = "friendly" 调整输出。

何时触发: 所有会话自动应用。

验证方法: 对比 personality = "none" 时的输出风格差异。

4.8 apps(ChatGPT Apps/Connectors)

作用: 启用 ChatGPT Apps 和 Connectors 支持,使 Figma、Canva 等插件的工具可用。

何时触发:

当前依赖 apps 的插件:

插件作用
figma@openai-api-curatedFigma 设计文件操作
claude-mem@claude-mem-local跨会话记忆(部分功能)

验证方法:

  1. 在会话中请求使用 Figma
  2. 观察是否有 Figma 相关工具可用
  3. 或输入 /tools 查看工具列表

4.9 memories(跨会话记忆)

作用: 从历史会话中提取有用的上下文(技术栈、项目规范、踩过的坑),在新会话中自动注入。

何时触发:

记忆内容示例:

技术栈偏好:
- 用户喜欢用 Spring Boot + MyBatis
- 数据库偏好 MySQL 8.0
- 前端使用 Vue 3 + Element Plus

项目规范:
- commit message 使用 Conventional Commits
- 代码风格遵循 Google Java Style
- 测试覆盖率要求 ≥ 80%

踩过的坑:
- Redis 连接池默认大小不够,建议 10+
- MyBatis 的 resultMap 映射容易漏字段

验证方法:

  1. 新开一个会话
  2. 问 Codex “你还记得我之前项目的技术栈吗?”
  3. 观察是否能回忆起历史信息

[!IMPORTANT]
记忆是异步生成的,不是每个会话结束都会更新。敏感信息会被自动脱敏。可以通过 /memories 控制当前会话是否使用/生成记忆。

4.10 computer_use(计算机控制)

作用: 允许 Codex 操作 macOS/Windows 桌面应用,包括看屏幕、点击、输入。

何时触发:

验证方法:

  1. 在会话中请求"打开计算器应用"
  2. 观察 Codex 是否能控制桌面

[!CAUTION]
需要授予屏幕录制和辅助功能权限。建议保持任务范围窄,避免误操作。

4.11 goals(目标管理)

作用: 启用目标跟踪功能,可以设定目标并追踪进度。

何时触发:

4.12 js_repl(JS REPL)

当前值: false(关闭)

作用: 启用 JavaScript REPL 工具,可以交互式执行 JS 代码。

为何关闭: 当前工作流主要使用 Python/Java,JS REPL 不是必需。如需启用,改为 true 并重启。

五、MCP 服务器配置

5.1 当前配置的 MCP 服务器

服务器用途是否必需
node_replNode.js REPL内置,保留
brave-searchBrave 网络搜索缺 API Key,可能无法使用
chrome-devtoolsChrome 开发者工具调试 Web 应用时需要
context7开发者文档查询有用
feishu飞书集成有用
filesystem文件系统操作有用
githubGitHub 集成有用
mall_prod生产环境 MySQL有用
mysql-kkd-prod另一个生产 MySQL有用
mysql_dev开发环境 MySQL有用
redis-local本地 Redis有用
redis-prod生产 Redis有用
sequential-thinking顺序思考工具有用
utoolsuTools 集成有用
wechat-mcp微信集成有用

5.2 安全风险提醒

5.2.1 brave-search 缺 API Key

问题:

[mcp_servers.brave-search]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-brave-search"]
# 缺少 env 配置

影响: Brave 搜索工具无法正常工作。

解决方案(二选一):

方案 A:添加 API Key

[mcp_servers.brave-search]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-brave-search"]
[mcp_servers.brave-search.env]
BRAVE_API_KEY = "your-api-key-here"

方案 B:删除该 MCP 服务器(推荐,因为已有 web_search = "cached"

# 删除 brave-search 相关配置
sed -i '/[mcp_servers.brave-search]/,/^$/d' ~/.codex/config.toml

5.2.2 飞书 app-secret 明文

问题:

[mcp_servers.feishu]
args = [
    "-y",
    "@larksuiteoapi/lark-mcp",
    "mcp",
    "--app-id",
    "cli_a9256761dd389cc6",
    "--app-secret",
    "zBuX1x7MhvsGKgiKg2hTVh0E4w7uFsWo",  # ← 明文
]

风险: 虽然 config.toml 不进 git,但如果被其他人看到或备份到云端,会泄露。

解决方案: 使用环境变量

# 1. 设置环境变量
export FEISHU_APP_SECRET="zBuX1x7MhvsGKgiKg2hTVh0E4w7uFsWo"
# 2. 修改配置
[mcp_servers.feishu]
args = [
    "-y",
    "@larksuiteoapi/lark-mcp",
    "mcp",
    "--app-id",
    "cli_a9256761dd389cc6",
    "--app-secret",
    "${FEISHU_APP_SECRET}",  # ← 引用环境变量
]

[!NOTE]
环境变量注入需要在 [shell_environment_policy] 中配置,当前未配置此项,需要额外处理。

5.2.3 生产环境数据库密码

问题: 多个 MySQL MCP 服务器配置了生产环境密码明文。

[mcp_servers.mall_prod.env]
MYSQL_PASS = "Mall123!@#"  # ← 生产密码

[mcp_servers.mysql-kkd-prod.env]
MYSQL_PASS = "Abc123!@#"   # ← 生产密码

风险: 同上,泄露风险。

解决方案: 同飞书,使用环境变量或密钥管理工具。

六、配置速查表

6.1 快速定位问题

现象可能原因验证方法解决方案
子 Agent 工具不可用multi_agent 未启用/tools 查看添加 multi_agent = true
Figma 工具不可用apps 未启用/tools 查看添加 apps = true
无法撤销改动undo 未启用测试撤销功能添加 undo = true
新会话没有历史上下文memories 未启用问历史问题添加 memories = true
网络搜索结果质量差web_search 模式问题测试搜索改为 "cached""live"
命令执行慢shell_snapshot 未启用对比执行时间添加 shell_snapshot = true

6.2 常用命令

# 查看当前配置
cat ~/.codex/config.toml

# 备份配置
cp ~/.codex/config.toml ~/.codex/config.toml.bak

# 查看已启用的功能
grep -A 20 "[features]" ~/.codex/config.toml

# 查看已信任的钩子
grep -A 10 "[hooks.state]" ~/.codex/config.toml

# 查看 MCP 服务器列表
grep "[mcp_servers" ~/.codex/config.toml

# 查看插件列表
grep "[plugins" ~/.codex/config.toml

七、验证清单

重启 Codex 后,逐项验证:

7.1 Feature Flags 验证

#功能验证方法预期结果状态
1multi_agent请求多文件任务多个子 Agent 并行工作
2hooks启动会话claude-mem 钩子自动加载
3shell_snapshot连续执行相同命令第二次明显更快
4fast_mode简单任务响应速度正常
5undo修改文件后说"撤销"文件恢复原状
6personality观察交流风格友好、有温度
7apps使用 Figma 插件Figma 工具可用
8memories新会话问历史问题能回忆起历史信息
9computer_use请求控制桌面应用能操作桌面
10goals使用 /goal 命令目标跟踪功能可用

7.2 全局配置验证

#配置项验证方法预期结果状态
1web_search请求搜索网络信息使用缓存索引
2personality观察输出风格友好风格
3model新会话自动选择qwen3.7-max
4model_reasoning_effort复杂推理任务使用 high 力度

7.3 MCP 服务器验证

#服务器验证方法预期结果状态
1brave-search请求 Brave 搜索可能失败(缺 API Key)
2github请求查询 GitHub正常工作
3mysql_dev请求查询开发库正常工作
4redis-local请求查询本地 Redis正常工作
5feishu请求操作飞书正常工作

八、总结与建议

8.1 配置状态总结

✅ 已正确配置:

⚠️ 需要处理:

8.2 下一步建议

优先级 1(安全):

优先级 2(清理):

优先级 3(优化):

九、附录

附录 A:配置文件优先级

CLI 标志和 --config 覆盖(最高)
  ↓
项目配置文件:.codex/config.toml
  ↓
Profile 文件:~/.codex/profile-name.config.toml
  ↓
用户配置:~/.codex/config.toml
  ↓
系统配置:/etc/codex/config.toml
  ↓
内置默认值(最低)

附录 B:相关文件位置

文件位置作用
config.toml~/.codex/用户级配置
auth.json~/.codex/凭证存储
history.jsonl~/.codex/历史记录
hooks.json~/.codex//.codex/钩子配置
rules/*.rules~/.codex/rules/命令规则
memories/~/.codex/记忆文件
AGENTS.md~/.codex/ 或仓库根项目指导

附录 C:术语表

术语含义
Feature Flag功能开关,控制特定能力的启用/禁用
MCPModel Context Protocol,模型上下文协议,连接外部工具的标准
Hook生命周期钩子,在特定事件触发时执行自定义脚本
Ghost SnapshotGit 幽灵快照,不写入 git log 的临时快照
Subagent子 Agent,由主 Agent 派生的并行执行单元
Apps/ConnectorsChatGPT 应用和连接器,提供插件能力
喜欢(0)

上一篇

OpenAI降价75%:奥特曼称是被DeepSeek逼的?

OpenAI降价75%:奥特曼称是被DeepSeek逼的?

下一篇

Codex三种任务调度模式实战指南:串行:并行:SDD

Codex三种任务调度模式实战指南:串行:并行:SDD
猜你喜欢