# 工作流的版本号(平台内部使用)
schema_version: 1.0.0

# 工作流名称:用于标识这个流程的功能
name: summarize_article_1_783

# 工作流唯一ID(系统自动生成,不可修改)
id: 7482702358159*****

# 工作流描述:说明这个流程是干什么的
description: 示例:总结提炼文章中的要点

# 运行模式:workflow 表示这是一个标准工作流(非对话流)
mode: workflow

# 图标路径:在平台中显示的图标
icon: plugin_icon/workflow.png

# 定义工作流中的所有节点(每个节点是一个处理步骤)
nodes:
  # === 节点1:开始节点(入口)===
  - id: "100001"
    type: start                     # 节点类型:开始
    title: 开始
    icon: https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Start-v2.jpg
    description: 工作流的起始节点,用于设定启动工作流需要的信息
    position:
      x: 180
      y: 39.7
    parameters:
      # 定义用户调用此工作流时必须提供的输入参数
      node_outputs:
        article_url:
          type: string              # 参数类型:字符串
          required: true            # 是否必填:是
          description: 文章的链接地址  # 说明:用户需提供一个网页URL

  # === 节点2:结束节点(出口)===
  - id: "900001"
    type: end                       # 节点类型:结束
    title: 结束
    icon: https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-End-v2.jpg
    description: 工作流的最终节点,用于返回工作流运行后的结果信息
    position:
      x: 1560
      y: 26.700000000000003
    parameters:
      # 定义最终返回给用户的变量(全部来自大模型节点的输出)
      node_inputs:
        - name: topic                # 返回字段1:文章主题
          input:
            type: string
            value:
              path: topic            # 从节点197398的输出中取"topic"
              ref_node: "197398"
        - name: event_or_opinion     # 返回字段2:事件或观点列表
          input:
            type: list
            items:
              type: object
              properties:
                detail: {type: string, description: 每个事件下的详情或观点下的依据}
                event_or_opinion: {type: string, description: 事件或观点}
            value:
              path: event_or_opinion
              ref_node: "197398"
        - name: point                # 返回字段3:重要金句列表
          input:
            type: list
            items: {type: string}
            value:
              path: point
              ref_node: "197398"
        - name: summary              # 返回字段4:整体通俗总结
          input:
            type: string
            value:
              path: summary
              ref_node: "197398"
      terminatePlan: returnVariables  # 结束策略:返回上述变量作为结果

  # === 节点3:插件节点(读取网页内容)===
  - id: "140349"
    type: plugin                    # 节点类型:插件调用
    title: 读取网页内容
    icon: https://lf3-static.bytednsdoc.com/obj/eden-cn/dvsmryvd_avi_dvsm/ljhwZthlaukjlkulzlp/icon/icon-Api.png
    description: 当你需要获取网页、pdf、抖音视频内容时,使用此工具。可以获取url链接下的标题和内容。
    position:
      x: 640
      y: 26
    parameters:
      # 插件元信息(由平台自动填充)
      apiParam:
        - name: apiID; input: {type: string, value: "7379227817307029513"}
        - name: apiName; input: {type: string, value: "LinkReaderPlugin"}
        - name: pluginID; input: {type: string, value: "7379227817307013129"}
        - name: pluginName; input: {type: string, value: "链接读取"}
        - name: pluginVersion; input: {type: string, value: ""}
        - name: tips; input: {type: string, value: ""}
        - name: outDocLink; input: {type: string, value: ""}
        - name: updateTime; input: {type: integer, value: 1750141501000}
      # 输入:从开始节点获取 article_url
      node_inputs:
        - name: url
          input:
            value:
              path: article_url     # 引用开始节点的输出
              ref_node: "100001"
      # 输出:插件执行后返回的数据结构
      node_outputs:
        code: {type: integer, description: 错误码}
        data:
          type: object
          properties:
            content: {type: string}                 # 网页正文
            images:                                 # 图片列表(本流程未使用)
              type: list
              items:
                type: object
                properties:
                  alt: {type: string}
                  height: {type: integer}
                  title: {type: string}
                  url: {type: string}
                  

当然可以!你提供的这段内容是一个用 DSL(领域特定语言)描述的工作流配置,看起来像代码,但其实它就是在“画”一个自动处理流程。下面我用大白话 + 生活化比喻,一步步帮你解释这个工作流是干什么的、怎么运行的。


🎯 这个工作流是做什么的?

名字summarize_article_1_783
功能自动读一篇网上的文章,然后提炼出它的核心要点,比如主题、关键事件、重要观点、金句,最后用初中生都能听懂的话做个总结。

✅ 就像请了一个“读书助手”,你给它一个链接,它读完后给你一份清晰的读书笔记!


🧩 整个工作流是怎么一步步运行的?

整个流程由 5 个节点组成,按顺序执行:


1️⃣ 开始节点(Start) → “你给我一个链接!”

  • 作用:工作流的入口。
  • 你需要提供什么
    → 一个 文章的网址(URL),比如 https://example.com/news123
  • 节点 ID100001

💬 相当于你对助手说:“嘿,帮我看看这篇文章:[链接]”


2️⃣ 读取网页内容(插件节点) → “我去把网页内容抓下来!”

  • 节点类型:插件(调用“链接读取”工具)
  • 它做什么
    → 自动访问你给的 URL,把网页的标题 + 正文文字提取出来(忽略广告、导航栏等)
  • 输出内容
    • title:文章标题
    • content:文章正文(纯文字)
  • 节点 ID140349

🌐 比如你给的是新闻链接,它就会把新闻正文完整抓回来,像“复制粘贴”一样。


3️⃣ 文章提炼(大模型节点) → “我来读一读,总结重点!”

  • 节点类型:大语言模型(LLM,这里用的是“豆包·工具调用”)

  • 输入:上一步抓到的 content(文章正文)

  • 它怎么总结
    按照预设的“指令”(system prompt)做五件事:

    1. 主题:这篇文章到底讲什么?(一句话)
    2. 核心事件或观点:3~5 个关键点
    3. 每个点的细节或依据:比如“为什么这么说?”
    4. 重要金句或反常识观点:让人眼前一亮的句子
    5. 整体总结:用初中生能听懂的话,简明扼要复述全文
  • 输出结构化数据

    • topic(主题)
    • event_or_opinion(事件/观点列表)
    • point(金句列表)
    • summary(通俗总结)
  • 节点 ID197398

🧠 这一步就像让一个聪明的大学生读完文章后,给你写一份结构清晰的摘要笔记。


4️⃣ 结束节点(End) → “这是你要的结果!”

  • 作用:把上一步大模型输出的四项内容(主题、观点、金句、总结)打包返回给用户
  • 节点 ID900001

📤 最终你看到的不是原始文章,而是一份结构化、易读的精华版


5️⃣ 注释节点(Comment) → “小贴士”

  • 内容:在画布上写了一段说明文字:

    “在流程中调用读取插件,将文本传递给大模型节点来提炼标题、总结、关键信息点”

  • 作用:给开发者自己看的备注,不影响运行

🔗 节点是怎么连起来的?(数据流向)

用箭头表示数据怎么流动:

[开始] 
   ↓(传入 article_url)
[读取网页] 
   ↓(传入 data.content)
[大模型提炼] 
   ↓(传入 topic, event_or_opinion, point, summary)
[结束]

✅ 每一步的“输出”自动变成下一步的“输入”,像流水线一样自动跑完。


🖼️ 举个实际例子

你输入:
🔗 https://example.com/ai_future_trends

工作流自动:

  1. 抓取网页 → 得到一篇 2000 字的《2025年人工智能十大趋势》
  2. 让大模型分析 → 输出:
    • 主题:AI技术在未来一年的关键发展方向
    • 观点
      • “多模态模型将成为主流”
        • 依据:谷歌、OpenAI 已发布多模态产品……
      • “AI代理将改变工作方式”
        • 依据:企业开始部署自动化助手……
    • 金句
      • “未来不是人和AI竞争,而是会用AI的人和不会用AI的人竞争。”
    • 总结
      “这篇文章说,明年AI会变得更聪明,不仅能看图说话,还能帮你干活。关键是要学会怎么用它。”

✅ 总结一句话

这个工作流就是一个 “自动读书+写摘要”机器人
你给链接 → 它读内容 → 它提炼重点 → 它用大白话告诉你精华

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐