这一期相关度非常高,而且是罕见的"今天就能动手"型。你的 app_incubator 跑在 Figma / Chrome / Notion MCP 上,Holdwell 的三驾马车 PRD 工厂同样是多-Agent 编排——这场演讲讲的正好是这类栈里的 server 怎么从"回一段文字"升级成"回一块能点的界面"。而 PostHog 那个例子里的主角,就是一个想看漏斗、结果收到一大段文字的产品经理,那六个字「事实上没错,但没用」几乎是照着你手上评审环节的现状写的。
Codex Holdwell ERP work(三驾马车 PRD 工厂 · 碰撞协议 · 真人评审)
1)你的评审输出,就是 PostHog 那段"事实正确但没用"的文字
- 怎么做的:演示里 PM 问漏斗状况,Claude 调 PostHog 拿回一段文字——「这段文字事实上没错,但没用。我得一行行读,可我不想读,而且读起来也挺费劲。」补一句"给我看看",同一份数据就变成一个可交互 widget,一眼看出发生了什么。技术上没什么魔法:server 把一段 HTML 装进一个 resource,tool call 关联到它,host 渲染,「代码非常简单——就是那个装着 HTML 的 resource,齐活了」。
- 你可以怎么做:你的碰撞评审现在吐的是大段 markdown——三驾马车各交一份补强/修正/第 3 案,人得逐行读完才知道该不该放行——这正是"正确但没用"。改造点在输出层,不在 agent 逻辑:给评审这一步加一个 HTML 模板,把三方结论渲染成色块(通过 / 风险 / 阻断三档),详情折在点开之后。第一步甚至不用接 MCP——先让评审 agent 多吐一个本地 HTML 文件,用浏览器打开看一眼。如果这一步做不出来(结论抽不出来、只能是一大段散文),那说明问题不在渲染,在你的评审本身没有可判定的结论——这本身就是极有价值的发现。
2)三级控制权,正好是碰撞协议纪律缺的那把牙齿
- 怎么做的:MCP Apps 给界面对流程的控制权分了三级——最轻:只通知 host「发生了某件事」;中间:建议 host 去调某个 tool(注意措辞是"我建议你");最重:请求 host 去跑一条 prompt,把责任全部交出去。三级都只是"申请",执行权永远在 host 手里,「host 始终掌握着流程的控制权」。副产物是可审计:「所有东西都要经过 chat,因此是可审计的。」
- 你可以怎么做:把这三级原样抄成你三个 agent 之间的编排契约。碰撞协议之所以让你担心"纪律没真执行",本质是子 agent 能自己宣布自己通过了——执行权散在各处,流程约定就只是一句提示词。改成:阶段内的 agent 只有"通知"和"建议"两级权限,推进阶段这个动作只有编排层(PM 主持的合成定稿)能执行。这一改还顺手解决另一件事:所有推进阶段的决定都留在同一条链上,你要的"agent 产出可观测"——证据就是这条链本身,不用另外做。
3)「能力升级发生在约定层,不在协议新增层」——对着你想再加一层流程的手
- 怎么做的:MCP Apps 这么大的能力跃迁,没有发明任何新原语:复用已有的 resource,加一条前缀约定,加一个 callback,完。整套 SDK 本质上就是"一个接收 resource + callback 的 React 组件"。
- 你可以怎么做:你想解决跨线对齐的时候,直觉是"再补一层""再加个 agent"。这个案例给的是反向证据:先在已有产物上加一条约定,比新增一层便宜一个数量级。 具体动作:给每份阶段产物强制加一个机器可读的结论头(几个固定字段:涉及哪些实体、结论、阻断项),格式定死。成本是改一次模板,收益是所有下游 agent 立刻能消费——同时它也就是上面那张评审卡片的数据源,一件事办两桩。
app_incubator(7-Agent 造 App · Figma / Chrome / Notion MCP)
4)"要人拍板的那几步",可以变成一块能点的卡片而不是一段要读的文字
- 怎么做的:完整回路是——界面上点一下 → 事件通过 callback 一路传回 host → 模型接到事件 → 发出新的 tool call 或调 resource,把整个 agent 循环走完。也可以不调 tool,直接把一条 prompt 送回模型(点漏斗某一步 = 对模型说"解释这一步")。渲染在 sandbox 里,界面代码碰不到宿主。
- 你可以怎么做:你 7 个 agent 的链路里,每次需要你拍板的地方现在都是"读一段 → 打一段字"。把这几个卡点做成 MCP app:设计稿与组件的映射确认、上线前 checklist、方案 A/B 二选一——点"通过"就等于往 agent 循环注入一次输入,比让 agent 猜你想要什么便宜太多,也比你打字精确。这正好落在你那条痛点"把该做什么前移到 agent"上:agent 提出选项、你只做选择。
5)「99% 的 UI 我根本用不着,因为它不认识我」——这就是你首屏问题的答案
- 怎么做的:为了安排一个纪念日要开 20 个标签页,挨个向 Google Calendar、Amazon、Booking 表达意图,而「那些界面上 99% 的东西我根本用不着,因为这些 UI 不认识我,它没有关于我的 context」。解法是把 UI 拆成原子,由掌握 context 的助理来组合,助理主动说"我看到你有个纪念日快到了",然后直接渲染出一块 Google Calendar 界面。
- 你可以怎么做:你的"激活 / 首屏体验"痛点,本质是首屏在做"给所有人的最大公约数菜单"。按这个逻辑重做:首屏不列功能,而是根据已知的这个人的 context,只渲染此刻需要的两三个原子。动作:把首屏元素拆成可独立渲染的小块,先写一套手工规则决定哪几块出现(新用户出哪块、回访出哪块),别一上来上模型。规则跑通了再谈智能组合。
6)用官方 SDK,别自己包一层——这跟你的"设计稿即契约"是同一个哲学
- 怎么做的:他们特别提醒,用官方 SDK 的好处是它由规范维护者本人直接维护,规范一改就立刻反映到 SDK,"新东西自动到手"。SDK 和规范都在官方 model context protocol 仓库底下的 MCP Apps repo。
- 你可以怎么做:如果你在 app_incubator 里做界面回传,别自己封装一层 MCP UI 协议,直接吃官方 SDK。这跟你已经在守的"设计稿即工程强制契约"是同一件事:契约要由源头维护,中间每多包一层,就多一处会漂移的地方——你一个人扛多线,最不能付的就是这种慢性维护税。
onehuman_company(一人公司 build-in-public)
7)这一期能出两颗子弹,而且都过得了弹药库闸门
- 怎么做的:演讲给了几条可以被实测的硬断言——server 能直接返回可交互界面、点击会回流成 tool call、写一次到处跑(同一套代码库同时跑在 LibreChat 和 ChatGPT)、以及那组分发数字(ChatGPT 8 亿周活 = 全球 10%,是 App Store 上线时可触达市场的 170 倍)。
- 你可以怎么做:第一颗是标准的「大佬说 X 我试了」验证体——"MCP Apps 的作者说 server 能直接返回可交互界面,我拿 drizzle tech 的评审环节真试了一遍"。可抄物就是那份最小 HTML 模板 + 改造前后的对比图(左边一屏 markdown,右边一张五色评审卡),读者能照着改自己的。删掉你的实测和对比图就不成立,闸门能过。第二颗是管理成本账:做这块界面花了多少时间、多少 token、agent 返工几次、最后省不省——这是你这个号的第二支柱,而且几乎没人写。
StockHelp(投资看板)
8)把 Streamlit 看板包成一块能在 Claude 里直接调出来的界面
- 怎么做的:MCP app 说到底就是"一个装着 HTML 的 resource",同一个 app、同一套代码库既跑在开源客户端 LibreChat 里,也跑在 ChatGPT 里。而且界面点击可以直接触发新的 tool call。
- 你可以怎么做:StockHelp 现在得专门开 Streamlit 才能看。把那块看板包成一个本地 MCP server 返回的界面,你在 Claude 里问一句"今天 watchlist 怎么样",12 只票的 PE / 5 年分位 / 公允价就直接出在对话里,点某一只等于让 agent 去拉它的详情。这是 Phase 1「只看数据」最省的分发方式——你不用做 Phase 2 的通知系统,因为你本来就天天开着 Claude,收口点已经在那儿了。顺带同一套做法可以套在第二大脑的 30 秒回顾 dashboard 上(金句池能翻、点主题跳 MOC),改造成本几乎一样,可以顺手做掉。
该反着用
讲者是在推一个面向 8 亿周活用户的全球标准,他们最大的两个动机——"品牌识别不能丢"和"分发规模"——你一个都没有。你的用户是你自己和 8 个 PM 同事,没有品牌问题,也没有分发问题。所以正确的借法是反过来:别追规范前沿、别参与工作组、别自己造 UI 协议,甚至一开始连 MCP 都不用接——先本地生成一个 HTML 文件、浏览器打开,验证"人看卡片比看 markdown 快"这个假设成立了,再谈接协议。他们做的是标准,你要的是效果;在你的规模上,把标准当目的就是最贵的一种走神。
和你现在做法冲突
你整个多-Agent 工厂建立在**"文档即契约"**上:markdown 能 diff、能进 git、下一个 agent 能读、评审记录能归档。MCP Apps 把产物变成 HTML 界面——人看着爽,但机器读不动、版本比不了、沉淀不下来。你要是把评审输出换成界面,第一个要回答的问题就是"那留下来的是什么"。看得见的调和路径是产物分两层:机器读的结构化结论(真正的契约)+ 人看的渲染层(从结论生成,可丢弃)。但这条路的前提是你先得有那层结构化结论——而它今天还不存在,你的评审现在是散文。张力放这儿,怎么排先后你自己定;只提醒一句:上面第 3 条那个"结论头"和这件事是同一件事。
对你的镜子
你一直在解决"agent 产出太长没人读",而你的解法一直是压缩——密度梯度、总结、摘要,连这本知识库的写法规范都是围着"怎么写得又全又短"打转的。这场演讲提示了另一条你没走过的路:问题可能不在长度,在形态。 「事实上没错,但没用」这六个字,值得你拿去逐一检查手上每一份 agent 产出——有多少是"该压缩"的,有多少其实是"该变成能点的"。
所以呢
可迁移思维模型
- 【耐用】正确性 ≠ 可用性。"事实上没错,但没用"是一把随身尺子,量 agent 产出、量 PRD、量看板、量你自己写的笔记都成立。信息完整从来不等于问题解决。
- 【耐用】控制权归编排方,不归执行方。执行单元只有通知权和建议权,推进流程的动作收在唯一一个点上。这是多-Agent 系统的通用治理规则,也是判断"关卡有没有牙齿"的唯一标准——关卡的牙齿不是提示词,是执行权的归属。
- 【耐用】在已有原语上加一条约定,比新增一层便宜一个数量级。MCP Apps 全部的能力增量就是"resource 里放 HTML + 一个 callback"。下次想加东西之前,先问一句"这能不能只是一条约定"。
- 【会过期】具体的规范名和客户端名单(app tools / view tools / A2UI / 谁支持谁不支持 / reusable views 什么时候落地):三个月一变,别背,用官方 SDK 让它自动跟你走。
判断更新
把"我的 agent 产出该不该更短"这个问题,换成"我的 agent 产出该以什么形态被消费"。判断线很清楚:要人读的东西压缩,要人决策的东西改成可点的。 你的碰撞评审、你的真人评审、你的 StockHelp 看板、app_incubator 里每一个拍板点,全都属于后者——而你一直在用前者的办法优化它们。
这周一个赌注
挑 PRD 工厂里最长的那份评审输出,花两小时把它抽成一张 HTML 卡片:三方各一个色块、每方只给"通过 / 风险 / 阻断"一档结论、详情点开才看。先别接 MCP,就本地生成一个 HTML 文件用浏览器打开。 一次验三件事——你的评审到底有没有可被结构化的真结论(抽不出来才是大发现)、人看卡片比看 markdown 快多少、以及这张前后对比图够不够格当一人公司的第一篇验证体。