怎样建设网站流程,中劵资本集团股票交易网站建设中,上海公司网站建设电话,wordpress中有趣的插件《扣子开发AI Agent智能体应用#xff08;人工智能技术丛书#xff09;》(宋立桓#xff0c;王东健#xff0c;陈铭毅#xff0c;程东升)【摘要 书评 试读】- 京东图书
《扣子开发AI Agent智能体应用》案例重现 开发agent智能体的书籍-CSDN博客
工作流是指一系列相互关联…《扣子开发AI Agent智能体应用人工智能技术丛书》(宋立桓王东健陈铭毅程东升)【摘要 书评 试读】- 京东图书
《扣子开发AI Agent智能体应用》案例重现 开发agent智能体的书籍-CSDN博客
工作流是指一系列相互关联的步骤或任务用于完成特定的业务过程或项目。它定义了任务的顺序、执行者以及相关的条件和规则以确保流程的顺利进行和最终目标的达成。本章将介绍扣子工作流的分类、解决的问题、逻辑结构。
工作流及其分类
工作流在日常工作中很常见。例如财务报销要经过填写报销单、提交发票、财务审核、分管领导审核等步骤就是典型的工作流软件开发领域的CI/CD流水线也是一种工作流。扣子的工作流与传统工作流类似但也有不同之处。传统工作流既可以手动执行也可以自动执行或者二者结合。扣子的工作流是一种自动执行多个相关步骤的可复用流程一个Bot可以使用多个工作流即Bot可以根据用户的行为选择并执行不同的工作流。
1. 扣子工作流
扣子工作流是一种通过可视化方式组合插件、大语言模型、代码块等功能节点用于实现复杂业务逻辑的流程编排。它允许用户通过拖放的方式将不同的功能节点连接起来形成一个完成特定任务的工作流程使得解决问题的逻辑更加清晰输出更加稳定和可靠。讲到这里自然会产生一个疑问为什么大模型不直接执行完成相关的任务告诉我们结果就行为什么还要引入一个工作流
原因很简单虽然现在的大模型比较智能但是还没有达到绝顶智能的程度。大模型或者说生成式AI是基于概率来生成内容的这就意味着它并不是每次都能给出符合要求的结果特别是对返回结果要求比较精确的场景。
工作流的核心在于将大模型的能力与特定的业务逻辑相结合通过系统化、流程化的方法来实现高效、可扩展的AI应用开发。工作流也是对当前大模型能力不足的一种补偿机制在大模型智能化程度还不够高的时候通过人为编排的工作流注入人的智能让智能体具有更高的可用性和可靠性从而提升用户体验。
2. 扣子工作流的分类
扣子提供以下两种类型的工作流
1工作流Workflow用于处理功能类的请求可通过顺序执行一系列节点实现某个功能。适合数据的自动化处理场景例如生成行业调研报告、生成一张海报、制作绘本等。
2对话流Chatflow是基于对话场景的特殊工作流更适合处理对话类请求。对话流通过对话的方式与用户交互并完成业务逻辑。
相较于工作流而言对话流更适合处理对话场景下的交互逻辑。每个对话流都绑定了一个会话运行时可以从此会话中读取历史消息同时将本次运行对话流产生的消息记录在这个会话中相当于一个拥有了记忆的工作流。
你如果需要搭建一个智能体智能体本身支持上下文和会话能力那么可以随意选择工作流或对话流。
如果你需要搭建一个对话式的AI应用例如AI助手、智能体客服等基于对话方式交互的AI应用推荐你使用对话流。对话流中的大模型可以读取会话上下文、管理会话还可以搭建对话式的用户界面并发布到各种社交通信软件中。
如果你需要搭建一个工具类的AI应用用来批量处理数据、实现任务流程的自动化可以选择工作流实现。
工作流能解决什么问题
既然我们已经对扣子的工作流有所了解那么工作流能解决什么问题或者说在什么情况下要使用工作流根据作者自己的理解给出一些适用场景供读者参考。
1. 使用提示词无法达到预期效果的场景
在Coze平台搭建Bot智能体时一般先从编写提示词开始。有时我们按照提示词工程技巧编写了清晰明确的结构化指令经过反复迭代优化仍然达不到预期效果那么可以考虑采用工作流。例如在长文本写作如调研报告中先要收集相关资料生成写作大纲划分各个章节再对各个章节进一步收集资料、逐步生成内容最后进行总结。仅仅通过提示词大模型可能难以产生一篇结构合理、内容翔实的文章这时可以通过工作流来实现。
2. 需要多次调用插件或外部工具的场景
有些大模型具有Function Call能力可以调用外部工具。但如果需要调用多个外部工具且它们具有严格依赖关系时大模型可能不是每次都能很好地完成目标。例如我们需要根据一个URL获取网页内容、总结要点、生成思维导图。其中“网页内容抓取”和“生成思维导图”两个步骤都需要调用外部工具插件中间还需要大模型来总结要点。在这种情况下通过工作流可以实现高效的流程管理。
3. 需要使用代码加工数据或生成响应的场景
我们利用大模型虽然能够产出还不错的内容但是很难对数据进行精确处理。在这种情况下可以使用工作流中的代码节点来解决精确处理的问题。在Coze官方文档中介绍了一个使用工作流和代码节点生成随机数的例子读者可以查阅一下。
4. 需要根据某个条件执行不同分支来处理的场景
例如开发一个答题Bot根据用户选择的不同选项来回复不同的内容。
5. 需要在一次用户请求中多次输出消息的场景
大模型的工作方式是一问一答即根据输入产生输出。在一些比较复杂的应用中可能需要对一次用户的问题回复多条消息或者一次完整输出的耗时较长为了提高用户体验需要分为多次输出。在这种场景中可以在工作流中使用消息节点来实现多次输出。
扣子工作流的逻辑结构
简单来说扣子工作流是一个有唯一输入和唯一输出的有向无环图。一个工作流是由一系列首尾相连的功能节点构成的如图4-1所示。工作流的核心在于节点节点是一个具有特定功能的独立模块代表一个独立的步骤或逻辑。这些节点负责处理数据、执行任务和运行算法并且它们都具备输入和输出。每个工作流都默认包含一个开始节点和一个结束节点。 图4-1 扣子工作流的逻辑结构
除了开始节点和结束节点是每个工作流中固定且唯一的节点之外其他节点都可以任意添加。最简单的工作流可以只有一个开始节点和一个结束节点。开始节点是工作流的起始节点定义启动工作流所需的输入参数。开始节点默认有一个输入参数 input表示用户在本轮对话中输入的原始内容。结束节点是工作流的最终节点用于返回工作流运行后的结果。结束节点支持两种返回方式返回变量和返回文本。
通过引用节点的输出你可以将节点连接在一起形成一个无缝的操作链。例如你可以在代码节点的输入中引用大模型节点的输出这样代码节点就可以使用大模型节点的输出。在工作流编辑页面中你可以看到这两个节点是连接在一起的。创建工作流就像搭积木不同的积木节点可以自由组合搭建成不同的形状功能。将一个任务分解为多个子任务每个子任务对应一个节点通过数据流将这些节点链接起来便形成了工作流。
比如下图就是一个简单的工作流包括3个节点开始节点、大模型节点和结束节点。