ESC
↑↓ 选择↵ 打开esc 关闭⌘K 唤起
← Home NO.23
第 23 期 · AGENT 工程 · 收录于 2026 年 8 月 15 日

Code

A我
Anthropic 我们如何用Claude · Claude
视频 31:43 原文约 2.5 万字 预计阅读 25 分钟 来源视频 ↗ 中英对照全文
双人对谈 · 本期速读电台 00:00 / 29:28
TL;DR · 三句话
  1. 模型越强,越要克制约束它:照搬 Richard Sutton 的「苦涩的教训」(the bitter lesson,指机器学习史上一再重演的规律——靠堆数据和算力的通用方法,长期总能打败人手工塞进去的「聪明规则」)——讲者原话是「往里灌入更多的数据、更多的算力,最终得到的能力会超过你能想出来的任何方案」,所以与其用人类智慧提前把系统硬编码、定死需求,不如承认「模型从你身上提取需求的能力,很可能比你自己定义需求的能力还强」,让 Claude 反过来用 ask_user_question 工具一轮一轮地采访你(interview),把潜藏在你脑子里、你自己都说不清的需求挖出来。→ 详细
  2. 用 HTML 文件取代超长 markdown 做 spec 与 review:一位同事说 markdown 是「AI 原生软件开发生命周期的通用语(lingua franca)」,讲者觉得这话「挺有诗意」,但这种格式「有点受限了,它变得太长」——一旦超过约 200 行,你大概率就不会读了,你的同事就更不可能去读;HTML 信息密度高得多、对人更顺手,可点击交互、配截图、后续用 Playwright MCP 操作,这正是内容原作者 Tar 那篇博客《HTML 文件出人意料的有效性》(the unreasonable effectiveness of HTML files)的主张:从 markdown 往前走一步,改用 HTML。→ 详细
  3. 把验证(verification)做成 agent-native、内建进产物本身:让 React 组件把自己的状态以 data-verify 等属性「发布(publish)到 DOM」,形成 agent 能直接读的「数据契约(data contract)」,这样 agent 就不用去爬(scrape)整个 DOM;同一套验证可在三个界面跑——人类可读 dashboard、agent 从浏览器经 Playwright MCP 驱动、CI 里 bun verify 无头跑——还能把过程录成视频片段存 S3 当「验证通过的证据」,这就是 Tar 所在的 Claude Code 团队当前对所有前端改动的真实做法。→ 详细

讲者自我介绍叫 Ara,是 Anthropic applied AI 团队架构师(architect),开场问全场「有谁特别喜欢 Claude Code」、笑说「那你们来对地方了」。这是一场现场满座(pretty full house)的 workshop,观众可「跟着一起写代码(code along)」。→ 详细 现场配套很实在:会拿到一些额度(credits)、扫二维码配环境、clone 一个 repo 跟着做,现场有人走动帮忙,讲者还特意确认了没有「完全没用过 Claude Code」的人。→ 详细 全场内容基于 Tar 大约一周半前在旧金山做的同一个版本,讲者点名问「有谁在 Twitter 上关注 Tar」;Tar 把那次内容写成博客《The unreasonable effectiveness of HTML files》,核心一句「我们要从 markdown 文件往前走一步,改用 HTML 了」。→ 详细 配套 repo 在 CWC workshops(Claude with Code workshops) 下、本场叫 "how we Claude Code",分三个阶段:基础、进阶、以及「相当有意思、也更深入」的验证部分;Anthropic 网站上还有很多关于 harness(驱动 agent 的外层框架) 和长时间运行 agent 的工程博客值得课后读。→ 详细 因果链讲者讲得很完整:agent 能力越来越强 → 因为模型越来越强 → 模型更强则 agent 能跑更长、你也能交给它越来越复杂的任务 → 所以「我们得改变工作方式、改变习惯」→ 详细 风险很具体:agent 跑很长一段,一旦「做错方向(does the wrong thing)」就可能烧掉大量 token,理想是「一开始就避免」。→ 详细 由此引出核心动作:把更多本由人做的验证「前置(frontload)」、塞进一个 HTML 文件里——相比 markdown,HTML 是「更丰富、对人更符合直觉(more human ergonomic)」的方式,让你提前接触 agent 即将构建的东西、提前纠偏。→ 详细 全场总纲幻灯片:长时间运行 agent 的三件工具——消除歧义(让 agent 在动手前先采访你)、理解与做计划(用 HTML 而非 Markdown 写计划)、内建验证(一开始就把验证做进去,而非事后补) 全场按由浅入深排三个层次比较基础的(让 Claude 采访你、消除歧义)→ 进阶一点的(用 HTML 文件理解与做计划)→ 「相当有意思、也更深入」的(把验证做成 agent-native)。→ 详细 对应三段式工作流:prompting(让 Claude 反过来采访你)→ understand & plan(从 markdown 转向 HTML)→ verify(把验证内建进产物);讲者特意说不是要抛弃 markdown(「现在也还在用」),而是把信息「压缩进 HTML」。→ 详细 反复强调的是 verify(验证)而非 test(测试)——目标是让验证成为「这个东西本身自带的能力(native to the thing itself)」,使 agent 既能跟人一起驱动它、最终在无人值守(headless)下也能做;所以你产出的产物(artifacts)要被设计成「天生就可测试、可验证」→ 详细

🎯 于你何益 为你定制 · 非通用结论

相关度:高。 这期是 Anthropic 自己人讲「我们内部怎么用 Claude Code」,正好踩在你天天在干的事上——你不是在"用 AI 写代码",你是在造让 AI 替你干活的链路(ERP 的 PRD 工厂、app_incubator 的造 App 流水线)。Ara 全场的三条主线——①让模型反过来采访你挖需求 ②用 HTML 而非长 markdown 当 spec ③把验证内建进产物本身——每一条都能直接搬到你那两套 agent 系统和你自己每天敲 Claude Code 的手感上。下面按项目拆。

Holdwell ERP 工厂(你的多-Agent PRD 工厂)

① 让模型从人身上"提取需求",而不是逼人先把需求定死

  • 怎么做的:Ara 搬出 Richard Sutton 的「苦涩的教训」当第一原则——「往里灌入更多数据、更多算力,最终得到的能力会超过你能想出来的任何方案」,所以「你应该接受这个事实:模型从你身上提取需求的能力,很可能比你自己定义需求的能力还强」。落地开关很具体:在 prompt 里显式点名 ask_user_question 这个工具,"正是这个触发了整套流程",Claude 就会一轮一轮地采访你;好的 prompt 不是"make it better",而是给领域范围、别把结果过度指定死、只点明你关心的方面,让它开放式追问。配套金句:「需求是潜藏在你脑子里的(latent within you)——你一看就知道是不是这个,但往往说不清自己到底要什么」。
  • 你可以怎么做:你的痛点之一是"把『该做什么』前移到 agent"。你碰撞协议第①步「澄清」本来就是 PM 一问一答——这期教你把这一步做厚成反向采访关卡:让 product-manager agent 显式调 ask_user_question,按你给的领域范围(业务规则 / 异常路径 / 受众)一轮轮逼问业务方,别把结果过度指定死,把"说不清的需求"挖出来再固化成跨线共享的实体定义——与其等人手填,不如让采访产出来填它。

② 用 HTML 当 spec/评审载体,取代越写越长没人读的 markdown

  • 怎么做的:一位同事说 markdown 是"AI 原生软件开发生命周期的通用语",Ara 觉得"挺有诗意"但话锋一转——「一旦超过约 200 行,你大概率就不会读了,你的同事就更不可能去读」。HTML 的优势是信息密度高、对人更顺手、可点击交互、能配截图、后续可用 Playwright MCP 操作。逻辑闭环很硬:「你让 agent 跑得越久,spec 写得是否全面就越重要,而你越不可能一开始就定义清楚」,所以要"跟 Claude 一起迭代",而最顺手的形态就是 HTML。回应"HTML 更费 token"的质疑:「从长远看,好的 HTML spec 让你迭代次数更少,哪怕单次多花点 token」——总账更省。
  • 你可以怎么做:你的碰撞产物和各环节文档现在大概率是超长 markdown——这恰恰是"跨线对齐难、真人评审意见难回炉"的一个隐性原因:没人真把那么长的文档读完,所以收不拢、对不齐。挑一个高频卡点的产物(比如独立初稿到碰撞的交接 spec、或真人评审清单),让工厂多产一份 HTML 视图:分区卡片承载 SCOPE / OPEN questions / FLOW,关键状态可点开。先不动 markdown 底稿(它仍是机器读的),HTML 只作"给人看、给评审用"的那一层——目标是让"真人评审"那道关有个人愿意点开、3 分钟看懂的载体。

③ 把验证做成 agent-native,让流程把关有可机读的"数据契约"而非靠人盯

  • 怎么做的:这是全场最重的一块。做法是让组件把自己的状态以 data-verify 等属性"发布到 DOM",形成 agent 能直接读的"数据契约",于是 agent 不用去爬整个 DOM(爬 DOM 又慢又脆)。关键设计:把状态发布独立于内部实现,"你就能独立于 app 当前处于什么状态去跑验证"。每个组件配一整套——schema、fixtures、known states、invariants(任何时候都必须成立的不变量)、probes(主动去戳的探针),而且 probes 要"推它偏离 happy path"、"这里很多东西是 Claude 生成给 Claude 用的(generated by Claude for Claude)"。最狠的演示是"破坏契约但不破坏 app":删掉总计统计那块,app 还能用,但所有验证全红——证明验证盯的是契约而非表面。
  • 你可以怎么做:你最痛的两条是"碰撞协议纪律是否真执行""agent 产出的可观测/可验证"。这一节几乎是为你写的解法:你的流程纪律之所以靠自觉,是因为它没有可机读的判据——靠人读文档判断"过没过",自然就漏。把它反过来:给流程每个环节的产物定义一份**"完成契约"(这个环节必须满足的不变量,比如"每条需求都挂了实体""每个异常路径都有处置""碰撞三件交齐"),让产物把自己是否满足这些不变量"发布"成结构化字段**,再写一组 probes 去戳。这样把关不再是"人看一眼",而是 verify 一跑、红绿一目了然——这就是你缺的"可验证"和"闭环证据":跑一遍的结果还能存档当"这个环节确实验过"的凭据(Ara 他们就是录屏存 S3)。

app_incubator(7-Agent 造 App 链路)

①+② 设计稿即契约 × HTML 当中间态——和你的"设计稿即工程强制契约"是同一个信仰

  • 怎么做的:Ara 让 Opus 生成四个不同的 HTML 设计方向(Receipt / Editorial / 粗野主义 / 东京金融科技),每个可点击、可并排对比,"拿这个去给 Claude 反馈,比对着 markdown 猜成品长啥样好太多";还能进去截图再喂回给 Claude。配合的洞察是:做前端"你很快就撞到语言表达能力的天花板"——这东西有点不对劲、这里没对齐,文字说不清;而 Opus 4.7 的视觉模型更强,更适合"让它主动从截图里把问题抽取出来"。
  • 你可以怎么做:你的链路本来就把"设计稿即工程强制契约"当地基,和 Ara 这套同源。你的痛点是"激活/首屏体验"——这恰恰是最吃"说不清的视觉手感"的地方。把这期两招焊进去:(a) 在造 App 早期让 agent 一次性生成 3-4 个 HTML 方向供你(或用户)并排选,而不是一条道走到黑;(b) 把截图回喂做成链路里的固定一环——首屏出来后自动截图、喂回 Opus 让它主动挑"哪里不对齐/激活路径哪里卡",而不是等你用文字描述。你已有 Figma/Chrome MCP,再接 Playwright MCP 就能让 agent 直接驱动真实浏览器去验首屏。

③ Playwright MCP + headless 验证当首屏/激活的回归网

  • 怎么做的:同一套验证逻辑跑在三个界面——人类可读 dashboard、agent 经 Playwright MCP 从浏览器驱动、CI 里 bun verify 无头跑,"原理是一样的,只是入口不同";还能把整轮验证录成片段下载当证据包。
  • 你可以怎么做:你想"把该做什么前移到 agent"——验证也该前移。给 app_incubator 定义一组首屏/激活的不变量(首屏 N 秒内可交互、关键 CTA 可达、空状态有引导),让 agent 经 Playwright headless 跑一遍当回归网。这样每次 agent 改完,不用你手动点一遍 app——红了它自己知道、自己诊断(Ara 演示了让 Claude headless 找出"为什么失败"并诊断)。

你本人(每天敲 Claude Code 的手感)

用满 auto mode + effort=X-high + fast mode 迭代 spec,别再打"make it better"

  • 怎么做的:Ara 给了一串很具体的口径——auto mode "是最棒的"(Shift+Tab 切,"如果你还没用,真该用起来,会让一切轻松太多");effort 官方建议 X-high,也可设 max/effort);fast mode/fast)"很棒、虽然更贵,但用来快速迭代 spec 非常合适";模型强烈推荐 Opus 4.7(视觉模型强),"用 Sonnet 不太推荐"。还有那条反复出现的习惯:经常截图喂给 Claude,"你们就该这么做"。
  • 你可以怎么做:你是单兵扛多线,精力是元约束——这些就是直接降你认知负担的开关。自检一下你现在的默认档:有没有常年挂 auto mode?effort 是不是设到了 X-high?前端类活儿(StockHelp 看板、小红书封面、app 首屏)有没有用满"截图回喂"而不是用文字硬描述?把"打 make it better"换成"给领域范围 + 让它 ask_user_question 采访我",这一个习惯改动,跨你所有项目都省返工。

Personal Thinking(这本第二大脑 · 你的技能与 CLAUDE.md)

"消除歧义"原则可以焊进你的摄入 SOP 与技能;HTML 视图可治信噪比

  • 怎么做的:Ara 强调好流程的起点是消除歧义——让 agent 动手前先采访你、把潜在需求挖清楚,而不是带着模糊指令一路跑偏烧 token。
  • 你可以怎么做:你的痛点是"摄入 SOP、信噪比、跨主题串联"。把"反向采访"思路写进你常用的技能(就像 wiifm 这次被单拆出来重跑一样):让入库类技能在动手前先用 ask_user_question 跟你确认一两个关键判断(这条该进哪个主题?是否成立新主题?),而不是默认替你猜——你 CLAUDE.md 里"新主题需先确认"那条红线,本质就是这个原则,可以从"靠我记得问"升级成"技能强制问"。HTML 那招也能用在信噪比上:给某个主题的 _MOC.md 配一份可点击的 HTML 概览,比越长越没人读的 markdown 更适合"30 秒回顾"。

更深三角度

  • 该反着用:Ara 的语境是 Anthropic——资源足、团队大、发布节奏极快,所以他们能把"录屏存 S3、自动化验证矩阵"当常规节奏养着。你是单兵 + 精力稀缺,正确的借鉴是反着用"全套":别一上来就照搬 schema/fixtures/invariants/probes/录屏那一整套重型基建(那会把你唯一的精力吃光),而是只取最小可机读契约——给最痛的那一个环节定义三五条不变量、跑一行 verify 见红绿就够。把"内建验证"当杠杆用,不是当工程项目做。

  • 和你现在做法冲突:你的 ERP 工厂和很多 PM 直觉,是先把需求/规格尽量写全写死,再交给 agent 执行——越完整越放心。Ara 的第一原则直接顶上来:「你越不可能在一开始就把所有东西都定义清楚」「模型提取需求的能力可能比你定义需求的能力强」。这两者是真冲突:你信"前置定义",他信"迭代提取"。张力留给你——你那套碰撞协议的强结构,到底有多少是必要的护栏,有多少是"手工硬编码"在挤掉模型本可帮你挖出来的需求?(不替你下结论,但值得你拿一个真实需求做对照实验。)

  • 对你的镜子:你天天纠结"工厂的跨线怎么对齐、纪律怎么强制"——这期照出来一件事:你缺的可能不是更多流程文档,而是让产物自己能说话的契约。当东西能把"我满没满足约束"发布出来,"对齐"和"强制"就不再是治理难题,而是 verify 一跑的工程事实。你一直在用"管理"的思路解一个本可以用"数据契约"解的问题。


One Human Company 新号(2026-07 回填)

1 · C 类头牌候选:「Anthropic 说模型挖需求比你自己定义得还准,我让 Claude 反过来采访了我一小时」

  • 怎么做的:Ara(Anthropic applied AI 架构师)的第一原则来自 Sutton 的「苦涩的教训」——「你应该接受这个事实:模型从你身上提取需求的能力,很可能比你自己定义需求的能力还强」,「需求是潜藏在你脑子里的」。落地开关极具体:prompt 里显式点名 ask_user_question 工具,Claude 就一轮轮采访你;差 prompt 的典型就是"make it better"。
  • 你可以怎么做:候选标题——《Anthropic 说别写需求文档,让 AI 采访你——我把第一个 App 的需求全程让 Claude 逼问出来》。你正在 building 的第一个 App 就是现成实验场:PM 出身的你"写 PRD"是肌肉记忆,这期恰好要你反着来——发出采访实录截图 + 它挖出哪条你自己没想到的需求 + 哪里问偏了。PM 身份 × 反 PM 直觉,冲突感天然是好封面。闸门自检:没有你的采访实录只是转述观点,不成立。可抄物现成:那段"给领域范围 + 别定死结果 + 点名 ask_user_question"的采访提示词模板。

2 · 「超过 200 行的 markdown 没人读」——既是工序改造,也是一篇 D 类立场文

  • 怎么做的:Ara 引同事的话说 markdown 是 AI 开发的"通用语",但「一旦超过约 200 行,你大概率就不会读了,你的同事就更不可能去读」;他们改用 HTML 当 spec——信息密度高、可点击、可截图回喂,且总账更省 token(好 spec 让你迭代次数更少)。
  • 你可以怎么做:先在 drizzle tech 落地(让 spec 工序多产一份 HTML 视图,看你自己的评审时间有没有降),再把结果写成 A 类决策复盘《我把公司文档从 markdown 换成 HTML 的一周》。D 类立场句也现成:「没人读完的文档不是资产是负债——长度本身就是失职」。可抄物:一页"spec 该有的三个分区卡片"(SCOPE / OPEN / FLOW)。

3 · B 类角度:录屏当证据 = 你 AI 员工的"验收凭证"制度

  • 怎么做的:Claude Code 团队对所有前端改动的真实做法是——验证不只跑,还录成视频存 S3 当"确实验过"的证据包;验证盯"数据契约"而非 app 表面(删掉一块统计、app 还能用但验证全红)。
  • 你可以怎么做:给 drizzle tech 的出活 agent 立一条规矩"交付必附验证证据",然后写成 B 类《我要求 AI 员工交作业必须附录屏,一周后返工率变了多少》——返工次数前后对比就是你最独占的管理账。自检:制度 + 实测数字都是你的,过闸门。

所以呢

  • 可迁移思维模型

    • 【耐用】数据契约 > 流程治理:让产物把自身状态/合规性"发布"成可机读字段,校验盯契约而非表面——这是跨 ERP 评审、app 首屏、看板信号都成立的底层范式,模型再迭代也不过期。
    • 【耐用】需求是被"提取"出来的,不是被"定义"出来的:消除歧义靠反向采访(ask_user_question),不靠人一次性写全。对你这种"该不该做先于做多快"的操作系统,这条尤其顺手——把判断力用在设计采访的领域范围上,而非穷举答案。
    • 【会过期】具体工具口径:Opus 4.7 视觉强、X-high/fast mode、bun verifydata-verify 这些是当下版本的最佳实践,半年后模型/命令名都会变。记原则,别记型号。
  • 判断更新:你大概率默认"agent 链路的可靠性靠把流程拆得更细、规则写得更全"。这期把它翻过来——可靠性来自让产物自带可验证的契约 + 让模型反向挖需求。"更细的流程"在精力稀缺的单兵语境下常是负债(没人读的长文档),而"最小契约 + 反向采访"才是真杠杆。

  • 这周一个赌注:挑你 ERP 工厂里最常出问题的那一个环节(大概率是碰撞纪律或跨线对齐那块),给它定义 3-5 条不变量,让该环节产物把"满没满足"发布成结构化字段,写一行 verify 跑出红绿。一个环节、一周、见到第一份"闭环证据"——成了,再往别的环节复制;这正是你缺的"agent 产出可验证"的最小验证。

接着读