Flexibler und leistungsstarkes Rahmen für die Verwaltung mehrerer KI -Agenten und zum Umgang mit komplexen Gesprächen.
Der Multi-Agent-Orchestrator ist ein flexibler Rahmen für die Verwaltung mehrerer KI-Agenten und zum Umgang mit komplexen Gesprächen. Es leitet intelligent Abfragen weiter und behält den Kontext über Interaktionen hinweg auf.
Das System bietet vorgefertigte Komponenten für die schnelle Bereitstellung und ermöglicht gleichzeitig eine einfache Integration von Speicherlösungen für benutzerdefinierte Agenten und Gesprächsnachrichten.
Diese Anpassungsfähigkeit macht es für eine breite Palette von Anwendungen geeignet, von einfachen Chatbots bis hin zu hoch entwickelten KI -Systemen, der Erfüllung unterschiedlicher Anforderungen und der effizienten Skalierung.
Um schnell ein Gefühl für den Multi-Agent-Orchestrator zu bekommen, haben wir eine Demo-App mit einigen grundlegenden Agenten bereitgestellt. Diese interaktive Demo zeigt die Funktionen des Orchestrators in einer benutzerfreundlichen Oberfläche. Weitere Informationen zum Einrichten und Ausführen der Demo -App finden Sie in unserem Demo -App -Abschnitt.
In der folgenden Bildschirmaufzeichnung demonstrieren wir eine erweiterte Version der Demo -App, die 6 spezialisierte Agenten verwendet:
Beobachten Sie, wie das System den Kontext zwischen verschiedenen Themen nahtlos wechselt, von der Buchung von Flügen bis zur Überprüfung des Wetters, der Lösung mathematischer Probleme und der Bereitstellung von Gesundheitsinformationen. Beachten Sie, wie der entsprechende Agent für jede Abfrage ausgewählt wird, wobei die Kohärenz auch bei kurzen Follow-up-Eingaben beibehält.
Die Demo unterstreicht die Fähigkeit des Systems, komplexe, mehrstufige Gespräche zu bewältigen, gleichzeitig den Kontext beizubehalten und spezialisierte Agenten in verschiedenen Bereichen zu nutzen.
Um schnell ein Gefühl für den Multi-Agent-Orchestrator zu bekommen, lesen Sie unsere Demo-App. Zusätzliche Codebeispiele sind sowohl in der Dokumentation als auch im Beispiel examples
verfügbar.
Sachen Sie praktische Erfahrungen mit dem Multi-Agent-Orchestrator anhand unserer vielfältigen Beispiele:
examples
-Ordner:chat-demo-app
: Webbasierte Chat-Oberfläche mit mehreren spezialisierten Agentenecommerce-support-simulator
: AI-angetanter Kundensupportsystemchat-chainlit-app
: Chat-Anwendung mit Chainlit erstelltfast-api-streaming
: Fastapi-Implementierung mit Streaming-Unterstützungtext-2-structured-output
: Natürliche Sprache zu strukturierten Datenbedrock-inline-agents
: Grundgestein Inline-Agenten ProbeAlle Beispiele sind sowohl in Python- als auch in Typenkriptimplementierungen verfügbar. In unserer Dokumentation finden Sie umfassende Leitfäden zum Einrichten und Verwenden des Multi-Agent-Orchestrators!
Entdecken Sie kreative Implementierungen und verschiedene Anwendungen des Multi-Agent-Orchestrators:
Von 'Bonjour' bis 'Boarding Pass': Mehrsprachiger KI -Chatbot für Flugreservierungen
Dieser Artikel zeigt, wie ein mehrsprachiger Chatbot mit dem Multi-Agent-Orchestrator-Framework erstellt wird. In dem Artikel wird erläutert, wie ein Amazon Lex Bot als Agent zusammen mit zwei anderen neuen Agenten verwendet wird, damit er in vielen Sprachen mit nur wenigen Codezeilen funktioniert.
Über automatische Ersetzen hinaus: Erstellen eines AI-angetriebenen E-Commerce-Support-Systems
In diesem Artikel wird gezeigt, wie ein KI-gesteuerter Multi-Agent-System für den automatisierten E-Mail-Support von E-Commerce-Kunden erstellt wird. Es deckt die Architektur und das Einrichten von spezialisierten AI-Agenten mit dem Multi-Agent-Orchestrator-Framework ab und integriert die automatisierte Verarbeitung in die Aufsicht über menschliche in der Regel. Der Leitfaden untersucht die Einnahme von E -Mails, die intelligente Routing, die automatisierte Reaktionsgenerierung und die Überprüfung des Menschen und bietet einen umfassenden Ansatz, um die KI -Effizienz mit menschlichem Know -how in der Kundenbetreuung in Einklang zu bringen.
Sprechen Sie up, AI: Ihre Agenten mit Amazon Connect, Lex und Grundgestein äußern
Dieser Artikel zeigt, wie ein KI -Kunden Call Center erstellt wird. Es deckt die Architektur und das Einrichten von spezialisierten AI-Agenten mit dem Multi-Agent-Orchestrator-Framework ab, der mit Voice über Amazon Connect und Amazon Lex interagiert.
npm install multi-agent-orchestrator
Das folgende Beispiel zeigt, wie der Multi-Agent-Orchestrator mit zwei verschiedenen Arten von Agenten verwendet wird: einem Grundgestein-LLM-Agenten mit Converse-API-Unterstützung und einem Lex-Bot-Agenten. Dies zeigt die Flexibilität des Systems bei der Integration verschiedener KI -Dienste.
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
Hier ist ein äquivalentes Python-Beispiel, das die Verwendung des Multi-Agent-Orchestrators mit einem Grundgestein-LLM-Agenten und eines Lex-Bot-Agenten demonstriert:
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 ())
Diese Beispiele zeigen:
Wenn Sie Anthropic oder OpenAI für Klassifizierer und/oder Agenten verwenden möchten, sollten Sie den Multi-Agent-Orchestrator mit der entsprechenden zusätzlichen Funktion installieren.
pip install " multi-agent-orchestrator[anthropic] "
pip install " multi-agent-orchestrator[openai] "
Für eine vollständige Installation (einschließlich anthropisch und openai):
pip install " multi-agent-orchestrator[all] "
Wir begrüßen Beiträge! Weitere Informationen finden Sie in unserem beitragenden Leitfaden.
Großer Schrei an unsere großartigen Mitwirkenden! Vielen Dank, dass Sie dieses Projekt besser gemacht haben! ?
In unserem beitragenden Leitfaden finden Sie Richtlinien zum Vorschlag von Fehler und Verbesserungen.
Dieses Projekt ist unter der Lizenz von Apache 2.0 lizenziert - Einzelheiten finden Sie in der Lizenzdatei.
Dieses Projekt verwendet die Jetbrainsmono NF -Schriftart, die unter der SIL Open -Schriftart 1.1 lizenziert ist. Ausführliche Lizenzdetails finden Sie in Font-License.md.