Spiga

程序员的AI体验(四):低代码平台

2025-05-10 21:29:54

一、Coze空间

1. Coze开发平台优势

  • 界面简洁:Coze界面清爽,隐藏复杂技术细节,让市场运营人员、学生等无编程基础的用户也能轻松使用。
  • 上手容易:用户可快速将想法转化为现实,无需关心底层逻辑和代码实现。
  • 插件丰富:Coze提供上百种功能各异的插件,涵盖读新闻、查天气、订机票等,不断增长。
  • 支持用户将私有API封装成自定义插件,拓展智能体应用场景。
  • 知识库功能:用户可上传专业知识文档,如产品手册、业务流程等,让智能体成为领域专家。在垂直领域应用中,知识库功能是满足专业需求的关键。
  • 快速生成智能体:Coze支持无代码生成AI智能体,用户可在短时间内完成智能体原型搭建。简化创建过程,缩短想法与成品之间的距离。
  • 广泛应用场景:Coze不仅适用于客服,还适用于各种基于AI模型的智能问答智能体。能处理简单问询,也能应对多步骤思考、多逻辑判断的复杂对话场景。
  • 数据管理与记忆功能:Coze让智能体记住对话关键信息和用户偏好,避免“金鱼记忆”。智能体可主动服务,如定时推送新闻、规划周末等,提升用户体验。
  • 流量优势:Coze背靠字节跳动,作品可通过豆包、飞书等渠道触达亿级用户。对于开发者和创作者而言,流量优势意味着作品有更多展示机会。

2. Agent实现流程

  • 需求分析
    • 收集需求:真正倾听用户需求,了解他们希望Agent实现的功能,避免“自嗨”产品。
    • 定义角色职责:明确Agent系统中各“员工”角色及职责,为后续设计开发提供清晰架构。
    • 建立领域模型:梳理Agent需要打交道的概念及其关系,为实现复杂业务逻辑奠定基础。
    • 优化问题研究:提前识别并研究影响效率和体验的环节,确保产品高效满足用户需求。
    • 可视化需求分析:利用流程图、思维导图等可视化工具,更直观地理解和管理需求。
  • 架构设计
    • 人设模块:定义Agent身份、行为准则和说话风格,为其赋予独特魅力。
    • 记忆模块:存储和管理Agent知识,包括短期记忆和长期记忆,构成“大脑海马体”。
    • 规划模块:制定行动计划,将大任务分解为小步骤,优化执行路径。
    • 行动模块:执行具体操作,如调用API、计算数据等,赋予Agent行动能力。
    • 认知架构:确定各模块之间的对话、信息传递和协同工作方式,决定Agent思维逻辑。
    • 多智能体协作:制定沟通“标准操作规程”,确保不同智能体高效分工协作。
    • 迭代和对话式工作流:通过与Agent对话、测试、调试,不断优化其人设、知识库和工作流。

3. 知识库配置详解

  1. 提示词
你是一位专业的课程咨询顾问,能够精准分析学员需求,提供合适的课程规划方案。利用知识库中的课程信息为学员解答疑问,不进行报价,若学员询问报价,引导其留下姓名和手机号码,以便老师回电。
  1. 用户测试问题
问题01:课程特色?
问题02:适合人群?
问题03:费用呢?
  1. 知识库文档素材
# 课程信息.docx

这篇文档主要围绕此课程的内容展开介绍,主要包括课程特色,部分内容介绍以及适用人群。
课程名称:搞个AI助理(Agent/智能体)帮你干活
######
课程特色:
1.通俗易懂:用现实中实际的业务场景进行讲解,确保学员可以快速理解。
2.全程实战:所有的场景都会有详细的视频介绍以及动手实验手册。
3.AI业务场景覆盖:覆盖当下主要的AI应用场景,包括文档对话、智能编码、智能客服、Agent等等。
4.实战源码:提供对应的业务代码,用户可以根据自己的实际场景去调整代码。
5.追随热点持续更新:不断加⼊AI领域的各种应用场景,让你卷死同事。
######
适用人群:
1. 产品经理、项目经理、开发人员、CTO、计算机专业的学生。 想要通过AI提高自己行业竞争力的各类技术人员。
2.在校学⽣:有较强学习能力,未来想在AI领域获得一些机会。
3.AIGC兴趣爱好者:需要将AI的一些业务场景应用到自己的实际业务,对自己的行业赋能。
######
课程收获:
1.	可运用到自身行业内的AI转型,降本增效。
2.	可运用到工作当中,与他人拉开差距。
3.	会成为AI时代的稀缺人才,提升竞争力。
4.	会在AI时代,拥有领先于其他人的先进思维,高认知。
5.	可以抓住未来的趋势,做浪尖上的人。
6.	不用再去花时间学习任何其他AI课程。
7.	可以利用这项技术,发展自己的学员。
8.	可以与企业进行外包合作,实现财务自由。

4. 数据分析案例:股票分析

你是一个说话好听的的证券分析师,对股票市场有深入的理解。请你根据用户提供的股票名称获取股票最新数据,并基于下面的要求给出股票分析结果。

## 用户背景
- 假设用户已经购买了这只股票,并且希望通过详细的分析来了解这只股票的表现和未来潜力。

## 分析要求

### 1. 前期整体数据分析
- **历史股价分析**:请提供过去的股价趋势分析,并分析主要趋势和波动原因。
- **财务数据分析**:包括但不限于营收、净利润、每股收益、资产负债率等关键财务指标的历史数据。
- **市场表现**:分析该股票在行业内的表现,与主要竞争对手的比较,以及市场占有率的变化。
- **重大事件影响**:列出过去几年对该股票产生重大影响的事件(如公司重大新闻、行业政策变化等),并分析这些事件对股价的影响。

### 2. 技术分析
- **技术指标**:请提供并分析常用的技术指标(如移动平均线、相对强弱指数、MACD等),解释这些指标目前的状态和对股票未来走势的指示。
- **交易量分析**:分析过去一段时间的交易量变化,是否有异常的交易量波动,及其可能的原因。

### 3. 后期预测
- **短期预测(1-3个月)**:基于当前市场状况和技术指标,预测股票短期内的表现,并给出可能的支撑位和阻力位。
- **中长期预测(6个月-1年)**:结合公司未来发展规划、行业前景及宏观经济环境,预测股票中长期的表现。
- **潜在风险与机遇**:列出该股票在未来可能面临的主要风险和机遇,并给出应对建议。

### 4. 投资建议
- 根据上述分析,给出持有、增持、减持或卖出的具体建议,并说明理由。

### 5. 附加信息
- 推荐用户关注的新闻来源或数据平台,以便及时获取相关信息。
- 提供一些实用的投资策略或工具,帮助用户更好地管理其投资组合。

二、Dify平台概述

在线地址:https://cloud.dify.ai/apps

开源代码:https://github.com/langgenius/dify

1. 平台定义与特性

  • 开源优势:Dify开源是其与Coze最大区别,代码免费可见,可私有化部署,确保数据安全,满足企业处理敏感信息、注重合规的需求。
  • LLM应用定位:Dify定位为LLM应用开发平台,涵盖提示词工程、RAG和AI Agent三板斧,能实现从简单文案生成到复杂超级Agent的多种应用。
  • 平台功能集成:Dify是集成开发环境,提供一站式解决方案,涵盖数据投喂、模型挑选、应用开发、效果调试到上线集成全过程。

2. 核心功能模块

  • 工作流设计:提供可视化画布,像搭积木一样组合功能,构建强大清晰的AI工作流程,与Coze相似但更强大。
  • 模型支持:Dify能与几乎所有主流大语言模型无缝集成,包括闭源的GPT、Claude和开源的Llama、DeepSeek等,还支持自托管模型。
  • 提示词IDE:专业提示词集成开发环境,可精心打磨指令,对比不同模型效果,一键添加附加功能,如文字转语音。
  • RAG引擎:提供从文档上传、智能清洗、自动分段到高效检索的全链路RAG功能,支持多种常见文档格式,简化私有知识库构建。
  • 智能体功能:支持通过大模型函数调用或ReAct模式思考行动,内置超50种实用工具,如网页搜索、图片生成、科学计算等,还有丰富的市场资源。
  • 运维监控:提供完整运维监控工具,可跟踪分析应用日志与性能,根据用户反馈和数据迭代提示词、数据集和模型,形成进化闭环。
  • 后端即服务:所有核心功能配API接口,可作为强大AI后端服务,将能力集成到现有业务逻辑和应用程序中。

3. 平台对比分析

  • Coze与Dify对比:Coze是低代码/无代码AI智能体构建平台,追求效率和流量;Dify是开源的、面向开发者的LLM应用开发平台,追求深度、控制力和可扩展性。
  • 开放性对比:Coze闭源、SaaS服务,有厂商锁定风险;Dify开源,可随心修改、部署在内网,确保数据安全。
  • 模型支持对比:Coze集成字节豆包及主流模型;Dify模型无关,支持几乎所有主流商业和开源模型,开发者可自由选择。
  • 核心抽象对比:Coze以“智能体”为核心;Dify以“应用”为核心,应用可以是对话型或文本生成型,更符合软件工程思想。
  • 数据处理对比:Coze有知识库;Dify有数据集,支持更丰富的文本处理方式,可作为独立模块管理和调用。
  • 工具/插件对比:Coze有插件;Dify有工具,支持自定义API、代码工具和工作流工具,能力边界更广。
  • 集成方式对比:Coze多平台一键发布;Dify API驱动,可与复杂系统深度融合。
  • 迭代与运维对比:Coze提供对话日志分析;Dify提供完整日志、标注和性能分析,更偏向专业运维。

4. 服务架构解析

  • 核心服务
    • api服务:后端API服务,是平台中枢神经,处理所有业务逻辑,需配置域名和安全密钥。
    • worker服务:后台任务处理器,负责异步任务,如处理知识库文档,配置与api服务共享。
    • web服务:前端界面,将后端数据图形化呈现,需正确指向api服务地址。
    • db服务:主数据库,存储核心数据,需设置强密码并进行数据持久化。
    • redis服务:高速缓存和任务队列,需设置自定义密码。
    • nginx服务:反向代理服务器,是应用大门,生产环境下建议开启HTTPS。
  • 可选向量数据库服务:向量数据库是RAG核心组件,Dify支持多种向量数据库,可根据需求选择,如Weaviate、Qdrant、Milvus等,不同数据库有不同特点和适用场景。
  • 支撑服务
    • sandbox服务:代码执行沙箱,确保代码安全执行。
    • plugin_daemon服务:插件守护进程,管理第三方插件。
    • ssrf_proxy服务:SRF防护代理,防止恶意网络攻击。
    • certbot服务:SSL证书自动续签机器人。
    • unstructured服务:数据处理服务,用于从非结构化文件中提取、清洗和转换数据。

5. 使用模式选择

  • Dify云服务:访问官网注册即可,零配置,开箱即用,包含自部署版本所有功能,新手注册赠送GPT- 4调用额度,适合体验和学习。
  • 自托管社区版:在个人电脑或服务器上运行Dify,需满足最低配置要求,安装Docker和Docker Compose,通过简单操作即可部署。
  • 企业版Dify:针对有高级需求的企业或组织,提供额外企业级功能支持。

6. 私有化部署步骤

  • 环境准备:确保机器满足最低配置:CPU≥2核,内存≥4GB,安装Docker和Docker Compose。
  • 获取源码:在Github获取Dify源码,可下载发行版或克隆代码获取实时更新。
  • 启动服务:进入docker目录,复制环境变量配置文件,运行docker compose up - d命令启动服务。
  • 初始化设置:访问安装页面,创建管理员账号,登录平台,进入主界面,完成部署。
  • 高级配置:可修改.env文件进行自定义配置,如修改访问端口、更换数据库密码等,还可参考官方文档进行更高级配置。

三. Dify部署实操

1. 环境准备

  • ubuntu22.04服务器
  • conda3 25.1.1
  • Cuda 12.6
  • docker

2. 部署Dify

  1. 完成代码的克隆以及创建配置文件

    # 从dify官方网站克隆代码
    git clone https://github.com/langgenius/dify.git
    
    # 进入到dify目录
    cd dify
    
    # 进入到容器配置目录
    cd docker
    
    # 复制出配置文件
    cp .env.example .env
    
  2. 修改DIFY对外暴漏的端口号为8890

    vim .env
    
    # 修改
    EXPOSE_NGINX_PORT=8890
    EXPOSE_NGINX_SSL_PORT=443
    
  3. 修改docker配置文件,配置国内镜像源

    vim /etc/docker/daemon.json
    
    {
        "registry-mirrors": ["https://docker.registry.cyou",
        "https://docker-cf.registry.cyou",
        "https://dockercf.jsdelivr.fyi",
        "https://docker.jsdelivr.fyi",
        "https://dockertest.jsdelivr.fyi",
        "https://mirror.aliyuncs.com",
        "https://dockerproxy.com",
        "https://mirror.baidubce.com",
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://docker.mirrors.sjtug.sjtu.edu.cn",
        "https://docker.mirrors.ustc.edu.cn",
        "https://mirror.iscas.ac.cn",
        "https://docker.rainbond.cc"]
    }
    
  4. 重启docker服务

    systemctl daemon-reload
    systemctl restart docker
    
  5. 使用docker compose命令一键部署dify应用

    docker compose up -d
    
    # 启动完成后,观察服务启动是否正常
    docker ps
    
  6. 根据服务器设置外网访问dify服务

四、第一个Dify应用开发

1. 应用开发流程

  1. 创建应用:选择应用类型,如对话型应用、文本生成型应用或Agent应用等,定义应用基本交互形态。
  2. 编排应用:安排应用的模型、提示词、知识库、工具和视觉等元素,构建应用的“大脑中枢”和“灵魂所在”。
  3. 调试与预览:在编排右侧的实时预览窗口与应用对话,查看应用的每一步操作和思考过程,进行调试和优化。
  4. 发布与集成:满意后发布应用,Dify生成API接口,可将AI能力集成到网站、App等业务系统中。

2. 核心部件详解

  • 应用类型:Dify提供聊天助手、文本生成、Agent、Chatflow和Workflow五种应用类型,各有特点和适用场景。
  • 知识库:Dify知识库支持多样化数据源导入,提供精细化文本处理与分段,采用先进混合检索技术,实现独立模块化管理。
  • 工具:Dify工具是封装好的API接口,包括开箱即用的内置工具、无限扩展的自定义工具和“技能固化”的工作流工具。
  • 插件:插件是Dify平台的系统级扩展坞,具有系统级集成能力、强大双向通信和开发者友好的生态,可实现更复杂的功能扩展。
  • 应用编排:应用编排界面是Dify的“总装车间”,将提示词、数据库、工具、插件等组装成一个完整的Agent应用。

3. 模型分类与配置

  • 系统推理模型:系统推理模型是Dify应用的核心,负责生成文本内容。例如DeepSeek、GPT等大语言模型,可用于对话应用、内容生成等场景。其主要功能包括文本生成、问答、创意写作和翻译润色等,是构建各类AI应用的基础。
  • Embedding模型:Embedding模型将文本转换为数字向量,捕捉语义信息。其主要功能有语义搜索、推荐系统、文本聚类/分类和问答系统中的检索增强生成(RAG),可应用于知识库问答、个性化推荐等场景,提升信息检索和处理的效率与准确性。
  • Rerank模型:Rerank模型对搜索结果进行二次排序,提高结果相关性。在初步检索结果基础上,通过语义分析优化排名,确保提供给推理模型的上下文信息更准确,从而提升问答等场景的准确性和用户体验。
  • 语音转文本模型:语音转文本模型(ASR模型)将语音转换为文本,赋予AI应用“听”的能力。其功能包括语音输入、会议记录和语音指令识别等,使用户可以通过语音与应用交互,提高便捷性和效率。
  • 文本转语音模型:文本转语音模型(TTS模型)将文本转换为语音,让AI应用具备“说”的能力。可用于语音播报、语音合成等场景,使信息输出更加多样化和生动。

4. 模型对接实践

  • 对接云平台大模型:以豆包大模型为例,演示对接云平台大模型的步骤。首先在Dify的“模型供应商”页面找到火山方舟,通过市场安装或本地上传的方式安装插件。安装过程中Dify会进行预编译,安装完成后在插件中添加模型,并将其设置为系统推理模型,即可完成配置。
  • 对接私有化大模型:以LM Studio为例,介绍对接私有化大模型的流程。先安装LM Studio工具,根据显存大小下载合适参数量的模型并测试。然后启动API服务,确保服务可在网络中访问。接着在Dify中安装LM Studio插件,添加模型并配置。最后在Dify的“系统模型设置”中选择模型,完成对接。

5. 多轮对话的基本概念

  • 多轮对话定义:多轮对话是用户与聊天助手连续交流的过程,要求助手记住并理解上下文,根据之前的对话内容给出贴切回答。相比单轮对话,多轮对话能解决更复杂任务,如电商导购中通过多轮交流精准推荐产品,更符合人类日常聊天习惯,提升用户体验。
  • 上下文窗口:上下文窗口是大语言模型在处理当前输入时能参考的前面内容范围,通常用Token数量衡量。如doubao- 32K模型的上下文窗口为32000个Token。上下文窗口越大,模型越能抓住长距离语义联系,保持对话连贯性,提高信息提取和文本生成的准确性和自然度。
  • 对话角色解析:在大语言模型对话中,有系统、用户、助手和工具四个主要角色。系统角色设定对话背景、规则和目标,引导模型行为;用户角色发起对话,表达需求;助手角色理解用户意图并生成回复;工具角色与函数调用相关。这些角色相互协作,构成完整的对话生态系统。

五、Dify基础应用

1. 聊天助手开发与优化

  • 聊天助手特点与场景:聊天助手是Dify中基础且常见的应用类型,具有持续上下文、AI开场白、知识库集成、流式返回和API友好等特点。适用于智能客服、AI伙伴、面试官/老师和企业内部知识库问答等场景,可实现高效、智能的多轮对话交互。
  • 模型参数调整:Dify中可调整多种模型参数,如温度、Top P、Top K、存在惩罚、频率惩罚和最大生成长度等。这些参数分别控制文本生成的随机性、多样性、重复度和长度等,可根据不同场景和需求进行优化,以获得更理想的生成效果。
  • 提示词与变量:提示词是聊天助手的人设和回复逻辑,变量可动态生成内容。通过设置变量,可根据用户输入或外部数据生成个性化回复。例如在提示词中设置用户姓名和性别的变量,根据用户填写的表单内容生成尊称,使回复更具针对性。
  • 调试与增强功能:在调试与预览窗口中,可实际测试聊天助手的效果,并观察Token消耗和耗时等信息。Dify还提供多模型调试功能,可同时对比多个模型的输出,帮助开发者进行模型选型和优化。此外,还有对话开场白、下一步问题建议、引用和归属、内容审查和标注回复等增强功能,可提升用户体验和应用安全性。

2. 文本生成应用

  • 核心概念:文本生成应用专注于一次性文本任务,通过表单输入变量,利用预设提示词模板快速生成结构化或非结构化文本内容,追求效率与结果规范性。

  • 主要特点:表单驱动输入,即时生成结果,无持续记忆,API端点清晰,适用于单次生成、格式化输出任务。

  • 工作周报生成器案例

    • 在Dify平台创建文本生成应用,输入详细提示词,定义变量,选择模型,测试并发布应用,实现高效生成工作周报。
    • 发布应用后,界面为表单窗口与文本展示区,支持一键复制、收藏、重新生成及批量运行功能,提升文本生成效率。
    • 适用场景
      • 内容创作:快速生成社交媒体帖子、博客文章、产品描述、会议纪要等,提升工作效率。
      • 文本处理工具:包装成翻译器、摘要生成器、代码解释器、格式转换器等实用小工具。
      • 批量任务:通过上传CSV模板文件或调用API,高效处理大量相似文本生成任务。

3. 通过API调用Dify应用

  • 购物评论生成器
    • 创建应用:创建文本生成应用,设置提示词与变量,选择模型,测试并发布。
    • 发送消息API:创建API Key,使用Apifox工具,设置开发环境与鉴权组件,创建接口目录与接口,实现API调用。
  • 流式传输与非流式传输
    • 流式传输:模型生成结果实时返回,适用于实时对话系统,响应快、节省资源,但网络不稳定时可能数据丢失。
    • 非流式传输:模型一次性返回完整结果,适用于批量生成任务或对结果完整性要求高,处理简单、稳定性高,但延迟较高。
    • 流式传输实现:采用SSE技术,服务器主动向客户端发送消息,建立单向通道,实现流畅低延迟的AI交互体验。
  • 使用流式传输:在Apifox中修改请求参数为流式传输模式,利用后执行脚本功能自动合并数据流,获取完整结果。

4. Agent智能助手

  • 核心定位:Agent赋予AI任务分解、工具调用、自主推理能力,能理解复杂任务并自主完成。
  • 主要特点:推理与规划过程透明,可集成多种工具,自主决策执行路径,以对话形式与用户交互。
  • 适用场景
    • 复杂任务助理:完成如查询股价、总结新闻、发送邮件等复杂任务,调用多个工具协同工作。
    • 自动化研究员:自动搜索资料、整理数据、生成研究报告,提升研究效率。
    • 企业自动化流程:连接企业内部系统API,实现跨系统自动化业务操作,提高企业运营效率。
  • 大模型函数调用
    • 什么是函数调用:大模型通过函数调用与外部世界交互,根据用户输入判断是否调用函数,生成参数并执行,获取实时信息完成复杂任务。
    • 工具角色作用:扩展模型能力,实现动态决策与执行,支持结构化数据交互,使模型突破静态知识限制,提升实用性和灵活性。
  • 案例:天气查询助手
    • 安装天气插件:在Dify后台安装“聚合数据”插件,注册平台账号,添加“天气预报”服务,获取API Key,完成插件配置。
    • 创建Agent应用:创建Agent应用,输入提示词设定人设与回复逻辑,添加并配置天气预报工具,关闭深度思考模式,测试应用功能。
    • Agent设置
      • Agent Mode:当前版本仅支持ReAct模式,Agent通过“思考- 行动- 观察”循环处理任务,过程透明可追溯。
      • 最大迭代次数:设置Agent最多循环执行流程的次数,防止无限循环,控制成本,合理设置有助于精确控制单次请求成本。
      • Agent提示词:提示词是Agent应用的核心,指导Agent工作、思考和使用工具,强制模型遵循ReAct模式,通过格式化输出、思考步骤、行动观察循环实现强大功能。
      • 核心工作流程:Agent遵循“问题- 思考- 行动- 观察”循环格式,重复直至完成任务,最终调用“Final Answer”输出答案,实现自主规划与交互。
      • 启动与提醒:提示词启动任务并强调输出格式,确保Agent每次输出为单一操作的JSON数据块,实现机器可读性和可控性。
      • 总结:精心设计的提示词将语言模型改造为智能代理,实现自主规划、工具调用、动态调整行为,是Agent模式的底层工作原理。

六、工作流应用

1. 工作流的定义

  • 工作流概念:工作流是Dify实现“编排即应用”的工具,提供可视化编排画布,可将功能节点拖拽连接,形成数据处理与逻辑执行链路,用户请求触发后自动执行。
  • 工作流与文本生成应用区别:工作流是文本生成应用的加强版,二者都是“你问我答”模式,但工作流背后完成复杂自动化内部处理流程,而文本生成应用通常是一次性简单互动。
  • 工作流触发方式:工作流可由API调用、被其他应用当作工具调用或设定定时启动等触发方式启动,启动后独立完成数据处理,几乎无需人工实时干预。

2. 工作流的特点

  • 可视化与低代码:Dify工作流通过可视化画布和拖拽配置,极大降低AI应用开发门槛,让非专业开发者也能参与设计和构建,加速创意到产品的转化。
  • 强大的节点生态系统:Dify工作流内置多种节点类型,涵盖构建复杂AI应用所需功能,如开始节点、LLM节点、知识库节点、工具节点等,满足多样化需求。
  • 混合模型与模型路由:在一个工作流中可同时使用多个不同大模型节点,根据任务复杂度和成本要求选择合适模型,实现性能与成本的平衡。
  • 可观测性与可追溯性:Dify为工作流提供详尽执行日志,方便开发者调试应用、分析用户行为、优化提示词和工作流结构,确保应用稳定运维。
  • 一键部署与API集成:设计调试好的工作流可一键发布为独立应用、工具或API接口,无缝集成到已有网站、App或业务系统中,高效便捷。

3. 新闻分析助手

  • 创建流程:通过Dify创建新闻分析助手,需安装谷歌搜索插件并配置API,创建工作流应用,依次添加搜索工具节点、代码执行节点、LLM节点等,完成数据获取、转换、分析及摘要生成。
  • 工作流模版
app:
  description: ''
  icon: 🤖
  icon_background: '#FFEAD5'
  mode: workflow
  name: 新闻分析助手
  use_icon_as_answer_icon: false
dependencies:
- current_identifier: null
  type: marketplace
  value:
    marketplace_plugin_unique_identifier: langgenius/volcengine_maas:0.0.20@aff2eaf766b1774519c3ca0e77de0b28c87b71cce6390b22a103518e8a5e4ae7
- current_identifier: null
  type: marketplace
  value:
    marketplace_plugin_unique_identifier: langgenius/tongyi:0.0.27@4bb3f3eb6149b01f92aa6038a6bb074cc4224b8c015f54c888e5c5a30fc1ab50
- current_identifier: null
  type: marketplace
  value:
    marketplace_plugin_unique_identifier: langgenius/google:0.0.9@d360bbc433f39be1b11909cb9c32e6be4a17ea06af083f9e1c7613bb802bf517
kind: app
version: 0.3.0
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      allowed_file_extensions:
      - .JPG
      - .JPEG
      - .PNG
      - .GIF
      - .WEBP
      - .SVG
      allowed_file_types:
      - image
      allowed_file_upload_methods:
      - local_file
      - remote_url
      enabled: false
      fileUploadConfig:
        audio_file_size_limit: 50
        batch_count_limit: 5
        file_size_limit: 15
        image_file_size_limit: 10
        video_file_size_limit: 100
        workflow_file_upload_limit: 10
      image:
        enabled: false
        number_limits: 3
        transfer_methods:
        - local_file
        - remote_url
      number_limits: 3
    opening_statement: ''
    retriever_resource:
      enabled: true
    sensitive_word_avoidance:
      enabled: false
    speech_to_text:
      enabled: false
    suggested_questions: []
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
      language: ''
      voice: ''
  graph:
    edges:
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: start
        targetType: tool
      id: 1750854620394-source-1750854901932-target
      source: '1750854620394'
      sourceHandle: source
      target: '1750854901932'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: tool
        targetType: code
      id: 1750854901932-source-1750855480588-target
      source: '1750854901932'
      sourceHandle: source
      target: '1750855480588'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: llm
      id: 1750855190763-source-1750855882873-target
      source: '1750855190763'
      sourceHandle: source
      target: '1750855882873'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: end
      id: 1750855882873-source-1750856025202-target
      source: '1750855882873'
      sourceHandle: source
      target: '1750856025202'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInLoop: false
        sourceType: code
        targetType: llm
      id: 1750855480588-source-1750855190763-target
      source: '1750855480588'
      sourceHandle: source
      target: '1750855190763'
      targetHandle: target
      type: custom
      zIndex: 0
    nodes:
    - data:
        desc: ''
        selected: false
        title: 开始
        type: start
        variables:
        - label: '搜索内容 '
          max_length: 48
          options: []
          required: true
          type: text-input
          variable: query
      height: 88
      id: '1750854620394'
      position:
        x: 30
        y: 244.5
      positionAbsolute:
        x: 30
        y: 244.5
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 243
    - data:
        desc: ''
        is_team_authorization: true
        output_schema: null
        paramSchemas:
        - auto_generate: null
          default: null
          form: llm
          human_description:
            en_US: used for searching
            ja_JP: used for searching
            pt_BR: used for searching
            zh_Hans: 用于搜索网页内容
          label:
            en_US: Query string
            ja_JP: Query string
            pt_BR: Query string
            zh_Hans: 查询语句
          llm_description: key words for searching
          max: null
          min: null
          name: query
          options: []
          placeholder: null
          precision: null
          required: true
          scope: null
          template: null
          type: string
        - auto_generate: null
          default: null
          form: llm
          human_description:
            en_US: Parameter defines the language to use for the Google search. It's
              a two-letter language code. (e.g., en for English, es for Spanish, or
              fr for French). Head to https://serpapi.com/google-languages for a full
              list of supported Google languages.
            ja_JP: Parameter defines the language to use for the Google search. It's
              a two-letter language code. (e.g., en for English, es for Spanish, or
              fr for French). Head to https://serpapi.com/google-languages for a full
              list of supported Google languages.
            pt_BR: Parameter defines the language to use for the Google search. It's
              a two-letter language code. (e.g., en for English, es for Spanish, or
              fr for French). Head to https://serpapi.com/google-languages for a full
              list of supported Google languages.
            zh_Hans: 此参数定义用于 Google 搜索的语言。它是一个两字母的语言代码。 (例如,en 代表英语,es 代表西班牙语,fr 代表法语)。请前往
              https://serpapi.com/google-languages 查看完整的支持 Google 语言列表。
          label:
            en_US: Language
            ja_JP: Language
            pt_BR: Language
            zh_Hans: 语言
          llm_description: Language
          max: null
          min: null
          name: hl
          options: []
          placeholder: null
          precision: null
          required: false
          scope: null
          template: null
          type: string
        - auto_generate: null
          default: null
          form: llm
          human_description:
            en_US: Parameter defines the country to use for the Google search. It's
              a two-letter country code. (e.g., us for the United States, uk for United
              Kingdom, or fr for France). Head to the https://serpapi.com/google-countries
              for a full list of supported Google countries.
            ja_JP: Parameter defines the country to use for the Google search. It's
              a two-letter country code. (e.g., us for the United States, uk for United
              Kingdom, or fr for France). Head to the https://serpapi.com/google-countries
              for a full list of supported Google countries.
            pt_BR: Parameter defines the country to use for the Google search. It's
              a two-letter country code. (e.g., us for the United States, uk for United
              Kingdom, or fr for France). Head to the https://serpapi.com/google-countries
              for a full list of supported Google countries.
            zh_Hans: 此参数定义用于 Google 搜索的国家。它是一个两字母的国家代码。 (例如,us 代表美国,uk 代表英国,fr 代表法国)。请前往
              https://serpapi.com/google-countries 查看完整的支持 Google 国家列表。
          label:
            en_US: Country
            ja_JP: Country
            pt_BR: Country
            zh_Hans: 国家
          llm_description: Country
          max: null
          min: null
          name: gl
          options: []
          placeholder: null
          precision: null
          required: false
          scope: null
          template: null
          type: string
        - auto_generate: null
          default: null
          form: llm
          human_description:
            en_US: Parameter defines from where you want the search to originate.
              If several locations match the location requested, we'll pick the most
              popular one. Head to the /locations.json API if you need more precise
              control. The location and uule parameters can't be used together. It
              is recommended to specify location at the city level in order to simulate
              a real user’s search. If location is omitted, the search may take on
              the location of the proxy.
            ja_JP: Parameter defines from where you want the search to originate.
              If several locations match the location requested, we'll pick the most
              popular one. Head to the /locations.json API if you need more precise
              control. The location and uule parameters can't be used together. It
              is recommended to specify location at the city level in order to simulate
              a real user’s search. If location is omitted, the search may take on
              the location of the proxy.
            pt_BR: Parameter defines from where you want the search to originate.
              If several locations match the location requested, we'll pick the most
              popular one. Head to the /locations.json API if you need more precise
              control. The location and uule parameters can't be used together. It
              is recommended to specify location at the city level in order to simulate
              a real user’s search. If location is omitted, the search may take on
              the location of the proxy.
            zh_Hans: 此参数定义搜索的位置。如果有多个位置与请求的位置匹配,我们将选择最受欢迎的一个。如果需要更精确的控制,请前往 /locations.json
              API。location 和 uule 参数不能同时使用。建议在城市级别指定位置,以模拟真实用户的搜索。如果省略位置,则搜索可能会采用代理的位置。
          label:
            en_US: Location
            ja_JP: Location
            pt_BR: Location
            zh_Hans: 位置
          llm_description: Location
          max: null
          min: null
          name: location
          options: []
          placeholder: null
          precision: null
          required: false
          scope: null
          template: null
          type: string
        params:
          gl: ''
          hl: ''
          location: ''
          query: ''
        provider_id: langgenius/google/google
        provider_name: langgenius/google/google
        provider_type: builtin
        retry_config:
          max_retries: 3
          retry_enabled: true
          retry_interval: 1000
        selected: false
        title: 搜索最新咨询
        tool_configurations: {}
        tool_description: 一个用于执行 Google SERP 搜索并提取片段和网页的工具。输入应该是一个搜索查询。
        tool_label: 谷歌搜索
        tool_name: google_search
        tool_parameters:
          gl:
            type: mixed
            value: ''
          hl:
            type: mixed
            value: ''
          query:
            type: mixed
            value: '{{#1750854620394.query#}}'
        type: tool
      height: 81
      id: '1750854901932'
      position:
        x: 334
        y: 244.5
      positionAbsolute:
        x: 334
        y: 244.5
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 243
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: ''
        model:
          completion_params:
            temperature: 0.7
            thinking: disabled
          mode: chat
          name: doubao-1.6
          provider: langgenius/volcengine_maas/volcengine_maas
        prompt_template:
        - id: 00d7d0d2-079b-490c-b05b-b5a1d837b901
          role: system
          text: '# 角色

            你是一位资深的行业分析师,擅长从海量信息中快速提炼核心观点和关键动态。


            # 任务

            请仔细阅读由搜索引擎提供的关于“{{#1750854620394.query#}}”的最新资讯文本,然后完成以下任务:

            1.  识别并总结出 3-5 个最主要的核心观点或最新动态。

            2.  对总结出的内容进行整合,生成一段约 200 字的综合性分析摘要。

            3.  输出格式必须清晰、专业,直接呈现分析摘要内容即可。'
        - id: 7ed452db-6316-4eff-93de-e04d197e18db
          role: user
          text: '以下是由搜索引擎提供内容:

            {{#1750855480588.json_string#}}'
        selected: false
        title: 分析并生成摘要
        type: llm
        variables: []
        vision:
          enabled: false
      height: 88
      id: '1750855190763'
      position:
        x: 942
        y: 244.5
      positionAbsolute:
        x: 942
        y: 244.5
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 243
    - data:
        code: "function main({ inputJson }) {\n    const results = inputJson[0].organic_results;\n\
          \    const jsonOutputString = JSON.stringify(results, null, 2);\n    return\
          \ {\n        json_string: jsonOutputString\n    };\n}"
        code_language: javascript
        desc: ''
        outputs:
          json_string:
            children: null
            type: string
        selected: false
        title: 搜索结果转换
        type: code
        variables:
        - value_selector:
          - '1750854901932'
          - json
          variable: inputJson
      height: 52
      id: '1750855480588'
      position:
        x: 638
        y: 244.5
      positionAbsolute:
        x: 638
        y: 244.5
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 243
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: ''
        model:
          completion_params:
            enable_search: false
            enable_thinking: false
          mode: chat
          name: qwen-turbo-latest
          provider: langgenius/tongyi/tongyi
        prompt_template:
        - id: 1b921c20-579d-4dfb-9bf4-45d2b15f323f
          role: system
          text: '# 角色

            你是一名专业的新媒体运营专家,精通如何将复杂的观点转化为吸引人的社交媒体内容。


            # 任务

            基于提供的分析摘要,创作一条适合在微博或即刻等平台发布的洞察短评。要求:

            1.  风格:犀利、有见地、引人思考。

            2.  长度:控制在 150 字以内。

            3.  结尾:附上 3-5 个相关的、热门的标签。'
        - id: e207835d-a6ba-4a93-aee5-c79d445797a0
          role: user
          text: '以下是分析摘要:

            {{#1750855190763.text#}}'
        selected: false
        title: 生成社媒短评
        type: llm
        variables: []
        vision:
          enabled: false
      height: 88
      id: '1750855882873'
      position:
        x: 1246
        y: 244.5
      positionAbsolute:
        x: 1246
        y: 244.5
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 243
    - data:
        desc: ''
        outputs:
        - value_selector:
          - '1750855882873'
          - text
          variable: social_media_post
        - value_selector:
          - '1750855190763'
          - text
          variable: analysis_summary
        selected: false
        title: 结束
        type: end
      height: 114
      id: '1750856025202'
      position:
        x: 1550
        y: 373.5
      positionAbsolute:
        x: 1550
        y: 373.5
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 243
    viewport:
      x: -159.11263660062195
      y: 138.055850587392
      zoom: 1.021636065605043
  • 测试与运行:发布工作流后,输入关键词测试,观察节点依次点亮,最终输出包含分析摘要和社交媒体短评的完整报告,还可查看运行日志优化流程。
  • 总结与扩展:通过案例掌握工作流搭建、工具节点使用、变量传递、LLM节点任务配置等,可扩展如加入判断节点、使用专业工具、增加处理分支等提升应用功能。

4. 工作流的应用场景

  • 自动化报告生成与数据处理:设定定时触发工作流,从数据库拉取数据,清洗统计后通过LLM生成报告,再通过工具节点发送给管理团队,实现自动化数据处理与报告生成。
  • 跨系统信息同步与整合:工作流可连接企业内部多个独立IT系统,如CRM、ERP、OA等,实现数据自动同步与整合,提高数据流转效率与一致性。
  • 批量内容生成与分发:构建产品描述生成器,通过循环节点和LLM节点为多个产品生成描述,还可搭配图片处理工具批量生成内容并发布,提升内容运营效率。
  • 周期性监控与智能告警:结合定时任务和HTTP请求工具,构建业务监控系统,如网站健康度监控,异常时通过LLM分析并告警,实现智能运维。
  • 内容审核与分类:构建智能审核中心,对UGC平台内容进行多维度检测,利用条件判断节点分流处理,降低人工审核压力与成本。

七、对话流应用

1. 对话流与工作流的区别

  • 核心目标:工作流面向任务自动化,执行明确流程;对话流面向交互对话,构建多轮交流AI。
  • 交互模型:工作流单向API驱动,接收输入返回结果;对话流双向多轮驱动,实时响应用户输入。
  • 执行流程:工作流线性批处理,从开始到结束执行;对话流循环事件驱动,等待用户输入触发。
  • 上下文管理:工作流上下文手动管理;对话流原生记忆对话历史。
  • 典型起点:工作流由API调用或定时触发;对话流由用户问候或问题触发。
  • 适用场景:工作流适用于后端自动化任务;对话流适用于智能客服、AI助教等聊天场景。

2. 对话流概述

  • 对话流是Dify用于构建对话式AI的可视化编排工具,围绕对话展开设计,用户输入触发流程,实现思考与回应逻辑。
  • 对话流运行机制:用户输入触发对话流从开始节点运行,可能经历意图理解、知识库检索、工具调用、LLM生成回答等步骤,然后等待用户下一轮输入。
  • 核心特点
    • 为对话而生的流程节点:对话流起点是对话开始和用户输入,终点是回复节点,专门负责输出AI回答,整个流程围绕对话交互展开。
    • 强大的原生上下文记忆:对话流自动维护对话历史,LLM生成回答时能自动看到聊天记录,实现连贯对话,无需额外复杂配置。
    • 灵活的流程控制与分支:对话流可使用条件判断节点,根据用户意图、变量值等将对话引导至不同分支,应对真实对话的非线性特点。
    • 与知识库和工具无缝集成:对话流中知识库检索节点让AI自然回答问题,工具节点赋予AI行动能力,将对话与真实世界行动紧密连接。
    • 可视化的调试与迭代:对话时可在Dify后台实时看到对话流在画布上的流动路径,直观了解流程运行情况,高效优化对话逻辑。

3. 案例:综合查询小助手

  • 需求分析:综合查询小助手需包含多个Agent成员,各有所长,将用户问题分类后交给擅长处理的Agent,提高效率,避免资源浪费。
  • 实现过程:安装通义千问模型插件并配置,创建对话流应用,添加问题分类器节点,根据不同分类创建天气Agent、新闻摘要Agent和通用LLM节点,最后汇总输出。
app:
  description: ''
  icon: 🤖
  icon_background: '#FFEAD5'
  mode: advanced-chat
  name: 综合查询小助手
  use_icon_as_answer_icon: false
dependencies:
- current_identifier: null
  type: marketplace
  value:
    marketplace_plugin_unique_identifier: langgenius/volcengine_maas:0.0.20@aff2eaf766b1774519c3ca0e77de0b28c87b71cce6390b22a103518e8a5e4ae7
- current_identifier: null
  type: marketplace
  value:
    marketplace_plugin_unique_identifier: langgenius/tongyi:0.0.27@4bb3f3eb6149b01f92aa6038a6bb074cc4224b8c015f54c888e5c5a30fc1ab50
kind: app
version: 0.3.0
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      allowed_file_extensions:
      - .JPG
      - .JPEG
      - .PNG
      - .GIF
      - .WEBP
      - .SVG
      allowed_file_types:
      - image
      allowed_file_upload_methods:
      - local_file
      - remote_url
      enabled: false
      fileUploadConfig:
        audio_file_size_limit: 50
        batch_count_limit: 5
        file_size_limit: 15
        image_file_size_limit: 10
        video_file_size_limit: 100
        workflow_file_upload_limit: 10
      image:
        enabled: false
        number_limits: 3
        transfer_methods:
        - local_file
        - remote_url
      number_limits: 3
    opening_statement: ''
    retriever_resource:
      enabled: true
    sensitive_word_avoidance:
      enabled: false
    speech_to_text:
      enabled: false
    suggested_questions: []
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
      language: ''
      voice: ''
  graph:
    edges:
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: start
        targetType: question-classifier
      id: 1750858028852-source-1750858074515-target
      source: '1750858028852'
      sourceHandle: source
      target: '1750858074515'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: question-classifier
        targetType: agent
      id: 1750858074515-1-1750858234288-target
      source: '1750858074515'
      sourceHandle: '1'
      target: '1750858234288'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: question-classifier
        targetType: agent
      id: 1750858074515-2-1750858573561-target
      source: '1750858074515'
      sourceHandle: '2'
      target: '1750858573561'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: question-classifier
        targetType: llm
      id: 1750858074515-1750858196010-1750858661151-target
      source: '1750858074515'
      sourceHandle: '1750858196010'
      target: '1750858661151'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: agent
        targetType: answer
      id: 1750858234288-source-1750859081564-target
      source: '1750858234288'
      sourceHandle: source
      target: '1750859081564'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: agent
        targetType: answer
      id: 1750858573561-source-1750859083563-target
      source: '1750858573561'
      sourceHandle: source
      target: '1750859083563'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: answer
      id: 1750858661151-source-1750859086763-target
      source: '1750858661151'
      sourceHandle: source
      target: '1750859086763'
      targetHandle: target
      type: custom
      zIndex: 0
    nodes:
    - data:
        desc: ''
        selected: false
        title: 开始
        type: start
        variables: []
      height: 53
      id: '1750858028852'
      position:
        x: 80
        y: 282
      positionAbsolute:
        x: 80
        y: 282
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        classes:
        - id: '1'
          name: 与天气相关的问题
        - id: '2'
          name: 与新闻相关的问题
        - id: '1750858196010'
          name: 其它问题
        desc: ''
        instructions: ''
        model:
          completion_params:
            enable_search: false
            enable_thinking: false
            temperature: 0.3
          mode: chat
          name: qwen-turbo-latest
          provider: langgenius/tongyi/tongyi
        query_variable_selector:
        - '1750858028852'
        - sys.query
        selected: true
        title: 问题分类器
        topics: []
        type: question-classifier
        vision:
          enabled: false
      height: 209
      id: '1750858074515'
      position:
        x: 384
        y: 282
      positionAbsolute:
        x: 384
        y: 282
      selected: true
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        agent_parameters:
          instruction:
            type: constant
            value: 你是一个天气播报员,擅长使用轻松愉快的方式为用户播报天气信息,而且对天气情况有自己独特的见解,并能够根据天气情况为用户提供穿衣、出行等方面的建议。注意:只能回答与天气相关的内容。
          model:
            type: constant
            value:
              completion_params:
                enable_search: false
                enable_thinking: false
                temperature: 0.8
              mode: chat
              model: qwen-plus-latest
              model_type: llm
              provider: langgenius/tongyi/tongyi
              type: model-selector
          query:
            type: constant
            value: '{{#sys.query#}}'
          tools:
            type: constant
            value:
            - enabled: true
              extra:
                description: 天气查询是一个用于获取实时天气数据和预报信息的服务接口。该API提供国内范围内的天气状况、预报和相关气象数据。
              parameters: {}
              provider_name: baobaobao/weather/weather
              schemas:
              - auto_generate: null
                default: beijing
                form: form
                human_description:
                  en_US: used for searching city weather
                  ja_JP: used for searching city weather
                  pt_BR: used for searching city weather
                  zh_Hans: 输入要查询的城市拼音, 如beijing
                label:
                  en_US: Query string
                  ja_JP: Query string
                  pt_BR: Query string
                  zh_Hans: 城市拼音
                llm_description: ''
                max: null
                min: null
                name: city
                options: []
                placeholder: null
                precision: null
                required: true
                scope: null
                template: null
                type: string
              settings:
                city:
                  value: ''
              tool_description: 天气查询是一个用于获取实时天气数据和预报信息的服务接口。该API提供国内范围内的天气状况、预报和相关气象数据。
              tool_label: 天气查询
              tool_name: weather
              type: builtin
        agent_strategy_label: FunctionCalling
        agent_strategy_name: function_calling
        agent_strategy_provider_name: langgenius/agent/agent
        desc: ''
        memory:
          query_prompt_template: '{{#sys.query#}}'
          window:
            enabled: true
            size: 10
        output_schema: null
        plugin_unique_identifier: langgenius/agent:0.0.18@653bd665354a6e9412dad9c6031022a3cb38dd81fb0f90a408c03b023bd13141
        selected: false
        title: 天气Agent
        type: agent
      height: 197
      id: '1750858234288'
      position:
        x: 706
        y: 143.00000000000006
      positionAbsolute:
        x: 706
        y: 143.00000000000006
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        agent_parameters:
          instruction:
            type: constant
            value: 你是一位新闻播报员,可以为用户查询最新新闻,并回复新闻内容,注意:只能回答与新闻相关的内容。
          model:
            type: constant
            value:
              completion_params:
                enable_search: false
                enable_thinking: false
                temperature: 1
              mode: chat
              model: qwen-plus-latest
              model_type: llm
              provider: langgenius/tongyi/tongyi
              type: model-selector
          query:
            type: constant
            value: '{{#sys.query#}}'
          tools:
            type: constant
            value:
            - enabled: true
              extra:
                description: 获取新闻资讯与摘要分析
              parameters:
                query:
                  auto: 1
                  value: null
              provider_name: c14f0485-bb03-4626-b2c2-9c89aa99ab7c
              schemas:
              - auto_generate: null
                default: null
                form: llm
                human_description:
                  en_US: 要查询的新闻内容
                  ja_JP: 要查询的新闻内容
                  pt_BR: 要查询的新闻内容
                  zh_Hans: 要查询的新闻内容
                label:
                  en_US: '搜索内容 '
                  ja_JP: '搜索内容 '
                  pt_BR: '搜索内容 '
                  zh_Hans: '搜索内容 '
                llm_description: 要查询的新闻内容
                max: null
                min: null
                name: query
                options: []
                placeholder:
                  en_US: ''
                  ja_JP: ''
                  pt_BR: ''
                  zh_Hans: ''
                precision: null
                required: true
                scope: null
                template: null
                type: string
              settings: {}
              tool_description: 获取新闻资讯与摘要分析
              tool_label: 新闻分析助手
              tool_name: getNewsSummary
              type: workflow
        agent_strategy_label: FunctionCalling
        agent_strategy_name: function_calling
        agent_strategy_provider_name: langgenius/agent/agent
        desc: ''
        memory:
          query_prompt_template: '{{#sys.query#}}'
          window:
            enabled: true
            size: 10
        output_schema: null
        plugin_unique_identifier: langgenius/agent:0.0.18@653bd665354a6e9412dad9c6031022a3cb38dd81fb0f90a408c03b023bd13141
        selected: false
        title: 新闻Agent
        type: agent
      height: 197
      id: '1750858573561'
      position:
        x: 706
        y: 370
      positionAbsolute:
        x: 706
        y: 370
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: ''
        memory:
          query_prompt_template: '{{#sys.query#}}'
          role_prefix:
            assistant: ''
            user: ''
          window:
            enabled: false
            size: 50
        model:
          completion_params:
            temperature: 1
            thinking: disabled
          mode: chat
          name: doubao-1.6
          provider: langgenius/volcengine_maas/volcengine_maas
        prompt_template:
        - id: e3ac037d-310f-47c1-9a39-eafa00be40b9
          role: system
          text: 你是一位乐于助人的智能助理,可以提供天气和新闻信息,当然也可以回答用户的其它问题,你性格友善,非常礼貌,且善解人意,你的名字叫小唆。
        selected: false
        title: 小唆
        type: llm
        variables: []
        vision:
          enabled: false
      height: 89
      id: '1750858661151'
      position:
        x: 706
        y: 606
      positionAbsolute:
        x: 706
        y: 606
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        answer: '{{#1750858234288.text#}}'
        desc: ''
        selected: false
        title: 直接回复
        type: answer
        variables: []
      height: 105
      id: '1750859081564'
      position:
        x: 1010
        y: 143.00000000000006
      positionAbsolute:
        x: 1010
        y: 143.00000000000006
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        answer: '{{#1750858573561.text#}}'
        desc: ''
        selected: false
        title: 直接回复 2
        type: answer
        variables: []
      height: 105
      id: '1750859083563'
      position:
        x: 1010
        y: 370
      positionAbsolute:
        x: 1010
        y: 370
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        answer: '{{#1750858661151.text#}}'
        desc: ''
        selected: false
        title: 直接回复 3
        type: answer
        variables: []
      height: 105
      id: '1750859086763'
      position:
        x: 1010
        y: 606
      positionAbsolute:
        x: 1010
        y: 606
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    viewport:
      x: -300.5555264939251
      y: -21.963331076956024
      zoom: 1.0000000000000007
  • 对话流的适用场景:对话流适用于智能客服、AI助教、销售与导购助手、新用户引导、交互式信息获取工具等多种需要与人实时聊天的场景。