为什么把 Workflow 改成 Skill,两者有何优缺点?

考查重点:专业方法复用与流程控制。把可复用的专业方法和脚本封装为Skill,固定执行顺序与状态转换仍可交给Workflow;用一个变更说明复用更灵活时增加了哪些运行时控制成本

本题目录

参考答案

核心回答

把 Workflow 中频繁变化的任务方法封装成 Skill,主要是为了按需复用专业流程,让 Agent 根据当前证据灵活选择下一步,并减少同一套规则在多个流程里重复维护。是否值得改,取决于原流程的具体问题。

两者分工不同:Workflow 用程序规定节点、依赖、分支和退出条件,执行路径更清楚,适合步骤稳定、需要明确状态与恢复的任务;代价是场景变化时,可能要维护更多分支和节点。Skill 把方法、样例、模板和脚本整理成能力包,便于复用和调整;代价是模型可能选错、漏步骤,加载和决策也会增加开销。

因此,我倾向于让 Skill 承载经常变化的专业方法,让 Workflow 或运行时继续管理必要顺序、状态、超时、重试和结果校验。两者可以组合使用,改成 Skill 并不自动更快或更可靠。

展开说明

1. 先区分“程序执行的流程”和“交给 Agent 的任务方法”

Workflow 可以直接规定:先获取输入,再执行分析,分析成功后生成报告;失败时重试或退出。它也能有条件分支、并行和循环,并非只能顺序执行。候选路径和状态变化由程序显式管理,所以比较容易检查某一步是否发生、失败停在哪里。

但如果节点里调用了 LLM,节点的输出仍可能不确定。工作流提高的是控制流的明确程度,并不保证每次都生成相同或正确的结论。

Skill 则告诉 Agent:“这类任务应如何处理、何时读哪些资料、用哪些工具、交付什么结果。”正文里的自然语言步骤需要模型理解和执行,宿主负责加载指令及执行工具。步骤写在文件中,不代表它已经具备工作流引擎的状态转换、异常处理和恢复能力。

2. 什么问题适合通过 Skill 改造?

以故障诊断的设计示例来说,原方案可能为不同服务、错误类型分别写检索分支和诊断提示,里面却反复出现“确认时间范围、收集证据、比较正常基线、给出归因和建议”这些相似方法。每次增加一种故障,都要改一批编排代码,方法也容易出现多份版本。

这时可以把共同诊断步骤、不同症状的调查线索和报告格式整理为 Skill。Agent 根据告警和已取得的证据,选择先看指标、日志还是变更记录;领域细节由需要时读取的参考资料补充。同一份能力也能在不同入口复用。

收益来自任务方法独立维护、按需加载和减少无效分支,并不是单纯把原代码复制到一个 Markdown 文件中。如果原流程本来只有几个稳定步骤,直接程序调用已经足够,迁移未必有收益。

3. 哪些能力应继续由执行程序管理?

在上述例子里,取得可信的任务标识和时间范围、工具调用及权限检查、超时处理、保存任务进度、判断报告结构是否完整,都可以继续放在 Workflow 或运行时。Agent 按 Skill 调查问题,程序根据真实执行结果更新状态;查不到日志时应保留“缺少日志证据”,不能让模型把它当成“日志没有异常”。

某个标准检查如果已有稳定脚本,可以由 Skill 指导 Agent 调用,也可以由 Workflow 直接执行。需要严格满足的业务条件由程序检查,专业判断再交给模型。这样既保留变化空间,也明确哪些行为由代码保证。

长期任务需要恢复时,还要有相应的持久化状态和副作用处理。把“失败后继续”写进 Skill,不会自动生成 checkpoint,也不会自动避免重复执行。

4. 效率要分运行效率和维护效率

Skill 可能跳过当前任务不需要的固定步骤,也可能额外花费模型调用、读取指令和选择工具的时间。Workflow 在路径明确时可以直接调用、并行处理或复用中间结果。因此,不能仅凭节点数减少或指令文件变短,就断言更快。

可以在同一批典型故障任务上,保持模型、工具和输入条件可比,检查诊断结论与证据完整性,再比较模型和工具调用数、Token 成本、平均及 P95 耗时、失败后的恢复情况。维护效率则看新增一种故障方法需要改哪些地方,是否影响其他场景,以及规则能否复用。性能变化和维护变化应分别说明。

常见追问

把 Workflow 的每个节点直接写进 Skill,可以吗?

可以把它作为初始任务说明,但还要判断哪些步骤适合模型决策、哪些需要程序保证。如果每一步顺序、参数和结果都已确定,直接执行原流程通常更简单;需要复用入口时,Skill 也可以调用已经封装好的工作流或 CLI。

Skill 里也能放脚本,它和 Workflow 的区别还存在吗?

存在。Skill 是能力包,脚本是其中可选的执行资源;Workflow 是实际的过程编排。一份 Skill 可以引用完整工作流脚本,工作流中的某个 Agent 节点也可以使用 Skill。要看实际由什么决定下一步、保存状态和处理失败,不能只根据文件形式分类。

什么时候更应该保留 Workflow?

步骤和依赖明确、需要严格顺序或并行汇合、长期等待及恢复、重复执行会影响业务结果时,显式编排通常更合适。若主要变化集中在专业判断和资料使用方法上,可以在相关节点引入 Skill;无需把整条链路都改成模型自主选择。

对应教程

  • Skills 技能与 AI 编程工具实践:从重复规则、模板和脚本的整理出发,理解 Skill 化为什么有利于任务方法复用,以及它与工具和执行系统的职责关系。
  • Agent 智能体:结合状态、工具反馈及 Workflow 与 Agent 的混合方式,理解固定编排和动态决策可以共同完成一个任务。

参考资料

相关面经

5 篇

CVTE

应用开发工程师
校招秋招一面
查看原面经 →
原架构存在分类边界不清的问题,改成 Skills 自主调用的具体好处在哪里?
把原来的“分类器 + 专家工作流”变成 Agent 动态加载 Skills 的模式,它带来的优点和缺点分别是什么?(如准确率与 ReAct 轮次耗时/成本的权衡)

快手

AI 全栈开发工程师(音视频)
二面
查看原面经 →
为什么要把原来的 Workflow 改成 Skill?
Workflow 的优点和缺点是什么?
Skill 的优点和缺点是什么?

虾皮

Agent 应用开发工程师
秋招一面
查看原面经 →
skill 硬编码写死 workflow,效率上有什么差异,各自优缺点?

快手

AI 全栈开发工程师
一面
查看原面经 →
为什么要把原来的 workflow 改成 Skill? > - workflow 有哪些优点和缺点? > - Skill 有哪些优点和缺点?

懂车帝

Agent 应用开发工程师
秋招一面
查看原面经 →
追问
实际业务中什么情况下更适合使用Skill,什么情况下需要设计Workflow?

收录题集

1 个来源,共1 份题集

架构选型:ReAct、Plan-and-Execute 与 ToT 怎么选

Onefly · zero2Agent · 1 条原题

查看题集 →

相关题目

4 题