跳到正文

掌握从手机上进行远程工程工作

本文目录文章开头

ChatGPT 移动应用中的 Remote 功能很容易被低估。

乍一看,它像是从手机上查看编码对话的方式。这确实有用,但忽略了更大的图景。Remote 真正的强大之处在于,它让你能够启动、指导、审查和组织在开发机上运行的工作,而无需假装 iPhone 应该是一个微型终端。

在过去两个月里,我们为这一循环增加了惊人的深度:远程主机连接、工作树、目标、侧边对话、内联代码审查、排队与转向提示、附件、技能与插件、归档对话、安全控制,以及大量让该应用适用于严肃工作的小细节。

这是我希望每位新晋高级用户都能拥有的实战指南。

Remote project picker in the ChatGPT mobile app

正确的心智模型:你的手机是控制平面

代码仍然运行在它该在的地方:你的 Mac、Windows 机器、开发盒或其他已连接的主机上。在 ChatGPT 移动应用中,Remote 为你提供了一个原生界面来控制这项工作。

这个区别很重要。目标不是在小屏幕上复刻每一个终端功能,而是让解除代理阻塞的决策随时随地变得容易:

  • 它应该使用哪个仓库和工作区?
  • 这应该在当前分支还是一个全新的工作树中运行?
  • 我的下一条消息应该排队等待,还是应该转向当前活跃的回合?
  • 这条命令批准是否安全?
  • 发生了什么变化,我是否同意?
  • 这应该成为一个持久目标、一个单独的对话,还是一个快速的侧边问题?

一旦你以这种方式使用该应用,它就不再感觉像远程桌面软件,而开始像一个工程控制平面。

1. 以正确的边界开始对话

良好的代理工作始于正确界定范围的环境。Remote 让你在第一个提示之前选择已连接的主机和工作区。对于新对话,你还可以选择分支、创建独立的工作树,并运行与之关联的环境设置。

Remote controls for choosing a host, repository, worktree, and environment

这使得几种有用的模式成为可能:

  • 使用当前检出进行快速调查。
  • 为应保持隔离的更改创建新的工作树。
  • 从预期的基础分支开始,而不是稍后修复 Git 状态。
  • 在让 Codex 构建或测试之前,先运行环境设置。

这是最重要的高级用户习惯之一:花 10 秒钟选择正确的执行上下文,可以节省之后 10 分钟的清理工作。

输入框还能承载比纯文本更多的上下文。你可以附加文件、照片或新鲜的相机拍摄内容。技能和插件以内联方式出现,这使得确认你的提示调用了你想要的功能变得容易得多。

Remote composer with multiple skills and plugins added inline

我的规则很简单:如果截图、文件或具名技能可以消除歧义,就在第一回合之前附加或提及它。

2. 了解 Queue 与 Steer 的区别

这可能是 Remote 中最不明显但杠杆效应最高的设置。

当 Codex 已经在工作时,后续消息可以做两件事之一:

  • Queue 会等待当前响应完成,然后将你的提示作为下一个回合发送。
  • Steer 会将指导注入到正在进行的工作中。

Queue 是安全的默认选项。将其用于第二个任务、额外的测试请求,或任何应在当前工作之后发生的事情。

Steer 用于在沿错误路径继续前进的成本仍在增长时纠正方向:

把修复保持在移动包内部。不要重构共享渲染器。

该复现仅在重新连接后发生。测试恢复后的路径,而不是实时路径。

停止调查 UI。检查服务器在恢复时是否删除了该项目。

这使手机变得比状态屏幕更有用。你可以在运行需要判断的准确时刻进行干预。

你可以在设置中选择默认的后续行为。我将 Queue 作为默认值,并有意使用 Steer;意外的中途重定向通常比等待代价更高。

3. 将侧边聊天作为思维的分支

长时间运行的编码聊天会积累有价值的上下文。用每个次要问题打断它会使主记录变得嘈杂,并可能将代理从目标上拉走。

这正是侧边聊天所解决的问题。

使用 /side 打开一个与当前聊天相连的轻量级对话。使用 /side <prompt> 打开时已准备好问题。更好的是,在记录中选择文本并选择 在侧边聊天中询问。所选段落将成为新对话的起始上下文。

Selected transcript text with the Ask in side chat action

我将侧边聊天用于以下问题:

  • Codex 为什么选择这种架构?
  • 这个错误实际上意味着什么?
  • 这种行为与桌面应用一致吗?
  • 给我这个实现细节的发布说明版本。
  • 在我批准此命令之前应该验证什么?

这种区分很有用:主聊天负责工作;侧边聊天帮助我理解工作。

4. 使用 Plan 处理路径,使用 Goal 处理结果

计划模式和目标解决不同的问题。

计划模式要求 Codex 在更改代码之前提出实现路径。当任务定义不明确、有风险或可能涉及多个系统时,它很有用。

目标是持久的。它告诉 Codex 要跨轮次持续追求什么结果。在移动端,/goal 可以创建和管理该目标,而进度在工作继续时保持可见。

一个实用的模式是:

  1. 对于有风险的更改,从计划模式开始。
  2. 检查提议的边界。
  3. 当工作需要多次迭代时,将接受的结果转化为目标。
  4. 让 Codex 持续进行实现、测试、审查反馈和清理,而无需每次都重申目标。

计划回答“我们应该如何处理?”目标回答“完成之前必须满足什么条件?”

5. 无需离开对话即可审查代码

审查循环是 Remote 对工程真正有用的地方,而不仅仅是方便。

已完成的轮次可以显示已更改文件的摘要。从那里,你可以打开差异、检查单个文件、展开或折叠部分、换行长行,并打开带有语法高亮的源文件。你可以在相关行上附加内联注释,并将该审查上下文发送回 Codex。

Remote diff with an inline review comment

该工作流有多个层次:

  • 打开已更改文件的摘要以进行快速检查。
  • 当差异缺少周围上下文时,点击进入完整源代码。
  • 添加内联注释以进行精确更正。
  • 使用审查命令审查本地更改或与分支进行比较。
  • 当你希望 Codex 特别针对该文件进行推理时,将文件链接回聊天。

这使得紧凑的移动审查循环成为可能:

  1. Codex 完成实现。
  2. 我从手机上检查差异。
  3. 我留下两条内联注释。
  4. Codex 在同一个聊天中处理它们。
  5. 我审查较小的后续差异。

重点不在于手机可以替代大显示器进行深度代码阅读。它不能。重点在于许多审查被一两个决定所阻塞,而这些决定不再需要等到我回到办公桌前。

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 的理解。在这里,我可以选择正确的环境、设定目标、重新引导一次运行、处理审批、检查结果,并让整个工程工作队列保持连贯。

电脑仍然负责执行工作。手机让我保持掌控。

阅读显示设置

调整正文排版

当前浏览器记住选择,应用于文章正文。手机上正文宽度以屏幕可用空间为限。

图表完整性提示

普通文章遇到图表保存问题时显示提示。