LlamaIndex 宣布 llama-agents 的 alpha 版本發(fā)布,,這是一個新的開源框架,,旨在簡化構(gòu)建,、迭代和部署多智能體 AI 系統(tǒng)的流程,,并將智能體轉(zhuǎn)化為生產(chǎn)級微服務(wù),。無論是在開發(fā)復(fù)雜的問答系統(tǒng)、協(xié)作 AI 助手還是分布式 AI 工作流,,llama-agents 提供了需要的工具和結(jié)構(gòu),,幫助我們將想法變?yōu)楝F(xiàn)實。 一,、llama-agents 的關(guān)鍵特性下面是llama-agents 的關(guān)鍵特性: - 分布式服務(wù)導(dǎo)向架構(gòu):LlamaIndex 中的每個智能體都可以是獨立運行的微服務(wù),,由一個完全可定制的大語言模型驅(qū)動的控制平面(Control Plane)進行協(xié)調(diào)和任務(wù)分發(fā)。
- 通過標(biāo)準(zhǔn)化 API 接口通信:智能體之間通過中央控制平面協(xié)調(diào)器(Orchestrator)進行接口通信,。使用消息隊列(Message Queue)在智能體之間傳遞消息,。
- 定義智能體和顯式協(xié)調(diào)流程:開發(fā)者可以靈活地直接定義智能體之間的交互順序,或者讓一個“智能體協(xié)調(diào)器(Agentic Orchestrator)”決定哪些智能體與任務(wù)相關(guān),。
- 易于部署:獨立啟動,、擴展和監(jiān)控每個智能體和控制平面,。
- 可擴展性和資源管理:使用內(nèi)置的可觀測工具來監(jiān)控系統(tǒng)和每個單獨智能體服務(wù)的質(zhì)量和性能。
下面深入了解如何使用 llama-agents 構(gòu)建示例的智能體系統(tǒng),。 二,、開始使用 llama-agents首先,使用 pip 安裝框架: pip install llama-agents llama-index-agent-openai
引入依賴項并設(shè)置控制平面,,其中包含了大語言模型驅(qū)動的協(xié)調(diào)器: # 導(dǎo)入dotenv模塊,,用于加載環(huán)境變量文件import dotenvdotenv.load_dotenv() # our .env file defines OPENAI_API_KEY# 導(dǎo)入llama_agents包中的類,用于構(gòu)建代理服務(wù)和控制面from llama_agents import ( AgentService, ControlPlaneServer, SimpleMessageQueue, AgentOrchestrator,)# 導(dǎo)入具體執(zhí)行任務(wù)的工作者類from llama_index.core.agent import FunctionCallingAgentWorker# 導(dǎo)入工具類,,用于封裝工具函數(shù)from llama_index.core.tools import FunctionTool# 導(dǎo)入OpenAI接口類,,用于與OpenAI API交互from llama_index.llms.openai import OpenAI# 導(dǎo)入日志模塊,用于記錄系統(tǒng)運行信息import logging# 設(shè)置日志級別為INFO,,以便查看系統(tǒng)運行細節(jié)logging.getLogger('llama_agents').setLevel(logging.INFO)# 初始化消息隊列,,用于代理間通信message_queue = SimpleMessageQueue()# 初始化控制面服務(wù)器,用于管理代理和任務(wù)control_plane = ControlPlaneServer( message_queue=message_queue, orchestrator=AgentOrchestrator(llm=OpenAI()),)
接下來創(chuàng)建工具,,使用 LlamaIndex 的現(xiàn)有抽象,,將這些工具提供給一個智能體,并將該智能體轉(zhuǎn)化為一個獨立的微服務(wù): # 定義一個工具函數(shù),,用于返回秘密事實 secret factdef get_the_secret_fact() -> str: '''Returns the secret fact.''' return 'The secret fact is: A baby llama is called a 'Cria'.'# 從工具函數(shù)創(chuàng)建一個工具實例tool = FunctionTool.from_defaults(fn=get_the_secret_fact)# 使用工具和OpenAI模型初始化任務(wù)執(zhí)行者worker = FunctionCallingAgentWorker.from_tools([tool], llm=OpenAI('gpt-4'))# 將執(zhí)行者包裝為代理agent = worker.as_agent()# 初始化代理服務(wù),,用于對外提供代理功能agent_service = AgentService( agent=agent, message_queue=message_queue, description='General purpose assistant', service_name='assistant',)
最后啟動服務(wù)和控制平面。注意,,這里使用一個輔助函數(shù)來運行一個單一查詢,,然后打印結(jié)果。 # 導(dǎo)入LocalLauncher,,用于在本地環(huán)境中啟動代理服務(wù)from llama_agents import LocalLauncher# 初始化LocalLauncher,,用于啟動代理服務(wù)和控制面launcher = LocalLauncher( [agent_service], control_plane, message_queue,)# 啟動一個單次查詢?nèi)蝿?wù),并打印結(jié)果result = launcher.launch_single('What's the secret fact?')print(result)
如下是上述應(yīng)用運行輸出信息: #夏日生活打卡季#
|