Codex 核心概念

在使用 Codex 之前,理解几个核心概念非常重要。这些概念构成了 Codex 工作的基础。


Prompt(提示词)

你通过发送 Prompt 与 Codex 交互,描述你想要它完成的任务。

Prompt 工作循环

当你提交 Prompt 后,Codex 按以下循环工作:

  1. 调用语言模型理解任务
  2. 执行模型输出指示的操作(读取文件、编辑代码、运行命令)
  3. 将操作结果反馈给模型
  4. 循环执行直到任务完成或你取消

Codex 采用 Agent 循环模式工作——模型输出指示操作,操作结果反馈给模型,循环往复直到任务完成。

有效 Prompt 的原则

原则说明示例
包含验证步骤Codex 能验证工作时输出质量更高"写一个函数,包含测试用例验证它处理空列表"
拆解复杂任务小任务更容易测试和审查"第一步:创建模型;完成后告诉我再继续第二步"
提供上下文引用相关文件和图片"参考 src/auth.py 的风格,实现类似功能"

Codex 处理小而专注的任务时表现最好。大任务应拆分为小步骤逐步执行。


Thread(线程/会话)

Thread 是单个任务会话:你的 Prompt 加上后续的模型输出和工具调用。

线程类型

类型运行环境特点
本地线程你的机器(沙箱内)可读写文件、使用现有工具、执行命令
云端线程云端隔离环境克隆仓库运行、适合并行任务、跨设备委派

线程使用规则

运行中的线程可以并发,但需要注意:

  • 避免两个线程同时修改同一文件
  • 线程可以稍后通过继续另一个 Prompt 来恢复
  • 长时间任务可能会自动压缩上下文

Context(上下文)

当你提交 Prompt 时,包含 Codex 可以使用的上下文——对相关文件和图片的引用。

上下文来源

  • IDE 扩展:自动包含打开的文件列表和选中文本范围
  • 手动指定:在 Prompt 中引用文件路径或附加图片
  • 对话历史:线程中之前的对话内容

上下文窗口

线程中的所有信息必须适合模型的上下文窗口。

Codex 会监控并报告剩余空间。当接近限制时,你会收到提示。

自动 Compact

对于较长的任务,Codex 可能会自动压缩上下文。

压缩机制会总结相关信息,丢弃不太重要的细节,释放空间继续处理。

管理上下文

# 开始新会话释放上下文
/new

# 查看当前上下文使用情况
/status

当 Codex 报告上下文使用量较高时,考虑开始新会话或减少历史消息。


Sandbox(沙箱)

Sandbox 是 Codex 的安全隔离机制,防止意外修改工作区外的文件。

沙箱模式

模式文件修改网络访问适用场景
Read-only禁止禁止只读分析、代码审查
Workspace-write仅工作区禁止日常开发(默认)
Full-access允许允许完全信任的环境(谨慎使用)

Approval(审批)机制

某些操作需要你的确认才能执行:

  • 执行 Shell 命令(特别是 rm、kill 等)
  • 修改或删除文件
  • 访问敏感目录(如 ~/.ssh/、/etc/)
  • 网络请求

设置沙箱模式

# 在 CLI 中切换沙箱模式
codex --sandbox workspace-write

# 或在 Prompt 中指定
"分析这个代码,不要修改任何文件"

沙箱是 Codex 安全策略的第一道防线,确保 AI 操作不会超出预期范围。


Approval Policy(审批策略)

审批策略控制 Codex 执行操作前是否需要确认。

策略类型

策略说明行为
ask每次询问敏感操作前请求确认(默认)
approve自动批准自动执行,无需确认(谨慎使用)
deny自动拒绝拒绝所有可能产生副作用的操作

配置审批策略

# ~/.codex/config.toml

approval_policy = "ask"

总结

理解这些核心概念后,你可以更有效地使用 Codex:

  • Prompt:清晰描述任务,包含验证步骤
  • Thread:管理任务会话,注意并发规则
  • Context:提供相关上下文,监控窗口使用
  • Sandbox:了解安全机制,选择适当模式

常见问题

Q: Prompt 应该用中文还是英文?

Codex 支持多语言,但英文通常效果最好。使用中文时,确保描述足够详细和明确。

Q: 如何查看当前线程状态?

使用 /status 命令查看线程 ID、上下文使用量和配置信息。

Q: 上下文窗口满了怎么办?

开始新会话(/new),或让 Codex 自动压缩历史记录。

Q: 沙箱模式可以动态切换吗?

可以在 CLI 启动时指定,或在配置文件中设置默认值。