⌕ ESC
↑↓ 选择↵ 打开esc 关闭⌘K 唤起
← 主页 NO.97
专栏 · Agent 工程手艺 ›
第 97 期 · AGENT 工程 · 收录于 2026 年 8 月 16 日

把任务和模型分开,效果出乎意料地好——Maxime Rivest 与 Isaac Miller

MR
Maxime Rivest · AI Engineer
Agent 工程
视频 17:11 原文约 1.5 万字 预计阅读 14 分钟 来源视频 ↗ 中英对照全文
原平台热度 YouTube ↗
4,714观看
108赞
2.3%点赞率
4评论
62.7万频道订阅
数据截至 8 月 27 日
双人对谈 · 本期速读电台 00:00 / 25:26
TL;DR · 三句话
  1. 一AI 程序应该像写函数一样写:给一个会反复执行的任务定死"输入什么、输出什么"的契约,把模型、prompt、agent、工具这些实现细节全关进盒子里——外面的集成代码永远不用改,里面爱怎么换怎么换。→ 详细
  2. 二要把一个任务刻画完整,需要三样东西:spec(应该发生什么,用自然语言指令)、code(必须发生什么,用代码硬性强制)、eval(好长什么样,只能靠例子学)——三样齐了,任务目标才算被完整定义,机器才可能替你自动优化实现。→ 详细
  3. 三这不是学术玩具:Shopify 靠换掉贵模型、沿用同一套 eval,把成本降到原来的 1/550 → 详细;而且就算将来真有了 AGI 也替代不掉这套活儿——"智能,和无所不知,完全是两回事"。→ 详细
01

核心论点:AI 程序也该像函数一样写(厚)

  • 开场即全场主张:Maxime Rivest 和 Isaac Miller 代表 DSPy 社区上台(DSPy = 一个用 Python 写的开源框架,把"写 AI 程序"变成"写函数"),讲"把任务与模型、harness 和所有实现细节分离开"带来的、好到不讲道理的效果。harness 的大白话是"跑模型的那一整套外壳"——调用几次、怎么循环、带不带工具、怎么重试,全算它。→ 详细
  • 类比朴素但硬:普通编程里"一件事要反复做,我们就把它写成函数",而函数的四个好处是可复用、可组合、可测试、可优化——起名、定义输入输出、写实现逻辑三步而已,之后就能复用成千上万次、单独优化、组合进更大的程序。讲者认为 AI 程序理应享有一模一样的待遇。→ 详细 → 详细
  • 还有一个被低估的特性:函数可以打包分发,别人只需知道对外的契约(contract,即"喂什么进去、吐什么出来"的约定)就能当 black box(黑盒)来用。DSPy 就是把这整套属性搬到 AI 程序上并配齐工具链。→ 详细
  • 为什么现在特别需要?过去三年领域造了一大堆新名词,每隔一周就有新模型、新技术、新策略,"如果你和我一样,你会想把它们全都试一遍"。但讲者一句话定性:它们全都只是"实现层面的战术"(implementation tactics),该做的不是追着跑,而是把它们塞进一个清晰的契约里。→ 详细
  • 结论式的一句:"如果你为那些会反复执行的 AI 任务定义好输入接口和输出接口,你就可以随意折腾内部实现,从而获得极大的灵活性。" 换句话说,agility(敏捷)不是靠跑得快换来的,是靠"把变的部分关起来、把不变的部分定死"换来的。→ 详细
02

四个真实的 AI 程序:从报税发票到"给 spec 出 PR"(紧凑)

  • Maxime 的第一个 DSPy 程序很生活化:农场发票要报税,写个程序把税额抽出来。→ 详细
  • 第二、三个是键盘快捷命令:读剪贴板 → 纠正语法(或改写得更清晰)→ 放回去;因为接口固定,"出了新模型我随时可以换掉,非常简单"。→ 详细
  • 野心版:整个收件箱 + 一封新邮件 → 起草回信;再往上是"给它一份 spec 和一个代码仓库,它给你产出一个 PR"(用 RLM,recursive language models,递归语言模型,即让模型对超长内容递归地自调用来处理)。讲者强调这些同样是"可重复的任务",所以同样该写成函数。→ 详细 → 详细
03

边界一旦固定,内部就是自由市场(厚)

  • 这是整场最实操的一段:当你把边界固定下来,上层只关心"要做成什么",内部的实现可以一路进化而外部零改动。演进路线讲者给得很具体——一开始里面只放一个简单 prompt 做一次普通调用;你可以不断迭代这个 prompt;agent 出来了,你把它换成 agent;工具被发明出来了,你加上工具;再往后进入 loop engineering(循环工程,即让模型反复自己跑、自己纠错的那套调度),你也把它塞进去。→ 详细
  • 关键收益是那句"外面的一切都不会因此改变,你的集成方式也不会变,其他东西也都不用动"。也就是说,你为"追新技术"付出的代价,被压缩在一个盒子里,不会外溢成一次全系统重构。→ 详细
  • 而且这条硬边界还有第二重红利:"当你有了这样一条硬边界,你还可以开始做自动优化。" 没有边界,就没有可被优化的对象;边界本身是优化的前提条件,不只是工程洁癖。→ 详细
04

第一样 · 应该发生什么 = instructions(中厚)

  • 但只有 signature(签名,即"输入什么类型、输出什么类型"的那行声明)不够——"这还不足以完整刻画你的任务"。时间点很有意思:早在 ChatGPT 出现之前,DSPy 的作者就已经形成了"刻画一个任务需要三样东西"这个想法。→ 详细
  • 第一样是"应该发生什么"= instructions(指令)。真实脚本里模型配置写在最上面,和下面的 signature 完全独立——这本身就是"任务 / 模型分离"的具象体现。→ 详细
  • signature 里就是大白话需求:"把所有税额抽取出来,如果字迹无法辨认就输出 0";输入一个字符串,输出一个字符串加一个浮点数。讲者说这"非常强大,也非常高效"。→ 详细
  • 为什么高效?一个特别好的比方:朋友来找你玩桌游,你把规则念一遍他马上就能开局;但你要是走 AlphaGo / AlphaZero 那条路,跟他说"你只能从例子里自己学",那这一晚上有得熬了。 能用一句话说清的事,别逼模型用一万个样本去猜。→ 详细
05

第二样 · 必须发生什么 = 用代码强制(厚)

  • 第二样是"必须发生什么":"有些约束是必须被遵守、必须被强制执行的。做这件事最好的方式是用代码。" 注意这里的立场——不是写进 prompt 里请模型注意,而是用代码兜住。→ 详细
  • 代码长什么样,他逐行讲了:定义了 self.extract 和 self.recheck 两个东西,前者是对"抽取税额"做一个 Predict(最朴素的一次调用),后者是对同一件事做一个 ChainOfThought(思维链,让模型先写推理过程再给答案)。→ 详细 → 详细
  • 然后在 forward(程序主流程)里那句 if not pred.tax 就是硬性要求的落点:如果朴素版本没抽出税额,就自动用更多推理重跑一遍——"毕竟,我的税必须算对"。第二条要求是:数值小于零就抛异常,交给人来看,"不能就这么放过去"。→ 详细 → 详细
  • 这段收在一句很锋利的话上:"这一点是不会变的。就算真的有了 AGI,我当然希望它不犯错,但只要 predictor 里的东西还会犯这些错,我就依然要保证这些约束成立。" 意思是:约束层的价值不随模型变强而贬值,它是你和不确定性之间那道不商量的墙。→ 详细 → 详细
06

第三样 · 好长什么样 = 只能从例子里学(厚)

  • 第三样是"好的结果长什么样"。Maxime 讲了一个农场上的童年故事:他问爸爸"你怎么知道这棵树是枫树?"——他爸说不上来,给不出一套判断说明,更给不出一段判断代码。于是他只能靠时间和大量例子,慢慢学会认枫树。→ 详细
  • 关键在于这个故事不是关于植物学的:"它同样适用于你需求规格里那些长尾的、更隐性的部分。" 也就是说,一套需求里总有一部分是写不进文档、也写不成代码的隐性知识(latent),只能被示范出来。→ 详细
  • 他顺手给了这类知识一个人类世界的对照物:"这也正是为什么会有实习制度、会有导师带学徒的原因。" 你要看大量例子,因为"那些成功行为里有很长的长尾,你必须亲眼见过才能学会"。→ 详细 → 详细
  • 三样凑齐——spec、代码、eval(评测集,即"用什么样例和打分标准来判断做得好不好")——"你的目标就被完整刻画出来了,于是你可以开始做优化"。这句是整场的枢纽:没有这三样,"自动优化"根本无处下手。 → 详细 → 详细
07

优化史:从翻 few-shot 例子,到自动改指令,到解放实现细节(紧凑)

  • 优化的抓手是 GEPA(一个 prompt 优化器,出自伯克利):作用在你的 metric(评分函数)和程序上自动搜更好的实现。→ 详细
  • 早期没这条件——"在 DSPy 早期,GEPA 还不存在,那时候模型也还没好到可以做优化",只能用代码去搜 few-shot 示例(在 prompt 里塞几个做对的例子)把基础模型掰正;后来模型变强才能自动优化 instruction。→ 详细 → 详细
  • 终局期望说得很直白:"你只需要盯住这三样东西,剩下的新玩意儿和实现细节都能自动帮你搞定。" → 详细
08

企业侧的硬证据:Shopify 把成本压到 1/550(厚)

  • 交棒给 Isaac Miller 后,第一句就是把这套东西从学术圈拽出来:"这些绝不只是学术圈里的东西,一些最大的企业已经在生产环境中使用它们,并取得了巨大的收益。" → 详细
  • 企业收益有两条。第一条是实现变便宜:当你对"具体怎么实现"保持灵活,就可以借 bitter lesson(苦涩的教训,指"通用方法 + 算力搜索"长期胜过人工精雕细琢) 去搜索不同解法,找到便宜的那个。第二条是规模:便宜之后你能跑的数据量,是昂贵实现根本处理不了的。→ 详细
  • 具体数字:Shopify 便宜了 550 倍(成本降到原来的 1/550)。做法拆开看毫不神秘——从一个昂贵模型换成一个便宜模型,同时沿用同一套 eval,继续在内部迭代业务逻辑、尝试新东西。也就是说,省下的那 549/550 不是因为模型魔法,而是因为评测标准没变,所以敢换。→ 详细
  • 讲者点名"这里有三个很棒的案例研究,演讲结束后大家可以去看看",说里面有很多"怎么在自己的企业里做到这一点"的细节(现场只展示了幻灯片,未逐个念名字)。→ 详细
09

生态的诚实边界:"我们只帮你解子问题,你的问题是你的工作"(紧凑)

  • 一句非常反营销的话:"我们加进来的这些技术,没有一个是一定能解决你的问题的——那是你的工作。我们能做的,是帮你解决那些子问题。" → 详细 → 详细
  • 例子人名机构齐全:MIT 博士生 Alex Zhang 的 recursive language models(RLM)论文解决某类 long context(超长上下文)问题,DSPy 把它接进来——"也许有用,也许没用。但关键在于,只需要一行代码,你的 signature 完全不用动。" → 详细 → 详细
  • 过去一年社区内外的技术清单:RLM、GEPA(伯克利的 prompt 优化器)、Better Together、multi-module GRPO(多模块强化学习训练法)——身处生态就能直接试用。→ 详细 → 详细
10

DSPy 4 新东西之一 · dspy.flex:连 harness 都能学出来(紧凑)

  • DSPy 4 里 Isaac 重点讲两个:dspy.flex 和 qualitative learning。→ 详细
  • dspy.flex 是一种新 module,把"可优化的对象"再抬一级:"一开始是 few-shot 示例,后来变成了 prompt,而现在它正在变成代码。" 任何函数都能随时间学出一整套定制 harness。→ 详细
  • 前提仍是那三样:"你之所以能有衡量的手段,是因为你已经定义好了 spec、code、eval 这三个核心部分。" → 详细 → 详细
11

DSPy 4 新东西之二 · qualitative learning:eval 为什么难,以及用现实反哺 eval(厚)

  • Isaac 直接点名痛点:"AI engineering 里最难的问题之一,就是构建 eval。" 三条难点条条能对号入座。难点一:对任何真实世界的问题,定义"什么才算好"本身就非常有挑战。→ 详细
  • 难点二(最值得抄走的一条):定义"好"时往往不得不丢掉大量细节——"『这封邮件好还是不好』所包含的信息,远远少于『这封邮件里改哪些地方才能变得更好』"。一个二分标签,把整段可操作的改进意见压成了 1 bit。→ 详细
  • 难点三:每当你造出一个可以往上爬的"山坡"(hill,即一个可优化的评分曲面)和一套数据集,你其实是在为现实制造一个代理指标(proxy)。于是他反问:"那如果反过来,我们能直接用现实来自动指导我们的 eval 呢?" → 详细
  • 这就是 qualitative learning(定性学习):怎么缩小差距、怎么减少对人工介入的依赖——"这目前还是一个研究问题"(讲者自己标明了它还没落地)。押注是模型已足够强,能解读环境里的各种文字反馈并转化成 eval、转化成一个可以往上爬的山坡;反馈来自生产环境的 trace(调用轨迹)、用户行为、产品分析数据,以及模型主动来问你"数据应该怎么表示",模型一轮轮打磨山坡并持续往上爬。→ 详细 → 详细
  • 这也是 DSPy 的定位——专攻"最后一公里"问题:看到应用型 AI engineering 里真实发生的问题 → 定义清楚 → 建 benchmark(基准测试集)→ 用技术解决 → 因为开源、开放研究,再把成果普惠给所有人。→ 详细
12

"等有了 AGI 呢?"——爱因斯坦不会用邮件(中厚)

  • 现场最常被问的一个问题,Isaac 正面回应:"哪怕我们有了一个极其聪明的模型,它也不知道该怎么解决你的问题。它不知道怎么做你的任务,也没有你的上下文。" → 详细
  • 全场最好记的一句金句:"智能,和无所不知,完全是两回事。"(Intelligence is very different from being all knowing.)所以"最后一公里学习"这一整类问题问的是:怎样才能高效地完成这种学习。→ 详细
  • 配套的段子同样精准:"如果你让 Albert Einstein 帮你处理邮件,他大概会先反问一句『什么是 email?』" ——当然 AGI 是知道怎么处理邮件的,但它依然不知道该怎么真正解决你的问题、怎么跟你需要打交道的人打交道;不随时间学习这些上下文,它就理解不了你的人际关系。→ 详细
13

面对任何新技术,你该问的那个问题(紧凑)

  • 时间线:从 2022 年起 DSPy 就专注 spec / code / eval 三个核心理念,全部以"编程接口"方式定义;演进链条是演化 few-shot → 演化 prompt → 演化 harness → 现在连 eval 本身也在随时间演化。→ 详细
  • 判据一句话:"它能不能帮你解决更难的问题,或者把你自己的问题解决得更好?而且你要用数据驱动的方式来问"——先把问题定义清楚,然后"让你的 prompt、模型和代码,都为你要解决的那个问题负责"。→ 详细
  • 网络效应收尾:实现保持灵活,就"解锁了在座每一个人不断发明出来的所有技术",解锁了"所有人共享技术所汇聚成的集体智慧"。→ 详细
14

闪电问答 / 收尾

本场无闪电问答环节(17 分钟的双人主题演讲,讲完直接收尾,没有 Q&A / lightning round 段落)。

收尾部分讲者说了三件事:

  • 号召:"如果你想构建可靠的 AI 软件,我很建议你来了解一下 DSPy。我们完全开源、开放研究,我们就是来帮你通过构建可靠软件来解决问题的。" → 详细
  • 社区:有一个 Discord,欢迎加入。→ 详细
  • 反向邀请:"等你想出了下一项新技术,欢迎来给 DSPy 贡献。我们可以帮你把它分发出去,让这个很棒的技术惠及所有人。" → 详细
15

联系方式

  • 讲者:Maxime Rivest、Isaac Miller(均代表 DSPy 社区;现场未给出个人联系方式)。→ 详细
  • DSPy:完全开源、开放研究的 Python 框架,官方 Discord 社区开放加入;技术贡献走开源贡献通道。→ 详细
  • 文中点名的第三方:Alex Zhang(MIT 博士生,RLM 论文作者)、GEPA(伯克利)、Shopify(企业案例)。→ 详细
接着读