Гибкая и мощная структура для управления несколькими агентами ИИ и обработки сложных разговоров.
Многоагентный оркестратор является гибкой основой для управления несколькими агентами ИИ и управления сложными разговорами. Это разумно направляет запросы и поддерживает контекст по взаимодействию.
Система предлагает предварительно построенные компоненты для быстрого развертывания, а также позволяет легко интегрировать пользовательские агенты и решения для хранения беседы.
Эта адаптивность делает его подходящим для широкого спектра приложений, от простых чат -ботов до сложных систем искусственного интеллекта, выполняя различные требования и эффективно масштабирование.
Чтобы быстро почувствовать мультиагентный оркестратор, мы предоставили демонстрационное приложение с несколькими основными агентами. Эта интерактивная демонстрация демонстрирует возможности оркестратора в удобном интерфейсе. Чтобы узнать больше о настройке и запуске демонстрационного приложения, обратитесь к нашему разделу демо -приложения.
В записи на экране ниже мы демонстрируем расширенную версию демонстрационного приложения, в которой используются 6 специализированных агентов:
Посмотрите, как система плавно переключает контекст между различными темами, от бронирования полетов до проверки погоды, решения математических задач и предоставления медицинской информации. Обратите внимание, как выбирается соответствующий агент для каждого запроса, сохраняя когерентность даже при кратких последующих входах.
Демонстрация подчеркивает способность системы обрабатывать сложные, многократные разговоры, сохраняя при этом контекст и используя специализированные агенты в различных областях.
Чтобы быстро почувствовать мультиагентный оркестратор, ознакомьтесь с нашим демонстрационным приложением. Дополнительные примеры кода доступны как в документации, так и в папке examples .
Получите практический опыт работы с многоагентным оркестратором через наш разнообразный набор примеров:
examples :chat-demo-app : веб-интерфейс чата с несколькими специализированными агентамиecommerce-support-simulator : система поддержки клиентов на основе AIchat-chainlit-app : приложение чата, построенное с цепьюfast-api-streaming : внедрение FastAPI с поддержкой потоковой передачиtext-2-structured-output : естественный язык для структурированных данныхbedrock-inline-agents : образец встроенных средств.Все примеры доступны как в реализациях Python и TypeScript. Ознакомьтесь с нашей документацией для комплексных руководств по настройке и использованию многоагентного оркестратора!
Откройте для себя креативные реализации и разнообразные приложения мультиагентного оркестратора:
От «Bonjour» до «посадочного прохода»: многоязычный чат -бот для авиабилетов для бронирования полета
Эта статья демонстрирует, как построить многоязычный чат-бот, используя многоагентную структуру оркестратора. В статье объясняется, как использовать Amazon Lex Bot в качестве агента, а также 2 другие новые агенты, чтобы заставить его работать на многих языках с несколькими строками кода.
Помимо автоматических зановов: создание системы поддержки электронной коммерции с AI, способствующим AI
В этой статье демонстрируется, как построить многоагентную систему, управляемую AI, для автоматизированной поддержки электронной почты клиента электронной коммерции. Он охватывает архитектуру и настройку специализированных агентов искусственного интеллекта с использованием многоагентной структуры оркестратора, интегрируя автоматическую обработку с надзором человека в петле. Руководство исследует прием электронной почты, интеллектуальную маршрутизацию, автоматизированную генерацию ответов и проверку человека, обеспечивая комплексный подход к балансированию эффективности ИИ с человеческим опытом в поддержке клиентов.
Говорите, ИИ: Озвучивая своих агентов с помощью Amazon Connect, Lex и Bendrock
Эта статья демонстрирует, как построить колл -центр клиента AI. Он охватывает архитектуру и настройку специализированных агентов ИИ с использованием многоагентного фреймворка оркестратора, взаимодействующей с голосом через Amazon Connect и Amazon Lex .
npm install multi-agent-orchestratorВ следующем примере демонстрируется, как использовать многоагентный оркестратор с двумя различными типами агентов: агент LLM Bedrock с поддержкой Converse API и агентом Lex Bot. Это демонстрирует гибкость системы в интеграции различных услуг искусственного интеллекта.
import { MultiAgentOrchestrator , BedrockLLMAgent , LexBotAgent } from "multi-agent-orchestrator" ;
const orchestrator = new MultiAgentOrchestrator ( ) ;
// Add a Bedrock LLM Agent with Converse API support
orchestrator . addAgent (
new BedrockLLMAgent ( {
name : "Tech Agent" ,
description :
"Specializes in technology areas including software development, hardware, AI, cybersecurity, blockchain, cloud computing, emerging tech innovations, and pricing/costs related to technology products and services." ,
streaming : true
} )
) ;
// Add a Lex Bot Agent for handling travel-related queries
orchestrator . addAgent (
new LexBotAgent ( {
name : "Travel Agent" ,
description : "Helps users book and manage their flight reservations" ,
botId : process . env . LEX_BOT_ID ,
botAliasId : process . env . LEX_BOT_ALIAS_ID ,
localeId : "en_US" ,
} )
) ;
// Example usage
const response = await orchestrator . routeRequest (
"I want to book a flight" ,
'user123' ,
'session456'
) ;
// Handle the response (streaming or non-streaming)
if ( response . streaming == true ) {
console . log ( "n** RESPONSE STREAMING ** n" ) ;
// Send metadata immediately
console . log ( `> Agent ID: ${ response . metadata . agentId } ` ) ;
console . log ( `> Agent Name: ${ response . metadata . agentName } ` ) ;
console . log ( `> User Input: ${ response . metadata . userInput } ` ) ;
console . log ( `> User ID: ${ response . metadata . userId } ` ) ;
console . log ( `> Session ID: ${ response . metadata . sessionId } ` ) ;
console . log (
`> Additional Parameters:` ,
response . metadata . additionalParams
) ;
console . log ( `n> Response: ` ) ;
// Stream the content
for await ( const chunk of response . output ) {
if ( typeof chunk === "string" ) {
process . stdout . write ( chunk ) ;
} else {
console . error ( "Received unexpected chunk type:" , typeof chunk ) ;
}
}
} else {
// Handle non-streaming response (AgentProcessingResult)
console . log ( "n** RESPONSE ** n" ) ;
console . log ( `> Agent ID: ${ response . metadata . agentId } ` ) ;
console . log ( `> Agent Name: ${ response . metadata . agentName } ` ) ;
console . log ( `> User Input: ${ response . metadata . userInput } ` ) ;
console . log ( `> User ID: ${ response . metadata . userId } ` ) ;
console . log ( `> Session ID: ${ response . metadata . sessionId } ` ) ;
console . log (
`> Additional Parameters:` ,
response . metadata . additionalParams
) ;
console . log ( `n> Response: ${ response . output } ` ) ;
} # Optional: Set up a virtual environment
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`
pip install multi-agent-orchestratorВот эквивалентный пример Python, демонстрирующий использование многоагентного оркестратора с агентом LLM Bedrock и агентом Lex Bot:
import os
import asyncio
from multi_agent_orchestrator . orchestrator import MultiAgentOrchestrator
from multi_agent_orchestrator . agents import BedrockLLMAgent , LexBotAgent , BedrockLLMAgentOptions , LexBotAgentOptions , AgentCallbacks
orchestrator = MultiAgentOrchestrator ()
class BedrockLLMAgentCallbacks ( AgentCallbacks ):
def on_llm_new_token ( self , token : str ) -> None :
# handle response streaming here
print ( token , end = '' , flush = True )
tech_agent = BedrockLLMAgent ( BedrockLLMAgentOptions (
name = "Tech Agent" ,
streaming = True ,
description = "Specializes in technology areas including software development, hardware, AI,
cybersecurity, blockchain, cloud computing, emerging tech innovations, and pricing/costs
related to technology products and services." ,
model_id = "anthropic.claude-3-sonnet-20240229-v1:0" ,
callbacks = BedrockLLMAgentCallbacks ()
))
orchestrator . add_agent ( tech_agent )
# Add a Lex Bot Agent for handling travel-related queries
orchestrator . add_agent (
LexBotAgent ( LexBotAgentOptions (
name = "Travel Agent" ,
description = "Helps users book and manage their flight reservations" ,
bot_id = os . environ . get ( 'LEX_BOT_ID' ),
bot_alias_id = os . environ . get ( 'LEX_BOT_ALIAS_ID' ),
locale_id = "en_US" ,
))
)
async def main ():
# Example usage
response = await orchestrator . route_request (
"I want to book a flight" ,
'user123' ,
'session456'
)
# Handle the response (streaming or non-streaming)
if response . streaming :
print ( " n ** RESPONSE STREAMING ** n " )
# Send metadata immediately
print ( f"> Agent ID: { response . metadata . agent_id } " )
print ( f"> Agent Name: { response . metadata . agent_name } " )
print ( f"> User Input: { response . metadata . user_input } " )
print ( f"> User ID: { response . metadata . user_id } " )
print ( f"> Session ID: { response . metadata . session_id } " )
print ( f"> Additional Parameters: { response . metadata . additional_params } " )
print ( " n > Response: " )
# Stream the content
async for chunk in response . output :
if isinstance ( chunk , str ):
print ( chunk , end = '' , flush = True )
else :
print ( f"Received unexpected chunk type: { type ( chunk ) } " , file = sys . stderr )
else :
# Handle non-streaming response (AgentProcessingResult)
print ( " n ** RESPONSE ** n " )
print ( f"> Agent ID: { response . metadata . agent_id } " )
print ( f"> Agent Name: { response . metadata . agent_name } " )
print ( f"> User Input: { response . metadata . user_input } " )
print ( f"> User ID: { response . metadata . user_id } " )
print ( f"> Session ID: { response . metadata . session_id } " )
print ( f"> Additional Parameters: { response . metadata . additional_params } " )
print ( f" n > Response: { response . output . content } " )
if __name__ == "__main__" :
asyncio . run ( main ())Эти примеры демонстрируют:
Если вы хотите использовать Anpropic или OpenaI для классификатора и/или агентов, обязательно установите многопользовательский Orchestrator с соответствующей дополнительной функцией.
pip install " multi-agent-orchestrator[anthropic] "
pip install " multi-agent-orchestrator[openai] "Для полной установки (включая антроп и OpenAI):
pip install " multi-agent-orchestrator[all] " Мы приветствуем вклад! Пожалуйста, смотрите наше руководство для получения более подробной информации.
Большой крик нашим потрясающим участникам! Спасибо, что сделали этот проект лучше! ?
Пожалуйста, смотрите наше руководство по внесению вклад в руководящие принципы о том, как предложить ошибки и улучшения.
Этот проект лицензирован по лицензии Apache 2.0 - для получения подробной информации см. Файл лицензии.
В этом проекте используется шрифт JetBrainsMono NF, лицензированный по лицензии SIL Open Font 1.1. Для получения полной лицензии см. Font-license.md.