ADK-Rust का परिचय

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

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

इंस्टॉलेशन

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

cargo add adk-rust

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

[dependencies]
adk-rust = "2.1.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-3.7-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 कई प्रमुख प्रिमिटिव के आधार पर बनाया गया है, जो शक्तिशाली AI एजेंट बनाने के लिए एक साथ काम करते हैं:

एजेंट

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

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

टूल

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

  • FunctionTool: किसी भी async Rust फ़ंक्शन को टूल के रूप में रैप करता है
  • GoogleSearchTool: अंतर्निहित वेब खोज क्षमता
  • BrowserToolset: वेब ऑटोमेशन के लिए 46 WebDriver टूल (नेविगेशन, फ़ॉर्म, स्क्रीनशॉट आदि)
  • ExitLoopTool: LoopAgent में लूप समाप्ति को नियंत्रित करता है
  • McpToolset: एक MCP सर्वर से कनेक्ट करता है और समीक्षा किए गए टूल, संसाधन,
    प्रॉम्प्ट, पूर्णता, सदस्यताएँ, इलिसिटेशन और बातचीत द्वारा तय किए गए कार्यों को उपलब्ध कराता है
  • McpServerManager: एप्लिकेशन के चलने के दौरान स्थानीय MCP सर्वरों की बदलती रजिस्ट्री को जोड़ने, अपडेट करने, मॉनिटर करने, पुनः आरंभ करने, स्थायी बनाने और एकत्रित करने की सुविधा देता है

सत्र

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

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

कॉलबैक

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

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

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

आर्टिफैक्ट

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

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

इवेंट

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

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

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

मॉडल

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

  • Gemini: gemini-3.7-flash, gemini-3.6-flash, gemini-3.5-flash-lite
  • OpenAI: gpt-5.6-terra, gpt-5.6-sol, gpt-5.6-luna, Azure OpenAI परिनियोजन
  • Anthropic: claude-sonnet-5, claude-opus-5, claude-fable-5
  • DeepSeek: deepseek-v4-flash, deepseek-v4-pro
  • Groq: openai/gpt-oss-120b और openai/gpt-oss-20b के साथ अत्यंत तेज़ इनफ़रेंस
  • Ollama: qwen3.6:35b-a3b, qwen3.5, llama3.2:3b, deepseek-r1:14b के साथ स्थानीय इनफ़रेंस
  • mistral.rs: हार्डवेयर त्वरण के साथ उच्च-प्रदर्शन स्थानीय इनफ़रेंस

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

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

रनर

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

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

फ़ीचर फ़्लैग

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

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

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

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

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

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

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

उपलब्ध सुविधाएँ:

  • agents: एजेंट कार्यान्वयन (LlmAgent, CustomAgent, वर्कफ़्लो एजेंट)
  • models: मॉडल एकीकरण (Gemini)
  • openai: OpenAI मॉडल (GPT-5, GPT-5 Mini)
  • anthropic: Anthropic मॉडल (Claude 4.6, Claude 4.5)
  • deepseek: DeepSeek मॉडल (चैट, रीजनर)
  • groq: Groq अल्ट्रा-फ़ास्ट इनफ़रेंस
  • ollama: स्थानीय Ollama मॉडल
  • tools: टूल सिस्टम और अंतर्निहित टूल
  • sessions: सेशन प्रबंधन
  • artifacts: आर्टिफ़ैक्ट संग्रहण
  • memory: सिमेंटिक खोज और द्वि-कालिक नॉलेज-ग्राफ बैकएंड (GraphMemoryService) वाला मेमोरी सिस्टम
  • runner: एजेंट निष्पादन रनटाइम
  • server: HTTP सर्वर (REST + A2A)
  • telemetry: ट्रेसिंग हेल्पर; OTLP निर्यात करते समय ही telemetry-otlp जोड़ें
  • cli: CLI लॉन्चर; आवश्यकता होने पर ही cli-openai, cli-anthropic या कोई अन्य CLI प्रदाता सुविधा जोड़ें
  • mcp: adk-tool के लिए Model Context Protocol एकीकरण
  • record-payloads: पूर्ण ट्रेसिंग पेलोड कैप्चर के लिए ऑप्ट इन करें
  • graph: ग्राफ़-आधारित वर्कफ़्लो (मानक प्रीसेट)
  • realtime: वॉइस + मल्टीमॉडल स्ट्रीमिंग — OpenAI Realtime और Gemini Live, द्विदिश ऑडियो, वीडियो फ़्रेम, भावात्मक संवाद, सर्वर-साइड टूल (एंटरप्राइज़ प्रीसेट)
  • browser: ब्राउज़र ऑटोमेशन (एंटरप्राइज़ प्रीसेट)
  • eval: एजेंट मूल्यांकन (मानक प्रीसेट)
  • rag: RAG पाइपलाइन (एंटरप्राइज़ प्रीसेट)
  • code: कोड निष्पादन (पूर्ण प्रीसेट)
  • sandbox: सैंडबॉक्स किया गया निष्पादन (पूर्ण प्रीसेट)
  • audio: ऑडियो प्रोसेसिंग (पूर्ण प्रीसेट)

अन्य भाषाएँ

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


अगला: त्वरित शुरुआत →

ADK-Rust का परिचय - ADK-Rust दस्तावेज़ीकरण | ADK-Rust