Immutable. This exact content is served forever at /api/v1/blob/c5b96fbbf3142cc8.
--- name: skill-to-workflow description: > 将现有 Skill、Prompt、SOP 或 Agent 操作说明拆解为可执行、可监控、可重试的 Workflow 规格;识别真实节点、共享子工作流、工具调用、状态、分支、循环、 提示词、数据契约和验收方式。适用于用户要求把一个 Skill 转成工作流、节点图、 编排方案或 Workflow 实现规格时;不替代原 Skill 执行业务任务,也不在未要求时 绑定具体工作流平台或直接部署。 --- # Skill 转 Workflow 把一个面向 Agent 的 Skill 转换为可实现的 Workflow 规格。转换的目标不是照抄原文中的编号,而是恢复它的真实执行图,并让每个节点都具有明确责任、结构化输入输出、工具权限、停止条件和失败处理。 ## 输入与默认交付 - 输入可以是 Skill 目录、`SKILL.md`、Prompt、SOP、操作手册或用户描述的 Agent 流程。 - 用户指定目标平台时,使用该平台支持的节点、变量、分支和子工作流能力;未指定时输出平台无关规格,不猜测 Dify、Coze、n8n、LangGraph 等具体实现。 - 用户只要求概括时,先给阶段数、主链路和关键回路;用户要求设计或转换时,再给完整节点规格。 - 未明确要求实现、创建文件或部署时,只交付设计,不修改原 Skill,也不创建平台配置。 需要输出完整 Workflow 规格时,读取 [references/workflow-spec-template.md](references/workflow-spec-template.md)。 ## 开始前 1. 完整读取源 Skill 及其声明的必读 references;不要只根据 `SKILL.md` 的表层编号拆解。 2. 检查源 Skill 使用的 scripts、schema、模板、校验器和正式产物路径。只需读取会改变流程设计的资源。 3. 区分三类信息: - 业务语义与判断规则; - 执行机制与工具操作; - 输出格式与验收约束。 4. 记录原 Skill 的授权边界、隐私边界、禁止事项和不可破坏的事实来源。 5. 不执行源 Skill 的业务任务,除非用户同时要求运行或验证转换后的 Workflow。 ## 转换流程 ### 1. 建立源 Skill 契约 提取: - 触发条件与不适用范围; - 必需输入、可选输入和输入选择规则; - 最终产物及其消费者; - 事实来源、数据契约和质量门槛; - 禁止行为、权限限制和人工确认点; - 可复用历史产物与幂等要求。 这些约束必须在 Workflow 中找到承接位置,不能因拆节点而消失。 ### 2. 恢复真实执行图 不要把原文的“七步”机械转换成七个节点。先识别: - 批次级步骤与单对象循环; - 串行依赖和可并行任务; - 条件分支、回退、补充调研和重试; - 阻断失败、允许继续的部分完成和正常空结果; - 中间分析状态与正式交付物。 用一句主链路和必要的回路表示真实执行图,再决定节点数量。 ### 3. 划分节点 一个节点应完成一种稳定责任,并产生可验证的状态变化。满足任一条件时优先拆开: - 判断依据、工具权限或失败策略不同; - 结果需要单独缓存、复用、人工检查或重试; - 下游只依赖其中一部分输出; - 确定性处理与模型判断混在一起; - 一个节点同时在找事实、做业务判断、评分和写最终报告。 不要拆分纯粹的格式搬运、无法独立验收的思维碎片,或只会增加上下文传递成本的微小步骤。 ### 4. 给节点分类 为每个节点选择主要执行类型: - **确定性节点:**解析、清洗、计算、字段映射、文件生成、Schema 校验;优先使用代码或平台原生节点。 - **LLM 判断节点:**分类、推理、提炼、取舍和结构化写作;必须约束输入证据与输出 Schema。 - **工具节点:**搜索、网页读取、数据库查询、API 调用或文件解析;只授予本节点需要的工具。 - **人工节点:**需要业务授权、主观定案或高风险外部变更时使用。 - **路由节点:**根据显式状态或规则选择下一步,不承担额外业务分析。 能由确定性逻辑可靠完成的计算、组装和校验,不交给 LLM。 ### 5. 抽取共享能力子工作流 当两个或以上节点重复使用同一种外部机制,并且能够形成稳定输入输出契约时,将机制抽成共享子工作流。例如: - 搜索规划 → Web Search → URL 去重 → Web Open → 证据提取; - 文件解析 → 格式规范化 → 字段质量检查; - 结构化产物组装 → 构建 → 正式校验; - 通知发送、审批或外部系统写入。 分析节点只提交“需要回答什么”,共享子工作流负责“如何调用工具并返回材料”。共享的是获取或处理机制,不是不同节点的业务结论。 共享子工作流至少定义:请求类型、问题或目标、已知上下文、工具与来源偏好、预算、停止条件、返回数据、未解决问题、限制、缓存键和错误状态。 不要在以下情况强行抽象: - 只有工具名称相同,但输入语义、权限或失败风险完全不同; - 共用后会让子工作流直接替业务节点作结论; - 一次性操作没有稳定复用价值; - 抽象会隐藏人工授权或高风险副作用。 ### 6. 设计状态与数据契约 优先传递结构化状态,不把自然语言报告当作节点间接口。至少区分: - 原始输入; - 规范化输入; - 来源或证据账本; - 中间判断与置信度; - 限制和未解决问题; - 正式产物; - 运行状态与错误。 推荐基础状态为 `complete | partial | failed`,但应按业务语义补充 `skipped`、`needs_human` 或其他状态。正常空结果不能误判为失败。 每个节点的输出只能包含下游需要的数据。Workflow 内部字段在生成正式产物前必须过滤,不得污染原 Skill 的正式 Schema。 ### 7. 设计提示词 采用“共享约束 + 节点任务”的提示词结构: - 共享 System Prompt 保存事实边界、来源规则、禁止事项、表达与结构化输出要求; - 节点 Prompt 只说明本节点目标、输入变量、判断顺序、输出字段和停止条件; - 工具调用策略放在工具节点或共享子工作流,不让每个业务节点重复维护; - 输出使用 JSON Schema 或平台结构化输出,不依赖模型自觉遵守自然语言格式。 提示词必须说明:哪些是事实、哪些允许有限推断、证据不足如何处理、不得新增什么、何时停止。评分节点只能消费已建立的证据,不应重新搜索并引入新事实。 ### 8. 设计分支、循环与失败处理 每个回路都定义: - 触发条件; - 回到哪个节点; - 允许补充或修改哪些字段; - 最大次数、时间或成本预算; - 停止后是 `partial`、`failed` 还是转人工。 区分: - 技术失败:超时、解析失败、API 错误; - 数据失败:缺必需字段、Schema 不合法; - 证据不足:允许部分完成或转人工; - 业务冲突:保留冲突并按规则降置信度; - 高风险操作:执行前请求授权,不用自动重试绕过审批。 ### 9. 把生成与验收确定性化 如果源 Skill 已有构建器、校验器或唯一事实源,Workflow 必须继续使用。推荐结构: ```text 中间分析状态 → 标准事实源组装 → Schema 校验 → 确定性生成交付物 → 正式校验器 ``` 校验失败时优先修正标准事实源并重新生成,不让 LLM 直接分别修改多个派生产物。无法依据现有证据修复时,路由回真正缺失信息的上游节点。 ### 10. 交付并做覆盖检查 完整规格至少说明: - 主链路、节点数量和节点图; - 每个节点的目标、类型、输入、输出、工具、提示词和验收; - 共享子工作流及请求/响应契约; - 状态、缓存、来源、分支、回路和重试; - 正式产物、构建方式和端到端完成条件; - 从源 Skill 到 Workflow 节点的规则覆盖表。 最后逐条核对源 Skill 的必需步骤、核心边界和完成检查,确保没有规则只存在于原文、却在 Workflow 中无人承接。 ## 关键设计原则 - 节点数由稳定责任和状态边界决定,不由源文档的标题数量决定。 - 共享工具机制可以抽象,业务判断不能因工具复用而被混合。 - 搜索、读取和证据提取负责提供材料;分析节点负责形成领域结论。 - 先建立事实和任务,再评分或决策;不要让模型边搜索边凭印象评分。 - 中间状态可以丰富,正式数据契约必须保持干净和兼容。 - 可观测性不是额外报告:节点状态、来源、限制、重试原因和产物路径应成为运行状态的一部分。 - 没有用户授权时,设计 Workflow 不等于执行、部署或触发外部副作用。