Google Gemini

Google Gemini dapat mendukung agen Agent Framework melalui Gemini Developer API atau Vertex AI. Klien khusus penyedia menangani opsi autentikasi dan permintaan Gemini sementara Agent Framework memiliki definisi dan orkestrasi agen.

Important

Google Gemini dan Vertex AI adalah sistem pihak ketiga. Tinjau persyaratan layanan, penanganan data, batas wilayah, akses model, dan biaya penggunaan sebelum mengirim data aplikasi.

Memasang Gemini IChatClient

Sampel .NET menunjukkan klien Google GenAI resmi dan implementasi komunitasMscc.GenerativeAI.Microsoft.

dotnet add package Google.GenAI
dotnet add package Mscc.GenerativeAI.Microsoft
dotnet add package Microsoft.Agents.AI --prerelease

Configuration

GOOGLE_GENAI_API_KEY="<google-ai-studio-api-key>"
GOOGLE_GENAI_MODEL="gemini-2.5-flash"
const string JokerInstructions = "You are good at telling jokes.";
const string JokerName = "JokerAgent";

string apiKey = Environment.GetEnvironmentVariable("GOOGLE_GENAI_API_KEY") ?? throw new InvalidOperationException("Please set the GOOGLE_GENAI_API_KEY environment variable.");
string model = Environment.GetEnvironmentVariable("GOOGLE_GENAI_MODEL") ?? "gemini-2.5-flash";

// Using a Google GenAI IChatClient implementation

ChatClientAgent agentGenAI = new(
    new Client(vertexAI: false, apiKey: apiKey).AsIChatClient(model),
    name: JokerName,
    instructions: JokerInstructions);

AgentResponse response = await agentGenAI.RunAsync("Tell me a joke about a pirate.");
Console.WriteLine($"Google GenAI client based agent response:\n{response}");

// Using a community driven Mscc.GenerativeAI.Microsoft package

ChatClientAgent agentCommunity = new(
    new GeminiChatClient(apiKey: apiKey, model: model),
    name: JokerName,
    instructions: JokerInstructions);

response = await agentCommunity.RunAsync("Tell me a joke about a pirate.");
Console.WriteLine($"Community client based agent response:\n{response}");

Pilih satu IChatClient implementasi dan konfigurasikan API Pengembang Gemini atau autentikasi Vertex AI-nya.

Pasang paketnya

pip install agent-framework-gemini --pre

Configuration

Gunakan API Pengembang Gemini:

GEMINI_API_KEY="<api-key>"
GEMINI_MODEL="gemini-2.5-flash"
# GOOGLE_API_KEY and GOOGLE_MODEL are also supported.

Atau konfigurasikan Vertex AI:

GOOGLE_GENAI_USE_VERTEXAI="true"
GOOGLE_CLOUD_PROJECT="<project-id>"
GOOGLE_CLOUD_LOCATION="us-central1"
GOOGLE_MODEL="gemini-2.5-flash"

GeminiChatClient mendukung streaming, alat fungsi, output terstruktur, pemikiran yang diperluas, dan alat yang dihosting penyedia.

async def non_streaming_example() -> None:
    """Runs the agent and waits for the complete response before printing it."""
    print("=== Non-streaming ===")

    # 1. Create the agent with the Gemini chat client and local weather tool.
    agent = Agent(
        client=GeminiChatClient(),
        name="WeatherAgent",
        instructions="You are a helpful weather agent.",
        tools=[get_weather],
    )

    # 2. Ask the agent for a single weather lookup and print the final response.
    query = "What's the weather like in Karlsruhe, Germany?"
    print(f"User: {query}")
    result = await agent.run(query)
    print(f"Result: {result}\n")


async def streaming_example() -> None:
    """Runs the agent and prints each chunk as it is received."""
    print("=== Streaming ===")

    # 1. Create the same agent configuration for a streaming tool-call example.
    agent = Agent(
        client=GeminiChatClient(),
        name="WeatherAgent",
        instructions="You are a helpful weather agent.",
        tools=[get_weather],
    )

    # 2. Ask a multi-location question and stream the model output as it arrives.
    query = "What's the weather like in Portland and in Paris?"
    print(f"User: {query}")
    print("Agent: ", end="", flush=True)
    async for chunk in agent.run(query, stream=True):
        if chunk.text:
            print(chunk.text, end="", flush=True)
    print("\n")

Paket ini mencakup pabrik untuk grounding Google Search, grounding Google Maps, eksekusi kode, pencarian file, dan MCP.

Landasan Google Search

import asyncio

from agent_framework import Agent
from agent_framework.gemini import GeminiChatClient
from dotenv import load_dotenv

load_dotenv()


async def main() -> None:
    """Run the Google Search grounding example."""
    print("=== Google Search grounding ===")

    # 1. Create the agent with Gemini and the built-in Google Search grounding tool.
    agent = Agent(
        client=GeminiChatClient(),
        name="SearchAgent",
        instructions="You are a helpful assistant. Use Google Search to provide accurate, up-to-date answers.",
        tools=[GeminiChatClient.get_web_search_tool()],
    )

    # 2. Ask a current-events style question and stream the grounded answer.
    query = "What is the latest stable release of the .NET SDK?"
    print(f"User: {query}")
    print("Agent: ", end="", flush=True)
    async for chunk in agent.run(query, stream=True):
        if chunk.text:
            print(chunk.text, end="", flush=True)
    print("\n")


if __name__ == "__main__":
    asyncio.run(main())

Go SDK menyediakan geminiprovider inferensi Gemini. Buat standar *agent.Agent melalui konstruktor khusus penyedia.

Lihat paket dan contohpenyedia Gemini.

Tools

Alat C# Python Go Notes
Peralatan Fungsional Panggilan fungsi model standar.
Persetujuan Alat Diterapkan oleh perulangan alat kerangka kerja.
Penerjemah Kode GeminiChatClient.get_code_interpreter_tool().
Pencarian File GeminiChatClient.get_file_search_tool().
Pencarian Web Google Search grounding melalui get_web_search_tool().
Landasan Google Maps GeminiChatClient.get_maps_grounding_tool().
Alat MCP yang Dihosting GeminiChatClient.get_mcp_tool().
Alat MCP Lokal Berjalan dalam proses aplikasi.

Langkah berikutnya