Google Gemini

Google Gemini peut sauvegarder un agent Agent Framework via l’API développeur Gemini ou l’IA vertex. Le client spécifique au fournisseur gère les options d’authentification et de requête Gemini tandis que Agent Framework possède la définition et l’orchestration de l’agent.

Important

Google Gemini et Vertex AI sont des systèmes tiers. Passez en revue les termes du service, la gestion des données, les limites régionales, l’accès au modèle et les coûts d’utilisation avant d’envoyer des données d’application.

Installer une Gemini IChatClient

L’exemple .NET illustre le client Google GenAI officiel et l’implémentation de la communautéMscc.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}");

Choisissez une IChatClient implémentation et configurez son API de développeur Gemini ou son authentification IA Vertex.

Installer le package

pip install agent-framework-gemini --pre

Configuration

Utilisez l’API développeur Gemini :

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

Vous pouvez également configurer l’IA vertex :

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

GeminiChatClient prend en charge la diffusion en continu, les outils de fonction, la sortie structurée, la pensée étendue et les outils hébergés par un fournisseur.

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")

Le package inclut des fabriques pour google Search grounding, Google Maps grounding, l’exécution du code, la recherche de fichiers et MCP.

Google Search grounding

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())

Le Kit de développement logiciel (SDK) Go fournit l’inférence geminiprovider Gemini. Créez une norme *agent.Agent via le constructeur spécifique au fournisseur.

Consultez le package et les exemples du fournisseur Gemini.

Tools

Tool C# Python Go Notes
Outils de fonction Appel de fonction de modèle standard.
Approbation de l’outil Appliqué par la boucle de l’outil framework.
Interpréteur de code GeminiChatClient.get_code_interpreter_tool().
Recherche de fichiers GeminiChatClient.get_file_search_tool().
Recherche web Google Search grounding through get_web_search_tool().
Sol de Google Maps GeminiChatClient.get_maps_grounding_tool().
Outils MCP hébergés GeminiChatClient.get_mcp_tool().
Outils MCP locaux S’exécute dans le processus d’application.

Étapes suivantes