Google Gemini

Google Gemini może wspierać agenta platformy agentów za pomocą interfejsu API dewelopera Gemini lub wierzchołka sztucznej inteligencji. Klient specyficzny dla dostawcy obsługuje opcje uwierzytelniania i żądania Gemini, podczas gdy struktura agenta jest właścicielem definicji i aranżacji agenta.

Ważna

Google Gemini i Vertex AI to systemy innych firm. Przed wysłaniem danych zapoznaj się z warunkami usług, obsługą danych, granicami regionalnymi, dostępem do modelu i kosztami użycia.

Instalowanie Gemini IChatClient

W przykładzie .NET pokazano oficjalnego klienta Google GenAI i implementacji społecznościMscc.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}");

Wybierz jedną implementację IChatClient i skonfiguruj interfejs API dewelopera Gemini lub uwierzytelnianie sztucznej inteligencji wierzchołków.

Instalowanie pakietu

pip install agent-framework-gemini --pre

Configuration

Użyj dowolnego interfejsu API dewelopera Gemini:

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

Możesz też skonfigurować sztuczną inteligencję wierzchołków:

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

GeminiChatClient Obsługuje przesyłanie strumieniowe, narzędzia funkcji, dane wyjściowe ze strukturą, rozszerzone myślenie i narzędzia hostowane przez dostawcę.

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

Pakiet zawiera fabryki do obsługi uziemienia google search, uziemienia map Google, wykonywania kodu, wyszukiwania plików i MCP.

Wyszukiwanie Google uziemienia

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

Zestaw GO SDK zapewnia geminiprovider wnioskowanie Gemini. Utwórz standard *agent.Agent za pomocą konstruktora specyficznego dla dostawcy.

Zobacz pakiet dostawcy Gemini i przykłady.

Tools

Narzędzie C# Python Go Notatki
Narzędzia funkcji Wywoływanie funkcji modelu w warstwie Standardowa.
Zatwierdzanie narzędzi Zastosowane przez pętlę narzędzi platformy.
Interpreter kodów GeminiChatClient.get_code_interpreter_tool().
Wyszukiwanie plików GeminiChatClient.get_file_search_tool().
Wyszukiwanie w Sieci Web Wyszukiwanie Google uziemienie przez get_web_search_tool().
Uziemienia mapy Google GeminiChatClient.get_maps_grounding_tool().
Hostowane narzędzia MCP GeminiChatClient.get_mcp_tool().
Lokalne narzędzia MCP Uruchamia się w procesie aplikacji.

Następne kroki