self.extract 和 self.recheck 两个东西,前者是对"抽取税额"做一个 Predict(最朴素的一次调用),后者是对同一件事做一个 ChainOfThought(思维链,让模型先写推理过程再给答案)。→ 详细 → 详细if not pred.tax 就是硬性要求的落点:如果朴素版本没抽出税额,就自动用更多推理重跑一遍——"毕竟,我的税必须算对"。第二条要求是:数值小于零就抛异常,交给人来看,"不能就这么放过去"。→ 详细 → 详细本场无闪电问答环节(17 分钟的双人主题演讲,讲完直接收尾,没有 Q&A / lightning round 段落)。
收尾部分讲者说了三件事:
号召:"如果你想构建可靠的 AI 软件,我很建议你来了解一下 DSPy。我们完全开源、开放研究,我们就是来帮你通过构建可靠软件来解决问题的。" → 详细
社区:有一个 Discord,欢迎加入。→ 详细
反向邀请:"等你想出了下一项新技术,欢迎来给 DSPy 贡献。我们可以帮你把它分发出去,让这个很棒的技术惠及所有人。" → 详细
讲者:Maxime Rivest、Isaac Miller(均代表 DSPy 社区;现场未给出个人联系方式)。→ 详细
DSPy:完全开源、开放研究的 Python 框架,官方 Discord 社区开放加入;技术贡献走开源贡献通道。→ 详细
文中点名的第三方:Alex Zhang(MIT 博士生,RLM 论文作者)、GEPA(伯克利)、Shopify(企业案例)。→ 详细
这一场表面讲的是一个 Python 框架,实际讲的是你这一年一直在跟自己较劲的那件事:怎么让一堆 agent 干活是可复现、可换零件、可验收的,而不是每次都靠 prompt 手感。下面按相关度从高到低排。
他们怎么做的
他们把"刻画一个任务"拆成互不替代的三层:spec(应该发生什么,自然语言)、code(必须发生什么,代码强制)、eval(好长什么样,只能靠例子),并且明说三层齐了目标才算被完整定义、才谈得上自动优化 → 详细。最狠的一刀在第二层:"有些约束是必须被遵守、必须被强制执行的。做这件事最好的方式是用代码。" 他们没有把"税额不能为负"写进 prompt 请模型注意,而是写成 if 值 < 0: 抛异常,交给人看;也没有指望模型自觉重试,而是写成 if not pred.tax: 换成带推理的版本重跑 → 详细 → 详细。
你可以怎么做
你 PRD 工厂最疼的一条是"碰撞协议的纪律没有强制执行点"——独立初稿互不可见、碰撞各交三件写在协议里,但没有任何东西阻止流程带着缺陷往下走。这场演讲给的答案就一句:纪律不该是 prompt 里的一段叮嘱,该是代码里的一个 if。具体到你的链路,至少三个检查点可以立刻代码化:(a) 独立初稿阶段 UX 与 tech 引用了对方内容 → 直接抛出、判定违规重跑;(b) 碰撞环节任一方没交齐"补强/修正/第 3 案"三件 → 不允许进入合成定稿;(c) 跨线联动的实体/字段对不上 → 抛给人看,而不是让下游 agent"尽力对齐"。它们的共同特征是"就算模型变聪明我也依然要它成立" → 详细——这正是判断"该不该代码化"的那把尺子。
另一件事:6 条产品线强耦合、跨线对齐难 = 你的 signature 还没定死。这场演讲说得很清楚,边界不固定,内部就没法自由替换,自动优化更是无从谈起 → 详细。先把跨线共享的实体契约钉死,三驾马车的各个 agent 才可能真正做到"换一个换掉不影响别人"。
还有"agent 产出缺可观测/可验证"——按这场的话说就是 你缺的是第三层 eval。而 Shopify 的 550 倍恰恰说明了 eval 的真实用途:它不是给老板看的分数,它是"你敢不敢换实现"的通行证 → 详细。
更深一层(镜子) 你的 PRD 工厂里有多少内容其实是"枫树"——你说不出规则、也写不成代码,只能靠给例子?Maxime 他爸认不出怎么描述枫树,但认得出枫树 → 详细。你团队里"什么算一份好 PRD"大概率就是这种隐性知识——你一直想把它写成更详细的 agent 定义/提示词,但它可能根本不该写成提示词,该攒成 8-12 份被你亲手标注过的"好/差对照样本"。这也解释了为什么"实习制度和导师带学徒"一直存在 → 详细:有些东西只能被示范。
所以呢 下一次动 PRD 工厂,别再往协议里加新角色、新步骤。做三件事:把 3 个最该守的检查点从提示词搬进代码;把跨线共享的核心实体契约定死;攒 10 份带标注的样本当 eval。 这三件事做完,你"碰撞纪律"和"跨线对齐"的问题会自己收窄一半——因为大部分对不齐,本质是没有一个双方都必须遵守的契约。
他们怎么做的 "边界一固定,内部就是自由市场"这段几乎是给你写的:接口定死之后,里面从"一个简单 prompt"→"迭代 prompt"→"换成 agent"→"加工具"→"上 loop engineering",一路换,而"外面的一切都不会因此改变,你的集成方式也不会变" → 详细。RLM 接进来的那句更具体:"只需要一行代码,你的 signature 完全不用动" → 详细。
你可以怎么做 你已经押注了"设计稿即工程强制契约"——这跟他们的 signature 是同一个信仰,你其实比大多数人先走了一步。缺的是把这个信仰从设计层扩展到整条 7-Agent 链路:给每个 agent 定一份"输入/输出契约",让它变成可替换零件。判断标准很朴素:换掉其中一个 agent 的实现(换模型、换 prompt、换成带工具的 agent),上下游代码要不要改?要改就说明契约没定死。 另一个直接可用的点是你的痛点"把'该做什么'前移到 agent"——这场给的路径是 dspy.flex:可优化的对象已经从 few-shot 例子 → prompt → 代码/harness 一路上移,也就是"怎么做"这层正在被自动学出来 → 详细。但前提铁一样硬:只有当 spec / code / eval 三层都定义好了,你才有"衡量的手段",才可能让机器替你决定怎么做 → 详细。想把决策前移,先把验收后移到 eval 上。
更深一层(反着用) 这套方法有个隐含成本没人提:定契约本身很贵,而且定错的契约比没契约更糟——它会把错误的边界固化下来,让你以后每次替换都在错误的形状里打转。所以别一次给 7 个 agent 全上契约。先挑那个你最常想换实现的环节(大概率是"设计稿 → 前端代码"这一段),只给它定死契约,跑两轮换实现看看是不是真的零改动。验证过再推广。
所以呢 下次迭代 app_incubator,加一个自检项:"这一环的输入输出,我能不能用一句话写清?" 写不清的那一环,就是你下次卡住的地方。
他们怎么做的 整场演讲有两个数字/证据密度极高的锚:Shopify 便宜 550 倍——做法拆开完全不神秘,从贵模型换成便宜模型,沿用同一套 eval,继续迭代业务逻辑 → 详细;以及一句反营销的诚实话:"我们加进来的这些技术,没有一个是一定能解决你的问题的——那是你的工作" → 详细。
你可以怎么做 你的 C/D 类选题(验证体:"大佬说 X 我试了" / AI 员工管理成本账)在这场里直接能挖出三条:
if 就能用。更深一层(弹药库闸门) 按你自己定的规矩验一遍:删掉你的判断和实测,这条还成立吗? 「DSPy 主张任务与模型分离」——删掉你的实测就是一条二手转述,不能发。「我换模型时改了 12 行代码,因为我的契约漏了三个字段」——删不掉,能发。这场演讲本身就是一堆好素材,但素材不是弹药,实测才是。顺带一提,讲者自己那句"这目前还是一个研究问题"(说 qualitative learning 的时候)→ 详细,就是很好的示范:把没验证的部分明说出来,反而更可信 ——这正是你 build-in-public 的声音。
所以呢 Phase 0 存稿期你要攒 6-8 篇、其中 ≥4 篇验证体。这场演讲一场就能供 2 篇验证体 + 1 篇成本账,而且都是"做完就有数据"的那种,不需要额外开新战线。优先做选题 B——它最小、最快、最有可抄物。
他们怎么做的 第二层的整个立论就是你这个项目的技术版本:"必须发生什么"不能靠说服,只能靠强制执行,而强制执行最好的方式是代码 → 详细。更关键的是那句立场声明:"就算真的有了 AGI……只要 predictor 里的东西还会犯这些错,我就依然要保证这些约束成立" → 详细。
你可以怎么做 你的宪法目前大概率是"给模型读的一段文本"——也就是他们说的第一层(instructions)。升级动作是:把宪法里最不容商量的 2-3 条,从第一层搬到第二层。 比如「问『该不该做』先于『做多快』」,可以变成一个真正的硬 gate:任何进入执行建议的输出,如果没有先产出"该不该做"的判断字段,就直接拦下来,不给你看。不是提醒你,是不放行。同理,「每周留一天思考」可以是一条代码级校验:日程里没有这一天,本周的规划输出直接标红。 你的痛点"跨域守门"本质就是 gate 的执行力问题——守门失败几乎从来不是因为门没写清楚,而是因为门是一句话,不是一道闸。
更深一层(冲突) 但这里有个真实的张力值得你警惕:你的"软教练质量"痛点和"硬强制"是彼此拉扯的。硬 gate 太多,外脑就从教练退化成了官僚系统,你会开始绕着它走——而一个被绕过的宪法,比没有宪法更伤,因为它让你误以为自己被守住了。这场演讲其实给了分界线:"应该发生什么"用自然语言(可协商、可劝、可解释),"必须发生什么"才用代码(不商量) → 详细 → 详细。你的宪法有六七条原则,但真正配得上"代码级不商量"的可能只有两条。 别把六条都变成闸。
所以呢 拿出你的宪法,给每条原则标一个字母:S(应该,教练语气劝)还是 M(必须,代码拦截)。标完你大概率会发现 M 只有 2 条——那就只做这 2 条,剩下的留给软教练。 这个分类动作本身,比你再改十版提示词都值。
他们怎么做的 qualitative learning 那段给了一个你没想过的角度:"定义『好』的时候,往往不得不丢掉很多细节——『这封邮件好还是不好』所包含的信息,远远少于『这封邮件里改哪些地方才能变得更好』" → 详细。以及"每造一个可以爬的山坡,你其实是在为现实制造一个代理指标",所以不如直接用现实(trace、用户行为、产品数据)来反哺 eval → 详细 → 详细。
你可以怎么做 你的"摄入 SOP / 信噪比"痛点,现在的做法多半是"这篇值不值得留"——一个 1 bit 的判断。按这场的逻辑,正确姿势是把它换成"这篇如果要变得对我有用,缺的是哪一块":是缺我自己的实测?缺跟某个项目的对接?还是缺一个反例?同样一次判断,后者留下的信息量是前者的十倍,而且它天然变成下一步动作。 还有一条更实在的:"用现实反哺 eval"翻译到你这里就是——用"这条笔记后来有没有被我真的引用过"来反过来评价摄入质量,而不是靠摄入当天的主观打分。你的第二大脑已经有 trace 了(你在哪些对话里翻出过哪些笔记),这就是免费的、来自现实的评测信号。
更深一层(镜子) "你需求规格里那些长尾的、更隐性的部分"→ 详细——你这本第二大脑的真正价值,可能恰恰不在那些你能写清楚的主题骨架里,而在那些你说不清楚、只能靠一篇篇笔记示范出来的判断口味。这意味着**"跨主题串联"这个痛点,可能没法靠更好的目录结构解决,只能靠攒够足够多的"我当时是怎么判断的"实例**。
所以呢 把摄入模板里的"评分"字段换成两个字段:「缺什么才有用」和「这条对上了哪个项目」。对不上就不留——这也正好呼应你自己的红线:宁可空,不要凑。
他们怎么做的 这场对"追新"给了一个不情绪化的处理方式。先是把新东西降格:过去三年造了一堆新名词、每隔一周就有新模型,但"它们全都只是实现层面的战术" → 详细。然后给判据:"面对任何一项新技术,你都要问:它能不能帮你解决更难的问题,或者把你自己的问题解决得更好?而且你要用数据驱动的方式来问。" 最后是那句问责——"让你的 prompt、模型和代码,都为你要解决的那个问题负责" → 详细。
你可以怎么做 你的元约束是"一个人扛正职 + 多个副业,精力最稀缺",而最消耗你精力的不是干活,是"每周都有新东西冒出来,我要不要跟"这个决策本身。这场给了一个省力的结构:把新技术全部关进"实现层",然后规定实现层只在有 eval 的地方更换。 没有 eval 的项目,一律不换新技术——不是因为新技术不好,是因为你没有能力判断它是不是更好,那么换与不换的期望收益就是零,而成本是确定的。 这条规则一执行,你 7 个项目里大概只有 1-2 个(大概率是 ERP PRD 工厂和 app_incubator)有资格追新,其余全部冻结在当前实现上。这就是杠杆:不是做更多,是把"要不要做"的决策成本降到接近零。
更深一层(反着用) 反过来看这场演讲的隐藏前提:"分离任务与实现"之所以值得,是因为你打算长期反复跑同一个任务。 只跑一次的东西,定契约、写约束、攒 eval 全是纯亏。所以在把这套方法铺到你所有项目之前,先问一句:这件事我一年会跑几次? 少于 10 次的,直接手搓更划算。你精力最稀缺,最不该做的就是给一次性任务盖工厂。
所以呢 给自己写一条筛子挂在眼前:「这个新技术,我打算把它放进哪个已经有 eval 的盒子里?答不出来就不看。」 它能帮你砍掉每周至少一半的信息焦虑。
他们怎么做的 两处跟你的投资视角对得上。一是枫树:"你怎么知道这棵树是枫树?"——他爸给不出说明,也给不出代码,只能靠大量例子慢慢学 → 详细。二是代理指标:"每当你造出一个可以爬的山坡和一个数据集,你其实是在为现实制造一个代理指标" → 详细。
你可以怎么做
StockHelp 的公允价用的是 target_pe × EPS——这就是一个标准的、你亲手造的代理指标:它代理的是"这家公司到底值多少钱"这个你永远拿不到真值的东西。这场演讲的提醒不是"别用代理",而是**"永远记得它是代理,并且尽量让现实来校正它"。翻译到 Phase 2/3 的信号设计:别只显示"当前 PE 在 5 年分位的什么位置",同时记录"我上次因为这个信号做了什么、后来怎么样了"——用你自己的真实决策回流来校准这块看板,而不是让看板永远自说自话。
枫树那条则对上了你的能力圈:"什么是卓越生意"很可能永远写不成一套完整的筛选规则**,你能做的是攒够被自己标注过的例子(这家我为什么认为它优秀 / 这家我为什么看走眼)。StockHelp 的 Phase 1 只看数据是对的——但可以顺手加一个"我的判断备注"字段,那才是长期最值钱的资产。
更深一层(冲突) 但这里要诚实说一句:这场的方法论是"快速试遍所有新技术",而价值投资的核心是"少动、长期持有、不追热点"——两者的时间尺度是冲突的。 之所以不冲突的部分在于分层:他们主张的"随便换"永远只发生在实现层,而契约层(三样东西)从 2022 年至今没变过 → 详细。这跟价值投资是同构的:估值方法和能力圈边界不该动,动的只是持仓。 别把"敏捷"用错层。
所以呢 在 StockHelp 里加一个最轻的动作:每次因为看板改变决定时,写一行"我当时怎么想的"。半年后这些行就是你的 eval 集——你终于能回答"我的选股规则到底准不准"这个到今天为止你还答不了的问题。