《Claude Code工程化实践》加课-3 Dynamic Workflows 工程化实践(下):PM视角实战指南
上篇我们讲了 Dynamic Workflows 的原理、8 个原语、5 种范式——解决了是什么、怎么跑的认知问题。但这些原语真正的复利要在真实任务中兑现。本篇换一个视角作为 PM / 工程负责人怎么把 Dynamic Workflows 真正用在自己的日常工作中本文将以 Paweł Huryn 的Claude Dynamic Workflows for PMs: The Ultimate Guide为理论骨架以其开源实验项目phuryn/dynamic-workflows-experiment为完整案例演示一个可复现、可验证、可沉淀为团队技能的产品发现工作流。你不需要自己写 harness——Claude 会现场为你写。0. 前言Dynamic Workflows动态工作流是 Anthropic 为 Claude Code 推出的动态编排能力Claude 针对任务现场写一段 JavaScript协调几十到上百个子 Agent而协调代码本身不消耗模型 token。它已经从概念 demo进入了生产级压测。几个标志性案例已经说明问题Bun 从 Zig 迁移到 Rust生成约 75 万行 Rust 代码测试通过率 99.8%从首次 commit 到 merge 仅 11 天6000 余次提交。每个.zig文件由独立 Agent 处理并配两名审查者Fix loop 持续跑构建和测试直到通过。全代码库 Bug 排查 / 性能审计 / 安全审计并行搜索整个仓库每项发现由独立 Agent 验证安全加固覆盖身份认证、输入验证、不安全模式扫描。大规模迁移与现代化端到端处理数千文件的框架迁移、API 废弃升级、编程语言迁移。深度研究与对抗验证扇出网络搜索、逐条事实核查、合成带引用的报告。Claude Code 团队也总结了六类典型用法迁移与重构、深度研究、深度验证、排序与评级、规则遵从检查、根因调查。但光看这些案例很多人会卡在同一个问题到我手里该怎么跑第一个动态工作流 token 消耗远高于普通会话盲目放大很容易烧钱买教训。所以本讲要回答的核心问题是有没有一个可复现、可验证、成本可控的最小完整闭环能亲手跑一遍答案是有。下面这个实验就是标准答案。1. 动态工作流的工程本质编排器是代码不是模型回合在动手之前必须先建立正确的心智模型。文章《Claude Dynamic Workflows for PMs: The Ultimate Guide》里点出了一个关键区分The agents do the work; the code that coordinates them spends zero model tokens.1.1 机制Claude 现场写一段 JavaScript动态工作流是 Claude 针对当前任务现场编写的一段 JavaScript 编排脚本。你触发它的方式通常是在 Claude Code 里输入ultracode关键词或者直接说 “run a workflow”也可以把写好的 workflow 保存为 skill以后用/workflow-name一键调用。脚本里有phase()、agent()、parallel()、pipeline()这些原语。Claude 写好脚本、展示给你、确认后运行脚本负责决定每个 Agent 做什么、收集结果、去重、评分、循环而这些编排逻辑不调用模型。1.2 与 n8n / Agent SDK 的区别工具连接的对象适用场景n8n已知工具API、数据库、Slack把固定工具串成固定流水线Agent SDK嵌入你自己产品里的 Agent构建对外发布的 Agent 应用Dynamic WorkflowsClaude Code 里的 workspace Agent让 Claude 为本次任务现场生成编排流程所以它不是 n8n 的替代品也不是 Agent SDK 的竞品。它解决的是一个更高层的问题如何让 Agent 为本次运行构建流程1.3 什么时候该用 workflow而不是子 Agent如果任务只是一轮并行判断比如帮我同时总结 10 份文档普通 subagent 就够了。当stage N 的输出决定 stage N1时——路由、评分、过滤、循环、重试、生成、验证、构建——才需要动态工作流。对 PM 来说subagent 是工人workflow 是操作流程。昂贵的模型推理花在每个阶段便宜的代码决定顺序、模型层级和传递什么结果。2. 为什么把编排器移出模型三个 failures 四个收益选择工作流不是因为它更先进而是因为它把脆弱的部分从模型上下文里移走了。顺序、路由、停止条件、模型选择都变成代码模型依然负责思考但不再负责记住计划、约束自己的惰性、给自己的作业打分、决定什么时候算完成。这种结构在 2026 年有了一个流行名harness。四个直接收益确定性代码控制执行顺序、路由和停止条件每次运行一致。上下文隔离每个 Agent 拿到的是新鲜、界限明确的任务目标存在脚本里不会被压缩或漂移。无编排 token 税路由集群是免费的。模型分层有界、重复的阶段用更便宜的模型如 Haiku。而它刚好修复了三种我们在单轮长对话里反复遇到的失败失败模式表现工作流解法Agentic laziness“审查全部 50 项”实际只审了 35 项就总结完成用for循环直到数组为空Self-preferential bias自己给自己的作品打高分让独立 Agent 当裁判多数票决定去留Goal drift长会话后不要碰 auth的约束失效目标写在脚本里不进入会被压缩的上下文对 PM 来说这三种场景再熟悉不过70% 的版本被当成 100% 交付自己审过的 PRD 外人会吐槽周五的构建忘了周一的需求。把 Agent 反复重做的步骤命名出来那就是一个 workflow。3. 六种模式识别任务比发明任务更重要一旦编排器是代码六种形状会反复出现。它们是模式核心结构典型 PM 场景Classify-and-act一个 Agent 判定类型脚本据此路由工单分类bug / feature / noiseFan-out-and-synthesize每个片段一个 Agent 并行处理代码合并竞品拆解、客户访谈综合、市场地图Adversarial verification独立 Agent 按标准检查输出PRD 事实核查、高风险决策二次评审Generate-and-filter批量生成候选过滤去重后保留命名、定位语、实验想法TournamentN 个 Agent 用不同方法尝试评委比较决出胜者策略备忘录、没有唯一正确答案的复杂设计Loop-until-done持续生成任务直到满足停止条件backlog 分类、审计、未知工作量的排查这些模式你不需要死记硬背。真正重要的是学会识别你手头的任务已经是哪一种。接下来要复现的产品发现流水线几乎把前五种都用了一遍。4. 复现实验100 份访谈 → 3 个 HTML 原型4.1 项目背景Reelay 与答案钥匙phuryn/dynamic-workflows-experiment是 Product Compass 文章的配套实验仓库。它要验证的论点是动态工作流的价值不在于单次扇出并行那用普通 subagent 就够了而在于上一阶段的输出决定下一阶段的多阶段编排。实验虚构了一个产品Reelay一个流媒体聚合器目标是成为今晚看什么的决策层。为了让结果可验证作者用了**合成数据 答案钥匙answer key**的设计先在ground-truth/answer-key.md里预埋8 个已知机会点和目标分数用一个 Haiku 扇出生成器按 5 种 persona、每人 2–3 个预埋痛点生成 100 份 600–900 字的访谈稿痛点只以故事形式出现绝不出现opportunity / feature / pain point等标签词盲跑分析工作流不喂答案钥匙看它能否还原预埋排名。能还原就证明这套编排机制有效。合成数据只是测试床真实访谈才承载真相。4.2 六阶段流水线100 份访谈 → Extract每份一个 Haiku agent抽取机会点slug / persona / 引述 / 三个 1-5 分 → Canonicalize一个 agent 把同义 slug 聚成 6-10 个规范需求——先做归并再计数 → Score纯代码无模型频次 × 重要性 × (5 − 满意度) → Ideate前 5 名各由 Sonnet agent 提 3 个方案 → Triage独立 judge 按 ROI 三角测量出前 3 → BuildSonnet agent 用 frontend-design skill 为 3 个赢家各写一个静态 HTML 原型 → Loop低置信度抽取换更强模型重跑渲染不出来的原型重建两个关键设计细节模型分层提取这种有界、重复、廉价的活用 Haiku创意和构建用 Sonnet评分聚合干脆不用模型——钱花在刀刃上。对抗式质量控制方案由生成 agent 和独立评审 judge 分开完成置信度低于 0.6 的提取自动升级模型重试。4.3 手把手复现步骤前置条件条件说明Claude Code ≥ v2.1.154动态工作流最低版本ultracode方式需 ≥ v2.1.203付费账户Pro / Max / API 均可我用的minimax-m3额度预算全量 100 份约 2M tokens我只跑 20 份子集前端 skill构建阶段会调用frontend-designskill第 1 步克隆仓库gitclone https://github.com/phuryn/dynamic-workflows-experiment.gitcddynamic-workflows-experiment第 2 步先读两个文件建立预期CLAUDE.md完整运行说明与盲测规则example-workflows/discovery-loop.js这是Claude 通常会生成出来的 harness 长什么样的参考——只读不要直接运行。整个实验的核心理念就是 harness 由 Claude 针对任务现场编写而不是执行预置脚本。第 3 步启动 Claude Codeclaude第 4 步粘贴运行提示词打开prompts/run-discovery-workflow.md把代码块整段粘贴进会话ultracode Run a product-discovery workflow on the interview transcripts in ./interviews. Show me the harness before you run it. 1. Extract - one Haiku agent per interview file; each reads its file and returns the opportunities it found. For each: a kebab-case slug, the persona, one key quote, and three 1-5 scores - how often it came up, how important, how satisfied today. 2. Canonicalize (one agent) - the extractors invent a slug per interview, so the same need shows up under many slugs. Have one agent cluster the raw opportunities into ~6-10 canonical needs and map every raw slug to its canonical one - BEFORE counting. (Skip this and frequencies are wrong: one need splits across a dozen slugs.) 3. Score (in code, no model) - aggregate by canonical opportunity; rank by frequency x importance x (5 - satisfaction). 4. Ideate - for the top 5 opportunities, a Sonnet agent proposes 3 solutions each;a separate judge agent keeps the top 3 by ROI. 5. Build - a Sonnet agent uses the frontend-design skill to write a distinctive, production-grade static HTML prototype for each of the 3 winners into ./outputs. 6. Loop - re-run any low-confidence extraction and any prototype that doesnt render. Set a token budget that fits the run. At the end, print the ranked opportunity table.技巧只是想验证用自己的模型把提示词里的 Haiku、Sonnet 删掉即可 。粘贴后Claude 会先写出 harness并询问是否创建discovery-loop.js然后会进入Show harness before running阶段你可以先预览脚本结构。确认阶段会看到完整的阶段说明和 token 风险提示。第 5 步审查并确认 harnessultracode关键词会触发 Claude 现场编写动态工作流脚本export const meta {...}定义各阶段phase()/agent()/parallel()编排执行。运行前会出现确认提示可以先选View raw script或按CtrlG在编辑器里打开检查脚本结构是否符合上面六个阶段确认后选Yes, run it。第 6 步观察运行运行期间用/workflows命令查看各阶段进度和每个 Agent 的产出。运行到中段你会看到大量 Agent 并行推进注意工作流产出的子 agent 始终以 acceptEdits 模式运行、文件编辑自动通过但白名单外的 shell 命令、网络抓取、MCP 工具会在运行中途弹确认——长跑之前先把需要的命令加进允许列表避免半夜被卡住。如果构建阶段某个 HTML 没有正常生成harness 会进入 recovery loop提取 journal 中的 HTML 重新保存。最终三个获胜方案会分别生成独立的静态 HTML 原型文件第 7 步收取产物运行结束后终端打印机会点排名表slug、频次、重要性、满意度、总分./outputs/下生成 3 个独立静态 HTML 原型内联 CSS/JS无外部依赖直接用浏览器打开检查是否正常渲染满意的话按s把这次 Claude 写的 harness 保存为可复用命令项目级.claude/workflows或用户级~/.claude/workflows以后可以/harness-name直接再跑。第 8 步盲测验证实验的 payoff打开 ground-truth/answer-key.md对比排名表。成功标准还原出 decide-what-to-watch 第一、subscription-overload 第二、cross-device-resume 第三。这次20份跑结果如下115 个 agents约 252 万 tokens约 41 分钟 wall time6 个阶段全部完成成功吸收了 2 个 429 rate-limit、2 个空 ideate、3 个 build agent 缺少 Write 工具等失败排名第一的机会点正是答案钥匙预期的decide-what-to-watch原型且领先第二名约 2 倍。这就是动态工作流闭环的可验证性不仅能看到它跑完还能对照答案钥匙验收。4.4 成本、坑与经验项目实测数据生成 100 份访谈约 2.2M Haiku tokens10 份冒烟测试约 370k tokens全量 100 份分析约 2M tokens建议预算上限2–3M或先跑 20 份子集五个常见坑不要把答案钥匙喂给分析——喂了盲测就失效。Canonicalize 不能省——100 个提取 agent 各自发明 slug同一需求会碎成十几个叫法跳过归并直接计数频次全面失真。这是整个实验最想说明的代码编排 单次扇出的点。预算别设太低——200k cap 跑不动全量。别直接node example-workflows/*.js——这些脚本只能在 Claude Code 的动态工作流引擎里运行而且按设计你本该让 Claude 自己写一份。关键词变化v2.1.160 之前触发词是字面workflow之后自然语言请求和ultracode都可以。5. 给 PM / 工程团队的三条落地建议建议 1先抄再改先小再大不要一上来就设计复杂 workflow。从最痛的 1 个场景开始——比如每月一次的用户访谈综合或每季度的竞品功能审计——把这个场景的 workflow 写出来跑几次稳定后再扩展到其他场景。第一个 workflow 写得越简单越好。建议 2把领域知识沉淀进 schema 和代码而不是 prompt很多 PM 喜欢把业务规则写在 prompt 里“高频定义为出现 3 次以上”、“满意度低于 2 分算痛点”。错。这些规则应该写在 JS 代码或 schema 约束里constPAIN_THRESHOLD2constMIN_FREQUENCY3constSCORE(f,i,s)f*i*(5-s)让 LLM 只做模式识别规则由确定性代码兜底。建议 3把 workflow 当资产持续维护每次跑出好结果问自己三个问题这次跑出来的结果3 个月后还会想跑吗 → 是 → 沉淀为 workflow。这次修改了某个阶段下次还想用同样的修改吗 → 是 → 提交到团队仓库。这次跑得特别慢是不是哪个阶段模型用错了 → 是 → 三档路由调优。最终形态团队不再写一次性脚本而是维护一个不断壮大的 workflow 库——用户研究、竞品分析、数据监控、报告生成……把它们组合起来就是一个完整的AI 协同工作平台。6. 结语从知道到用好的闭环Dynamic Workflows 对 PM 和工程团队最大的意义不是让 AI 帮你写更多代码而是把你多年沉淀的工作经验从脑子里的隐性知识变成团队可复用的工程资产。一次精心设计的 product-discovery workflow可以被无限次复用、无数人调用、无数场景适配。本文从典型案例建立认知从PM 视角指南建立方法从开源实验建立手感——三者合在一起才构成从知道 Dynamic Workflows到用好 Dynamic Workflows的完整闭环。附录上篇《Dynamic Workflows 工程化实战上原理、原语与范式》典型案例梳理《Dynamic Workflows动态工作流的典型案例》PM 视角指南Paweł Huryn,Claude Dynamic Workflows for PMs: The Ultimate Guide2026-06-07英文原文Claude Dynamic Workflows for PMs_ The Ultimate Guide.md中文译稿Claude Dynamic Workflows for PMs_ The Ultimate Guide (中文).md复现实验仓库https://github.com/phuryn/dynamic-workflows-experimentAnthropic 官方博客A harness for every task: dynamic workflows in Claude Code2026-05-28Claude Code 官方文档code.claude.com/docs/en/workflows

相关新闻

Spring AI Alibaba Copilot 项目使用指南

Spring AI Alibaba Copilot 项目使用指南

Spring AI Alibaba Copilot 项目使用指南一、项目介绍 1.1 是什么 AI 编码助手(Alibaba Copilot) 是基于 Spring AI Alibaba 框架构建的智能编码助手,集成 MCP(Model Context Protocol)工具协议,支持项目分…

2026/10/22 12:17:45 阅读更多 →
自制力差适合报粉笔吗?线上备考如何不拖沓

自制力差适合报粉笔吗?线上备考如何不拖沓

自制力差的考生不仅适合报粉笔公考的线上系统班,而且这类考生恰恰是粉笔线上督学体系最核心的目标用户群体。粉笔公考通过系统化的学习计划、数据可视化的进度追踪、班主任的定期跟进以及社群的陪伴式学习,为自制力薄弱的考生搭建了一套完整的"外驱…

2026/10/19 20:35:51 阅读更多 →
Claude Code本地部署全指南:Node.js+Git+VS Code三步打通AI编程通路

Claude Code本地部署全指南:Node.js+Git+VS Code三步打通AI编程通路

1. 项目概述:这不是装个插件,而是搭一条通往AI编程助手的本地通路 “Claude Code 小白级安装指南和必备工具”——这个标题里藏着一个被严重低估的真相:它根本不是教你怎么点几下鼠标装个VS Code插件。我带过二十多个刚转行的前端新人、帮三个…

2026/10/22 13:42:01 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/21 21:32:28 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:50:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 16:24:48 阅读更多 →