Codex 核心概念
在使用 Codex 之前,理解几个核心概念非常重要。这些概念构成了 Codex 工作的基础。
Prompt(提示词)
你通过发送 Prompt 与 Codex 交互,描述你想要它完成的任务。
Prompt 工作循环
当你提交 Prompt 后,Codex 按以下循环工作:
- 调用语言模型理解任务
- 执行模型输出指示的操作(读取文件、编辑代码、运行命令)
- 将操作结果反馈给模型
- 循环执行直到任务完成或你取消
Codex 采用 Agent 循环模式工作——模型输出指示操作,操作结果反馈给模型,循环往复直到任务完成。
有效 Prompt 的原则
| 原则 | 说明 | 示例 |
|---|---|---|
| 包含验证步骤 | Codex 能验证工作时输出质量更高 | "写一个函数,包含测试用例验证它处理空列表" |
| 拆解复杂任务 | 小任务更容易测试和审查 | "第一步:创建模型;完成后告诉我再继续第二步" |
| 提供上下文 | 引用相关文件和图片 | "参考 src/auth.py 的风格,实现类似功能" |
Codex 处理小而专注的任务时表现最好。大任务应拆分为小步骤逐步执行。
Thread(线程/会话)
Thread 是单个任务会话:你的 Prompt 加上后续的模型输出和工具调用。
线程类型
| 类型 | 运行环境 | 特点 |
|---|---|---|
| 本地线程 | 你的机器(沙箱内) | 可读写文件、使用现有工具、执行命令 |
| 云端线程 | 云端隔离环境 | 克隆仓库运行、适合并行任务、跨设备委派 |
线程使用规则
运行中的线程可以并发,但需要注意:
- 避免两个线程同时修改同一文件
- 线程可以稍后通过继续另一个 Prompt 来恢复
- 长时间任务可能会自动压缩上下文
Context(上下文)
当你提交 Prompt 时,包含 Codex 可以使用的上下文——对相关文件和图片的引用。
上下文来源
- IDE 扩展:自动包含打开的文件列表和选中文本范围
- 手动指定:在 Prompt 中引用文件路径或附加图片
- 对话历史:线程中之前的对话内容
上下文窗口
线程中的所有信息必须适合模型的上下文窗口。
Codex 会监控并报告剩余空间。当接近限制时,你会收到提示。
自动 Compact
对于较长的任务,Codex 可能会自动压缩上下文。
压缩机制会总结相关信息,丢弃不太重要的细节,释放空间继续处理。
管理上下文
# 开始新会话释放上下文
/new
# 查看当前上下文使用情况
/status
/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 --sandbox workspace-write
# 或在 Prompt 中指定
"分析这个代码,不要修改任何文件"
沙箱是 Codex 安全策略的第一道防线,确保 AI 操作不会超出预期范围。
Approval Policy(审批策略)
审批策略控制 Codex 执行操作前是否需要确认。
策略类型
| 策略 | 说明 | 行为 |
|---|---|---|
ask | 每次询问 | 敏感操作前请求确认(默认) |
approve | 自动批准 | 自动执行,无需确认(谨慎使用) |
deny | 自动拒绝 | 拒绝所有可能产生副作用的操作 |
配置审批策略
# ~/.codex/config.toml
approval_policy = "ask"
approval_policy = "ask"
总结
理解这些核心概念后,你可以更有效地使用 Codex:
- Prompt:清晰描述任务,包含验证步骤
- Thread:管理任务会话,注意并发规则
- Context:提供相关上下文,监控窗口使用
- Sandbox:了解安全机制,选择适当模式
常见问题
Q: Prompt 应该用中文还是英文?
Codex 支持多语言,但英文通常效果最好。使用中文时,确保描述足够详细和明确。
Q: 如何查看当前线程状态?
使用 /status 命令查看线程 ID、上下文使用量和配置信息。
Q: 上下文窗口满了怎么办?
开始新会话(/new),或让 Codex 自动压缩历史记录。
Q: 沙箱模式可以动态切换吗?
可以在 CLI 启动时指定,或在配置文件中设置默认值。
点我分享笔记