扣子dsl结构示例工作流代码
·
# 工作流的版本号(平台内部使用)
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 - 节点 ID:
100001
💬 相当于你对助手说:“嘿,帮我看看这篇文章:[链接]”
2️⃣ 读取网页内容(插件节点) → “我去把网页内容抓下来!”
- 节点类型:插件(调用“链接读取”工具)
- 它做什么?
→ 自动访问你给的 URL,把网页的标题 + 正文文字提取出来(忽略广告、导航栏等) - 输出内容:
title:文章标题content:文章正文(纯文字)
- 节点 ID:
140349
🌐 比如你给的是新闻链接,它就会把新闻正文完整抓回来,像“复制粘贴”一样。
3️⃣ 文章提炼(大模型节点) → “我来读一读,总结重点!”
-
节点类型:大语言模型(LLM,这里用的是“豆包·工具调用”)
-
输入:上一步抓到的
content(文章正文) -
它怎么总结?
按照预设的“指令”(system prompt)做五件事:- 主题:这篇文章到底讲什么?(一句话)
- 核心事件或观点:3~5 个关键点
- 每个点的细节或依据:比如“为什么这么说?”
- 重要金句或反常识观点:让人眼前一亮的句子
- 整体总结:用初中生能听懂的话,简明扼要复述全文
-
输出结构化数据:
topic(主题)event_or_opinion(事件/观点列表)point(金句列表)summary(通俗总结)
-
节点 ID:
197398
🧠 这一步就像让一个聪明的大学生读完文章后,给你写一份结构清晰的摘要笔记。
4️⃣ 结束节点(End) → “这是你要的结果!”
- 作用:把上一步大模型输出的四项内容(主题、观点、金句、总结)打包返回给用户
- 节点 ID:
900001
📤 最终你看到的不是原始文章,而是一份结构化、易读的精华版!
5️⃣ 注释节点(Comment) → “小贴士”
- 内容:在画布上写了一段说明文字:
“在流程中调用读取插件,将文本传递给大模型节点来提炼标题、总结、关键信息点”
- 作用:给开发者自己看的备注,不影响运行
🔗 节点是怎么连起来的?(数据流向)
用箭头表示数据怎么流动:
[开始]
↓(传入 article_url)
[读取网页]
↓(传入 data.content)
[大模型提炼]
↓(传入 topic, event_or_opinion, point, summary)
[结束]
✅ 每一步的“输出”自动变成下一步的“输入”,像流水线一样自动跑完。
🖼️ 举个实际例子
你输入:
🔗 https://example.com/ai_future_trends
工作流自动:
- 抓取网页 → 得到一篇 2000 字的《2025年人工智能十大趋势》
- 让大模型分析 → 输出:
- 主题:AI技术在未来一年的关键发展方向
- 观点:
- “多模态模型将成为主流”
- 依据:谷歌、OpenAI 已发布多模态产品……
- “AI代理将改变工作方式”
- 依据:企业开始部署自动化助手……
- “多模态模型将成为主流”
- 金句:
- “未来不是人和AI竞争,而是会用AI的人和不会用AI的人竞争。”
- 总结:
“这篇文章说,明年AI会变得更聪明,不仅能看图说话,还能帮你干活。关键是要学会怎么用它。”
✅ 总结一句话
这个工作流就是一个 “自动读书+写摘要”机器人:
你给链接 → 它读内容 → 它提炼重点 → 它用大白话告诉你精华。
更多推荐



所有评论(0)