【AI Agent系列】【阿里AgentScope框架】2. Pipeline模块入门:使用Pipeline模块实现最简单的多智能体交互

简介: 【AI Agent系列】【阿里AgentScope框架】2. Pipeline模块入门:使用Pipeline模块实现最简单的多智能体交互
  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:


上篇文章(【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程)我们深入学习了AgentScope框架中的agent模块,并在最开始的时候创建了两个智能体实例,并运行了智能体实例得到了结果。

今天我们在之前代码的基础上,稍微修改一下,引入AgentScope框架的Pipeline模块,实现一个最简单的多智能体交互流程,以此来入门AgentScope中的Pipeline模块。

0. 之前的代码

代码详解请看我之前的文章:【AI Agent系列】【阿里AgentScope框架】0. 快速上手:AgentScope框架简介与你的第一个AgentScope程序

import agentscope
import os
openai_api_key = os.getenv('OPENAI_API_KEY')
# 一次性初始化多个模型配置
openai_cfg_dict = {
    "config_name": "openai_cfg", # A unique name for the model config.
    "model_type": "openai",         # Choose from "openai", "openai_dall_e", or "openai_embedding".
    "model_name": "gpt-3.5-turbo",   # The model identifier used in the OpenAI API, such as "gpt-3.5-turbo", "gpt-4", or "text-embedding-ada-002".
    "api_key": openai_api_key,       # Your OpenAI API key. If unset, the environment variable OPENAI_API_KEY is used.
}
agentscope.init(model_configs=[openai_cfg_dict])
from agentscope.agents import DialogAgent, UserAgent
# 创建一个对话智能体和一个用户智能体
dialogAgent = DialogAgent(name="assistant", model_config_name="openai_cfg", sys_prompt="You are a helpful ai assistant")
userAgent = UserAgent()
x = None
x = dialogAgent(x)
print("diaglogAgent: \n", x)
x = userAgent(x)
print("userAgent: \n", x)

这个代码的最后:

x = None
x = dialogAgent(x)
print("diaglogAgent: \n", x)
x = userAgent(x)
print("userAgent: \n", x)

我们简单的使用了一下这两个智能体实例,这其中也让这两个智能体之间有了一点交互:dialogAgent 的回复传给了 userAgent。但是 userAgent 并没有给 dialogAgent 发送消息,

1. 加入智能体之间的交互

为了使以上两个智能体间产生交互,能相互对话,我们可以这样改:

x = None
while True:
    x = dialogAgent(x)
    x = userAgent(x)
    # 如果用户输入"exit",则终止对话
    if x.content == "exit":
        print("Exiting the conversation.")
        break

加入一个while循环,让dialogAgent的结果给userAgentuserAgent的结果给dialogAgent

那根据上篇文章中我们看的智能体的实现,可以知道这个x传递给了智能体,就相当于加到了这个智能体的memory中:这样就有对方和自己的信息在上下文中了。

if self.memory:
    self.memory.add(x)

2. 使用Pipeline模块实现智能体间的交互

2.1 Pipeline是什么? - 个人简单理解

AgentScope为了方便大家对智能体间交互逻辑的编排,特地封装了 Pipeline 模块,其中包含了一系列地 Pipeline ,就像编程语言中的控制结构:顺序结构、条件分支、循环结构等。利用这些 Pipeline ,大家可以很方便地实现多智能体间的交互逻辑控制。

2.2 上手使用 Pipeline

引入 Pipeline ,改写以上代码为:

from agentscope.pipelines.functional import sequentialpipeline
# 在Pipeline结构中执行对话循环
x = None
while x is None or x.content != "exit":
  x = sequentialpipeline([dialogAgent, userAgent], x)

这里利用了 sequentialpipeline,这个Pipeline是让智能体间的信息流顺序地传递。利用 sequentialpipeline 就轻松实现了两个智能体间的信息交互。

2.3 sequentialpipeline 源码阅读

sequentialpipeline 实现源码如下:

def sequentialpipeline(
    operators: Sequence[Operator],
    x: Optional[dict] = None,
) -> dict:
    """Functional version of SequentialPipeline.
    Args:
        operators (`Sequence[Operator]`):
            Participating operators.
        x (`Optional[dict]`, defaults to `None`):
            The input dictionary.
    Returns:
        `dict`: the output dictionary.
    """
    if len(operators) == 0:
        raise ValueError("No operators provided.")
    msg = operators[0](x)
    for operator in operators[1:]:
        msg = operator(msg)
    return msg

接收两个参数:

  • operators:按顺序排列好的 agent 列表
  • x:给智能体的输入信息,可选,没有输入,那多个智能体间就是自己玩儿自己的了

然后里面的实现逻辑,其实就跟第1小节中下面的传递过程一样了:

x = dialogAgent(x)
x = userAgent(x)

3. 最终代码和实现效果

3.1 完整代码

import agentscope
# import os
# openai_api_key = os.getenv('OPENAI_API_KEY')
# 一次性初始化多个模型配置
openai_cfg_dict = {
    "config_name": "openai_cfg", # A unique name for the model config.
    "model_type": "openai",         # Choose from "openai", "openai_dall_e", or "openai_embedding".
    "model_name": "gpt-3.5-turbo",   # The model identifier used in the OpenAI API, such as "gpt-3.5-turbo", "gpt-4", or "text-embedding-ada-002".
    # "api_key": openai_api_key,       # Your OpenAI API key. If unset, the environment variable OPENAI_API_KEY is used.
}
agentscope.init(model_configs=[openai_cfg_dict])
from agentscope.agents import DialogAgent, UserAgent
# 创建一个对话智能体和一个用户智能体
dialogAgent = DialogAgent(name="assistant", model_config_name="openai_cfg", sys_prompt="You are a helpful ai assistant")
userAgent = UserAgent()
from agentscope.pipelines.functional import sequentialpipeline
# 在Pipeline结构中执行对话循环
x = None
while x is None or x.content != "exit":
  x = sequentialpipeline([dialogAgent, userAgent], x)

3.2 运行效果

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

目录
打赏
0
0
0
0
20
分享
相关文章
领导给我3天时间汇总所有AI模块词条,结合DeepSeek,20分钟就搞定了。
本文分享了一次利用AI工具提升工作效率的实际案例。作者接到任务,需在3天内梳理公司AI模块的所有词条并以增量形式提供给项目组。为高效完成任务,作者借助DeepSeek编写了三个Node.js脚本:第一个脚本扫描所有/ai目录下的文件,提取符合“zxy.xxx”格式的词条;第二个脚本对比目标词条库与已提取的词条,生成过滤后的副本;第三个脚本将最终结果输出为Excel文档,满足领导需求。整个过程从十几分钟到二十分钟不等,大幅缩短了原本需要数天的工作量。此案例表明,在重复性工作中合理运用AI工具可显著提高效率。
207 12
90.9K star!一键部署AI聊天界面,这个开源项目让大模型交互更简单!
"像使用微信一样操作大模型!Open WebUI 让AI对话从未如此简单"
146 0
RuoYi AI:1人搞定AI中台!开源全栈式AI开发平台,快速集成大模型+RAG+支付等模块
RuoYi AI 是一个全栈式 AI 开发平台,支持本地 RAG 方案,集成多种大语言模型和多媒体功能,适合企业和个人开发者快速搭建个性化 AI 应用。
1286 77
RuoYi AI:1人搞定AI中台!开源全栈式AI开发平台,快速集成大模型+RAG+支付等模块
程序员圈爆火,狂揽2.4K星!1秒内AI语音双向对话,支持个性化发音和多端适配,颠覆你的交互想象!
RealtimeVoiceChat是一款基于现代Web技术的开源实时语音对话工具,无需下载任何软件,打开浏览器即可与AI实时语音互动。其核心亮点包括零安装体验、超低延迟、高度可定制化以及跨平台兼容等特性。通过Web Speech API实现毫秒级语音合成,支持多参数精细控制(如音色、语速、音调等),并提供隐私安全保障。项目适用于无障碍辅助、语言学习、智能客服及内容创作等多个场景。开发者可快速集成GPT/Claude等大模型,扩展为企业级应用。此外,随着Web Speech API普及率提升,该项目有望推动语音交互在教育、智能家居等领域的发展
111 4
AutoGLM沉思:智谱AI推出首个能"边想边干"的自主智能体!深度研究+多模态交互,颠覆传统AI工作模式
AutoGLM沉思是由智谱AI推出的一款开创性AI智能体,它突破性地将深度研究能力与实际操作能力融为一体,实现了AI从被动响应到主动执行的跨越式发展。
266 16
AutoGLM沉思:智谱AI推出首个能"边想边干"的自主智能体!深度研究+多模态交互,颠覆传统AI工作模式
OpenRouter 推出百万 token 上下文 AI 模型!Quasar Alpha:提供完全免费的 API 服务,同时支持联网搜索和多模态交互
Quasar Alpha 是 OpenRouter 推出的预发布 AI 模型,具备百万级 token 上下文处理能力,在代码生成、指令遵循和低延迟响应方面表现卓越,同时支持联网搜索和多模态交互。
251 1
OpenRouter 推出百万 token 上下文 AI 模型!Quasar Alpha:提供完全免费的 API 服务,同时支持联网搜索和多模态交互
AI智能体内战终结者!A2A:谷歌开源的首个标准智能体交互协议,让AI用同一种“语言”交流
A2A是谷歌推出的首个标准化智能体交互协议,通过统一通信规范实现不同框架AI智能体的安全协作,支持多模态交互和长时任务管理,已有50多家企业加入生态。
251 0
AI智能体内战终结者!A2A:谷歌开源的首个标准智能体交互协议,让AI用同一种“语言”交流
Mahilo:多智能体实时协作框架开源!人类与AI无缝交互,复杂任务一键协同
Mahilo 是一个灵活的多智能体框架,支持创建与人类互动的多智能体系统,适用于从客户服务到紧急响应等多种场景。
248 2
Mahilo:多智能体实时协作框架开源!人类与AI无缝交互,复杂任务一键协同
Collaborative Gym:斯坦福人机协作框架开源!异步交互+三方感知,让你的AI学会主动补位
介绍Collaborative Gym,一个专注于人机协作的框架,支持异步交互和多种任务环境。
147 14
Collaborative Gym:斯坦福人机协作框架开源!异步交互+三方感知,让你的AI学会主动补位
Data Formulator:微软开源的数据可视化 AI 工具,通过自然语言交互快速创建复杂的数据图表
Data Formulator 是微软研究院推出的开源 AI 数据可视化工具,结合图形化界面和自然语言输入,帮助用户快速创建复杂的可视化图表。
551 10
Data Formulator:微软开源的数据可视化 AI 工具,通过自然语言交互快速创建复杂的数据图表

热门文章

最新文章

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问