AutoGen und Azure bauen skalierbare und Sicherheitsgrade AI-Systeme auf
Es war ein turbulentes anderthalb Monate! Wenn Sie sich gefragt haben, wo ich gewesen bin, sei beruhigt: Es gab gute Gründe. Ich habe mich tief in die faszinierende Welt der KI gestürzt, an einem KI-Buch mitgewirkt, ein Modellkontextprotokoll entwickelt und sogar ein Buch über AutoGen gemeinsam geschrieben. Obwohl es eine unglaublich bereichernde, wenn auch anstrengende Zeit war, blieb wenig Raum für Blogposts. Nun bin ich zurück und freue mich, Erkenntnisse zu einem Thema zu teilen, das zentral für meine Arbeit ist: das Bau robuste mehragentige Systeme. Das Konzept eines einzigen, monolithischen KI-Agents gibt langsam dem Potenzial kollaborativer Mehragentensysteme Platz. Diese Systeme, bei denen mehrere spezialisierte KI-Agents zusammenarbeiten, um komplexe Ziele zu erreichen, bieten unübertroffene Flexibilität, Skalierbarkeit und Widerstandsfähigkeit. Unter den Frameworks, die diesen Paradigmenwechsel ermöglichen, hebt sich Microsofts AutoGen als eine leistungsstarke und vielseitige Wahl hervor. Der Sprung von einem Proof-of-Concept zu einer sicheren, produktionsreifen und skalierbaren Bereitstellung erfordert jedoch sorgfältige Überlegungen und eine robuste Infrastruktur. Hier kommen Azure-Dienste ins Spiel, die die Unternehmensgrundlage bieten, um diese komplexen Systeme ins Leben zu rufen. Dieser Blogpost wird Sie durch die Reise führen, ein sicheres, produktionsreifes und skalierbares Mehragentensystem unter Verwendung von AutoGen zu architekten und bereitzustellen. Wir werfen einen Blick auf die Kernprinzipien, erkunden praktische Implementierungsdetails mit Codebeispielen und diskutieren Best Practices, um sicherzustellen, dass Ihr Mehragentensystem den Anforderungen der Realität standhält. Verstehen Sie AutoGen und Mehragentensysteme Bevor wir uns den Details der Produktionsbereitstellung zuwenden, lassen Sie uns kurz die Kernkonzepte wiederholen. Für mich war der eigentliche „Aha“-Moment in der KI nicht nur die mächtigen Sprachmodelle, sondern auch, wie sie zusammenarbeiten können. Das ist die Magie der Mehragentensysteme. Im Kern ist AutoGen ein Open-Source-Framework, das von Microsoft entwickelt wurde und die Orchestrierung, Optimierung und Automatisierung von Workflows großer Sprachmodelle (LLMs) vereinfacht. Es erreicht dies, indem es mehrere Agents ermöglicht, miteinander zu kommunizieren, um Aufgaben zu lösen. Stellen Sie sich vor, Ihr Traumteam für ein komplexes Projekt zusammenzustellen, bei dem jeder Teammitglied (Agent) eine einzigartige Fähigkeit, eine klare Rolle und einen nahtlosen Kommunikationsweg hat. Die Kraft der Zusammenarbeit: Warum Mehragentensysteme ein Revolutionspotential haben Der Wechsel zu Mehragentensystemen ist kein Trend, sondern eine grundlegende Evolution unseres Ansatzes zur Lösung komplexer KI-Probleme. Es ist so, als würden wir von einem Soloartisten zu einem vollen Symphonieorchester übergehen. Hier sind die Gründe, warum ich sie als unverzichtbar betrachte: Modularität und Spezialisierung: Stellen Sie sich vor, ein Haus zu bauen, wobei eine Person alles macht – Rohbau, Elektrik, Sanitäranlagen, Dach. Dies wäre langsam und wahrscheinlich nicht gut. Mehragentensysteme sind ähnlich: Sie ermöglichen spezialisierte Agents. Ein „Code-Generator“-Agent kann sich ausschließlich auf das Schreiben sauberen, effizienten Codes konzentrieren, während ein „Debugger“-Agent darin hervorragt, Fehler zu identifizieren und zu beheben. Diese Spezialisierung führt zu höherwertigen Ausgaben und einem viel besser handhabbaren Entwicklungsprozess. Widerstandsfähigkeit und Robustheit: Das Leben ist unvorhersehbar, und Softwarefehler können immer auftreten. Wenn ein Agent ein Problem begegnet oder ausfällt, kann ein gut entworfenes Mehragentensystem oft die Aufgabe neu routen oder andere Agents heranziehen, um die Lücken zu schließen. Dies führt zu einem widerstandsfähigeren und fehlerrobusten System – entscheidend für Produktionsumgebungen, wo Ausfälle ein schmutziges Wort sind. Skalierbarkeit: Brauchen Sie mehr Webbrowsings-Kapazität? Starten Sie einfach mehr „Web-Browser“-Agents! Verschiedene Agents können je nach Bedarf unabhängig voneinander skaliert werden. Dies bedeutet, Sie überschütten nicht Teile Ihres Systems, die nicht unter hohem Last stehen. Komplexe Problemlösung: Viele realweltliche Probleme sind einfach zu groß und chaotisch, um von einer einzigen KI effizient angegangen zu werden. Mehragentensysteme leisten hier herausragende Arbeit, indem sie diese Monster in kleinere, handhabbare Teilprobleme zerlegen, wobei jeder Agent seinen Fachwissenbeitrag zum Gesamtlösungsansatz liefert. Es ist wie eine gut geölte Maschine, bei der jedes Rädchen im Einklang arbeitet. Integration der menschlichen Überwachung: Dies ist für mich ein wichtiger Punkt. AutoGen unterstützt von Haus aus die menschliche Interaktion, was eine nahtlose Integration unserer eigenen Überwachung und Intervention ermöglicht, wenn dies erforderlich ist. Dies ist für kritische Anwendungen entscheidend, bei denen menschliches Urteilsvermögen nicht nur hilfreich, sondern unersetzlich ist. Es geht darum, dass KI menschliche Fähigkeiten ergänzt, sie aber nicht ersetzt. AutoGens Ansatz zu agentialen Workflows: Die Geheimsauce AutoGen bietet ein flexibles und erweiterbares Framework zur Definition dieser kollaborativen Workflows. Es ist die Geheimsauce, die das alles möglich macht. Die wichtigsten Abstraktionen sind: Agents: Diese sind die grundlegenden Bausteine, unsere individuellen Teammitglieder. AutoGen bietet verschiedene vordefinierte Agents wie UserProxyAgent (der Sie, den menschlichen Benutzer, oder im Namen handeln kann) und AssistantAgent (ein allgemeiner KI-Assistent). Der echte Spaß beginnt jedoch, wenn Sie benutzerdefinierte Agents mit spezifischen Fähigkeiten erstellen, die Ihren Bedürfnissen angepasst sind. Konversationen: Agents existieren nicht einfach isoliert; sie unterhalten sich gegenseitig! AutoGen erleichtert dies durch ein strukturiertes Konversationsmechanismus, bei dem sie Nachrichten austauschen und Aufgaben ausführen. Dieses konversationsgestützte Paradigma ermöglicht dynamische Problemlösungen und iterative Verfeinerungen – es ist wie ein hoch effizientes Brainstorming. Tools und Funktionen: Dies ist der Bereich, in dem Agents ihre Superkräfte bekommen. Sie können mit Tools (im Wesentlichen Python-Funktionen) ausgestattet werden, die ihre Fähigkeiten über reine Kommunikation hinaus erweitern. So können Agents mit externen Systemen interagieren, Berechnungen durchführen, im Web stöbern oder Dateien verwalten. Unser Beispiel zeigt dies mit den Funktionen browse_web und read_file_content/write_file_content. Diese kooperative Architektur macht AutoGen besonders geeignet, um fortschrittliche KI-Anwendungen zu erstellen, die sich anpassen und weiterentwickeln können, um eine Vielzahl von Aufgaben zu lösen. Jetzt legen wir los und sehen uns an, wie wir dies in einem Produktionsumfeld mit Azure realisieren. Architektur für die Produktion: AutoGen auf Azure Das Bau eines produktionsreifen Mehragentensystems geht tiefer als das Schreiben cleverer Agentenlogik; es erfordert die Gestaltung einer robusten, sicheren und skalierbaren Infrastruktur. Stellen Sie sich vor, einen Wolkenkratzer zu bauen – Sie würden nicht einfach Steine stapeln. Sie brauchen eine solide Grundlage, einen gut durchdachten Bauplan und die richtigen Materialien. Azure bietet eine umfangreiche Palette von Diensten, die perfekt zu AutoGen passen und es ermöglichen, Ihre Mehragentenanwendungen mit Zuversicht zu bereitstellen und zu verwalten. Hier ist eine hohe Übersicht über eine typische Architektur, unser Bauplan für den Erfolg: AutoGen Mehragentensystem-Kern: Das Gehirn des Ganzen User Proxy Agent: Dieser Agent ist die freundliche Schnittstelle zwischen dem menschlichen Benutzer (oder einem externen System wie einem CRM oder einem Chatbot) und Ihrem Mehragententeam. In einer Produktionsumgebung könnte er in eine ansprechende Webanwendung, ein konversationsgestütztes KI-Interface oder einen API-Endpoint integriert werden. Seine Aufgabe besteht darin, Benutzeranfragen elegant entgegenzunehmen und sie an die entsprechenden Agents weiterzuleiten. Assistant Agent: Betrachten Sie diesen als den zentralen Koordinator, den Dirigenten Ihres KI-Orchesters. Er interpretiert Benutzeranfragen, trifft strategische Entscheidungen darüber, welche spezialisierten Tool-Agents eingesetzt werden sollen, und synthezisiert ihre Antworten zu einem kohärenten Ergebnis. Dieser Agent ruft in der Regel den Large Language Model (LLM)-Service auf, steuert die Konversation und die Aufgabenabwicklung. Tool Agents (Web-Browser, Datei-Handler, etc.): Diese sind Ihre spezialisierten Fachleute, jeder mit einem einzigartigen Satz von Fähigkeiten. In unserem Beispiel haben wir einen Web-Browser-Agent, der Informationen sucht, und einen Datei-Handler-Agent, der Daten verwalten kann. In der Praxis könnten dies auch Datenbank-Agents, API-Integration-Agents, Datenanalyse-Agents oder Agents sein, die mit Legacy-Systemen interagieren. Die Schönheit liegt darin, spezifische Fähigkeiten in dedizierte, handhabbare Agents zu kapseln. Es ist wie ein Team von Experten, jeder brilliert in seinem Spezialgebiet. Azure-Dienste für die Produktionsreife: Ihr Unternehmens-Toolkit Azure OpenAI Service: Hier leisten Ihre Large Language Models (LLMs) in einem Unternehmenskontext wirklich Großes. Durch die Verwendung von Azure OpenAI erhalten Sie nicht nur Zugang zu mächtigen Modellen, sondern auch Unternehmenssicherheit, Compliance-Zertifizierungen und die Möglichkeit, zuverlässig zu skalieren. Besonders wichtig sind die privaten Netzwerkfähigkeiten, die sicherstellen, dass Ihre sensiblen Daten und Prompts innerhalb Ihrer Azure-Umgebung bleiben und strengen Datenschutzrichtlinien entsprechen. Es ist der Frieden, den Sie für Ihre Daten benötigen. Azure Kubernetes Service (AKS): Für die skalierbare und widerstandsfähige Bereitstellung Ihrer AutoGen-Anwendung ist AKS unverzichtbar. Es ermöglicht es Ihnen, Ihre Agents in Containern zu verpacken und als Microservices bereitzustellen. Dies bedeutet, Sie können horizontal skalieren, ohne Schweiß zu produzieren – denken Sie an das Handhaben eines plötzlichen Ansturms an Benutzeranfragen. Zudem bietet es automatische Rollouts und selbstheilende Fähigkeiten, sodass Ihr System von selbst Fehlern begegnen kann, ohne manuelle Interventionen. Es ist der Rückgrat eines wirklich robusten Systems. Azure Key Vault: Lassen Sie uns das Thema Geheimnisse besprechen – API-Schlüssel, Datenbankanmeldeinformationen, sensible Konfigurationen. Sie würden Ihre Hausschlüssel doch nicht unter der Matte liegen lassen, oder? Azure Key Vault ist Ihre digitale Fort Knox für die sichere Speicherung und Verwaltung aller kritischen Informationen. Durch die Zentralisierung der Geheimnisverwaltung reduzieren Sie das Risiko, dass Anmeldeinformationen in Code- oder Konfigurationsdateien bloßgelegt werden. Sicherheit ist hier nicht verhandelbar. Azure Monitor: In jedem komplexen System ist es wichtig zu wissen, was unter der Haube passiert. Azure Monitor ist Ihr allsehendes Auge, das umfassend überwacht, Protokolle erstellt und Warnungen auslöst. Es sammelt sorgfältig Telemetriedaten aus Ihrem AKS-Cluster, Ihren Agents und allen anderen Azure-Diensten, wodurch Ihnen wertvolle Einblicke in die Leistung, Gesundheit und potenzielle Probleme geboten werden. Dies ermöglicht es Ihnen, proaktiv Engpässe oder Fehler zu identifizieren und zu beheben, bevor sie zu größeren Problemen werden. Es ist Ihr Frühwarnsystem. Azure Storage (z.B. Blob Storage, Azure Files): Für die dauerhafte Speicherung von Daten, die von Ihren Agents generiert oder verbraucht werden, bietet Azure Storage eine vielseitige Palette von Optionen. Dies kann umfasst Konversationshistorien, verarbeitete Daten, Zwischendateien oder die endgültigen Ergebnisse der Arbeit Ihrer Agents. Azure Storage bietet verschiedene Optionen mit unterschiedlichen Leistungs- und Kostenmerkmalen, sodass Sie die perfekte Lösung für Ihre spezifischen Bedürfnisse wählen können – ob es um hocheffizienten Zugriff oder kosteneffektives Archivieren geht. Es ist der Ort, an dem die Erinnerungen und Arbeitsprodukte Ihrer Agents leben. Diese Architektur ist keine einfache Sammlung von Diensten; es ist ein sorgfältig ausgewähltes Ensemble, das eine solide Grundlage für Mehragentensysteme bietet, die nicht nur mächtig und intelligent, sondern auch den strengen Anforderungen von Unternehmensanwendungen an Sicherheit, Skalierbarkeit und Zuverlässigkeit gerecht werden. Es geht darum, etwas zu bauen, das halten und unter Druck leisten kann. Musteranwendung: Ein kleines Mehragentensystem Um diese Konzepte wirklich zu begreifen, gibt es nichts Besseres, als sich ein wenig mit Code beschäftigen. Also, gehen wir durch eine vereinfachte Mehragentenanwendung, die mit AutoGen erstellt wurde. Diese kleine App demonstriert, wie ein UserProxyAgent mit einem AssistantAgent interagieren kann, der schlau benutzerdefinierte Tools für Webbrowsing und Dateiverwaltung nutzt. Obwohl es ein vereinfachtes Beispiel ist, denken Sie daran, dass es die grundlegende Baueinheit für komplexere, produktionsreife Systeme ist, die Sie in Zukunft bauen könnten. Das Kernkonzept: Ein Mini-Forschungsteam Unsere Musteranwendung zielt darauf ab, eine alltägliche Aufgabe zu automatisieren, die viele von uns kennen: Informationen zu einem Thema finden, sie zusammenfassen und die Zusammenfassung in eine Datei speichern. Es ist wie Ihr eigenes kleines Forschungsteam! Die Agents werden nahtlos zusammenarbeiten, um dies zu erreichen: Admin (User Proxy Agent): Dies sind Sie oder vielmehr Ihr digitales Pendant. Er initiiert die Aufgabe und wartet geduldig auf die endgültige, polierte Ausgabe. Assistant (Assistant Agent): Dies ist unser fleißiger Forscher und Koordinator. Er nimmt Ihre Anfrage entgegen, entscheidet, wann seine spezialisierten Tools verwendet werden sollen, und interagiert mit dem mächtigen LLM, um die Aufgabe zu erledigen. Web-Browser (Tool): Unser digitales Bibliothekar. Er simuliert das Suchen im weiten Internet nach Informationen. (In einer realen Anwendung würde dies an eine mächtige Such-API angebunden sein, denken Sie an Bing Search API oder Google Custom Search API.) Datei-Handler (Tool): Unser sorgfältiger Notizzettel- und Archivar. Er simuliert das Lesen und Schreiben von Inhalten in eine Datei, um sicherzustellen, dass unsere Ergebnisse ordentlich organisiert sind. Projektstruktur: Alles ordentlich aufgeräumt Wie bei jedem guten Projekt werden wir unsere Dateien organisiert halten. Unser Projekt hat eine einfache, leicht navigierbare Struktur: requirements.txt: pyautogen~=0.2.0 OAI_CONFIG_LIST.json: Die Adressbuch-Ihres LLM. Diese Datei enthält die Angaben, wie Ihre Agents mit den Large Language Models kommunizieren. Für Azure OpenAI beinhaltet sie Ihren API-Schlüssel, die Basis-URL, den API-Typ und die API-Version. Ein wichtiger Hinweis: Ersetzen Sie alle Platzhalterwerte durch Ihre tatsächlichen, sensiblen Azure OpenAI-Details. Behandeln Sie diese wie Ihre Hausschlüssel! json [ { "model": "gpt-4o", "api_key": "<<your-api-key>>", "base_url": "https://<<your-azure-openai-resource>>.openai.azure.com/", "api_type": "azure", "api_version": "2024-08-01-preview" } ] app.py: Der Mehragenten-Orchestrator, wo der Zauber geschieht. ```python autogen_sample_app/app.py import autogen Konfiguration für die Agents config_list = autogen.config_list_from_json( "OAI_CONFIG_LIST", filter_dict={ "model": ["gpt-4o"], }, ) Erstellen einer UserProxyAgent-Instanz user_proxy = autogen.UserProxyAgent( name="Admin", llm_config={"config_list": config_list, "model": "gpt-4o"}, system_message="Ein menschlicher Administrator. Interagiere mit dem Assistant, um Aufgaben zu lösen. Du kannst den Assistant bitten, Code zu schreiben, Shell-Befehle auszuführen und Tools zu verwenden. Wenn der Assistant Code bereitstellt, führe ihn aus.", code_execution_config={"last_n_messages": 3, "work_dir": "coding", "use_docker": False}, is_termination_msg=lambda x: str(x.get("content", "")).rstrip().endswith("TERMINATE"), human_input_mode="NEVER", # Setze auf "ALWAYS" für menschliche Interaktion ) Erstellen einer AssistantAgent-Instanz assistant = autogen.AssistantAgent( name="Assistant", llm_config={"config_list": config_list, "model": "gpt-4o"}, system_message="Du bist ein hilfsbereiter KI-Assistent. Du kannst Python-Code schreiben und ausführen sowie Webbrowsing- und Dateiverwaltungstools nutzen. Nutze die bereitgestellten Tools für Dateioperationen, anstatt rohen Code zu erzeugen.", ) Definieren eines Webbrowsertools (vereinfacht für die Demonstration) def browse_web(query: str) -> str: """Simuliert Web-Surfen und gibt ein Suchergebnis zurück.""" # In einer realen Anwendung würde dies mit einer Web-Such-API (z.B. Bing Search, Google Search) verbunden sein return f"Simuliertes Suchergebnis für: {query}.\n\n" \ f"Für realweltliche Szenarien, integriere mit einer robusten Web-Such-API." Definieren eines Dateiverwaltungstools zum Lesen von Inhalten def read_file_content(file_path: str) -> str: """Liest Inhalt von einem angegebenen Dateipfad.""" try: with open(file_path, "r") as f: content = f.read() return f"Inhalt von {file_path}:\n{content}" except FileNotFoundError: return f"Fehler: Datei nicht gefunden unter {file_path}" Definieren eines Dateiverwaltungstools zum Schreiben von Inhalten def write_file_content(file_path: str, content: str) -> str: """Schreibt Inhalt in einen angegebenen Dateipfad. Überschreibt die Datei, falls sie bereits existiert.""" try: with open(file_path, "w") as f: f.write(content) return f"Inhalt erfolgreich in {file_path} geschrieben." except Exception as e: return f"Fehler beim Schreiben in die Datei {file_path}: {e}" Registrieren der Tools beim Assistant assistant.register_for_llm(name="browse_web", description="Simuliert Web-Surfen.")(browse_web) assistant.register_for_llm(name="read_file_content", description="Liest Inhalt aus einer Datei.")(read_file_content) assistant.register_for_llm(name="write_file_content", description="Schreibt Inhalt in eine Datei.")(write_file_content) Beispiel-Aufgabe für die Agents def run_conversation(): user_proxy.initiate_chat( assistant, message=""" Bitte führe die folgenden Aufgaben aus: 1. Suche im Web nach 'neueste Trends in der KI-Sicherheit'. 2. Erstelle eine Datei namens 'ai_security_notes.txt' und schreibe eine Zusammenfassung der Suchergebnisse hinein. 3. Lies den Inhalt von 'ai_security_notes.txt' und zeige ihn an. """ ) if name == "main": run_conversation() ``` Wichtige Aspekte von app.py: Den Code sezieren UserProxyAgent: Unser Admin-Agent. Er ist konfiguriert, Code auszuführen (code_execution_config), was sehr praktisch ist. Sie können human_input_mode="NEVER" für vollautomatische Abläufe (perfekt für die Produktion!) setzen oder "ALWAYS" für interaktive Debugging-Sessions. Das is_termination_msg-Lambda ist eine nützliche Funktion, die das Gespräch beendet, wenn der Assistant das Signal gibt, dass er fertig ist – kein langes Warten hier! AssistantAgent: Unser Assistant-Agent. Sein system_message ist wie seine Jobbeschreibung, die seine Rolle und Fähigkeiten klar definiert. Er ist darauf ausgelegt, schlau mit Tools umzugehen und die Fähigkeiten zu nutzen, die ihm zur Verfügung gestellt werden. Benutzerdefinierte Tools (browse_web, read_file_content, write_file_content): Diese Python-Funktionen sind die Schnittstellen, über die unsere Agents mit der Außenwelt interagieren. In diesem Demo sind sie vereinfacht, aber in einer realen Produktionsumgebung würde browse_web eine sophistizierte Integration mit einer Such-API (wie Bing Search API oder Google Custom Search API) sein, und read_file_content / write_file_content würden mit einem robusten Speicherlösung (wie Azure Blob Storage oder Azure Files) arbeiten, anstelle des lokalen Dateisystems. Das register_for_llm-Decorator macht diese Funktionen für den Assistant-Agent verfügbar – es ist wie ihnen eine neue Superkraft zu geben! run_conversation(): Diese Funktion ist der Startschuss. Sie initiert das Gespräch zwischen unseren Admin- und Assistant-Agents und übergibt die anfängliche Aufgabe. Von da an übernehmen die Agents die Kontrolle, unterhalten sich autonom und nutzen ihre Tools, um die Aufgabe zu erledigen. Es ist faszinierend, ihnen bei der Arbeit zuzusehen! Diese Konfiguration ermöglicht eine klare Trennung der Verantwortlichkeiten: Die Agents kümmern sich um das Denken und Orchestrieren, während die Tools die spezifischen Funktionalitäten bieten, die zur Interaktion mit der Außenwelt erforderlich sind. Diese Modularität ist nicht nur gute Praxis, sondern entscheidend für die Skalierbarkeit, Wartbarkeit und letztendlich den Erfolg von Mehragentensystemen. Es ist wie mit LEGO-Baukästen – jedes Teil hat einen klaren Zweck, und Sie können Teile austauschen oder neue hinzufügen, wie Sie es benötigen. Anwendung ausführen und Zusammenarbeit beobachten Mit app.py, OAI_CONFIG_LIST und requirements.txt alles ordentlich angeordnet, ist das Ausführen der Anwendung erstaunlich einfach. Es ist wie die Bühnenvorbereitung für eine große Show! Zuerst stellen Sie sicher, dass Python und pip installiert sind (wenn Sie dies lesen, nehme ich an, dass dies der Fall ist!). Dann navigieren Sie im Terminal zu dem Verzeichnis autogen_sample_app und installieren die Abhängigkeiten: bash pip install -r requirements.txt Danach ist es Vorhang auf! Führen Sie das app.py-Skript aus: bash python app.py Was zu erwarten ist: Beim Ausführen der Anwendung sehen Sie nicht nur statische Ausgaben, sondern beobachten eine dynamische, fast konversationsartige Interaktion zwischen unseren Admin- und Assistant-Agents. Es ist faszinierend, ihnen bei der Zusammenarbeit zuzusehen. Der Assistant startet die Aktion, indem er das browse_web-Tool nutzt, um nach „neueste Trends in der KI-Sicherheit“ zu suchen. Dann fährt er mit dem write_file_content-Tool fort, um die Zusammenfassung in ai_security_notes.txt zu schreiben. Schließlich verwendet er das read_file_content-Tool, um den Inhalt anzuzeigen. Die exakte Konversation hängt natürlich von den kreativen Antworten des LLMs und den simulierten Tool-Ausgaben ab, aber das Muster der Interaktion und der Tool-Aufrufe bleibt konsistent. Hier ist eine vereinfachte Darstellung dessen, was Sie in der Konsole sehen könnten: ``` Admin (an Assistant): Bitte führe die folgenden Aufgaben aus: 1. Suche im Web nach 'neueste Trends in der KI-Sicherheit'. 2. Erstelle eine Datei namens 'ai_security_notes.txt' und schreibe eine Zusammenfassung der Suchergebnisse hinein. 3. Lies den Inhalt von 'ai_security_notes.txt' und zeige ihn an. Assistant (an Admin): * Vorgeschlagener Tool-Aufruf (call_xxxxxxxxxxxxxxxxxxx): browse_web *** Argumente: {"query": "neueste Trends in der KI-Sicherheit"} Admin (an Assistant): * Antwort auf Tool-Aufruf (call_xxxxxxxxxxxxxxxxxxx) *** Simuliertes Suchergebnis für: neueste Trends in der KI-Sicherheit. Für realweltliche Szenarien, integriere mit einer robusten Web-Such-API. Assistant (an Admin): Okay, ich habe nach 'neueste Trends in der KI-Sicherheit' gesucht. Hier ist eine Zusammenfassung der Haupttrends. Ich werde dies jetzt in 'ai_security_notes.txt' schreiben. * Vorgeschlagener Tool-Aufruf (call_yyyyyyyyyyyyyyyyyyy): write_file_content Argumente: {"file_path": "ai_security_notes.txt", "content": "### Neueste Trends in der KI-Sicherheit\n1. *Adversarial Machine Learning: Techniken, bei denen Angreifer subtile Störungen in Eingabedaten erzeugen, um KI-Modelle zu täuschen...\n2. Erklärbare KI (XAI): Entwicklung von KI-Methoden, die sicherstellen, dass Entscheidungen der Modelle transparent und verständlich sind...\n3. KI-gesteuerte Cybersicherheits-Tools: Nutzung von KI, um Sicherheitsbedrohungen in Echtzeit zu erkennen, zu verhindern und zu beheben...\n4. Ethische KI und Bias-Minderung: Sicherstellung, dass KI-Modelle fair und unvoreingenommen sind, um diskriminierende Auswirkungen zu vermeiden...\n5. Federated Learning: Machine-Learning-Ansatz, der einen Algorithmus über dezentrale Geräte trainiert, die lokale Datensätze halten...\n6. Regulierungen und Compliance: Umsetzung neuer Vorschriften und Standards zur Regulierung und Bereitstellung von KI-Technologien...\n7. Zero Trust Architektur: Sicherheitsmodell, das davon ausgeht, dass Bedrohungen sowohl außerhalb als auch innerhalb des Netzwerks auftreten können...\n8. KI für Vorfallmanagement: Nutzung von KI, um Sicherheitsvorfälle schnell zu analysieren und automatisierte Reaktionen zu orchestrieren..."} Admin (an Assistant): * Antwort auf Tool-Aufruf (call_yyyyyyyyyyyyyyyyyyy) *** Inhalt erfolgreich in ai_security_notes.txt geschrieben. Assistant (an Admin): Super! Die Zusammenfassung wurde in 'ai_security_notes.txt' geschrieben. Ich werde nun den Inhalt der Datei lesen, um ihn anzuzeigen. * Vorgeschlagener Tool-Aufruf (call_zzzzzzzzzzzzzzzz): read_file_content *** Argumente: {"file_path": "ai_security_notes.txt"} Admin (an Assistant): * Antwort auf Tool-Aufruf (call_zzzzzzzzzzzzzzzz) Inhalt von ai_security_notes.txt:### Neueste Trends in der KI-Sicherheit1. *Adversarial Machine Learning: Techniken, bei denen Angreifer subtile Störungen in Eingabedaten erzeugen, um KI-Modelle zu täuschen...2. Erklärbare KI (XAI): Entwicklung von KI-Methoden, die sicherstellen, dass Entscheidungen der Modelle transparent und verständlich sind...3. KI-gesteuerte Cybersicherheits-Tools: Nutzung von KI, um Sicherheitsbedrohungen in Echtzeit zu erkennen, zu verhindern und zu beheben...4. Ethische KI und Bias-Minderung: Sicherstellung, dass KI-Modelle fair und unvoreingenommen sind, um diskriminierende Auswirkungen zu vermeiden...5. Federated Learning: Machine-Learning-Ansatz, der einen Algorithmus über dezentrale Geräte trainiert, die lokale Datensätze halten...6. Regulierungen und Compliance: Umsetzung neuer Vorschriften und Standards zur Regulierung und Bereitstellung von KI-Technologien...7. Zero Trust Architektur: Sicherheitsmodell, das davon ausgeht, dass Bedrohungen sowohl außerhalb als auch innerhalb des Netzwerks auftreten können...8. KI für Vorfallmanagement: Nutzung von KI, um Sicherheitsvorfälle schnell zu analysieren und automatisierte Reaktionen zu orchestrieren... Assistant (an Admin): Ich habe erfolgreich nach den neuesten Trends in der KI-Sicherheit gesucht, sie in 'ai_security_notes.txt' zusammengefasst und den Inhalt angezeigt. TERMINATE ``` Diese Interaktion zeigt die Fähigkeit von AutoGen, komplexe Workflows durch Agentenzusammenarbeit und Toolnutzung zu ermöglichen. Der Admin-Agent (unser UserProxyAgent) agiert als Ausführungsumgebung, führt die vom Assistant-Agent vorgeschlagenen Tool-Aufrufe aus. Diese dynamische Interaktion ist genau das, was AutoGen so mächtig macht, um Mehrschritt-Aufgaben zu automatisieren – es ist wie ein Team, das nicht nur denkt, sondern auch handelt! Azure-Bereitstellung: Von lokal zu produktionsreif Nun, da wir unser Mehragentensystem erstellt und die Architektur verstanden haben, bringen wir es von einem lokalen Proof-of-Concept zu einer produktionsreifen Bereitstellung auf Azure. Dies ist der Moment, wo der Reifen die Straße berührt, und wo all unsere Planungen Früchte tragen. Containerisierung: Packen für Portabilität Zuerst müssen wir unsere Anwendung containerisieren. Docker-Container bieten die Konsistenz und Portabilität, die wir für die Cloud-Bereitstellung benötigen: ```dockerfile Verwenden Sie Python 3.11 als Basisimage FROM python:3.11-slim Setzen Sie das Arbeitsverzeichnis WORKDIR /app Kopieren Sie zuerst die Anforderungen für besseres Caching COPY requirements.txt . Installieren Sie die Abhängigkeiten RUN pip install --no-cache-dir -r requirements.txt Kopieren Sie die Anwendungsdateien COPY app.py . COPY OAI_CONFIG_LIST . Erstellen Sie das Verzeichnis für die Agentenarbeit RUN mkdir -p coding Exponieren Sie den Port (falls nötig für eine zukünftige Web-Oberfläche) EXPOSE 8000 Starten Sie die Anwendung CMD ["python", "app.py"] ``` Kubernetes-Bereitstellung: Orchestrierung im großen Maßstab Für die Produktionsbereitstellung auf Azure Kubernetes Service (AKS) benötigen wir eine umfassende Kubernetes-Konfiguration. Hier ist unser Bereitstellungsmanifest: yaml apiVersion: apps/v1 kind: Deployment metadata: name: autogen-multi-agent labels: app: autogen-multi-agent spec: replicas: 3 selector: matchLabels: app: autogen-multi-agent template: metadata: labels: app: autogen-multi-agent spec: containers: - name: autogen-app image: your-acr-name.azurecr.io/autogen-multi-agent:latest ports: - containerPort: 8000 env: - name: AZURE_OPENAI_API_KEY valueFrom: secretKeyRef: name: azure-openai-secret key: api-key - name: AZURE_OPENAI_ENDPOINT valueFrom: secretKeyRef: name: azure-openai-secret key: endpoint resources: requests: memory: "512Mi" cpu: "250m" limits: memory: "1Gi" cpu: "500m" livenessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /ready port: 8000 initialDelaySeconds: 5 periodSeconds: 5 Sicherheitsaspekte Wenn Sie für die Produktion bauen, ist Sicherheit nicht nachträglich zu bedenken, sondern die Grundlage. Besonders bei KI-Systemen, die sensible Daten verarbeiten oder mit kritischer Infrastruktur interagieren, ist die Festigung Ihrer Mehragentenfestung entscheidend. Hier sind einige wichtige Überlegungen, die auf meinen eigenen Erfahrungen basieren: Datenschutz und Governance Azure OpenAI Service: Es geht nicht nur darum, ein mächtiges LLM zu nutzen, sondern auch dessen Unternehmenssicherheit zu nutzen. Azure OpenAI stellt sicher, dass Ihre Daten innerhalb Ihrer Azure-Tenant bleiben und datenschutzrechtlichen Anforderungen