<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Runme on Codexer</title><link>https://codexer.com/tags/runme/</link><description>Recent content in Runme on Codexer</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 27 Aug 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://codexer.com/tags/runme/index.xml" rel="self" type="application/rss+xml"/><item><title>把重复工作交给 Codex，把决策留给自己：OpenAI 工程师的 Runme 笔记工作流</title><link>https://codexer.com/posts/2026-08-27-codex-runme-notebook-workflow/</link><pubDate>Thu, 27 Aug 2026 09:00:00 +0800</pubDate><guid>https://codexer.com/posts/2026-08-27-codex-runme-notebook-workflow/</guid><description>&lt;p&gt;想象一下你的日常工作：这个礼拜把一批 Kubernetes 集群拉起来，跟私有链接、配额和 Terraform 的各种坑较劲；下个礼拜又开始跑新一轮模型评估，跟 grader、配置和 PyTorch 搏斗。等这一切终于跑通、模型顺利发布，下一个循环立刻开始，你回到原点，重新拧一遍一模一样的发条。&lt;/p&gt;
&lt;p&gt;这正是 OpenAI 工程师 Jeremy Lewi 过去职业生涯的写照。他把这种状态叫作「turning a crank」，拧发条。他在最近一篇开发者博客里写道：云基础设施和 Kubernetes 本意是让部署和运维更简单，结果我们得到的是一整个庞大到要靠 CNCF landscape 才画得下的工具生态。解决一个问题，往往又制造出一个新问题，选工具、学工具、维护工具。&lt;/p&gt;
&lt;p&gt;于是 Jeremy 换了个思路：把重复的机械劳动交给 Codex，把自己从「拧发条的人」变成「造发条的人」。他把这套实践沉淀成了一个开源项目，Runme。&lt;/p&gt;
&lt;h2 id="runme给-codex-配一个会记笔记的工作台"&gt;Runme：给 Codex 配一个会记笔记的工作台&lt;/h2&gt;
&lt;p&gt;Runme 是一个开源 Web 应用，专门用来跟 Codex 一起写笔记本。你可以把它理解成智能体版本的 Jupyter 或 Colab：它支持 Markdown、代码单元格和 HTML，能把指令、命令、执行结果、表格和图表放进同一份文档里。&lt;/p&gt;
&lt;p&gt;Jeremy 做 Runme 的目标很明确，就三件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;收集和整理围绕一个工作流的上下文。&lt;/li&gt;
&lt;li&gt;守住审核与审批的边界，让关键决策始终由人拍板。&lt;/li&gt;
&lt;li&gt;用上一次运行学到的东西，改进下一次 Codex 的运行。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这三点恰好对应智能体落地时的三个老大难问题：上下文从哪来、权限怎么收、经验如何复用。Runme 的答案不是另起炉灶去造一套重基础设施，而是把这三件事都塞进一个「活的文档」里。&lt;/p&gt;
&lt;h2 id="一次评估是怎么跑起来的"&gt;一次评估是怎么跑起来的&lt;/h2&gt;
&lt;p&gt;以跑评估为例。OpenAI 发布新模型和新特性时，需要跑评估来确认它们符合预期。Jeremy 的做法是：新建一个 Runme 笔记本，写一小段目标概要：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Goal: 对当前模型跑一次评估
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; 先回顾上一次运行，理解工作流
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; 在本笔记本里写出详细计划
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; 等我审批通过后再开始
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; 记录你执行的命令、输出，以及你如何解读结果
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后让 Codex 把这段目标当成任务起点：读目标、写计划、等审批。Codex 一边执行一边更新笔记本；计划写完，Jeremy 先审一遍，不合适就改。&lt;/p&gt;</description></item></channel></rss>