クイックスタート
5分以内に最初のAIエージェントを作成しましょう。
前提条件
- Rust 1.95.0 以降(
rustup update stable) - Google API キー(こちらから取得)
ステップ 1: プロジェクトをスキャフォールドする
cargo install cargo-adk
cargo adk new my_agent
cd my_agent
これにより、必要な依存関係とボイラープレートを備えた、動作するプロジェクトが生成されます。
その他のテンプレート
# 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 埋め込み、インメモリベクターストア、ドキュメント取り込み |
api | ヘルスチェック付きの Axum REST サーバー、docker build 向けの準備完了 |
openai | コンソール付きの OpenAI GPT-5-mini エージェント |
a2a | A2A プロトコルエージェント、A2aServer ビルダーとエージェントカード付き |
graph | チェックポイントと永続的な再開を備えたグラフベースのワークフロー |
realtime | リアルタイム音声/オーディオストリーミングエージェント |
ヒント:
--addonフラグを使うと、docker、ci、telemetryなどのオプションの追加機能を含むテンプレートを組み立てられます。9 個の追加機能と 5 つのエンタープライズパターンの全一覧は Composable Templates ページを参照してください。
ステップ 2: API キーを追加する
cp .env.example .env
# Edit .env and add your GOOGLE_API_KEY
ステップ 3: 実行する
cargo run
これで完了です — 動作する agent ができました。ターミナルでチャットできます。
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.
ゼロ設定の代替手段 — adk::run()
スキャフォールディングなしで手早く agent を実行したいだけなら、ワンライナーを使ってください:
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(())
}
これにより、コンパイル済み provider の検出、session の作成、agent の構築、実行が 1 回の呼び出しで行われます。スクリプト、プロトタイプ、簡単な実験に最適です。
生成されたコードを理解する
スキャフォールドされた 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 クライアントを API キー認証とストリーミングで作成します |
LlmAgentBuilder | ビルダーパターン: name、description、instruction(system prompt)、model、tools |
Launcher | デフォルトではエージェントをコンソールモードで実行します。api テンプレートを HTTP サービングに使用します |
カスタムツールの追加
ツールを追加する最も速い方法は #[tool] マクロです。依存関係に adk-tool を追加してください:
[dependencies]
adk-tool = "2.0.0"
schemars = "1"
serde = { version = "1", features = ["derive"] }
次にツールを定義します — ドキュメントコメントが説明になり、args 構造体が JSON スキーマになります:
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 構造体を生成し、Tool を実装します。これをエージェントに追加してください:
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()?;
ヒント: あるいは、ツールがあらかじめ設定されたプロジェクトをスキャフォールドします:
cargo adk new my-agent --template tools
組み込みツール
ADK には、すぐに使えるツールも含まれています:
// Google Search (handled server-side by Gemini)
.tool(Arc::new(GoogleSearchTool::new()))
// Exit a LoopAgent
.tool(Arc::new(ExitLoopTool::new()))
Webサーバーとして実行する
HTTP を提供したい場合は、サーバープロジェクトをスキャフォールドしてください:
cargo adk new my-api --template api
cd my-api
cargo run
デフォルトの基本テンプレートでは、最速のインストールのために軽量なコンソールランチャーを使用します。
他のモデルを使用する
機能フラグを使ってプロバイダーを有効化します。デフォルトビルドは高速インストールのため Gemini のみのままなので、必要なプロバイダーだけを追加してください:
[dependencies]
adk-rust = { version = "2.0.0", features = ["openai"] }
または、プロバイダー付きでスキャフォールドします: 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]を使ってカスタムツールを作成する - ワークフローエージェント — 順次、並列、ループのパイプライン
- セッション — 会話の状態を管理する
- コールバック — エージェントの動作をカスタマイズする