链载Ai

标题: 多智能体系统与大型语言模型的协同应用研究 [打印本页]

作者: 链载Ai    时间: 1 小时前
标题: 多智能体系统与大型语言模型的协同应用研究

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 12px;color: rgb(63, 63, 63);">端到端多智能体实现与LLMs

多智能体架构由多个自主智能体组成,它们协作以完成复杂任务。随着LLMs的最新进展,这种架构已获得显著的关注。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.1em;color: rgb(63, 63, 63);">这些智能体能够独立做出决策并执行行动。智能体由大型语言模型(LLMs)驱动。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.1em;color: rgb(63, 63, 63);">多智能体架构的工作方式是,你不必指定每一个步骤,我们可以给它们一个目标,它们可以自行确定行动顺序。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.1em;color: rgb(63, 63, 63);">这些架构被广泛应用于机器人技术、虚拟助手、协作决策和多模态处理等不同领域,这些领域的任务需要动态交互和高级推理。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0.3em 1em;color: rgb(255, 255, 255);background: rgb(15, 76, 129);border-radius: 8px;box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px;">1. 文章概述

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.1em;color: rgb(63, 63, 63);">本文探讨了多智能体架构与大型语言模型(LLMs)的结合,强调其应对需要协调、可扩展性和高级智能的复杂挑战的能力。

    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(63, 63, 63);" class="list-paddingleft-1">
  1. ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.5em 8px;color: rgb(63, 63, 63);">
    1. 它概述了配备LLMs的自主智能体如何通过利用其理解和生成类人文本的能力有效协作。
  2. ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.5em 8px;color: rgb(63, 63, 63);">
    2. 文章还提供了一个使用LLMs的多智能体应用的完整实现,提供了这一创新框架的实用指南。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.1em;color: rgb(63, 63, 63);">与大型语言模型(LLMs)结合时,多智能体架构成为解决需要协调、可扩展性和智能的问题的强大范式。

配备LLMs的多智能体架构涉及一个由多个自主智能体组成的系统,每个智能体都配备有大型语言模型,通过利用其理解和生成类人文本的能力协作解决复杂问题。

2. 多智能体架构概述与LLMs

让我们了解多智能体架构的关键方面:

带有LLM的多智能体架构由多个智能体组成,每个智能体独立运作,拥有自己的目标、决策能力和数据访问权限,同时在环境中扮演一个或多个角色。它们由LLM支持。

LLM的集成增强了系统处理自然语言输入、生成上下文相关输出和适应各种场景的能力,使多智能体系统更加高效和多功能。

代理

代理与外部系统或环境进行交互,实时收集输入并做出决策。

工具

关于多智能体架构设计的注意事项

有几个多智能体 LLM 框架可用:

1. Swarm by OpenAI

2. LangGraph Agents

3. Auto-GPT

3. 使用 LLM 的多智能体架构的端到端实现

本节旨在提供一个使用 LLM 的多智能体架构示例。我将使用 OpenAI 框架**swarm**[1],这是一个探索人体工程学、轻量级多智能体编排的教育框架。

我准备的示例虽然简单,但可以演示如何使用 LLM 构建多智能体架构。

使用 Swarm 的原因在于它专注于使智能体的协调和执行轻量化、高度可控且易于测试。

基本上,swarm 的工作方式是,当调用run()函数时,它执行以下步骤:

  1. 1. 获取当前智能体的完成
  2. 2. 执行工具调用并附加结果
  3. 3. 如有必要,切换智能体
  4. 4. 如有必要,更新上下文变量
  5. 5. 如果没有新的函数调用,返回

开始编码吧

第一步:创建虚拟环境并安装 Python 包

pip install git+https://github.com/openai/swarm.git
pip install openai==1.58.1
pip install yahoo_fin==0.8.9.1

第2步:创建一个 main.py 文件

importos

key ='ENTER API KEY'
os.environ['OPENAI_API_KEY'] = key

fromswarmimportSwarm, Agent
importfeedparser
fromyahoo_finimportnews


deftransfer_to_summariser_agent():
returnsummariser_agent


defyahoo_finance_tool():
try:
company_name = context_variables['name']
news_data = news.get_yf_rss(company_name)
news_titles =list(map(lambdan: n.title, news_data))
returnnews_titles
exceptExceptionase:
returnf"从 Yahoo Finance 获取新闻时出错:{e}"


defgoogle_extract_tool():
keyword = context_variables['name']
# 使用网络爬虫提取一般新闻
try:
keyword_encoded = keyword.replace(" ","+")
rss_url =f"https://news.google.com/rss/search?q={keyword_encoded}&hl=en-US&gl=US&ceid=US:en"

# 获取并解析 RSS 源
feed = feedparser.parse(rss_url)
returnlist(map(lambdaentry: entry.title, feed.entries))
exceptExceptionase:
returnf"获取一般新闻时出错:{e}"


company_news_extractor_agent = Agent(
name="company_news_extractor_agent",
description="""
调用 Yahoo Finance 工具,然后调用总结器
""",
functions=[yahoo_finance_tool, transfer_to_summariser_agent])

person_news_extractor_agent = Agent(
name="person news extractor agent",
description="""
调用 Google 工具,然后调用总结器
""",
functions=[google_extract_tool, transfer_to_summariser_agent])

summariser_agent = Agent(
name='NewsSummarizerAgent',
instructions="""您是一名经济学家。用三句话总结以下新闻。"""
)


defcoordinate(name,type):
context_variables['name'] = name
iftype=='company_news_agent_extractor'ortype=='company':
returncompany_news_extractor_agent
eliftype=='person_news_extractor_agent'ortype=='person':
returnperson_news_extractor_agent
raiseException(f'无法处理类型={type}')


context_variables = {}
coordinator_agent = Agent(
name="Coordinator Agent",
instructions=f"""您负责协调用户请求,并调用工具以转移到正确的意图。
您不需要了解具体内容,只需知道请求的主题。
如果用户请求与公司有关,请转移到 company_news_extractor_agent。
如果用户请求与个人有关,请转移到 person_news_extractor_agent
""",
functions=[coordinate],
context_variables=context_variables,
debug=True
)

## 主执行
if__name__ =="__main__":
# 初始化群体和代理
client = Swarm()

# 示例
user_query = [{"role":"user","content":"关于 AAPL 的最新动态是什么?"}]
summary = client.run(agent=coordinator_agent, messages=user_query)
print("\n最终摘要:")
print(summary.messages[3]['content'])

user_query = [{"role":"user","content":"关于特朗普的最新动态是什么?"}]
summary = client.run(agent=coordinator_agent, messages=user_query)
print("\n最终摘要:")
print(summary.messages[3]['content'])

该应用程序的工作方式如下:

  1. 1. 输入被传递给coordinator agent
  2. 2. 协调者代理使用 OpenAI API 检测查询是关于个人还是公司的
  3. 3. 如果是关于person,协调者代理将其传递给person news extractor agent,该代理使用 Google RSS 工具提取新闻。
  4. 4. 如果查询是关于company,则协调者代理将其传递给company news extractor agent,该代理使用 Yahoo finance 工具提取新闻。
  5. 5. 最后,新闻被传递给summariser agent,该代理通过 Open AI LLM 对新闻进行总结。

这是一个简单的示例,但演示了如何使用协调者、多个代理和工具,以及它们如何使用 LLM 来制定计划。像 Swarm 这样的方式非常适合涉及众多独立能力和复杂指令的场景,这些场景无法有效地封装在单个提示中。

摘要

本文概述了与大型语言模型(LLMs)集成的多智能体架构,强调了其在解决需要协调、可扩展性和智能的复杂问题中的潜力。

讨论了多智能体系统的概念,其中由LLMs驱动的自主智能体通过利用其类人文本理解和生成能力协作工作。

此外,文章还包括了一个使用LLMs的多智能体应用的端到端实现,提供了对这一创新方法的实际见解






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5