クイックスタート

5分以内に最初のAIエージェントを作成しましょう。

前提条件

ステップ 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 スキーマ生成を備えたエージェント
ragRAG パイプライン — Gemini 埋め込み、インメモリベクターストア、ドキュメント取り込み
apiヘルスチェック付きの Axum REST サーバー、docker build 向けの準備完了
openaiコンソール付きの OpenAI GPT-5-mini エージェント
a2aA2A プロトコルエージェント、A2aServer ビルダーとエージェントカード付き
graphチェックポイントと永続的な再開を備えたグラフベースのワークフロー
realtimeリアルタイム音声/オーディオストリーミングエージェント

ヒント: --addon フラグを使うと、dockercitelemetry などのオプションの追加機能を含むテンプレートを組み立てられます。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"))?;

サポートされているモデル

プロバイダーモデル例機能フラグ
Geminigemini-2.5-flash, gemini-2.5-pro, gemini-3-pro-preview(デフォルト)
OpenAIgpt-5, gpt-5-mini, gpt-4.1openai
Anthropicclaude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5anthropic
DeepSeekdeepseek-chat, deepseek-reasonerdeepseek
Groqmeta-llama/llama-4-scout-17b-16e-instruct, llama-3.3-70b-versatilegroq
Ollamaqwen3.6:35b-a3b, qwen3.5, llama3.2:3bollama

次のステップ


前へ: はじめに | 次へ: LlmAgent

クイックスタート - ADK-Rust ドキュメント | ADK-Rust