例如,像 Windsurf 這樣的現(xiàn)代?AI Agent?可以幫助任何人快速生成、運行、編輯、構(gòu)建和部署全棧 Web 應(yīng)用程序。它支持多種 Web 技術(shù)和數(shù)據(jù)庫的代碼生成與應(yīng)用構(gòu)建,如 Astro、Vite、Next.js、Superbase 等。

企業(yè)中 Multi-Agent 的應(yīng)用案例 

Agentic AI 系統(tǒng)在企業(yè)環(huán)境中有著廣泛的應(yīng)用,尤其是在執(zhí)行自動化和重復(fù)任務(wù)方面。以下是 AI Agent 在企業(yè)領(lǐng)域中有用的關(guān)鍵應(yīng)用場景:

2024 五大 Agent 框架 

你可以使用多個 Python 框架來創(chuàng)建并將 Agent 添加到應(yīng)用程序和服務(wù)中。這些框架包括無代碼(可視化 AI Agent 構(gòu)建器)、低代碼和中代碼工具?,F(xiàn)在我將向你介紹 2024 年五個頂尖的的基于 Python 的 Agent 構(gòu)建器,你可以根據(jù)自己的業(yè)務(wù)需求進行自由選擇。

1  Phidata

Phidata 是一個基于 Python 的框架,可將 LLM 轉(zhuǎn)化為 AI 產(chǎn)品中的 Agent。它支持主流大廠的閉源和開源 LLM,如 OpenAI、Anthropic、Cohere、Ollama 和 Together AI 等。通過其對數(shù)據(jù)庫和向量存儲的支持,我們可以輕松地將 AI 系統(tǒng)連接到 Postgres、PgVector、Pinecone、LanceDb 等。使用 Phidata,我們可以構(gòu)建基礎(chǔ) Agent,也可以通過函數(shù)調(diào)用、結(jié)構(gòu)化輸出和微調(diào)來創(chuàng)建高級 Agent。

Phidata 的主要功能

現(xiàn)在我將向你展示如何使用 Phidata 框架和 OpenAI 的 LLM 在 Python 中構(gòu)建一個查詢 Yahoo Finance 的金融數(shù)據(jù)的基本 AI Agent。該 Agent 旨在通過 Yahoo Finance 匯總各公司分析師的推薦意見。

安裝依賴項:

新建一個 financial_agent.py:

import openai
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.tools.yfinance import YFinanceTools
from dotenv import load_dotenv
import os

# 從 .env 文件加載環(huán)境變量
load_dotenv()

# 從環(huán)境中獲取 API 密鑰
openai.api_key = os.getenv("OPENAI_API_KEY")

# 初始化 Agent
finance_agent = Agent(
name="Finance AI Agent",
model=OpenAIChat(id="gpt-4o"),
tools=[
YFinanceTools(
stock_price=True,
analyst_recommendations=True,
company_info=True,
company_news=True,
)
],
instructions=["Use tables to display data"],
show_tool_calls=True,
markdown=True,
)

# 輸出分析師對 NVDA 的推薦摘要
finance_agent.print_response("Summarize analyst recommendations for NVDA", stream=True)

上述代碼:

  1. 導(dǎo)入模塊和加載 API 密鑰
    首先,導(dǎo)入所需的模塊和包,并通過 .env 文件加載 OpenAI 的 API 密鑰。這種加載 API 密鑰的方式同樣適用于其他模型提供商,如 Anthropic、Mistral 和 Groq。
  2. 創(chuàng)建代理
    使用 Phidata 的 Agent 類創(chuàng)建一個新的 Agent,并指定其獨特的功能和特性,包括模型、工具、指令等。
  3. 打印響應(yīng)
    調(diào)用 print_response 方法輸出代理對問題的響應(yīng),并指定是否以流式方式顯示(stream=True)。

2  Swarm

Swarm 是 OpenAI 最近發(fā)布的一種開源實驗性 Agent 框架,是一種輕量級的 Multi-Agent 編排框架。

注意:Swarm 仍處于實驗階段??捎糜陂_發(fā)和教育目的,但不建議用于生產(chǎn)環(huán)境。最新的信息可以去參考官方倉庫:

https://github.com/openai/swarm

Swarm 使用 Agents 和 Handoffs(交接) 作為抽象概念,用于 Agent 的編排和協(xié)調(diào)。它是一種輕量級框架,便于測試和管理。Swarm 的 Agent 可以配置工具、指令和其他參數(shù),以執(zhí)行特定任務(wù)。

除了其輕量和簡單的架構(gòu),Swarm 還具備以下關(guān)鍵特性:

  1. 對話交接:Swarm 支持構(gòu)建 Multi-Agent 系統(tǒng),一個 Agent 可以在任意時間將對話交接給其他 Agent。
  2. 可擴展性:憑借其簡化的交接架構(gòu),Swarm 易于構(gòu)建能夠支持數(shù)百萬用戶的 Agent 系統(tǒng)。
  3. 可擴展性:Swarm 設(shè)計上具有很高的可定制性,可用于創(chuàng)建完全定制化的 Agent 體驗。
  4. 內(nèi)置檢索系統(tǒng)和內(nèi)存處理:Swarm 內(nèi)置了存儲和處理對話內(nèi)容的功能。
  5. 隱私保護:Swarm 主要在客戶端運行,并且不會在調(diào)用之間保留狀態(tài),極大地提高了數(shù)據(jù)隱私性。
  6. 教育資源:Swarm 提供了一系列基礎(chǔ)到高級的 Multi-Agent 應(yīng)用示例,可供開發(fā)者測試和學(xué)習(xí)。

接下來,我給你演示一下如何使用 Swarm:

from swarm import Swarm, Agent

# 初始化 Swarm 客戶端
client = Swarm()
mini_model = "gpt-4o-mini"

# 定義協(xié)調(diào)函數(shù),用于將任務(wù)交接給 Agent B
def transfer_to_agent_b():
return agent_b

# 定義 Agent A
agent_a = Agent(
name="Agent A",
instructions="You are a helpful assistant.",
functions=[transfer_to_agent_b],
)

# 定義 Agent B
agent_b = Agent(
name="Agent B",
model=mini_model,
instructions="You speak only in Finnish.",
)

# 運行 Agent 系統(tǒng)并獲取響應(yīng)
response = client.run(
agent=agent_a,
messages=[{"role": "user", "content": "I want to talk to Agent B."}],
debug=False,
)

# 打印 Agent B 的響應(yīng)
print(response.messages[-1]["content"])

上述代碼

  1. 初始化
  2. 交接邏輯
  3. 運行代理系統(tǒng)

如果將 agent_b 的指令中語言更改為其他語言(如英語、瑞典語、芬蘭語),將會得到相應(yīng)語言的響應(yīng)結(jié)果。

3  CrewAI

CrewAI 是最受歡迎的基于 Agent 的 AI 框架之一,可快速構(gòu)建 AI Agent 并將其集成到最新的 LLM 和代碼庫中。像 Oracle、Deloitte、Accenture 等大公司都在使用并信任 CrewAI。

與其他基于 Agent 的框架相比,CrewAI 功能更加豐富,特性更加多樣。

  1. 可擴展性支持集成 700 多種應(yīng)用程序,包括 Notion、Zoom、Stripe、Mailchimp、Airtable 等。
  2. 工具
  3. 部署你可以使用自己喜歡的部署方式,將開發(fā)的 Agent 快速遷移到生產(chǎn)環(huán)境。
  4. Agent 監(jiān)控像 Phidata 一樣,CrewAI 提供直觀的儀表盤,用于監(jiān)控 Agent 的進度和性能。
  5. 內(nèi)置訓(xùn)練工具使用 CrewAI 的內(nèi)置訓(xùn)練和測試工具,提高 Agent 的性能和效率,并確保其響應(yīng)質(zhì)量。

首先我們需要安裝 CrewAI:

上述命令會安裝 CrewAI 及其工具,并驗證安裝是否成功。

安裝完成后,可運行以下命令創(chuàng)建一個新的 CrewAI 項目:

運行該命令后,系統(tǒng)會提示我們從以下模型提供商列表中選擇一個,例如 OpenAI、Anthropic、xAI、Mistral 等。選擇提供商后,還可以從列表中選擇具體模型,例如 gpt-4o-mini。

以下命令可用于創(chuàng)建 Multi-Agent 系統(tǒng):

完整的 CrewAI 應(yīng)用已上傳到 GitHub 倉庫,可通過以下命令下載并運行:

https://github.com/GetStream/stream-tutorial-projects/tree/main/AI/Multi-Agent-AI

運行后,你將看到類似以下的響應(yīng)結(jié)果:

4  Autogen

Autogen 是一個開源框架,用于構(gòu)建 Agent 系統(tǒng)。借助該框架,可以創(chuàng)建 Multi-Agent 協(xié)作和 LLM 工作流。

Autogen 具備以下關(guān)鍵功能:

  1. 跨語言支持使用 Python 和 .NET 等編程語言構(gòu)建 Agent。
  2. 本地 Agent可在本地運行和實驗 Agent,以確保更高的隱私性。
  3. 異步消息通信使用異步消息進行 Agent 之間的通信。
  4. 可擴展性支持開發(fā)者構(gòu)建分布式 Agent 網(wǎng)絡(luò),適用于不同組織之間的協(xié)作。
  5. 可定制性通過其可插拔組件,自定義構(gòu)建完全個性化的 Agent 系統(tǒng)體驗。

下面的代碼塊構(gòu)建了一個簡單的 AI 天氣 Agent 系統(tǒng):

import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.task import Console, TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models import OpenAIChatCompletionClient

import os
from dotenv import load_dotenv

load_dotenv()

# 定義工具
async def get_weather(city: str) -> str:
return f"The weather in {city} is 73 degrees and Sunny."

async def main() -> None:
# 定義 Agent
weather_agent = AssistantAgent(
name="weather_agent",
model_client=OpenAIChatCompletionClient(
model="gpt-4o-mini",
api_key=os.getenv("OPENAI_API_KEY"),
),
tools=[get_weather],
)

# 定義終止條件
termination = TextMentionTermination("TERMINATE")

# 定義 Agent 團隊
agent_team = RoundRobinGroupChat([weather_agent], termination_condition=termination)

# 運行團隊并將消息流至控制臺
stream = agent_team.run_stream(task="What is the weather in New York?")
await Console(stream)

asyncio.run(main())

上述代碼

  1. 工具定義:get_weather 是一個示例工具函數(shù),返回城市天氣信息。
  2. 代理定義:使用 AssistantAgent 定義 Agent,并設(shè)置模型客戶端為 OpenAI 的 GPT-4o-mini。API 密鑰從 .env 文件中加載。
  3. 終止條件:通過 TextMentionTermination 定義終止條件,當提及 “TERMINATE” 時終止任務(wù)。
  4. Agent 團隊:使用 RoundRobinGroupChat 創(chuàng)建一個 Agent 團隊,以輪詢方式分配任務(wù)。

運行此代碼后,控制臺將顯示類似于以下的輸出結(jié)果:

5  LangGraph

LangGraph 是基于節(jié)點的 AI 框架,專為構(gòu)建處理復(fù)雜任務(wù)的 Multi-Agent 系統(tǒng)而設(shè)計。作為 LangChain 生態(tài)系統(tǒng)的一部分,LangGraph 是一種圖結(jié)構(gòu)的 Agent 框架。用戶可以通過節(jié)點和邊來構(gòu)建線性、層次化和順序化的工作流。其中,節(jié)點(node)表示 Agent 的動作,邊(edge)表示動作之間的轉(zhuǎn)換,狀態(tài)(state)則是 LangGraph Agent 的另一重要組成部分。

LangGraph 的優(yōu)勢和主要功能

  1. 免費開源LangGraph 是一個免費的庫,遵循 MIT 開源許可證。
  2. 流式支持提供逐字流式支持,展示 Agent 的中間步驟和思考過程。
  3. 部署選項支持多種大規(guī)模部署方式,可通過 LangSmith 監(jiān)控 Agent 性能。企業(yè)版選項允許完全在用戶自有基礎(chǔ)設(shè)施上部署 LangGraph。
  4. 企業(yè)適配Replit 使用 LangGraph 為其 AI 編碼 Agent 提供支持,證明了 LangGraph 的企業(yè)適用性。
  5. 高性能在處理復(fù)雜的 Agent 工作流時,不會增加代碼負擔。
  6. 循環(huán)與可控性可以輕松定義包含循環(huán)的 Multi-Agent 工作流,并對 Agent 的狀態(tài)進行完全控制。
  7. 持久化LangGraph 會在圖中每一步操作后自動保存 Agent 狀態(tài),還支持在任意點暫停和恢復(fù)圖的執(zhí)行。

本文章轉(zhuǎn)載微信公眾號@PyTorch研習(xí)社

上一篇:

本地部署資訊問答機器人:Langchain+Ollama+RSSHub實現(xiàn)RAG

下一篇:

AIAgent框架——MetaGPT技術(shù)詳解
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費