Eine Python-basierte Lösung, die Multi-Agent Reasoning nutzt, bei dem mehrere KI-Agenten zusammenarbeiten, um optimale Antworten auf Benutzeraufforderungen zu generieren. Durch die Simulation von Interaktionen zwischen Agenten und die Integration des Swarm Framework for Intelligence verbessert das System die Argumentationsfähigkeiten, um genaue und verfeinerte Antworten zu liefern. Benutzerdefinierte Agenten können über JSON hinzugefügt werden, sodass Sie deren Persönlichkeit, Interaktionsstile und mehr anpassen können. Das System nutzt Prompt Caching , um die Leistung zu optimieren und Latenz und Kosten für wiederholte Eingabeaufforderungen zu reduzieren.
Das Multi-Agent Reasoning -Skript erstellt ein interaktives Chatbot-Erlebnis, bei dem mehrere KI-Agenten durch einen strukturierten Argumentationsprozess zusammenarbeiten, um optimale Antworten zu liefern. Jeder Agent bringt einzigartige Perspektiven und Fachkenntnisse mit und durch iterative Schritte der Diskussion, Überprüfung, Kritik und Verfeinerung gelangen sie zu einer qualitativ hochwertigen und präzisen Antwort.
Darüber hinaus integriert das System das Swarm Framework for Intelligence, um die Zusammenarbeit zwischen Agenten zu verbessern. Swarm ermöglicht es Agenten, sich effizient zu koordinieren und kollektive Intelligenz zu nutzen, um komplexe Aufgaben zu lösen.
Benutzer können auch mit einzelnen Agenten chatten . Die Agenten kennen einander, einschließlich ihrer Persönlichkeiten und Eigenheiten, und können Fragen übereinander beantworten, was für ein reichhaltiges und interaktives Erlebnis sorgt.
Klonen Sie das Repository :
git clone https://github.com/AdieLaine/multi-agent-reasoning.git
Navigieren Sie zum Projektverzeichnis :
cd multi-agent-reasoning
Installieren Sie die erforderlichen Pakete :
pip install openai colorama tiktoken
Schwarm installieren:
pip install git+ssh://[email protected]/openai/swarm.git
or
pip install git+https://github.com/openai/swarm.git
Detaillierte Installationsanweisungen finden Sie im GitHub-Repository von Swarm.
Legen Sie Ihren OpenAI-API-Schlüssel fest :
Legen Sie Ihren API-Schlüssel als Umgebungsvariable fest:
export OPENAI_API_KEY= ' your-api-key-here '
Alternativ können Sie es direkt in Ihrem Skript festlegen oder eine .env
Datei verwenden.
Führen Sie das Skript mit Python aus:
python reasoning.py
Beim Ausführen des Skripts wird Ihnen ein Menü angezeigt:
═════════════════════════════════════════════════════════════════════════════════════════════
║ Multi-Agent Reasoning Chatbot ║
═════════════════════════════════════════════════════════════════════════════════════════════
Please select an option:
1. Chat with an agent
2. Use reasoning logic
3. Use Swarm-based reasoning
4. Exit
Enter your choice (1/2/3/4):
Option 1: Chatten Sie mit einem Agenten
Option 2: Argumentationslogik verwenden
Option 3: Schwarmbasiertes Denken verwenden
Option 4: Beenden
Das Multi-Agent Reasoning-System verwendet spezifische OpenAI-Modelle:
o1-preview-2024-09-12
für Argumentationsaufgaben.gpt-4o
-Modell für Chat-Interaktionen mit Agenten.gpt-4o
.Diese Modelle unterstützen erweiterte Funktionen und Token-Nutzungsberichte, sodass das System nach jeder Antwort detaillierte Informationen zur Token-Nutzung bereitstellen kann.
Ziel : Ermöglicht dem Benutzer, direkt mit einem ausgewählten Agenten zu chatten.
Beispiel :
Der Kern der Funktionalität des Chatbots liegt im Argumentationsprozess der Agenten. Dieser Prozess soll eine kollaborative Umgebung simulieren, in der Agenten kritisch denken, Fakten überprüfen, die Ansichten der anderen hinterfragen und ihre Antworten auf der Grundlage konstruktiven Feedbacks verfeinern.
Ziel : Agenten generieren ihre ersten Antworten auf die Aufforderung des Benutzers basierend auf ihren individuellen Überlegungen und Kenntnissen.
Beispiel :
Ziel : Agenten überprüfen die Richtigkeit und Gültigkeit ihrer eigenen Antworten, um die sachliche Richtigkeit sicherzustellen.
Beispiel :
Ziel : Agenten kritisieren gegenseitig die verifizierten Antworten, um Bereiche mit Verbesserungspotenzial, Auslassungen oder Voreingenommenheiten zu identifizieren.
Beispiel :
Ziel : Agenten verfeinern ihre eigenen Antworten, indem sie Rückmeldungen von Kritiken einbeziehen und ihre anfänglichen Überlegungen verbessern.
Beispiel :
Ziel : Kombinieren Sie die verfeinerten Antworten aller Agenten zu einer einzigen, zusammenhängenden und umfassenden Antwort.
blend_responses
gemischt.Beispiel :
Ziel : Das Feedback des Benutzers einbeziehen, um die Antwort weiter zu verfeinern und so Zufriedenheit und Genauigkeit sicherzustellen.
MAX_REFINEMENT_ATTEMPTS
.Beispiel :
Ziel : Ermöglichen, dass die Konversation den Kontext über mehrere Benutzeraufforderungen hinweg beibehält, um einen kohärenten Dialog zu ermöglichen.
Beispiel :
Die Swarm-Integration erweitert das Multi-Agent-Reasoning-System, indem sie eine dynamische Agentenkoordination und Aufgabendelegierung ermöglicht. Swarm ermöglicht Agenten eine effiziente Zusammenarbeit und nutzt kollektive Intelligenz, um komplexe Aufgaben zu lösen und die Reaktionsfähigkeit zu verbessern.
Swarm konzentriert sich darauf, die Koordination und Ausführung von Agenten leichtgewichtig, gut kontrollierbar und leicht testbar zu machen. Dies wird durch zwei primitive Abstraktionen erreicht: Agents und Handoffs . Ein Agent verfügt über Anweisungen und Tools und kann jederzeit entscheiden, ein Gespräch an einen anderen Agenten zu übergeben.
Swarm-Client-Initialisierung : Das System initialisiert einen Swarm-Client, um Agenteninteraktionen zu verwalten.
from swarm import Agent , Swarm
client = Swarm ()
Agent-Initialisierung :
agents.json
übernommen werden.Gesprächsbearbeitung :
Ziel : Nutzen Sie das Swarm Framework for Intelligence, um Agenten dynamisch zu koordinieren und so eine effiziente Zusammenarbeit und Aufgabendelegierung zu ermöglichen.
Initialisierung :
agents.json
.Diskussion :
client.run()
von Swarm zurück.Überprüfung :
Kritisieren :
Verfeinerung :
Blending-Antworten :
blend_responses
.Beispiel :
Ziel : Bereitstellung einer Chat-Schnittstelle, die die Fähigkeiten von Swarm für eine nahtlose Agenteninteraktion nutzt.
Schwarmagent für Chat :
Gesprächsbearbeitung :
def swarm_chat_interface ( conversation_history ):
# Load Swarm agent's configuration
swarm_agent = ... # Initialize Swarm agent
messages = [{ "role" : "system" , "content" : swarm_agent . instructions }]
messages . extend ( conversation_history )
response = client . run ( agent = swarm_agent , messages = messages )
swarm_reply = response . messages [ - 1 ][ 'content' ]. strip ()
return swarm_reply
Dynamische Antworten :
Beispiel :
Agentendesign :
Funktionsdefinitionen :
Kontextvariablen :
Fehlerbehandlung :
Testen :
Was ist Swarm und wie verbessert es das System?
Muss ich meine vorhandenen Agenten ändern, um mit Swarm zu arbeiten?
Agent
-Instanzen definiert werden. Bestehende Agenten können durch die Einbeziehung der Struktur und Konventionen von Swarm angepasst werden.Kann ich dem Swarm-System weitere Agenten hinzufügen?
agents.json
definieren und im System initialisieren.Wie geht Swarm mit Agentenübergaben um?
Ist Swarm mit den im System verwendeten Modellen kompatibel?
gpt-4o
. Prompt Caching steigert die Effizienz des Multi-Agent Reasoning-Systems, indem es Latenz und Kosten bei der Verarbeitung wiederholter oder langer Eingabeaufforderungen reduziert. Dabei werden die längsten gemeinsamen Präfixe von Eingabeaufforderungen zwischengespeichert, was eine schnellere Verarbeitung nachfolgender Anfragen ermöglicht, die diese Präfixe wiederverwenden.
Cache-Dauer :
usage
, das Details zur Token-Nutzung anzeigt. "usage" : {
"prompt_tokens" : 2006 ,
"completion_tokens" : 300 ,
"total_tokens" : 2306 ,
"prompt_tokens_details" : {
"cached_tokens" : 1920
},
"completion_tokens_details" : {
"reasoning_tokens" : 0
}
}
cached_tokens
gibt an, wie viele Prompt-Tokens aus dem Cache abgerufen wurden. Agenten werden über eine Datei agents.json
konfiguriert, was eine einfache Anpassung ihrer Attribute ermöglicht.
Speicherort : Muss im selben Verzeichnis wie das Skript reasoning.py
abgelegt werden.
Struktur :
{
"agents" : [
{
"name" : " Agent 47 " ,
"system_purpose" : " You are a logical and analytical assistant, focusing on facts and clear reasoning. " ,
"interaction_style" : { ... },
"ethical_conduct" : { ... },
"capabilities_limitations" : { ... },
"context_awareness" : { ... },
"adaptability_engagement" : { ... },
"responsiveness" : { ... },
"additional_tools_modules" : { ... },
"personality" : {
"logical" : " Yes " ,
"analytical" : " Yes " ,
"humor_style" : " ... " ,
"friendly_demeanor" : " ... " ,
"personality_traits" : [ " Methodical " , " Precise " ],
"empathy_level" : " Moderate " ,
"interaction_style_with_humor" : " Dry wit " ,
"quirks" : [ " Uses technical jargon " ]
}
},
{
"name" : " Agent 74 " ,
"system_purpose" : " You are a creative and empathetic assistant, emphasizing imaginative solutions and understanding. " ,
"interaction_style" : { ... },
"ethical_conduct" : { ... },
"capabilities_limitations" : { ... },
"context_awareness" : { ... },
"adaptability_engagement" : { ... },
"responsiveness" : { ... },
"additional_tools_modules" : { ... },
"personality" : {
"creative" : " Yes " ,
"empathetic" : " Yes " ,
"humor_style" : " ... " ,
"friendly_demeanor" : " ... " ,
"personality_traits" : [ " Imaginative " , " Caring " ],
"empathy_level" : " High " ,
"interaction_style_with_humor" : " Playful " ,
"quirks" : [ " Uses metaphors " ]
}
},
{
"name" : " Swarm Agent " ,
"system_purpose" : " You are a collaborative AI assistant composed of multiple expert agents. You coordinate tasks among agents to provide comprehensive and accurate responses. " ,
"interaction_style" : { ... },
"personality" : {
"coordinator" : " Yes " ,
"collaborative" : " Yes " ,
"personality_traits" : [ " Organized " , " Facilitator " ],
"quirks" : [ " Ensures all perspectives are considered " ]
}
}
]
}
Anpassung :
Beispiel :
Der Code ist so strukturiert, dass er sowohl den Argumentationsprozess als auch die Chat-Interaktionen mit Agenten erleichtert. Es enthält außerdem das Swarm Framework für eine verbesserte Agentenkoordination.
Bibliotheken :
os
, time
, logging
, json
: Für Systemvorgänge, Timing, Protokollierung und JSON-Verarbeitung.colorama
: Für farbige Konsolenausgabe.swarm
: Zur Implementierung von Schwarmintelligenz.tiktoken
: Für eine genaue Token-Zählung (in anderen Teilen des Skripts).Initialisierung :
from swarm import Agent , Swarm
client = Swarm ()
Agenten werden über die Konfigurationsdatei agents.json
initialisiert.
Jeder Agent wird als Swarm- Agent
Instanz mit spezifischen Anweisungen und Attributen erstellt.
Agenten werden auf einander aufmerksam gemacht, indem sie ihren Anweisungen Informationen über andere Agenten beifügen.
def initialize_swarm_agents ():
# Load agents from agents.json and create Swarm agents
agents = []
# ... Load and initialize agents with awareness of others
return agents
Funktion : swarm_chat_interface(conversation_history)
Zweck : Verarbeitet Chat-Interaktionen mit dem Swarm-Agenten.
Verfahren :
def swarm_chat_interface ( conversation_history ):
# Prepare messages
messages = [{ "role" : "system" , "content" : swarm_agent . instructions }]
messages . extend ( conversation_history )
# Run Swarm client
response = client . run ( agent = swarm_agent , messages = messages )
swarm_reply = response . messages [ - 1 ][ 'content' ]. strip ()
return swarm_reply
Funktion : run_swarm_reasoning(user_prompt)
Zweck : Verwendet Swarm-Agenten zur Zusammenarbeit und Reaktion auf eine Benutzeraufforderung nach mehreren Argumentationsstufen.
Verfahren :
blend_responses
kombiniert die verfeinerten Antworten zu einer endgültigen Antwort.Parallele Verarbeitung : Mit Swarm können Agenten diese Schritte gleichzeitig ausführen und so die Effizienz steigern.
Beispiel einer Mischfunktion :
def blend_responses ( agent_responses , user_prompt ):
# Prepare combined prompt
combined_prompt = ...
# Initialize Blender agent
blender_agent = Agent (
name = "Swarm Agent" ,
instructions = "You are a collaborative AI assistant composed of multiple expert agents."
)
# Run blending process
response = client . run ( agent = blender_agent , messages = [{ "role" : "user" , "content" : combined_prompt }])
blended_reply = response . messages [ - 1 ][ 'content' ]
return blended_reply
swarm_middle_agent_interface(user_prompt)
:run_swarm_reasoning
mit der Eingabeaufforderung des Benutzers auf.swarm_chat_interface(conversation_history)
:Nachfolgend finden Sie ein aktualisiertes Flussdiagramm, das die neue Logik widerspiegelt, einschließlich des Chat-Modus, der Kenntnis der Agenten voneinander, der Transparenz der Token-Nutzung, des Prompt-Caching und der Swarm-Integration:
Beiträge sind willkommen! Mitwirken:
Dieses Projekt ist unter der MIT-Lizenz lizenziert.
So bereiten Sie das GitHub-Repository vor:
Erstellen Sie auf GitHub ein neues Repository mit dem Namen multi-agent-reasoning
.
Fügen Sie die Datei README.md
mit diesem Inhalt hinzu .
Fügen Sie das Skript reasoning.py
in das Stammverzeichnis ein.
Fügen Sie die Datei agents.json
in das Stammverzeichnis ein.
Erstellen Sie eine .gitignore
Datei, um unnötige Dateien auszuschließen:
# Exclude log files
reasoning.log
swarm_middle_agent.log
# Exclude environment files
.env
# Python cache
__pycache__ /
* .py [ cod ]
Übertragen Sie die Dateien und übertragen Sie sie an GitHub.
multi-agent-reasoning/
├── README.md
├── reasoning.py
├── swarm_middle_agent.py
├── agents.json
├── LICENSE
├── .gitignore
└── img/
├── reasoningbanner.png
├── reasoningflow.png
├── agents.png
└── promptcache.png
└── swarm.png
Erkunden Sie den Code, passen Sie die Agenten an und interagieren Sie mit dem Multi-Agent Reasoning-Chatbot!
Wenn Sie Fragen haben oder Hilfe benötigen, öffnen Sie bitte ein Problem auf GitHub.