DeepTalk来了!用 Dify 工作流+Agent 模拟圆桌讨论,内容质量提升300%!

dify实验室

基于LLMOps平台-Dify的一站式学习平台。包含不限于:Dify工作流案例、DSL文件分享、模型接入、Dify交流讨论等各类资源分享。

本文受圆桌讨论启发,将详细介绍如何利用 Dify 平台,如何围绕一个核心议题,深入、多维地展开探讨,激发不同视角的碰撞,从而生成高质量文章。最终编排一个名为 "DeepTalk" 的高级聊天应用工作流,以模拟一场围绕用户指定议题的进行圆桌讨论,进而输出高质量的内容。工作流预览如下:

图片

                                                     (本文DSL文件见文末)

一、 工作流目标与设计思路

本工作流的核心目标是:当用户提出一个讨论议题时,能够自动完成以下任务:

  • 生成议题分支:

     基于主议题,智能生成三个既相互关联又各有侧重、能激发多元观点的子话题。

  • 设定虚拟嘉宾:

     自动设计一组(本例中为四位)具有不同身份背景、专业视角和发言风格的虚拟专家。

  • 模拟多轮讨论:

     组织这些虚拟专家,分别围绕三个子话题进行模拟发言,并允许他们利用外部工具(如搜索)来丰富论据。

  • 汇总形成结论:

     将所有讨论内容进行整合,最终形成一个条理清晰、涵盖多方观点的总结性回复。

整体设计思路是模仿真实圆桌讨论的流程:先确定议程(子话题),再邀请嘉宾,然后分环节讨论,最后进行总结。

二、 工作流编排步骤详解

以下是 "DeepTalk" 工作流的具体编排步骤:(本文DSL文件见文末)

1. 开始节点 (Start):

作为工作流的入口,接收用户输入的原始议题(#sys.query#)。这是整个讨论的基础。

2. 生成子话题 (LLM 节点):

  • 输入:

     接收开始节点传递过来的用户议题。

  • 模型:

     使用 DeepSeek-V3 大型语言模型(通过兼容 OpenAI API 的插件)。

  • 提示词 (Prompt):

     指示模型扮演“议题策划人”的角色,围绕主议题设计三个关联且有侧重的子话题,并要求以 JSON 数组格式输出(例如 ["子话题1", "子话题2", "子话题3"])。

  • 输出:

     生成包含三个子话题的 JSON 字符串。

    图片

3. 解析子话题 (三个 Code 节点):

由于后续讨论需要单独引用每个子话题,我们使用三个独立的 Python 代码节点来解析上一步生成的 JSON 数组。

  • 取第一个子话题:

     输入为“生成子话题”节点的输出。代码逻辑是解析 JSON 字符串,并提取数组中的第一个元素(第一个子话题)。代码还考虑了 JSON 可能被错误地转义为字符串内字符串的情况,增加了处理鲁棒性。输出该子话题字符串。

  • 取第二个子话题 :

     逻辑同上,但提取 JSON 数组中的第二个元素。

  • 取第三个子话题:

     逻辑同上,但提取 JSON 数组中的第三个元素。

  • 作用:

     将集中的子话题列表分散为三个独立的、可供后续节点引用的字符串变量。

图片

4. 生成圆桌讨论专家 :

  • 输入:

     同样接收开始节点的用户议题。

  • 模型:

     使用 DeepSeek-V3 大型语言模型。

  • 提示词 (Prompt):

     指示模型扮演“圆桌讨论策划专家”,基于主议题设计四位虚拟嘉宾。明确要求每个嘉宾需包含 role_name (角色名), core_perspective (核心视角), expertise (专长), speaking_style (发言风格), opening_task (首轮发言任务) 这五个关键信息,并严格以包含多个嘉宾对象的 JSON 数组格式输出。

  • 输出:

     生成包含四位虚拟专家详细信息的 JSON 字符串。

    图片

5. 解析专家列表 :

  • 输入:

     “生成圆桌讨论专家”节点的输出。

  • 代码逻辑:

     解析包含专家信息的 JSON 字符串,确保其被正确解析为一个 Python 列表(List),其中每个元素是一个代表专家的字典(Dictionary)。同样处理了可能的二次解析问题。

  • 输出:

     一个包含所有专家资料的列表,供后续迭代节点使用。

图片

6. 模拟分话题讨论 (三个 Iteration 节点):

这是工作流的核心模拟部分,通过三个并行的迭代节点分别处理三个子话题的讨论。

  • 迭代器来源:

     三个迭代节点均以“解析专家列表”节点输出的专家列表作为迭代对象。这意味着每个子话题都会让所有四位专家轮流发言。

  • 话题1讨论 :
    • Agent 节点 :

       模拟一位专家发言。指令接收当前专家资料,查询结合第一个子话题和其他发言参考,使用搜索工具形成观点。

    • 变量赋值 :

       将发言文本赋值给会话变量 singleoutputs (用于暂存)。

    • 内部流程:
    • 迭代输出:

       收集所有 Agent 的发言文本数组。

  • 话题2讨论 :

     结构类似,但使用第二个子话题,结果存入singleoutputt

  • 话题3讨论 :

     结构类似,但使用第三个子话题,结果存入singleoutputf

    图片

7. 汇总整理输出 :

  • 输入:

     接收原始用户议题(#sys.query#)以及三轮讨论结果的会话变量(#conversation.singleoutputt##conversation.singleoutputs##conversation.singleoutputf#)。

  • 模型:

     使用 DeepSeek-R1 大型语言模型。

  • 提示词 (Prompt):

     指示模型扮演“文案整理机器人”,根据用户提问和三轮讨论的具体内容,进行详细且有条理的整理。

  • 输出:

     生成一段整合了所有讨论精华的最终文本。

图片

8. 直接回复 (Answer 节点):

将“汇总整理输出”节点生成的文本作为最终结果,回复给用户。

三、 关键技术点

  • 大型语言模型 (LLM):

     多次使用 DeepSeek 系列模型进行内容生成(子话题、专家角色、观点阐述、最终总结)。

  • 代码节点 (Code):

     利用 Python 代码处理 JSON 解析和数据提取,增强了工作流处理结构化数据的能力和鲁棒性。

  • Agent 节点:

     模拟具有独立思考和工具使用能力的参与者,使讨论更接近真实场景。

  • 迭代节点 (Iteration):

     高效地让多位专家对同一话题发表意见,实现了并发模拟。

  • 变量 (Variables):

     通过会话变量在不同阶段传递数据(如各轮讨论结果),是串联整个复杂流程的关键。

四、 如何使用与价值

用户只需在 "deeptalk" 应用的对话框中输入一个感兴趣的议题,工作流便会自动执行上述所有步骤,最终呈现出一份围绕该议题的多角度、结构化讨论总结。

这个工作流的价值在于:

  • 深度探索:

     能够自动从不同维度剖析一个议题。

  • 激发创意:

     模拟不同角色的观点碰撞,可能产生意想不到的火花。

  • 效率提升:

     自动化地完成了一场小型圆桌讨论的策划、执行与总结工作。

  • 辅助决策:

     为复杂问题的思考提供多元化的参考信息。

总结

通过 Dify 平台的可视化编排能力,结合大型语言模型、代码执行、Agent 和迭代等多种节点类型,我们成功构建了一个能够模拟圆桌讨论的复杂工作流。它不仅展示了 Dify 在构建智能应用方面的灵活性和强大功能,也为我们提供了一种探索和理解复杂议题的全新自动化工具。

📚 相关阅读推荐

想更深入地了解本文涉及的 Dify 功能和概念,推荐阅读以下文章:

相关学习资源

关注本公众号(dify实验室)即可获得:DSL编排案例文件、免费token资源、dify讨论社群

公众号主页回复 DSL 获取公众号DSL文件资源

公众号主页回复 入群 获取二维码,我拉你入群

公众号回复 tk  获取免费token资源

你有什么想法可以留言与我讨论。

希望你看完文章主动点赞、评论、转发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值