क्विकस्टार्ट
5 मिनट से कम में अपना पहला AI agent बनाएं।
आवश्यकताएँ
- Rust 1.95.0 या बाद का संस्करण (
rustup update stable) - एक Google API key (यहाँ से प्राप्त करें)
चरण 1: अपना Project Scaffold करें
cargo install cargo-adk
cargo adk new my_agent
cd my_agent
यह सही dependencies और boilerplate के साथ एक working project बनाता है।
Other Templates
# Agent with custom tools using #[tool] macro
cargo adk new my_agent --template tools
# RAG agent with Gemini embeddings and in-memory vector search
cargo adk new my_agent --template rag
# REST API server ready for deployment
cargo adk new my_agent --template api
# OpenAI GPT-5-mini agent
cargo adk new my_agent --template openai
# A2A protocol agent with builder API
cargo adk new my_agent --template a2a
# Use any provider with any template
cargo adk new my_agent --template tools --provider anthropic
# Add optional addons to any template
cargo adk new my_agent --template tools --addon docker --addon ci
| टेम्पलेट | आपको क्या मिलता है |
|---|---|
basic | इंटरैक्टिव कंसोल के साथ Gemini एजेंट (डिफ़ॉल्ट) |
tools | #[tool] मैक्रो कस्टम टूल्स + schemars स्कीमा जनरेशन वाला एजेंट |
rag | RAG पाइपलाइन — Gemini embeddings, इन-मेमोरी vector store, दस्तावेज़ ingestion |
api | Axum REST सर्वर with health check, docker build के लिए तैयार |
openai | OpenAI GPT-5-mini एजेंट with कंसोल |
a2a | A2A प्रोटोकॉल एजेंट with A2aServer बिल्डर and एजेंट कार्ड |
graph | चेकपॉइंट्स और स्थायी पुनरारंभ के साथ ग्राफ-आधारित वर्कफ़्लो |
realtime | रीयल-टाइम वॉयस/ऑडियो स्ट्रीमिंग एजेंट |
सुझाव:
--addonफ़्लैग का उपयोग करकेdocker,ci,telemetry, और अन्य जैसे वैकल्पिक addons के साथ templates को compose करें। 9 addons और 5 enterprise patterns की पूरी सूची के लिए Composable Templates पेज देखें।
चरण 2: अपनी API key जोड़ें
cp .env.example .env
# Edit .env and add your GOOGLE_API_KEY
चरण 3: चलाएँ
cargo run
बस इतना ही — आपके पास एक working agent है। अपने terminal में इसके साथ chat करें।
ADK Console Mode
Agent: my_agent
Type your message and press Enter. Ctrl+C to exit.
> Hello! What can you help me with?
I'm a helpful AI assistant. I can help you with answering questions,
explaining concepts, and having a friendly conversation.
Zero-Config विकल्प — adk::run()
अगर आप बिना scaffolding के बस एक quick agent चलाना चाहते हैं, तो one-liner का उपयोग करें:
use adk_rust::run;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
dotenvy::dotenv().ok();
// Minimal default: set GOOGLE_API_KEY. Add provider features for OpenAI/Anthropic.
let response = run("You are a helpful assistant.", "Explain Rust in one sentence.").await?;
println!("{response}");
Ok(())
}
यह compiled providers के लिए provider detection, session creation, agent building, और execution को एक ही call में संभालता है। scripts, prototypes, और quick experiments के लिए बढ़िया।
Generated Code को समझना
scaffolded src/main.rs:
use adk_rust::prelude::*;
use adk_rust::Launcher;
use std::sync::Arc;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
dotenvy::dotenv().ok();
let api_key = std::env::var("GOOGLE_API_KEY")?;
let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;
let agent = LlmAgentBuilder::new("my_agent")
.description("A helpful AI assistant")
.instruction("You are a friendly assistant. Be concise and helpful.")
.model(Arc::new(model))
.build()?;
Launcher::new(Arc::new(agent)).run().await?;
Ok(())
}
| भाग | यह क्या करता है |
|---|---|
prelude::* | मुख्य टाइप्स इम्पोर्ट करता है: GeminiModel, LlmAgentBuilder, Arc, आदि। |
GeminiModel::new() | LLM key auth और streaming के साथ एक API क्लाइंट बनाता है |
LlmAgentBuilder | बिल्डर पैटर्न: नाम, विवरण, निर्देश (सिस्टम प्रॉम्प्ट), मॉडल, टूल्स |
Launcher | एजेंट को डिफ़ॉल्ट रूप से कंसोल मोड में चलाता है; api टेम्पलेट का उपयोग HTTP सर्विंग के लिए करें |
कस्टम टूल्स जोड़ना
टूल्स जोड़ने का सबसे तेज़ तरीका #[tool] मैक्रो है। अपनी निर्भरताओं में adk-tool जोड़ें:
[dependencies]
adk-tool = "2.0.0"
schemars = "1"
serde = { version = "1", features = ["derive"] }
फिर एक टूल परिभाषित करें — doc comment विवरण बन जाता है, और args struct JSON schema बन जाता है:
use adk_tool::{tool, AdkError};
use schemars::JsonSchema;
use serde::Deserialize;
use serde_json::{json, Value};
#[derive(Deserialize, JsonSchema)]
struct WeatherArgs {
/// The city to look up
city: String,
}
/// Get the current weather for a city.
#[tool]
async fn get_weather(args: WeatherArgs) -> std::result::Result<Value, AdkError> {
Ok(json!({ "temp": 22, "city": args.city, "condition": "sunny" }))
}
यह मैक्रो एक GetWeather struct जनरेट करता है जो Tool को implement करता है। इसे अपने agent में जोड़ें:
let agent = LlmAgentBuilder::new("weather_agent")
.instruction("Use the get_weather tool for weather questions.")
.model(Arc::new(model))
.tool(Arc::new(GetWeather)) // Generated by #[tool]
.build()?;
Tip: या पहले से tools सेटअप के साथ एक project scaffold करें:
cargo adk new my-agent --template tools
अंतर्निर्मित टूल्स
ADK में तैयार-प्रयोग योग्य tools भी शामिल हैं:
// Google Search (handled server-side by Gemini)
.tool(Arc::new(GoogleSearchTool::new()))
// Exit a LoopAgent
.tool(Arc::new(ExitLoopTool::new()))
वेब सर्वर के रूप में चलाना
जब आप HTTP serving चाहते हों, तब एक server project scaffold करें:
cargo adk new my-api --template api
cd my-api
cargo run
डिफ़ॉल्ट basic template सबसे तेज़ installs के लिए lightweight console launcher का उपयोग करता है।
अन्य मॉडलों का उपयोग
Feature flags के माध्यम से providers सक्षम करें। डिफ़ॉल्ट build तेज़ installs के लिए केवल Gemini तक सीमित रहता है, इसलिए सिर्फ़ वही provider जोड़ें जिसकी आपको आवश्यकता है:
[dependencies]
adk-rust = { version = "2.0.0", features = ["openai"] }
या किसी provider के साथ scaffold करें: cargo adk new my-agent --provider openai
OpenAI
let api_key = std::env::var("OPENAI_API_KEY")?;
let model = OpenAIClient::new(OpenAIConfig::new(api_key, "gpt-5-mini"))?;
Anthropic
let api_key = std::env::var("ANTHROPIC_API_KEY")?;
let model = AnthropicClient::new(AnthropicConfig::new(api_key, "claude-sonnet-4-6"))?;
DeepSeek
let api_key = std::env::var("DEEPSEEK_API_KEY")?;
let model = DeepSeekClient::chat(api_key)?; // standard
// let model = DeepSeekClient::reasoner(api_key)?; // chain-of-thought
Groq
let api_key = std::env::var("GROQ_API_KEY")?;
let model = GroqClient::new(GroqConfig::llama70b(api_key))?;
Ollama (Local)
// Requires: ollama serve && ollama pull llama3.2
let model = OllamaModel::new(OllamaConfig::new("llama3.2"))?;
समर्थित मॉडल्स
| प्रदाता | मॉडल उदाहरण | विशेषता फ़्लैग |
|---|---|---|
| Gemini | gemini-2.5-flash, gemini-2.5-pro, gemini-3-pro-preview | (डिफ़ॉल्ट) |
| OpenAI | gpt-5, gpt-5-mini, gpt-4.1 | openai |
| Anthropic | claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5 | anthropic |
| DeepSeek | deepseek-chat, deepseek-reasoner | deepseek |
| Groq | meta-llama/llama-4-scout-17b-16e-instruct, llama-3.3-70b-versatile | groq |
| Ollama | qwen3.6:35b-a3b, qwen3.5, llama3.2:3b | ollama |
अगले चरण
- LlmAgent कॉन्फ़िगरेशन — सभी कॉन्फ़िगरेशन विकल्प
- फ़ंक्शन टूल्स —
#[tool]के साथ कस्टम टूल्स बनाएं - वर्कफ़्लो एजेंट्स — क्रमिक, समानांतर, लूप पाइपलाइन
- सेशन्स — बातचीत की स्थिति प्रबंधित करें
- कॉलबैक — एजेंट के व्यवहार को अनुकूलित करें