
字节笔记本
2026年10月6日 · 约 6 分钟读完
十来分钟开一台云主机:Codex 远程工作区搭建全流程
给 coding agent 配一台远程开发机,过去要在云控制台、终端和 SSH 配置文件之间来回切换。Codex 桌面版的 DigitalOcean 插件把这件事压缩成一条可对话触发的标准流程:你说开一台机器,它按九个步骤执行,从生成密钥到把主机挂进 Codex 的远程工作区列表,端到端约十到十五分钟。这份插件内置的工作流指南写得相当讲究,本文把它拆开看:一台给 agent 用的云主机是怎么开出来的,以及流程里三条值得抄的设计。

前提与硬约束
开工前要备齐四样:一个已充值的 DigitalOcean 账号,装好并完成登录的 Codex DigitalOcean 应用,本地的 OpenSSH(ssh 与 ssh-keygen),以及 Python 3。插件对工具链有一条硬约束:所有 DigitalOcean 操作只准使用插件自带的 DigitalOcean 应用工具和随附的 Python 脚本,doctl 等命令行工具与临时编写的集成配置一律禁用。
这条约束的用意很直接:凭据只存在于一个已认证的应用里,流程不会因为绕道命令行而分叉。可用工具一共六个,密钥类三个,即 key-create、key-list、key-delete;主机类三个,即 droplet-create、droplet-get、droplet-delete。
成本上要先打预防针:主机从创建那一刻起按小时计费,直到删除为止。默认配置 s-2vcpu-4gb,两核 4 GB 内存,约合每月 24 美元。用完即删应当成为习惯,指南专门留了一节讲清理。
一个随机前缀,派生全部命名
第一步真正的操作是生成 SSH 密钥对。插件自带的 keygen.py 脚本输出一段 JSON,核心是一个随机前缀,例如 bright-hawk-a3f2。这个前缀像种子一样派生出后面所有名字:主机名与本地 SSH 别名同为 codex 前缀,DigitalOcean 侧的密钥标签为 codex-key 前缀,再加上本地私钥路径。一次生成,处处引用,重跑流程也不会撞名。
公钥通过 key-create 上传。如果同名或同指纹的密钥已经存在,比如上一次运行留下的,流程不报错也不重复建,而是改调 key-list 找到既有条目,直接复用它的 id。幂等处理写在主流程里,而不是留给用户收拾。
地区与规格:白名单式交互
选地区和选规格都由用户在聊天里拍板。默认组合是纽约 nyc3 加 s-2vcpu-4gb,接受默认就跳过自选;要自定义,agent 会给出候选表:地区共九个,覆盖纽约、旧金山、多伦多、伦敦、法兰克福、阿姆斯特丹、新加坡、班加罗尔和悉尼;规格共五档,从 2 核 4 GB 的每月 24 美元,到 8 核 16 GB 的每月 96 美元,中间还有 CPU 优化型 c-2(约 42 美元)和通用型 g-2vcpu-8gb(约 63 美元)。
这里有三条硬规则:所有规格都高于 Codex Universal 镜像要求的 1 核 2 GB 下限;用户回复必须命中表内的 slug;白名单之外的值不会被透传,agent 会再问一遍。价格是近似值,以 DigitalOcean 控制台为准。
创建与心跳等待
创建只调一次 droplet-create,镜像写死为 ID 234061005,也就是 DigitalOcean 的 Codex Universal 镜像,SSH 密钥挂上一步拿到的密钥 id。报错按因处理,不许盲目重试:premium 规格并非每个地区都有,遇到就回到选区环节重挑组合;付款或配额问题则停下,让用户去控制台解决;镜像无效等其他错误直接上报。
创建成功不等于马上能用。主机启动加云初始化通常要五到七分钟,指南明确禁止每二十秒轮询一次的忙等,改用 Codex 的 heartbeat 自动化:先挂一个五分钟间隔的心跳,到点自动唤回这条会话线程做检查;还没就绪,就把心跳改成一分钟间隔继续等。等待期间主动结束当前回合,把控制权还给用户。检查只调一次 droplet-get,返回 active 且带公网 IPv4 地址就算就绪,同时删掉或暂停心跳。同一时刻只保留一个活跃的检查任务。

回填 SSH 配置,挂进工作区
拿到 IP 之后,configure_ssh.py 负责收尾:以 root 用户写入本地 SSH 配置,把别名、IP、私钥路径串成一条可用的主机记录。这一步会等云初始化跑完,最长七分钟,每五秒打印一行状态,直到输出 DROPLET READY,中途不许打断,也不能并行跑别的命令。
最后一步是把它挂进 Codex:agent 回一条可点击的深链,指向 ssh/add 表单并带上别名参数,点开就是添加 SSH 主机的界面;深链失灵就手动走 Settings、Connections、Add SSH Host,选别名、选远程目录。此后这台云主机就是 Codex 里的一个远程工作区,代码跑在云端,本地只留一个窗口。
清理与三条值得抄的设计
用完的清理只有两步:droplet-delete 删主机,key-delete 可选删密钥,删除前必须向用户确认。按小时计费的机器,晚删一小时就多付一小时的钱。
回看整份指南,有三处设计超出了开一台云主机本身。其一,单一入口约束:凭据收敛在一个已认证的应用里,错误按因分类处理,而不是重试碰运气。其二,心跳代替轮询:长等待交给调度器,回合该停就停,这套模式可以搬到任何创建后要等资源就绪的 agent 流程里。其三,命名与校验的幂等:一个随机前缀派生全部资源名,用户输入只认白名单,重跑不产生重复资源。写 agent 工作流的人,这三条都值得抄走。



