ADK-Rust का परिचय

Agent Development Kit (ADK) एआई एजेंटों को विकसित और तैनात करने के लिए एक लचीला और मॉड्यूलर फ्रेमवर्क है। हालांकि यह Gemini और Google इकोसिस्टम के लिए अनुकूलित है, ADK मॉडल-अज्ञेय, डिप्लॉयमेंट-अज्ञेय है, और अन्य फ्रेमवर्क के साथ संगतता के लिए बनाया गया है। ADK को इस तरह डिज़ाइन किया गया था कि एजेंट विकास सॉफ़्टवेयर विकास जैसा महसूस हो, जिससे डेवलपर्स के लिए सरल कार्यों से लेकर जटिल वर्कफ़्लो तक की agentic आर्किटेक्चर बनाना, तैनात करना और orchestrate करना आसान हो जाए।

नोट: ADK-Rust के लिए Rust 1.95.0 या उससे उच्च संस्करण आवश्यक है।

स्थापना

ADK-Rust को अपने प्रोजेक्ट में जोड़ें:

cargo add adk-rust

या इसे अपने Cargo.toml में जोड़ें:

[dependencies]
adk-rust = "2.0.0"
tokio = { version = "1.40", features = ["full"] }

त्वरित उदाहरण

use adk_rust::prelude::*;
use std::sync::Arc;

#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;
    
    let agent = LlmAgentBuilder::new("assistant")
        .description("A helpful AI assistant")
        .model(Arc::new(model))
        .build()?;
    
    println!("Agent '{}' ready!", agent.name());
    Ok(())
}

आर्किटेक्चर अवलोकन

ADK-Rust मॉड्युलैरिटी और विस्तारयोग्यता के लिए डिज़ाइन की गई एक स्तरित आर्किटेक्चर का उपयोग करता है:

Rendering architecture…

मुख्य अवधारणाएँ

ADK-Rust कई प्रमुख प्रिमिटिव्स के आसपास बनाया गया है जो मिलकर शक्तिशाली एआई एजेंट बनाते हैं:

एजेंट

विशिष्ट कार्यों के लिए डिज़ाइन की गई मूलभूत वर्कर इकाई। ADK-Rust कई प्रकार के एजेंट प्रदान करता है:

  • LlmAgent: तर्क और निर्णय-निर्माण के लिए एक Large Language Model का उपयोग करता है। यह अधिकांश उपयोग मामलों के लिए प्राथमिक एजेंट प्रकार है।
  • RealtimeAgent: द्विदिश ऑडियो स्ट्रीमिंग के लिए OpenAI Realtime API या Gemini Live API का उपयोग करने वाले वॉइस-सक्षम एजेंट।
  • GraphAgent: state management, checkpointing, और human-in-the-loop समर्थन के साथ LangGraph-शैली का वर्कफ़्लो orchestration।
  • CustomAgent: आपको एजेंट व्यवहार पर पूर्ण नियंत्रण के साथ कस्टम लॉजिक लागू करने की अनुमति देता है।
  • वर्कफ़्लो एजेंट: नियतात्मक एजेंट जो पूर्वनिर्धारित execution paths का पालन करते हैं:
    • SequentialAgent: sub-agents को क्रम में निष्पादित करता है
    • ParallelAgent: sub-agents को समानांतर में निष्पादित करता है
    • LoopAgent: किसी शर्त के पूरी होने तक iterative रूप से sub-agents को निष्पादित करता है

टूल

टूल एजेंटों को बातचीत से परे क्षमताएँ देते हैं, जिससे वे बाहरी APIs के साथ इंटरैक्ट कर सकते हैं, जानकारी खोज सकते हैं, या कस्टम ऑपरेशन कर सकते हैं:

  • FunctionTool: किसी भी async Rust फ़ंक्शन को एक tool के रूप में wrap करें
  • GoogleSearchTool: अंतर्निहित web search क्षमता
  • BrowserToolset: web automation के लिए 46 WebDriver tools (navigation, forms, screenshots, आदि)
  • ExitLoopTool: LoopAgent में control loop termination
  • McpToolset: एक MCP server से connect करें और reviewed tools, resources, prompts, completion, subscriptions, elicitation, और negotiated tasks expose करें
  • McpServerManager: application चलते समय local MCP servers की बदलती registry को add, update, monitor, restart, persist, और aggregate करें

Sessions

Sessions एक single conversation के context को संभालते हैं, जिसमें शामिल है:

  • Session ID: conversation के लिए unique identifier
  • Events: conversation history (user messages, agent responses, tool calls)
  • State: scoped prefixes (app:, user:, temp:) के साथ conversation के लिए working memory

Callbacks

विशिष्ट बिंदुओं पर चलने वाला custom code, जो agent के execution में run होता है:

  • before_agent / after_agent: agent invocations को intercept करें
  • before_model / after_model: LLM calls को intercept करें
  • before_tool / after_tool: tool executions को intercept करें

Callbacks logging, guardrails, caching, और behavior modification को सक्षम करते हैं।

Artifacts

files, images, या अन्य non-text content के लिए binary data storage:

  • versioning के साथ artifacts को save और load करें
  • namespace scoping (session-level या user-level)
  • pluggable storage backends

Events

session के दौरान होने वाली चीज़ों का प्रतिनिधित्व करने वाली communication की मूल इकाई:

  • User messages
  • Agent responses
  • Tool calls and results
  • State changes

Events conversation history बनाते हैं और replay तथा debugging को सक्षम करते हैं।

Models

वह underlying LLM जो LlmAgents को power देता है। ADK-Rust Gemini के लिए optimized है, लेकिन Llm trait के माध्यम से कई providers का समर्थन करता है:

  • Gemini: Google के Gemini models (gemini-3-pro, gemini-3-flash, gemini-2.5-flash, gemini-2.5-pro)
  • OpenAI: gpt-5.1, gpt-5, gpt-5-mini, Azure OpenAI
  • Anthropic: claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5
  • DeepSeek: deepseek-r1, deepseek-v3.1, deepseek-chat thinking mode के साथ
  • Groq: llama-4-scout, llama-3.1-70b-versatile, mixtral-8x7b-32768 के साथ ultra-fast inference
  • Ollama: qwen3.6:35b-a3b, qwen3.5, llama3.2:3b, deepseek-r1:14b के साथ local inference
  • mistral.rs: hardware acceleration के साथ high-performance local inference

सभी providers interchangeably उपयोग के लिए same trait implement करते हैं:

pub trait Llm: Send + Sync {
    async fn generate(&self, request: LlmRequest) -> Result<LlmResponse>;
    async fn generate_stream(&self, request: LlmRequest) -> Result<LlmResponseStream>;
}

Runner

निष्पादन प्रवाह को प्रबंधित करने, एजेंट इंटरैक्शनों का ऑर्केस्ट्रेशन करने, और बैकएंड सेवाओं के साथ समन्वय करने वाला इंजन। Runner निम्नलिखित को संभालता है:

  • एजेंट आह्वान और प्रतिक्रिया प्रसंस्करण
  • टूल निष्पादन
  • सत्र और स्थिति प्रबंधन
  • इवेंट स्ट्रीमिंग

फ़ीचर फ़्लैग्स

ADK-Rust मॉड्युलैरिटी के लिए Cargo features का उपयोग करता है। चार प्रीसेट नियंत्रित करते हैं कि कौन-से crates संकलित किए जाते हैं:

# Minimal (default) — Gemini, agents, runner, sessions
adk-rust = "2.0.0"

# Standard — adds tools, memory, telemetry, server, auth, graph, eval, guardrail, plugins, artifacts, skills
adk-rust = { version = "2.0.0", features = ["standard"] }

# Enterprise — standard + realtime, browser, RAG, payments, AWP
adk-rust = { version = "2.0.0", features = ["enterprise"] }

# Full — enterprise + audio, code execution, sandbox
adk-rust = { version = "2.0.0", features = ["full"] }

# Equivalent explicit minimal selection
adk-rust = { version = "2.0.0", default-features = false, features = ["minimal"] }

# Custom: Pick what you need
adk-rust = { version = "2.0.0", default-features = false, features = ["agents", "gemini", "tools"] }

उपलब्ध फ़ीचर्स:

  • agents: एजेंट कार्यान्वयन (LlmAgent, CustomAgent, workflow agents)
  • models: मॉडल इंटीग्रेशन (Gemini)
  • openai: OpenAI models (GPT-5, GPT-5 Mini)
  • anthropic: Anthropic models (Claude 4.6, Claude 4.5)
  • deepseek: DeepSeek models (chat, reasoner)
  • groq: Groq ultra-fast inference
  • ollama: Local Ollama models
  • tools: टूल सिस्टम और built-in tools
  • sessions: सत्र प्रबंधन
  • artifacts: आर्टिफ़ैक्ट संग्रहण
  • memory: semantic search और bi-temporal knowledge-graph backend (GraphMemoryService) के साथ मेमोरी सिस्टम
  • runner: एजेंट निष्पादन रनटाइम
  • server: HTTP सर्वर (REST + A2A)
  • telemetry: tracing helpers; केवल OTLP export करते समय telemetry-otlp जोड़ें
  • cli: CLI launcher; केवल आवश्यकता होने पर cli-openai, cli-anthropic, या कोई अन्य CLI provider फ़ीचर जोड़ें
  • mcp: adk-tool के लिए Model Context Protocol इंटीग्रेशन
  • record-payloads: पूर्ण tracing payload capture सक्षम करें
  • graph: ग्राफ-आधारित workflows (standard preset)
  • realtime: वॉइस + मल्टीमोडल स्ट्रीमिंग — OpenAI Realtime & Gemini Live, bidirectional audio, video frames, affective dialogue, server-side tools (enterprise preset)
  • browser: ब्राउज़र ऑटोमेशन (enterprise preset)
  • eval: एजेंट मूल्यांकन (standard preset)
  • rag: RAG pipeline (enterprise preset)
  • code: कोड निष्पादन (full preset)
  • sandbox: सैंडबॉक्स्ड निष्पादन (full preset)
  • audio: ऑडियो प्रसंस्करण (full preset)

अन्य भाषाएँ

ADK कई भाषाओं में उपलब्ध है:


अगला: Quickstart →