MemoryLake
返回全部文章
Tutorial2026 年 11 月 3 日·10 分钟阅读

在 Codex 中选择 Steer 还是 Queue?任务中途输入的消息会出现在对话的什么位置,以及 Enter 键的作用 (2026)

你给 Codex 分派了一个任务,它开始工作,然后你突然想起:测试文件在不同的文件夹中,或者你希望它不要动配置文件。你在 Codex 忙碌时输入了这些信息。接下来发生什么取决于该消息是引导 (steer) 当前运行还是在队列 (queue) 中等待。

OpenAI 的文档用两行定义了这两者:“Steer 将消息添加到当前运行中。使用它来改变方向、添加缺失的细节或分享新信息。”以及:“Queue 为下一次运行保存消息。将其用于应等待当前工作完成后再进行的后续操作。”

本指南涵盖了每种操作对对话的影响、Enter 键在 CLI、IDE 扩展和桌面应用中的作用、如何阅读终端中的待处理消息区域,以及如何为未打开的会话排队消息。如果你想重置聊天而不是重定向它,请参阅关于 Codex /clear 和 /new 的指南。

Steering 的作用

当你进行 steer 时,你的消息会加入 Codex 正在处理的轮次。没有任何内容会重启。Codex 将新指令视为同一运行的一部分,并调整接下来的操作。

CLI 文档这样描述该按键:“在 Codex 工作时按下 Enter 键,将新指令注入当前轮次。”

客户端应用用来与 Codex 通信的 Codex 应用服务器也有相应的方法。其文档称:“使用 turn/steer 将更多用户输入追加到当前活跃的轮次中。”有两个细节展示了 steer 是什么以及不是什么。该方法“不会发出新的 turn/started 通知”,因此不会开始新轮次。并且它“不接受轮次级别的覆盖(model、cwd、sandboxPolicy 或 outputSchema)”。Steer 只是向当前轮次添加文字,它不会在中途更改模型或工作目录。

当 steer 到达 Codex 时

Steer 不会在命令执行中途打断 Codex。在终端中,待处理的 steer 会出现在一个预览列表下,标题显示它们将在下一次工具调用后提交,并带有一个提示,显示可以立即中断并发送它们的按键。因此,通常的路径是 Codex 完成当前步骤,然后在决定下一步之前读取你的消息。

Codex 自身的变更历史中有一个时间上的例外。在 Codex 仍在流式传输最终答案时按下 Enter 键曾会导致会话卡住。2026 年 2 月合并的修复程序使 Codex 在该窗口期内将消息排队,以便在答案完成后运行。

Queueing 的作用

排队的消息会等待。当前运行按计划完成,然后你的消息开始下一个轮次。

CLI 文档称:“在 Codex 工作时按下 Tab 键,为下一轮排队后续提示词、斜杠命令或 shell 命令。”你可以排队多个消息,它们将按顺序运行。

斜杠命令在排队时的行为略有不同。“Codex 在排队命令运行时对其进行解析,因此命令菜单和错误会在当前轮次结束后出现。”如果你排队了一个带有拼写错误的命令,你会在轮到它时发现。

某些命令是专门为已经在工作的会话设计的。OpenAI 的斜杠命令指南展示了如何“使用 /model、/fast、/permissions、/approve、/raw、/agents、/subagents 和 /status 等命令引导 (Steer) 活跃会话”。同一指南指出,在排队命令之前,斜杠补全仍然有效,因此你可以在按下 Tab 键之前检查名称。这在 Codex 工作时为你提供了三种工具:用于文字的 steer、用于下一步的排队消息,以及用于设置的命令。

在终端中,排队的消息在预览列表中有自己的部分,与待处理的 steer 分开,并带有编辑最后一个排队消息的按键提示。在桌面应用中,OpenAI 表示“排队的消息出现在编辑器上方,你可以在那里编辑、重新排序、发送或删除它们”。

Enter 键的作用

这是人们感到惊讶的地方,因为默认行为取决于你使用 Codex 的位置。

在 CLI 中

Enter 进行 steer,Tab 进行 queue。自 2026 年 2 月的一次更改以来,这一直是默认设置,该更改用其原话来说是“将 Steer 功能从实验性提升为稳定版,并默认启用”。在此之前,任务运行时 Enter 键的作用是排队。如果你在那之前就习惯了 Codex,你的习惯可能仍倾向于旧行为。

在 IDE 扩展中

扩展的默认设置则相反。其设置 chatgpt.followUpQueueMode 的默认值为 queue,参考文档将其描述为在“等待下一次运行 (queue) 或引导当前运行 (steer)”之间的选择。该扩展还映射了一个旧值:“扩展将旧的 interrupt 值视为 steer。”对于单条消息,Cmd 或 Ctrl 配合 Shift 和 Enter 可以执行与你的设置相反的操作。

在桌面应用中

应用中有一个专门的设置。OpenAI 的设置参考在“通用”下描述了一个“后续行为”选项,你可以在其中选择在 Codex 工作时发送的消息是引导 (steer) 当前运行还是等待下一次运行。提示指南补充道:“该设置还会显示在不更改默认设置的情况下,针对单条消息使用另一种行为的快捷键。”

因此,同一个按键在终端中可能意味着 steer,而在编辑器中意味着 queue。如果你输入的更正似乎被忽略了,请检查你当时处于哪个界面。

Steered Conversation 的含义

人们搜索 Codex 中的 steered conversation,是因为他们发送的中途消息改变了 Codex 的行为而没有开始新轮次。这就是 steering。对话保持为一个轮次,你的指令在中途被添加。

开源代码也以同样的方式处理它。当 Codex 构建对话回顾时,代码指出相邻的用户消息会保留 steering 作为单个请求的一部分,因此 steer 和它修改的请求会被一起读取。

对于你的上下文而言,steering 和 queueing 最终会到达同一个地方。两者都会成为 Codex 读取的对话的一部分。区别在于时机:steer 在当前轮次内到达,而排队的消息作为下一轮到达。无论哪种方式,该消息都会像你输入的任何其他内容一样计入聊天的上下文;关于 Codex 上下文剩余量 (context left) 的指南解释了这是如何累加的。

从会话外部排队消息

Codex 还有一个命令,用于向你未打开的会话发送消息。CLI 参考将 codex queue 描述为一种通过 ID 或精确名称“为现有会话排队文本消息”的方式。

它附带了一些规则。“排队的消息使用会话的模型。该命令仅接受文本。”对于未加载的会话:“添加 --resume 以排队消息,如果会话尚未加载则恢复该会话。”恢复步骤需要运行本地守护进程或远程服务器。如果失败,“它会打印警告并仍然成功退出”,因此请在之后检查会话,而不是依赖退出代码。resume 选项是在 Codex 0.166.0 中引入的。

Steering 目标和 subagents

长时间运行的工作有其自己的 steering 选项。OpenAI 的目标文档称,在交互式 CLI 会话中,你可以“在同一交互式会话中发送后续消息以添加上下文或调整约束”。关于 Codex 目标模式 (goal mode) 的指南涵盖了目标模式下任务会保留哪些内容。

对于委派的工作,OpenAI 表示你可以直接要求 Codex 引导 (steer) 正在运行的 subagent、停止它或关闭已完成的 agent 线程。关于 Codex subagents 的指南解释了每个 subagent 启动时包含的内容。

人们首先尝试的操作

在 IDE 中按下 Enter 并期望进行 steer。 扩展的默认设置是 queue。除非你更改设置或使用单次快捷键,否则你的消息会等待下一次运行。

期望 steer 停止当前命令。 待处理的 steer 会在下一次工具调用后加入。要立即发送,请使用提示中显示的 interrupt 键。

通过 steer 更改模型。 Steer 不能携带轮次级别的覆盖。请使用命令更改模型,或将其排队到下一轮。

排队斜杠命令并假设它已运行。 排队的命令在轮到它们时才会被解析,因此错误会稍后出现。

信任带有 --resume 的 codex queue 的退出代码。 即使恢复失败,它也会成功退出。请检查会话。

解决方案:决定每种指令的去向

第 1 步:为每个界面选择默认行为

决定你希望 Enter 键是 steer 还是 queue,并将 IDE 扩展和桌面应用设置为与你使用 CLI 的方式一致。学习另一种行为的单次消息快捷键。

第 2 步:纠错用 steer,新工作用 queue

当 Codex 在当前任务中方向错误时,使用 steer。对于任何属于独立步骤的操作,请使用 queue,例如在更改后运行检查或编写摘要。如果一次运行已经进行得太远,CLI 允许你在编辑器为空时按两次 Escape 键来编辑之前的消息并从该点派生 (fork) 聊天;关于派生 Codex 聊天的指南涵盖了这些选项。

第 3 步:将重复的 steer 移出聊天

如果你发现自己在每个会话中都在进行相同的 steer 纠错(例如测试文件的位置或哪些文件不能动),那么这些内容应该放在项目的 AGENTS.md 中或你维护的书面笔记中,而不是放在你反复输入的对话消息中。

在 MemoryLake 中进行设置

Steering 修复当前运行。你经常进行的更正是另一回事:它们是关于你项目的实事,在每个会话中重复输入它们正是它们被遗漏的原因。

MemoryLake 是一个记忆层,用于将这些事实保存在你维护的一个地方,供你连接的助手(如 ChatGPT、Claude Code 和 Codex)使用。

你用自己的语言编写条目。不会从你的 Codex 会话、转录文本、AGENTS.md 文件、Codex 记忆或任何供应商的存储中读取、写入或删除任何内容。Steering 和 queueing 仍按 OpenAI 描述的方式工作。

第 1 步:创建 API 密钥

登录并从仪表板生成密钥。该密钥属于你的 MemoryLake 工作区,与你的 ChatGPT 和 Codex 账户分开。

MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供 agent 使用
MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供 agent 使用

第 2 步:上传你的首批记忆

从解决方案第 3 步中重复的更正开始:文件位置、不可触碰的内容以及你不断重申的规范。每个条目一个要点。

已上传首批文档的 MemoryLake 工作区,列出了每个变为可搜索记忆的文件
已上传首批文档的 MemoryLake 工作区,列出了每个变为可搜索记忆的文件

第 3 步:连接你的 AI 和 agent

连接你使用的助手。如果你跨工具工作,关于同时使用 Claude Code 和 Codex 的指南涵盖了如何在一个地方保持共享上下文。

MemoryLake 集成屏幕,列出了可以连接到记忆层的 AI 客户端和 agent 框架
MemoryLake 集成屏幕,列出了可以连接到记忆层的 AI 客户端和 agent 框架

实践中的变化

第一个区别是 Enter 键带来的意外减少。你清楚哪个界面进行 steer,哪个进行 queue。

第二个区别是轮次更整洁。更正进入它们所属的运行,独立的工作则排队等待。

第三个区别是整体 steering 减少。你以前重复的更正已经写下来了,所以 Codex 在开始时就已经掌握了它们。

Steering 和 Queueing 的最佳实践

检查界面的默认设置。 CLI 在 Enter 时 steer。IDE 扩展则排队。

尽早 steer。 在下一步之前进行更正可以避免稍后撤销操作。

排队独立任务。 检查、摘要和后续工作可以等待下一轮。

关注待处理区域。 它显示了哪些内容正在等待 steer,哪些内容已排队。

不要通过 steer 更改设置。 模型和目录更改需要命令,而不是 steer。

验证 codex queue 的交付。 失败的 resume 仍会成功退出。

写下重复的更正。 记录在 AGENTS.md 或你维护的笔记中。

结论

在 Codex 中,steer 将你的消息添加到已经在进行的运行中,而排队的消息则等待开始下一个运行。在 CLI 中,Enter 进行 steer,Tab 进行 queue;IDE 扩展默认为 queue;桌面应用允许你选择。待处理的 steer 在下一次工具调用后加入,两种消息都会成为 Codex 读取的对话的一部分。

纠错用 steer,独立工作用 queue。当同样的更正不断出现时,请将其移出聊天,放入你维护的指令中。

常见问题

Codex 中 steer 和 queue 的区别是什么?

OpenAI 表示,steer 将消息添加到当前运行中,而 queue 为下一次运行保存消息。Steer 用于改变方向;queue 用于应等待的后续操作。

在 Codex 中 Enter 键是 steer 还是 queue?

在 CLI 中,Enter 进行 steer,Tab 进行 queue。IDE 扩展默认为 queue,桌面应用则有相关设置。

Codex 中的 steered conversation 是什么意思?

它描述的是这样一种对话:你在 Codex 工作时发送了一条消息,它加入了当前轮次而不是开始新轮次。

Steer 会中断 Codex 正在运行的命令吗?

默认不会。在终端中,待处理的 steer 会在下一次工具调用后提交,提示中会显示立即中断并发送的按键。

我可以通过 steer 更改模型吗?

不可以。OpenAI 的应用服务器文档称,steer 不接受轮次级别的覆盖,例如模型或工作目录。

如何向未打开的 Codex 会话发送消息?

使用 codex queue 配合会话 ID 或精确名称。添加 --resume 以在排队后加载会话,这需要运行本地守护进程或远程服务器。