news 2026/5/1 8:34:42

<span class=“js_title_inner“>并行工作流(Parallelization Workflow)【智能体开发模式】</span>

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
<span class=“js_title_inner“>并行工作流(Parallelization Workflow)【智能体开发模式】</span>

并行工作流模式并行运行多个子任务来提升性能。

根据子任务是否返回结构相同的数据,并行工作流可以分成两类。

子任务返回不同类型的数据

此类并行工作流把一个大的任务分解成若干个小的任务。把这些子任务的结果组装起来,得到了智能体的最终结果。

一个示例是编写报告。智能体创建不同的子任务。每个子任务负责收集不同领域的信息,最后把子任务的结果组装起来,得到最终的报告。

子任务返回相同类型的数据

此类并行工作流使用多个子任务来进行投票或确认。这些子任务对于同样的任务输入,给出不同的结果。智能体使用这些结果来确定最终的结果。

对于在评估者-优化者模式中介绍的代码生成的例子,智能体可以并行执行 3 个子任务来使用 3 个不同的模型评估代码。每个子任务返回评估是否通过的结果。智能体根据子任务结果中的多数值来判断评估是否通过。

这个模式包含了一个主任务和若干个子任务。主任务和子任务都使用任务执行模式来实现。

下图给出了并行工作流模式的基本流程。

子任务可以返回不同类型的结果,或是相同类型的结果。

不同类型的结果

如果子任务返回不同类型的结果,它们通常需要不同类型的输入。在这种情况下,在执行子任务之前,需要把原始的任务输入转换成子任务需要的类型。

相同类型的结果

如果所有的子任务返回相同类型的结果,它们通常使用相同类型的输入。原始的任务输入可以直接传递给子任务。

当所有子任务都执行完成之后,有两种策略来组装子任务的结果。

  • 第一种组装策略不使用大模型。把所有子任务的结果使用代码逻辑进行组装。

  • 第二种组装策略使用大模型。子任务执行之后的结果被发送给大模型,来进行进一步的生成。

当任务并行执行时,很容易达到 AI 服务的请求限制。可以限制同时并行执行的任务数量,以及一段时间内最多执行的任务数量。

作为示例的智能体编写关于算法的文章。每篇文章包含了使用不同编程语言编写的代码示例。该智能体执行并行任务来生成代码示例,再使用这些代码示例来编写文章。

首先从该智能体的输入和输出开始。该智能体的输入如下所示。其中包含了两个字段:

  • algorithm 表示算法的名称。

  • languages 表示编程语言的名称列表。

public record AlgorithmArticleGenerationRequest( String algorithm, List<String> languages) { }

输出中只包含 article 字段,表示生成的文章。

public record AlgorithmArticleGenerationResponse( String article) { }

这个智能体使用并行的子任务生成代码示例,每个任务负责生成一种编程语言的代码示例。下面给出了生成代码示例的提示模板。language 表示编程语言的名称,description 表示代码生成的要求。language 的每个值,对应于智能体输入中的 languages 列表中的每个元素。

编写 {language} 代码来满足下面的需求。 {description}

对于子任务的执行结果,使用大模型来进行组装,生成最终的文章。下面的代码是生成文章的提示模板。algorithm 表示算法的名称。sample_code 表示生成的代码示例,其值来自并行运行的子任务的结果。

目标: 编写一篇关于 {algorithm} 的文章 需求:- 开篇提供一个简短的介绍。- 只包含下面列出来的代码示例。- 使用 Markdown 格式输出文章。 {sample_code}

下面是智能体的输入,算法是“快速排序”,编程语言是 Java、Python 和 JavaScript。

{ "algorithm": "quick sort", "languages": [ "java", "python", "javascript" ]}

下图是该智能体执行时的 trace。最外层的 agent.execute 代表整个智能体的执行。内部的 3 个 agent.execute 对应于生成 3 种编程语言代码示例的子任务。可以看到 3 个子任务的起始时间是一样的,但是结束时间并不相同。等全部的子任务完成之后,会发送一个提示给大模型,完成最终文章的生成。在图上是最下面的一条绿色方块。

下图是使用 Swagger UI 测试的结果。输出是 Markdown 格式的文章。

以上是关于并行工作流这个智能体开发模式的介绍。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 13:38:37

<span class=“js_title_inner“>C#实现的SqlHelper类:简化SQL操作</span>

简介&#xff1a;在.NET框架下&#xff0c;SqlHelper类简化了C#与SQL Server数据库间的交互&#xff0c;通过封装常见操作如查询、存储过程等&#xff0c;提高了代码的可维护性和安全性。它通常由开发者自定义&#xff0c;位于System.Data.SqlClient命名空间中。本文详细介绍了…

作者头像 李华
网站建设 2026/4/24 10:36:23

<span class=“js_title_inner“>支配树算法原理及鸿蒙工具实践</span>

本文介绍了支配树&#xff08;Dominator Tree&#xff09;算法在鸿蒙系统 ArkTS 内存分析工具中的应用。为应对淘宝 App 鸿蒙版因内存溢出导致的 Crash 问题&#xff0c;作者构建了一套从客户端采集内存快照、服务端自动分析的工具链。文中对比了多种支配树构建算法&#xff08…

作者头像 李华
网站建设 2026/4/18 13:35:34

Cybersecurity AI (CAI) AI 时代的网络安全自动化框架

您好&#xff01;很高兴为您详细介绍 Cybersecurity AI (CAI) 这个项目。 根据您提供的资料&#xff0c;这是一个非常专业且前沿的网络安全开源项目。以下是对 CAI 的全面介绍和解读&#xff1a; Cybersecurity AI (CAI) 一、核心定位&#xff1a;AI 时代的网络安全自动化框…

作者头像 李华
网站建设 2026/5/1 1:26:21

【工具】Python解释器和PyCharm的安装与使用

一、Python 解释器的安装 windows系统下载链接&#xff0c;现在主流用 python3&#xff0c;小版本号随便选&#xff1a;Python Releases for Windows | Python.orghttps://www.python.org/downloads/windows/环境变量加上&#xff0c;选自定义换个安装路径&#xff1a; 安装成…

作者头像 李华