在软件工程师职业生涯的大部分时间里,我不是在反复部署和运维软件,就是在编写软件来替我完成这些重复操作。

我在 OpenAI 的第一份工作是在云基础设施团队,为应用团队搭建新的 Kubernetes 集群。我会花一周时间准备好一批集群,逐一解决 Private Link、配额和 Terraform 方面的问题。这批集群刚准备好,我就开始着手下一批。
后来我加入了 API 团队,负责对我们的最新模型运行评估。我需要解决评分器、配额、配置和 PyTorch 方面的问题。等评估顺利完成、模型发布后,我又会为下一个模型重复这一过程。
现在,我用 Codex 来帮忙处理这些重复工作。我仍然在开发软件,或者更准确地说,是 Codex 在帮我开发。但我不再为每项任务单独创建自动化,而是在开发 Runme,用它来:
- 收集并整理工作流程相关的上下文。
- 保持适当的审查和审批边界。
- 利用以往运行中积累的经验,改进 Codex 后续的运行。
用 Codex 运行评估
在 OpenAI,我们会在发布新模型和新功能时运行评估,检查它们是否按预期工作。运行评估时,我会创建一个 Runme 笔记本,简要写明目标:
# Goal: Run the evaluation against the current model
- Review a previous run to understand the workflow.
- Write a detailed plan in this notebook.
- Wait for me to review and approve the plan before beginning.
- Document the commands you run, their output, and how you interpret the results.
然后,我让 Codex 将该笔记本单元格的内容作为目标:
Read the goal cell in the Runme notebook open in the browser. Treat it as the
goal, write your plan in the notebook, and wait for my approval before starting.
Codex 会读取笔记本,并随着工作推进持续更新。计划准备好后,我会进行审查,并在必要时修改。我的参与往往体现在帮助 Codex 权衡不同方案:使用哪个评估系统、是否需要配置新的基础设施,或者现有资源是否足以完成任务。
Codex 工作时,我会关注它的进度,有时用手机查看,偶尔在它卡住时给一点提示。例如,如果配额耗尽导致无法创建开发环境,我可能会建议复用现有环境,或寻找其他已获批准的方案。
最终得到的笔记本会记录完成任务所需的步骤,也会记录尝试过但行不通的办法。结束前,我会和 Codex 一起记录那些原本可能埋没在对话中的决策:为什么选择某个方案、现在更推荐哪种方法,以及下次应该做出哪些调整。

与 Codex 协作编写笔记本
Runme 项目是一个开源网页应用,用于与 Codex 一起创建笔记本。与 Jupyter 和 Colab 一样,它支持 Markdown、代码单元格和 HTML,因此可以创建同时包含说明、命令、结果、表格和图表的文档。
笔记本可以直接保存到 Google Drive。这样,与我合作的人就能用熟悉的方式查找和分享工作成果,无须再引入一个文档存储库。
Runme 还会为每个笔记本生成一个配套的 Markdown 索引文件,名为 *.index.md。Google Drive 可以为该文件建立索引,让智能体在需要示例、运维上下文或以往运行结果时,更容易找到之前的笔记本。
智能体通过 WebMCP 与 Runme 交互。应用加载时会注册浏览器端工具,智能体可以使用这些工具来:
- 阅读使用 Runme 及其笔记本的说明。
- 运行范围受限的 JavaScript 程序,读取或更新笔记本内容。
- 阅读应用文档。
这种架构很重要,因为 Runme 是一个以静态网站形式提供的客户端应用。如果仅为提供传统 MCP 端点而添加服务器,就会引入额外的基础设施和运维复杂性,还会改变笔记本数据的处理位置。而 WebMCP 让应用可以直接从浏览器提供这些能力。
收集并整理有用的上下文
每次运行评估,我都有机会记录工作是如何完成的,让下一次运行更轻松。随着工作流程不断改进,它会产生更多有用的上下文。这些上下文又能帮助 Codex 更有效地处理下一轮任务。
日常工作中已经有很多信息可以帮助智能体,但它们散落在终端历史记录、Slack、运维手册、文档和仪表板中。难点不在于证明文档有用,而在于把编写文档的成本降得足够低,让记录能与工作同步完成。
Runme 将意图、操作、决策和结果汇集在同一份工作成果中。持续目标让 Codex 专注于任务,而自动审批审查可以在不改变现有权限边界的前提下,审查符合条件的操作。
计划何时准备就绪、重要选择何时需要人工判断,仍由我来决定。Codex 负责重复的执行工作,并记录整个过程,详细程度超过我自己会写下的内容。生成的笔记本易于分享,因此这些实践经验不必只留在某个人的聊天记录里。
找回自己的时光
在职业生涯的很长一段时间里,我都在琢磨该用什么“咒语”,才能让那些挑剔的机器按我的意愿工作。云基础设施和 Kubernetes 本应让软件部署和运维变得更轻松。但随之而来的,还有一个庞杂的工具生态,CNCF 全景图就很好地展现了这一点。解决一个问题往往又带来一个新问题:选择、学习并运维解决它所需的工具。
对我来说,Codex 的吸引力在于,它可以帮助处理这些重复的运维工作,同时让我继续参与重要的决策。
希望我能找回一些这样的时光,用来陪我的狗狗玩。