LlmAgent
Konzentriertes Denken
Ein Modell, Anweisungen, Tools, Rückrufe und gestreamte Ausgaben – das kleine, nützliche Zentrum der meisten Systeme.
ADK-Rust vereint typisierte Agenten, Tools, dauerhaften Zustand, Echtzeitmedien und offene Protokolle in einer asynchronen Laufzeit – so können Sie von einem fokussierten Agenten zu einem System wechseln, das Sie sicher bedienen können.
Beginnen Sie mit der Arbeitseinheit
Ein Agent ist eine asynchrone Rust-Komponente. Es empfängt einen Aufrufkontext, führt Arbeiten mit Modellen oder Werkzeugen aus und gibt im weiteren Verlauf typisierte Ereignisse aus. LLM-Agenten, Workflows, Echtzeitagenten, Codierungsagenten und benutzerdefinierte Rust-Agenten nutzen alle diesen gemeinsamen Vertrag.
Das Besondere an ADK-Rust ist, dass der Agent Teil eines Softwaresystems bleibt, das Sie verstehen und steuern können. Modellaufrufe, Werkzeugeingaben, Zustandsänderungen, Genehmigungen und gestreamte Ereignisse verfügen über explizite Rust-Verträge. Dieselbe Laufzeit kann einen fokussierten Assistenten, einen dauerhaften Multi-Agenten-Workflow, ein Echtzeit-Spracherlebnis oder einen Agenten unterstützen, der dienstübergreifend arbeitet – und gleichzeitig die Leistung, Parallelität, Portabilität und Betriebsdisziplin bewahren, die Rust-Teams erwarten.
Wenn Sie LangGraph, Google ADK, OpenAI Agents SDK oder CrewAI kennen, werden Sie Tools, Übergaben, Workflows, Speicher, Leitplanken und Ablaufverfolgung erkennen. ADK-Rust bringt diese Ideen in eine Rust-native Laufzeit ein und verbindet sie mit Echtzeitmedien, Codeausführung, RAG, Artefakten und offenen Protokollen wie MCP, A2A, ACP und AWP. Version 2 erweitert diese Grundlage um Diagramm-, Echtzeit-, Codierungs- und CodeAct-Agenten; anbieterbewusste Tool-Schemata; zusammensetzbare Projektvorlagen und Fracht-Adk-Build; stärkere Zustands- und Betriebskontrollen; und ein konsistenter typisierter Ereignispfad vom ersten Modellaufruf bis zur Produktion.
Wie man die Architektur liest
Folgen Sie dem Diagramm von links nach rechts. Eine Produktoberfläche sendet eine Anfrage an den Runner. Der Runner hängt den Sitzungsstatus und den Aufrufkontext an und ruft dann den ausgewählten Agenten auf. Modelle, Tools und Status unterstützen die Arbeit, während typisierte Ereignisse Fortschritte und Ergebnisse zurücktragen.
Runner, Agenten, typisierte Ereignisse, Modell-/Tool-Schleifen, Sitzungen, Rückrufe, Übertragungen und Abbruch.
MCP, A2A, ACP, AWP, HTTP, SSE und Echtzeittransporte verbinden separate Systeme und Vertrauenszonen.
Studio, UI, Playground und die Steuerungsebene verbrauchen ADK-Rust; Sie laufen nicht im Runner.
Gerüstoberfläche
ADK-Rust vereint den gesamten Agentenlebenszyklus in einem Framework: Erstellen Sie das Verhalten des Agenten, stellen Sie ihm Tools zur Verfügung, bewahren Sie den Kontext auf, verbinden Sie ihn mit anderen Systemen und betreiben Sie ihn sicher in der Produktion. Die folgenden Gruppen zeigen, wie diese Fähigkeiten zusammenpassen.
Erstellen Sie LLM-, Workflow-, Diagramm-, Echtzeit- und Codierungsagenten. statten Sie sie mit typisierten Werkzeugen, MCP, RAG, Speicher, Sitzungen und Artefakten aus; verbinden Sie sie über REST, A2A, ACP und AWP; Fügen Sie dann Autorisierung, Leitplanken, Telemetrie und Auswertung für die Produktion hinzu.
Komponieren capability
The main model-driven agent. Give it instructions, an LLM, tools, callbacks, and optional sub-agents; the Runner streams its work as typed events.
Handeln capability
Turns a typed async Rust function into a model-callable tool and derives the argument schema from Rust types.
Denken Sie daran capability
Keep conversation events and application state together so a user can continue the same interaction over multiple turns.
Verbinden capability
Exposes familiar HTTP endpoints for clients that send a request and receive a structured response.
Betreiben capability
Establishes who is calling the system through API keys, OAuth, OIDC, SSO, and application identity.
Bauen capability
Generate working starting shapes for focused agents, tools, retrieval, APIs, workflows, realtime sessions, and custom logic.
Sehen Sie, wie es funktioniert
Der Runner löst die Sitzung auf, baut den Aufrufkontext auf, führt den Agenten aus, streamt die Modell- und Toolarbeit, wendet Zustandsänderungen an, behält dauerhafte Ereignisse bei und gibt dem Aufrufer den Fortschritt zurück, sobald dieser auftritt.
Derselbe Trail kann ein Terminal, eine Web-Benutzeroberfläche, einen API-Client, eine Auswertung oder eine Echtzeitkonversation speisen.
Folgen Sie einer echten Bitte
Ein Kunde fragt: „Warum ist meine Zahlung fehlgeschlagen?“ Der Runner öffnet die richtige Sitzung, streamt Modellausgaben und Toolaktivitäten, zeichnet Zustandsänderungen auf und gibt jedes nützliche Ereignis an die Schnittstelle zurück. Der Benutzer sieht den Fortschritt, während der Bediener eine vollständige Ausführungsaufzeichnung erhält.
Verfassen Sie das Verhalten
Ein Router identifiziert die Arbeit, die erledigt werden muss. Spezialisten kümmern sich um die Teile, die sie am besten verstehen. Sequentielle und parallele Arbeitsabläufe steuern die Ausführungsreihenfolge, während Diagrammkontrollpunkte dafür sorgen, dass Beweise, Genehmigungen und Fortschritt mit demselben Auftrag verknüpft sind.
LlmAgent
Ein Modell, Anweisungen, Tools, Rückrufe und gestreamte Ausgaben – das kleine, nützliche Zentrum der meisten Systeme.
Sequential · Parallel · Loop
Express-Bestellung, Parallelität, Wiederholung und Exit-Bedingungen direkt im Rust-Programm.
GraphAgent
Verzweigen, prüfen, unterbrechen, für eine Person ausführen und fortsetzen, nachdem der Prozess oder die Konversation fortgesetzt wurde.
CodingAgent · CodeActAgent
Lassen Sie einen Agenten Code innerhalb eines von Ihnen kontrollierten Arbeitsbereichs und einer Sandbox-Grenze prüfen, bearbeiten und ausführen.
RealtimeAgent
Übertragen Sie Audio, Transkripte, Videobilder, Unterbrechungen und serverseitige Tools über eine Live-Sitzung.
CustomAgent
Implementieren Sie den Agentenvertrag für produktspezifisches Verhalten, der direkt in Rust geschrieben ist.
Das System rund um den Agenten
Nützliche Agenten benötigen Werkzeuge, Zustände, Schnittstellen, Grenzen und Beweise. ADK-Rust macht jedes Teil über zusammensetzbare Rust-Schnittstellen verfügbar, die Sie besitzen.
Ein Produkt, mehrere Verantwortlichkeiten
In einem Kundensupportprodukt entwirft das Modell die Antwort, Tools überprüfen die Bestellung, die Sitzung überträgt den Kundenkontext, die Autorisierung steuert Rückerstattungen, ein Artefakt speichert die Quittung und die Telemetrie zeichnet das Ergebnis auf. Jede Verantwortung bleibt in der Laufzeit sichtbar.
Gehostete Frontier-Modelle, schnelle Routing-Modelle, lokales Ollama und native mistral.rs-Inferenz stehen hinter einem gemeinsamen LLM-Vertrag.
Gemini · OpenAI · Anthropic · OpenRouter · DeepSeek · Groq · Ollama · Bedrock · Azure AI · kompatible Endpunkte
Verwandeln Sie eine typisierte Rust-Funktion, einen MCP-Server, einen Skill, eine Browsersitzung, einen Coding-Agent oder einen Sandbox-Prozess in eine Funktion, die die Laufzeit prüfen und aufrufen kann.
#[tool] · FunctionTool · MCP · ACP · Fähigkeiten · Browser · Code
Sitzungen enthalten den Ereignisverlauf. Das Gedächtnis ruft nützliches Wissen ab. Artefakte bewahren Dateien. Graph-Checkpoints machen lange Arbeiten fortsetzbar.
SQLite · PostgreSQL · Redis · MongoDB · Firestore · Neo4j · verschlüsselte Sitzungen
ADK-Rust speichert Audio, Transkripte, Videobilder, Toolaufrufe, Unterbrechungen und wechselnden Kontext in einer Rust-eigenen Sitzung.
OpenAI Realtime · Gemini Live · Vertex Live · LiveKit · optionales WebRTC
Teilen Sie Dokumente in Blöcke auf, betten Sie sie ein, durchsuchen Sie Vektorspeicher, ordnen Sie Ergebnisse neu und isolieren Sie den Speicher nach Projekt, bevor das Modell antwortet.
RAG-Pipelines · Semantischer Speicher · Wissensgraph · Fünf Vektorspeicher-Implementierungen
Autorisierung, Rückrufe, Leitplanken, Sandbox-Profile, Stornierung, Telemetrie und Auswertung bilden die Grenze der Produktionsausführung.
RBAC · OAuth/OIDC · Werkzeugbestätigung · PII-Leitplanken · OpenTelemetry · eval
Wählen Sie die Grenze
Beginnen Sie dort, wo die Funktion ausgeführt wird.
Behalten Sie Subagenten innerhalb einer ADK-Rust-Laufzeit bei, wenn sie Bereitstellung, Status und Vertrauen teilen. Führen Sie ein Protokoll ein, wenn die Funktion, der Agent, der Codierungsarbeitsbereich oder die Website über eine eigene Bereitstellung, einen eigenen Prozess, einen eigenen Besitz oder eine eigene Vertrauensgrenze verfügt.
Gleicher Rust-Prozess
Agent, Subagent oder Tool
Externe Tools oder Ressourcen
MCP
Unabhängig eingesetzter Agent
A2A
Codierungsprozess oder IDE
ACP
Für Agenten lesbare Website
AWP
Modellkontextprotokoll
What is MCP?
Eine Standardmethode für einen externen Server zum Veröffentlichen von Tools, die ein Agent aufrufen kann, und Ressourcen, die er lesen kann.
Agent-zu-Agent-Protokoll
What is A2A?
Ein Netzwerkprotokoll zum Erkennen eines Remote-Agenten, zum Senden seiner Arbeit, zum Verfolgen des Fortschritts und zum Empfangen von Ergebnissen über eine HTTP-Grenze hinweg.
Agent-Client-Protokoll
What is ACP?
Ein Protokoll, das Sitzungen zwischen Codierungsagenten und den Clients standardisiert, die sie hosten, einschließlich Editoren, CLIs und Orchestrierungssystemen.
Agentisches Webprotokoll
What is AWP?
Ein Webprotokoll, über das eine Site veröffentlicht, wer sie ist, welche Agenten tun können, welche Richtlinien gelten und ob ihre agentenseitigen Dienste fehlerfrei sind.
Schnellstart für Entwickler
Beginnen Sie mit einem kleinen, funktionierenden Rust-Projekt. Die folgenden geführten Schritte erklären, was der Generator hinzufügt, wie Sie das Projekt lokal kompilieren und wo Sie es erweitern können, wenn Ihr Produkt wächst.
Was Sie am Ende haben werden
Ein kompilierter Rust-Agent mit einem typisierten Tool, einer interaktiven Launcher-Sitzung, Telemetrie-Setup, Sitzungs- und Leitplanken-Integrationspunkten und einer echten Modellantwort im Terminal. Das generierte Projekt ist eine gewöhnliche Rust-Quelle, die Sie lesen, ändern und erweitern können.
Bevor Sie beginnen
Auf Ihrer Maschine sind zwei Dinge erforderlich
Rust 1.95 oder neuer.
Mit Rustup installieren oder die stabile Toolchain aktualisieren.
Ein Schlüssel des Modells API.
Dieser Pfad verwendet GOOGLE_API_KEY; Später kann ein anderer Anbieter ausgewählt werden.
„cargo-adk“ fügt die Cargo-Adk-Befehle hinzu, die zum Erstellen, Überprüfen, Erstellen und Bereitstellen von Agent-Projekten verwendet werden.
cargo install cargo-adkBeginnen Sie mit einem Agenten, der typisierte Rust-Tools aufrufen kann. Fügen Sie Beobachtbarkeits-, Sitzungsstatus- und Leitplanken-Hooks hinzu, während das Projekt generiert wird.
cargo adk new support-agent --template tools \
--addon telemetry --addon sessions --addon guardrailsDas generierte Beispiel verwendet standardmäßig Gemini. Kopieren Sie die sichere Beispieldatei und platzieren Sie dann Ihren Schlüssel in der nicht verfolgten .env-Datei.
cd support-agent
cp .env.example .env
# set GOOGLE_API_KEY in .envDer Cargo Adk Build überprüft die generierten Abhängigkeiten, Funktionskombinationen, Rust-Typen und die Release-Binärdatei, ohne etwas bereitzustellen.
cargo adk buildStarten Sie die generierte Konsole, geben Sie eine Nachricht ein und sehen Sie sich dieselbe typisierte Laufzeit an, die später ein API, einen Workflow oder ein Echtzeitprodukt antreiben kann.
cargo runEinmal installieren
$ cargo install cargo-adkGenerieren Sie das Projekt
$ cargo adk new support-agent \
+ --template tools \
+ --addon telemetry \
+ --addon sessions \
+ --addon guardrailsKonfigurieren Sie das Modell
$ cd support-agent
cp .env.example .env
# Add GOOGLE_API_KEY to .envÜberprüfen und dann ausführen
$ cargo adk build
cargo run ADK-Rust — support-agent
Type a message to chat. Type 'exit' to quit.
You > Greet Ada casually.
[tool] greet({"name":"Ada","style":"casual"})
Hey Ada! What's up?
You > exit
Goodbye.Verstehe das Gerüst
Die Vorlage liefert die Form des Arbeitsagenten. Jedes Add-on stellt die erforderlichen Crate-Funktionen, Importe, Konfigurationen und einen expliziten Ort zum Abschluss der Integration bereit.
Vorlage
Erzeugt einen LLM-Agenten mit einer typisierten #[tool]-Funktion und der Schemavernetzung, die für Modell-Tool-Aufrufe erforderlich ist.
Add-on
Ermöglicht die OpenTelemetry-Integration, sodass Modell-, Tool- und Laufzeitarbeit nachverfolgt werden können.
Add-on
Fügt eine Sitzungsdienstverkabelung hinzu, sodass der Konversationsstatus über einen Modellaufruf hinaus bestehen bleiben kann.
Add-on
Fügt die Funktion und klare Hooks für Eingabevalidierung, Ausgabeprüfungen und Inhaltsfilterung hinzu.
Wählen Sie eine andere Ausgangsform
Wählen Sie die Form, die zum ersten nützlichen Werk passt. Vorlagen generieren bearbeitbare Rust-Quellen, Abhängigkeiten, Anbieterkonfigurationen und einen ausführbaren Einstiegspunkt.
llmAgentenvorlageErzeugt einen LlmAgentBuilder, ein Gemini-Modell-Setup, Anweisungen, ein sitzungsgestütztes Launcher und ein interaktives Terminal.
Wählen Sie dies, wenn
Wählen Sie es für Assistenten, Extraktion, Klassifizierung oder eine fokussierte Modell- und Werkzeugschleife.
Generierter Ausgangspunkt
Ein LLM-Agent · gestreamte Konsole · Anbieterkonfiguration
cargo adk new my-agent --template llmtoolsAgentenvorlageFügt src/tools.rs mit einer funktionierenden #[tool]-Funktion, typisierten Argumenten, JSON-Schemagenerierung und Registrierung auf dem LLM-Agenten hinzu.
Wählen Sie dies, wenn
Wählen Sie diese Option, wenn der Agent Berechnungen durchführen, Daten abrufen, Geschäftslogik aufrufen oder eine Aktion ausführen muss.
Generierter Ausgangspunkt
LlmAgent · Greet-Tool · serde · schemars · adk-tool
cargo adk new my-agent --template toolsragAgentenvorlageErstellt eine RAG-Pipeline mit Dokument-Chunking, Gemini-Einbettungen, einem In-Memory-Vektorspeicher, einem Beispieldokument und RagTool.
Wählen Sie dies, wenn
Wählen Sie es für Produktdokumentationen, Richtlinien, Forschungssammlungen oder Antworten, die auf privatem Material basieren.
Generierter Ausgangspunkt
RagPipeline · Chuncher · Einbettungen · Vektorsuche · RagTool
cargo adk new my-agent --template ragapiAgentenvorlageErstellt einen Axum-Server mit Integritäts-, Sitzungserstellungs- und gestreamten Ausführungsendpunkten rund um einen LLM-Agenten.
Wählen Sie dies, wenn
Wählen Sie diese Option, wenn eine Webanwendung, ein mobiler Client, ein Backend-Dienst oder eine Automatisierungsplattform den Agenten anruft.
Generierter Ausgangspunkt
Axum · REST-Routen · SSE-Antworten · In-Memory-Sitzungen
cargo adk new my-agent --template apia2aMusteraliasLöst sich nach dem a2a-Server-Muster auf und kombiniert einen LLM-Agenten mit Server- und Sitzungsfunktionen für den Agent-zu-Agent-Zugriff.
Wählen Sie dies, wenn
Wählen Sie diese Option, wenn ein anderer Agent diesen Agenten über eine Bereitstellungs- oder Besitzgrenze hinweg erkennen und anrufen muss.
Generierter Ausgangspunkt
A2A Server · Agentenidentität · Aufgabenbearbeitung · Sitzungen
cargo adk new my-agent --template a2agraphAgentenvorlageAktiviert die Diagrammfunktion und erstellt den Import- und Agent-Startpunkt für Knoten, Kanten, Prüfpunkte, Unterbrechungen und Wiederaufnahme.
Wählen Sie dies, wenn
Wählen Sie es für lang andauernde Arbeiten mit Zweigen, Genehmigungsschritten, Wiederherstellungen oder einem dauerhaften Ausführungsstatus.
Generierter Ausgangspunkt
Diagrammfunktion · Workflow-Agent · Topologie-Startpunkt
cargo adk new my-agent --template graphrealtimeAgentenvorlageErmöglicht Echtzeitunterstützung und schafft einen übersichtlichen Ausgangspunkt für Sprachagenten mit Echtzeitimporten und Anbieterkonfiguration.
Wählen Sie dies, wenn
Wählen Sie es für natürliche Konversation, Unterbrechung, Live-Übersetzung, Audio-Tools oder eingehende Videobilder.
Generierter Ausgangspunkt
Echtzeitfunktion · Sprachanweisungen · Transportstartpunkt
cargo adk new my-agent --template realtimesequentialWorkflow-VorlageErstellt Forscher- und Autorenagenten innerhalb eines SequentialAgent, sodass jede Stufe die von der vorherigen Stufe erstellte Arbeit erhält.
Wählen Sie dies, wenn
Wählen Sie diese Option, wenn der Prozess klare Phasen wie Sammeln, Analysieren, Entwurf, Überprüfen und Veröffentlichen hat.
Generierter Ausgangspunkt
Zwei LLM-Agenten · geordnete Ausführung · gemeinsamer Aufrufpfad
cargo adk new my-agent --template sequentialparallelWorkflow-VorlageErzeugt zwei spezialisierte Agenten innerhalb eines ParallelAgent und sammelt ihre Arbeit über einen übergeordneten Workflow.
Wählen Sie dies, wenn
Wählen Sie diese Option, wenn mehrere Untersuchungen mit derselben Eingabe beginnen und unabhängig voneinander abgeschlossen werden können.
Generierter Ausgangspunkt
Zwei LLM-Agenten · gleichzeitige Ausführung · aggregierte Ergebnisse
cargo adk new my-agent --template parallelloopWorkflow-VorlageErstellt einen Worker innerhalb von LoopAgent mit einem expliziten Abschlusssignal und einem Sicherheitslimit von fünf Iterationen.
Wählen Sie dies, wenn
Wählen Sie es für Entwurfs-, Kritik-, Reparatur-, Validierungs- oder Suchprozesse, die durch wiederholte Durchgänge verbessert werden.
Generierter Ausgangspunkt
LoopAgent Builder · Worker-Agent · Abschlussanweisung · maximale Iterationen
cargo adk new my-agent --template loopconditionalWorkflow-VorlageErzeugt technische und allgemeine Agenten innerhalb eines ConditionalAgent, der einen Pfad aus der eingehenden Anfrage auswählt.
Wählen Sie dies, wenn
Wählen Sie diese Option, wenn für Arbeitskategorien unterschiedliche Anweisungen, Tools, Modelle oder Fachspezialisten erforderlich sind.
Generierter Ausgangspunkt
ConditionalAgent · zwei Routen · LLM-basierte Auswahl
cargo adk new my-agent --template conditionalcustomAgentenvorlageErstellt einen MyAgent-Typ mit den Agent-Trait-Methoden und einer Ausführungsfunktion, die für Ihre eigene Rust-Ausführungslogik und Ihren eigenen Ereignisstrom bereit ist.
Wählen Sie dies, wenn
Wählen Sie es für deterministische Orchestrierung, vorhandene Zustandsmaschinen, Domänenlaufzeiten oder Verhalten, das eine vollständige Rust-Kontrolle erfordert.
Generierter Ausgangspunkt
Agentenmerkmalsgerüst · InvocationContext · EventStream-Einstiegspunkt
cargo adk new my-agent --template customDie CLI-Registrierung umfasst auch die anbieterspezifische openai Vorlage, fünf Unternehmensmuster, die basic und a2a Aliase und zusammensetzbare Funktionserweiterungen.
cargo adk templatescargo adk addonsStellen Sie zusammen, was Sie brauchen
Wählen Sie zunächst eine Vorlage für die Ausführungsform des Projekts. Wählen Sie dann eine Funktionsebene für die in die Binärdatei kompilierten Funktionen aus.
Funktionsebenen steuern Abhängigkeiten, Kompilierzeit, Binäroberfläche und die verfügbaren Framework-APIs. Persistente Datenbanken, MCP, Cloud Secret Manager und spezifische Echtzeittransporte bleiben explizite Optionen.
Agenten · Gemini · Runner · Sitzungen
Ein fokussierter Agent mit der kleinsten Standardoberfläche.
Tools · Speicher · Diagramm · Server · Authentifizierung · Auswertung · Telemetrie
Die meisten APIs, Workflow-Systeme und internen Agentenprodukte.
Echtzeitbasis · Browser · RAG · Zahlungen · AWP
Produkte, die eine umfassendere Interaktion und Interoperabilität benötigen.
Audio · Codeausführung · Sandbox
Entscheiden Sie sich für die umfassendsten lokalen und Ausführungsfunktionen.
adk-rust = { version = "2.0.0", features = ["standard"] }Erstellen Sie mit ADK-Rust
Ihr erster nützlicher Meilenstein ist eine Anfrage, ein sichtbarer Tool-Aufruf und eine Sitzung, die Sie verstehen. Der geführte Schnellstart erstellt diesen Weg. Fügen Sie von dort aus die Arbeitsabläufe, Zustände, Protokolle und Bedienelemente hinzu, die Ihr Produkt benötigt.