掌握从手机上进行远程工程工作
ChatGPT 移动应用中的 Remote 功能很容易被低估。
乍一看,它像是从手机上查看编码对话的方式。这确实有用,但忽略了更大的图景。Remote 真正的强大之处在于,它让你能够启动、指导、审查和组织在开发机上运行的工作,而无需假装 iPhone 应该是一个微型终端。
在过去两个月里,我们为这一循环增加了惊人的深度:远程主机连接、工作树、目标、侧边对话、内联代码审查、排队与转向提示、附件、技能与插件、归档对话、安全控制,以及大量让该应用适用于严肃工作的小细节。
这是我希望每位新晋高级用户都能拥有的实战指南。
正确的心智模型:你的手机是控制平面
代码仍然运行在它该在的地方:你的 Mac、Windows 机器、开发盒或其他已连接的主机上。在 ChatGPT 移动应用中,Remote 为你提供了一个原生界面来控制这项工作。
这个区别很重要。目标不是在小屏幕上复刻每一个终端功能,而是让解除代理阻塞的决策随时随地变得容易:
- 它应该使用哪个仓库和工作区?
- 这应该在当前分支还是一个全新的工作树中运行?
- 我的下一条消息应该排队等待,还是应该转向当前活跃的回合?
- 这条命令批准是否安全?
- 发生了什么变化,我是否同意?
- 这应该成为一个持久目标、一个单独的对话,还是一个快速的侧边问题?
一旦你以这种方式使用该应用,它就不再感觉像远程桌面软件,而开始像一个工程控制平面。
1. 以正确的边界开始对话
良好的代理工作始于正确界定范围的环境。Remote 让你在第一个提示之前选择已连接的主机和工作区。对于新对话,你还可以选择分支、创建独立的工作树,并运行与之关联的环境设置。
这使得几种有用的模式成为可能:
- 使用当前检出进行快速调查。
- 为应保持隔离的更改创建新的工作树。
- 从预期的基础分支开始,而不是稍后修复 Git 状态。
- 在让 Codex 构建或测试之前,先运行环境设置。
这是最重要的高级用户习惯之一:花 10 秒钟选择正确的执行上下文,可以节省之后 10 分钟的清理工作。
输入框还能承载比纯文本更多的上下文。你可以附加文件、照片或新鲜的相机拍摄内容。技能和插件以内联方式出现,这使得确认你的提示调用了你想要的功能变得容易得多。
我的规则很简单:如果截图、文件或具名技能可以消除歧义,就在第一回合之前附加或提及它。
2. 了解 Queue 与 Steer 的区别
这可能是 Remote 中最不明显但杠杆效应最高的设置。
当 Codex 已经在工作时,后续消息可以做两件事之一:
- Queue 会等待当前响应完成,然后将你的提示作为下一个回合发送。
- Steer 会将指导注入到正在进行的工作中。
Queue 是安全的默认选项。将其用于第二个任务、额外的测试请求,或任何应在当前工作之后发生的事情。
Steer 用于在沿错误路径继续前进的成本仍在增长时纠正方向:
把修复保持在移动包内部。不要重构共享渲染器。
该复现仅在重新连接后发生。测试恢复后的路径,而不是实时路径。
停止调查 UI。检查服务器在恢复时是否删除了该项目。
这使手机变得比状态屏幕更有用。你可以在运行需要判断的准确时刻进行干预。
你可以在设置中选择默认的后续行为。我将 Queue 作为默认值,并有意使用 Steer;意外的中途重定向通常比等待代价更高。
3. 将侧边聊天作为思维的分支
长时间运行的编码聊天会积累有价值的上下文。用每个次要问题打断它会使主记录变得嘈杂,并可能将代理从目标上拉走。
这正是侧边聊天所解决的问题。
使用 /side 打开一个与当前聊天相连的轻量级对话。使用 /side <prompt> 打开时已准备好问题。更好的是,在记录中选择文本并选择 在侧边聊天中询问。所选段落将成为新对话的起始上下文。
我将侧边聊天用于以下问题:
- Codex 为什么选择这种架构?
- 这个错误实际上意味着什么?
- 这种行为与桌面应用一致吗?
- 给我这个实现细节的发布说明版本。
- 在我批准此命令之前应该验证什么?
这种区分很有用:主聊天负责工作;侧边聊天帮助我理解工作。
4. 使用 Plan 处理路径,使用 Goal 处理结果
计划模式和目标解决不同的问题。
计划模式要求 Codex 在更改代码之前提出实现路径。当任务定义不明确、有风险或可能涉及多个系统时,它很有用。
目标是持久的。它告诉 Codex 要跨轮次持续追求什么结果。在移动端,/goal 可以创建和管理该目标,而进度在工作继续时保持可见。
一个实用的模式是:
- 对于有风险的更改,从计划模式开始。
- 检查提议的边界。
- 当工作需要多次迭代时,将接受的结果转化为目标。
- 让 Codex 持续进行实现、测试、审查反馈和清理,而无需每次都重申目标。
计划回答“我们应该如何处理?”目标回答“完成之前必须满足什么条件?”
5. 无需离开对话即可审查代码
审查循环是 Remote 对工程真正有用的地方,而不仅仅是方便。
已完成的轮次可以显示已更改文件的摘要。从那里,你可以打开差异、检查单个文件、展开或折叠部分、换行长行,并打开带有语法高亮的源文件。你可以在相关行上附加内联注释,并将该审查上下文发送回 Codex。
该工作流有多个层次:
- 打开已更改文件的摘要以进行快速检查。
- 当差异缺少周围上下文时,点击进入完整源代码。
- 添加内联注释以进行精确更正。
- 使用审查命令审查本地更改或与分支进行比较。
- 当你希望 Codex 特别针对该文件进行推理时,将文件链接回聊天。
这使得紧凑的移动审查循环成为可能:
- Codex 完成实现。
- 我从手机上检查差异。
- 我留下两条内联注释。
- Codex 在同一个聊天中处理它们。
- 我审查较小的后续差异。
重点不在于手机可以替代大显示器进行深度代码阅读。它不能。重点在于许多审查被一两个决定所阻塞,而这些决定不再需要等到我回到办公桌前。
6. 将权限视为工作流的一部分
远程工作只有在控制保持明确时才有用。
Remote 会为命令、文件更改、网络访问和已连接工具显示审批请求。根据请求和主机配置,审批可能仅适用于一次、当前聊天,或更广的范围。
高级用户的正确做法不是批准一切,而是选择能保证工作继续推进的最窄权限。
对于在受信任聊天中完全理解的命令,聊天范围的审批可以消除重复的中断。对于不熟悉的命令、敏感仓库或效果不明确的请求,批准一次——或拒绝它并让 Codex 解释或采用更安全的方法。
你也可以在开始工作时选择聊天更广泛的审批行为。可以将其视为聊天设置的一部分,与主机、工作区、分支和模型并列。
7. 在上下文成为问题之前进行管理
代理聊天是有状态的,长时间的聊天最终会积累足够的上下文,导致速度变慢或注意力分散。
Remote 提供了一小套工具来管理这一生命周期:
/status显示会话详情、工作区、上下文使用情况和可用的速率限制信息。- 可选的上下文指示器会在编辑器中保持剩余上下文可见。
/compact会在保留有用工作状态的同时压缩过度膨胀的聊天。/fork会在你想要共享历史但方向不同时,从当前聊天创建一个新聊天。
实际的操作顺序是:检查状态,在目标仍然相同时进行压缩,在目标已经分歧时进行分叉。
不要将侧边聊天和分叉互换使用。侧边聊天是围绕当前工作的轻量级提问。分叉是继承原始聊天历史的新主聊天。
8. 保持聊天列表整洁
我自己的 Codex 工作流越来越像一个小型运营台。
我会置顶少数正在推进的聊天,围绕结果重命名它们,并在工作完成后积极归档。浏览已归档的聊天使这一操作很安全:归档是组织,而不是删除。
通知是该系统的一部分。完成通知可以直接打开相关的 Codex 聊天,因此从“代理完成”到“人工审查”的交接只需一次点击。
Spotlight 和快捷指令可以直接打开 Remote。在 iPad 上,键盘快捷键使应用出人意料地高效:创建新聊天、在聊天间切换、打开已更改的文件、置顶、重命名和归档,无需伸手去触碰每个控件。
这就是 Remote 的“幕僚长”用例。该应用不仅是我发出提示的地方,也是我跟踪哪些工程工作处于活跃、受阻、等待审查或已完成状态的地方。
输入 / 会显示通往应用许多高级行为的最快路径。可用性可能取决于所连接的主机、应用版本和账户配置。
| 命令 | 用途 |
|---|---|
/plan |
在实现前切换计划模式。 |
/goal <objective> |
创建或更新持久目标。 |
/side [question] |
提出旁支问题而不打断主对话。 |
/review |
查看本地更改或将其与分支进行比较。 |
/status |
检查会话、工作区、上下文和速率限制。 |
/compact |
压缩长对话的上下文。 |
/fork |
基于当前历史记录创建新的主对话。 |
/fast |
在可用时于标准执行和更快执行之间切换。 |
/feedback |
发送与当前会话关联的产品反馈。 |
命令面板值得学习,因为它揭示了产品真正的概念模型:计划、执行、分支、审查、检查和恢复。
10. 五个在移动端尤其好用的工作流
发布负责人
为发布或拉取请求开启一个专注的对话。让 Codex 检查当前分支、CI 状态、待处理的审查反馈以及是否包含在发布中。置顶该对话。当新信息到来时,仅在其推翻当前调查时才调整方向,否则将其排队。在手机上审查最终差异或发布说明,发布上线后归档对话。
中断驱动的缺陷修复
附上截图、日志或捕获的文件。让 Codex 在编辑前先进行诊断。使用旁支对话深入排查一个可疑错误,而不打断主调查。一旦原因明确,回到主对话并授权进行小范围修复。
移动端审查者
针对目标分支运行审查,检查变更文件摘要,打开相关文件并添加行内评论。让 Codex 仅处理这些评论,然后审查后续的差异。
长期运行的目标
创建一个带有具体完成条件的目标:测试通过、审查反馈已解决,或达到可复现的性能阈值。通过通知和状态查看进度,而不是反复询问“你完成了吗?”。使用排队提示词处理额外工作,仅在需要纠正时才调整方向。
多机操作者
保持主机命名清晰,按机器和工作区组织工作。使用手机在拥有正确检出、凭据、模拟器或操作系统的机器上开启对话。当一个对话需要 Mac 而另一个需要 Windows 主机时,这尤其有用。
影响巨大的小功能
我最喜欢的一些新增功能并非主打特性:
- 编辑最近发送的提示词,而不是添加纠正轮次。
- 保存或复制对话中渲染的图片。
- 在 Codex 仍在运行时查看排队的提示词。
- 直接从通知打开已完成的对话。
- 浏览已归档的对话,而不是让活动列表变得拥挤。
- 在窄屏上阅读时换行长差异行。
- 使用 Face ID 或设备密码保护 ChatGPT 移动应用。
- 在发送前于输入框中内联查看技能和插件。
- 当现实世界的对象就是上下文时,直接将照片拍摄到提示词中。
- 从选中的转录文本开启旁支对话,而不是重新解释问题。
这些都没有改变根本的代理模型。它们共同消除了让远程工作流感觉脆弱的摩擦。
更深层的启示
优秀的移动软件不会把桌面界面缩小照搬。它会识别出你离开办公桌时真正重要的决策,并让这些决策变得快速、清晰且安全。
这就是我现在对 Remote 的理解。在这里,我可以选择正确的环境、设定目标、重新引导一次运行、处理审批、检查结果,并让整个工程工作队列保持连贯。
电脑仍然负责执行工作。手机让我保持掌控。