ADK-Rust का परिचय

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

ध्यान दें: ADK-Rust v0.2.0 के लिए Rust 1.85.0 या उच्चतर की आवश्यकता है

स्थापना

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

cargo add adk-rust

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

[dependencies]
adk-rust = "0.2.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 मॉड्यूलरिटी और एक्स्टेंसिबिलिटी के लिए डिज़ाइन किए गए एक स्तरित आर्किटेक्चर का उपयोग करता है:

┌─────────────────────────────────────────────────────────────┐
│                    एप्लिकेशन लेयर                            │
│              CLI • REST सर्वर • वेब UI                      │
├─────────────────────────────────────────────────────────────┤
│                      रनर लेयर                                │
│           Agent निष्पादन • Context प्रबंधन               │
├─────────────────────────────────────────────────────────────┤
│                      Agent लेयर                              │
│    LlmAgent • CustomAgent • Workflow Agents                  │
├─────────────────────────────────────────────────────────────┤
│                     सर्विस लेयर                              │
│      Models • Tools • Sessions • Artifacts • Memory          │
└─────────────────────────────────────────────────────────────┘

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

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

एजेंट्स

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

  • LlmAgent: तर्क और निर्णय लेने के लिए एक लार्ज लैंग्वेज मॉडल का उपयोग करता है। यह अधिकांश उपयोग-मामलों के लिए प्राथमिक एजेंट प्रकार है।
  • RealtimeAgent: द्विदिश ऑडियो स्ट्रीमिंग के लिए OpenAI Realtime API या Gemini Live API का उपयोग करने वाले ध्वनि-सक्षम एजेंट्स।
  • GraphAgent: स्टेट प्रबंधन, चेकपॉइंटिंग और मानव-इन-द-लूप समर्थन के साथ LangGraph-शैली की वर्कफ़्लो ऑर्केस्ट्रेशन।
  • CustomAgent: आपको एजेंट के व्यवहार पर पूर्ण नियंत्रण के साथ कस्टम लॉजिक को लागू करने की अनुमति देता है।
  • वर्कफ़्लो एजेंट्स: निर्धारित एजेंट्स जो पूर्वनिर्धारित निष्पादन पथों का पालन करते हैं:
    • SequentialAgent: उप-एजेंट्स को क्रम में निष्पादित करता है
    • ParallelAgent: उप-एजेंट्स को समवर्ती रूप से निष्पादित करता है
    • LoopAgent: एक शर्त पूरी होने तक उप-एजेंट्स को पुनरावृत्ति से निष्पादित करता है

टूल्स

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

  • FunctionTool: किसी भी async Rust फ़ंक्शन को एक टूल के रूप में लपेटें
  • GoogleSearchTool: अंतर्निहित वेब खोज क्षमता
  • BrowserToolset: वेब ऑटोमेशन के लिए 46 WebDriver टूल्स (नेविगेशन, फ़ॉर्म, स्क्रीनशॉट आदि)
  • ExitLoopTool: LoopAgent में लूप समाप्ति को नियंत्रित करें
  • McpToolset: Model Context Protocol सर्वर के साथ एकीकरण

सेशन

सेशन एक ही बातचीत के संदर्भ को संभालते हैं, जिसमें शामिल हैं:

  • सेशन ID: बातचीत के लिए अद्वितीय पहचानकर्ता
  • Events: बातचीत का इतिहास (उपयोगकर्ता संदेश, एजेंट प्रतिक्रियाएँ, टूल कॉल)
  • State: स्कॉप किए गए उपसर्गों (app:, user:, temp:) के साथ बातचीत के लिए कार्यशील मेमोरी

कॉलबैक

कस्टम कोड जो एजेंट के निष्पादन में विशिष्ट बिंदुओं पर चलता है:

  • before_agent / after_agent: एजेंट आह्वान को रोकें
  • before_model / after_model: LLM कॉल को रोकें
  • before_tool / after_tool: टूल निष्पादन को रोकें

कॉलबैक लॉगिंग, गार्डरेल्स, कैशिंग और व्यवहार संशोधन को सक्षम करते हैं।

आर्टिफैक्ट्स

फ़ाइलों, छवियों, या अन्य गैर-पाठ सामग्री के लिए बाइनरी डेटा स्टोरेज:

  • वर्जनिंग के साथ आर्टिफैक्ट्स को सहेजें और लोड करें
  • नेमस्पेस स्कोपिंग (सेशन-स्तर या उपयोगकर्ता-स्तर)
  • प्लग करने योग्य स्टोरेज बैकएंड

इवेंट्स

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

  • उपयोगकर्ता संदेश
  • एजेंट प्रतिक्रियाएँ
  • टूल कॉल और परिणाम
  • स्टेट परिवर्तन

इवेंट्स बातचीत का इतिहास बनाते हैं और रीप्ले और डिबगिंग को सक्षम करते हैं।

मॉडल

अंतर्निहित LLM जो LlmAgents को शक्ति प्रदान करता है। ADK-Rust Gemini के लिए अनुकूलित है लेकिन Llm ट्रेट के माध्यम से कई प्रोवाइडर्स का समर्थन करता है:

  • Gemini: Google के Gemini मॉडल (gemini-3-pro-preview, gemini-2.5-flash, gemini-2.5-pro)
  • OpenAI: gpt-5.2, gpt-4o, gpt-4o-mini, Azure OpenAI
  • Anthropic: claude-sonnet-4-5, claude-opus-4-5, claude-sonnet-4
  • DeepSeek: deepseek-chat, deepseek-reasoner थिंकिंग मोड के साथ
  • Groq: अल्ट्रा-फास्ट इन्फरेंस के साथ llama-3.3-70b-versatile, mixtral-8x7b-32768
  • Ollama: स्थानीय इन्फरेंस के साथ llama3.2, qwen2.5, mistral, phi4
  • mistral.rs: हार्डवेयर त्वरण के साथ उच्च-प्रदर्शन स्थानीय इन्फरेंस

सभी प्रोवाइडर्स विनिमेय उपयोग के लिए समान ट्रेट को लागू करते हैं:

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 फ़ीचर का उपयोग करता है:

# Full installation (default)
adk-rust = "0.2.0"

# Minimal: Only agents + Gemini
adk-rust = { version = "0.2.0", default-features = false, features = ["minimal"] }

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

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

  • agents: Agent कार्यान्वयन (LlmAgent, CustomAgent, workflow agents)
  • models: Model एकीकरण (Gemini)
  • openai: OpenAI models (GPT-5, GPT-4o)
  • anthropic: Anthropic models (Claude 4.5, Claude 4)
  • deepseek: DeepSeek models (chat, reasoner)
  • groq: Groq अति-तेज अनुमान
  • ollama: स्थानीय Ollama models
  • tools: Tool सिस्टम और अंतर्निहित Tool
  • sessions: Session प्रबंधन
  • artifacts: Artifact भंडारण
  • memory: सिमेंटिक खोज के साथ Memory सिस्टम
  • runner: Agent निष्पादन रनटाइम
  • server: HTTP सर्वर (REST + A2A)
  • telemetry: OpenTelemetry एकीकरण
  • cli: CLI लॉन्चर

अन्य भाषाएँ

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


अगला: Quickstart →