想让本地 Codex 在你离开电脑以后继续执行任务,先把一个容易混淆的概念分清楚:终端没有关闭,和电脑没有进入睡眠,根本不是同一件事。
tmux 解决的是终端会话的问题。它能让终端会话独立于当前 SSH 连接存在,断开远程连接以后,只要机器和相关进程仍在运行,重新连接就有机会回到原来的会话。
但如果电脑真的进入睡眠,处理器上的任务停止执行,tmux 本身并不能凭空让 Codex 继续运行。这也是为什么有些方案看起来已经配置成功,真正合盖、切换网络以后却无法使用:它解决了终端会话的问题,却没有解决操作系统电源管理和网络连通性的问题。
用 MacBook Air 的人还要多想一层:如果为了让任务持续运行,长期让电脑在背包里高负载工作,散热和设备状态同样需要考虑。
更合理的思路,是把长任务运行和远程操作分开设计。真正需要持续执行的任务,应该运行在适合长期工作的环境里;手机负责查看任务状态、接收通知和必要时进行确认,而不一定要把一整套桌面强行搬到手机上。对于必须依赖本地硬件或者文件的任务,则应该明确什么时候需要电脑保持运行,什么时候可以暂停和恢复。
这里还涉及一个更深的问题,就是 Agent 的任务状态。如果任务执行到一半网络断开,重新连接以后能否知道已经修改了哪些文件,哪些测试完成了,哪些步骤需要继续?如果这些东西没有保存,远程桌面再好用,也只是让你远程看到一个已经中断的任务。
一个成熟的 Coding Agent 工作环境,不应该假设用户会一直守在电脑前。真正值得做的是任务持久化、状态恢复和跨设备管理。程序员以后可能会同时管理很多长时间运行的 Agent,但前提是这些任务可以独立、可靠地运行,而不是每次都靠人远程救火。