Eine Multi-Agenten-Plattform basierend auf großen Sprachmodellen, die entwicklerfreundliche Nachrichtenaustauschmechanismen und verteilte Bereitstellungsfunktionen bietet.
AgentScope - Flexible und leistungsstarke Multi-Agenten-Entwicklungsplattform
Projektübersicht
AgentScope ist eine innovative Multi-Agenten-Plattform, die speziell für Entwickler konzipiert wurde, um Multi-Agenten-Anwendungen auf Basis großer Sprachmodelle (LLMs) zu erstellen. Die Plattform nutzt den Nachrichtenaustausch als zentralen Kommunikationsmechanismus, was die Hürden für Entwicklung und Verständnis erheblich senkt.
GitHub-Adresse: https://github.com/agentscope-ai/agentscope
Kernfunktionen
1. Entwicklerfreundliche Designprinzipien
- Transparenz zuerst: Vollständige Transparenz für Entwickler, einschließlich Prompt Engineering, API-Aufrufen, Agenten-Erstellung, Workflow-Orchestrierung – alles sichtbar und kontrollierbar.
- Echtzeitkontrolle: Agenten können jederzeit unterbrochen und die Verarbeitung angepasst werden.
- Modellunabhängigkeit: Einmal programmieren, mit allen Modellen verwenden.
- LEGO-ähnliche Agenten-Erstellung: Alle Komponenten sind modular und unabhängig.
2. Multi-Agenten-orientiertes Design
- Explizite Nachrichtenübermittlung: Speziell für Multi-Agenten entwickelt, unterstützt klare Nachrichtenübermittlung und Workflow-Orchestrierung.
- Keine tiefe Kapselung: Vermeidet komplexe Kapselung, um die Lesbarkeit und Wartbarkeit des Codes zu erhalten.
- Hochgradig anpassbar: Tools, Prompts, Agenten, Workflows, Drittanbieterbibliotheken und Visualisierungen sind alle anpassbar.
3. Robuster Fehlertoleranzmechanismus
AgentScope bietet integrierte und anpassbare Fehlertoleranzmechanismen, ergänzt durch systemweite Unterstützung zur Verwaltung und Nutzung multimodaler Daten, Tools und externen Wissens. Dazu gehören:
- Dienstseitige Wiederholungsmechanismen zur Sicherstellung der API-Zuverlässigkeit.
- Regelbasierte Korrekturwerkzeuge zur Behebung von Formatproblemen in LLM-Antworten.
- Anpassbare Fehlertoleranzkonfiguration (parse_func, fault_handler, max_retries usw.).
- Spezielles Log-System für Multi-Agenten-Anwendungen.
4. Unterstützung für verteilte Architekturen
- Actor-basiertes verteiltes Framework: Ermöglicht einen einfachen Übergang zwischen lokaler und verteilter Bereitstellung.
- Automatische Paralleloptimierung: Paralleloptimierung ohne zusätzlichen Aufwand.
- Unterstützung für groß angelegte Simulationen: Ermöglicht die Simulation von 1 Million Agenten auf 4 Geräten.
Neue Funktionen in AgentScope 1.0
Unterstützung für asynchrone Ausführung
- Umfassende Unterstützung für asynchrone Ausführungsmodi.
- Bietet eine Vielzahl neuer Funktionen und Verbesserungen.
Kernmodul-Funktionen
Modul | Funktion | Beschreibung |
---|---|---|
Model | Unterstützung für asynchrone Aufrufe | Unterstützt asynchrone Aufrufe verschiedener LLMs |
Tool | Tool-Integration | Umfangreiche Bibliothek von Tool-Funktionen |
MCP | Modellsteuerprotokoll | Unterstützt die Integration von Modellsteuerprotokollen |
Tracing | Nachverfolgung und Überwachung | Nachverfolgung und Visualisierung der Anwendungs-Ausführung |
Memory | Langzeitgedächtnis | Verwaltung des Langzeitgedächtnisses von Agenten |
Session | Sitzungsverwaltung | Zustands- und Sitzungsverwaltung |
Evaluation | Bewertungssystem | Leistungsbewertung von Agenten |
Prompt Formatter | Prompt-Formatierung | Intelligentes Prompt-Formatierungstool |
Technische Architektur
Nachrichten-Austauschmechanismus
AgentScope verwendet einen nachrichtenbasierten Kommunikationsmechanismus:
from agentscope.message import Msg
message_from_alice = Msg("Alice", "Hi!") # Nachricht von Alice
message_with_media = Msg("Bob", "What about this picture?", url="/path/to/picture.jpg") # Nachricht mit Medien
Agenten-Erstellung
from agentscope.agent import ReActAgent, UserAgent
from agentscope.model import DashScopeChatModel
from agentscope.formatter import DashScopeChatFormatter
from agentscope.memory import InMemoryMemory
from agentscope.tool import Toolkit, execute_python_code
import os, asyncio
async def main():
toolkit = Toolkit()
toolkit.register_tool_function(execute_python_code) # Registriert die Funktion zur Ausführung von Python-Code
agent = ReActAgent(
name="Friday",
sys_prompt="You're a helpful assistant named Friday.", # System-Prompt für den Agenten
model=DashScopeChatModel(
model_name="qwen-max",
api_key=os.environ["DASHSCOPE_API_KEY"],
stream=True,
),
memory=InMemoryMemory(), # Verwendet ein In-Memory-Gedächtnis
formatter=DashScopeChatFormatter(), # Verwendet den DashScope Chat Formatter
toolkit=toolkit, # Weist das Toolkit zu
)
user = UserAgent(name="user") # Erstellt einen Benutzer-Agenten
msg = None
while True:
msg = await agent(msg) # Agent antwortet
msg = await user(msg) # Benutzer antwortet
if msg.get_text_content() == "exit": # Wenn der Benutzer "exit" eingibt, beenden
break
asyncio.run(main())
Pipelines und Workflows
from agentscope.pipeline import MsgHub, sequential_pipeline
from agentscope.message import Msg
async def multi_agent_conversation():
agent1 = ... # Agent 1
agent2 = ... # Agent 2
agent3 = ... # Agent 3
pipeline = sequential_pipeline([agent1, agent2, agent3]) # Erstellt eine sequentielle Pipeline
result = await pipeline(initial_message) # Führt die Pipeline mit einer Startnachricht aus
MCP (Modellsteuerprotokoll) Integration
from agentscope.mcp import HttpStatelessClient
from agentscope.tool import Toolkit
import os
async def fine_grained_mcp_control():
client = HttpStatelessClient(
name="gaode_mcp",
transport="streamable_http",
url=f"https://mcp.amap.com/mcp?key={os.environ['GAODE_API_KEY']}",
)
func = await client.get_callable_function(func_name="maps_geo") # Ruft eine aufrufbare Funktion ab
await func(address="Tiananmen Square", city="Beijing") # Führt die Funktion aus
toolkit = Toolkit()
toolkit.register_tool_function(func) # Registriert die Funktion im Toolkit
Unterstützung für multimodale Daten
AgentScope verwendet eine Lazy-Loading-Strategie, um die Übertragung multimodaler Daten von deren Speicherung zu entkoppeln, indem einheitliche URL-basierte Attribute in Nachrichten bereitgestellt werden. Unterstützt werden:
- Verarbeitung von Text-, Bild-, Audio- und Videodaten.
- URL-basierte Datenreferenzierung.
- On-Demand-Lademodus.
Tool- und Service-Ökosystem
Integrierte Service-Funktionen
- Ausführung von Python-Code.
- Web-Suche.
- Dateibearbeitung.
- Integration externen Wissens.
RAG (Retrieval Augmented Generation) Unterstützung
- End-to-End-Wissensverarbeitungsmodul.
- Hochgradig konfigurierbares Abrufsystem.
- Gemeinsam nutzbare Wissensverarbeitungskomponenten.
Installation und Nutzung
Systemanforderungen
- Python 3.10 oder höher.
Installationsmethoden
Installation aus dem Quellcode (empfohlen)
git clone -b main https://github.com/agentscope-ai/agentscope.git # Klonen des Repositories
cd agentscope # Wechseln in das Verzeichnis
pip install -e . # Installieren im Bearbeitungsmodus
Installation von PyPI
pip install agentscope
AgentScope Studio
npm install -g @agentscope/studio # Installieren des AgentScope Studio CLI-Tools global
as_studio # Starten des AgentScope Studio
Modellunterstützung
AgentScope unterstützt eine breite Palette großer Sprachmodelle:
Cloud-APIs
- OpenAI GPT-Serie
- DashScope (Alibaba Cloud)
- Google Gemini
- ZhipuAI
- LiteLLM API
Lokale Bereitstellung
- Ollama
- Flask + Transformers/ModelScope
- FastChat
- vLLM
Anwendungsfälle
Groß angelegte Simulationen
- Finanzmarktsimulationen.
- Stadtplanungsmodellierung.
- Analyse von Politikeffekten.
- Sozialverhaltensforschung.
Kollaborative Aufgaben
- Simulation von Softwareentwicklungsteams.
- Multi-Turn-Dialogsysteme.
- Lösung komplexer Probleme.
- Kollaborative Wissensverarbeitung.
Unternehmensanwendungen
- Automatisierung des Kundenservice.
- Optimierung von Geschäftsprozessen.
- Intelligente Entscheidungsunterstützung.
- Risikomanagement-Modellierung.
Community und Support
- Offizielle Dokumentation: https://doc.agentscope.io/
- GitHub-Repository: https://github.com/agentscope-ai/agentscope
- PyPI-Paket: https://pypi.org/project/agentscope/
- Tutorials und Beispiele: Umfassende Tutorial-Dokumentation und zahlreiche Beispielcodes.
AgentScope stellt einen bedeutenden Fortschritt in der Entwicklung von Multi-Agenten-Systemen dar und bietet Forschern und Entwicklern eine leistungsstarke, flexible und benutzerfreundliche Plattform, um das volle Potenzial von Agenten auszuschöpfen.