Google Gemini

Google Gemini, Gemini Geliştirici API'sini veya Köşe AI'sini kullanarak bir Agent Framework aracısını yedekleyebilir. Sağlayıcıya özgü istemci, aracı tanımına ve düzenlemesine Sahip Aracı Çerçevesi'ne sahipken kimlik doğrulaması ve İkizler istek seçeneklerini işler.

Important

Google Gemini ve Köşe yapay zekası üçüncü taraf sistemlerdir. Uygulama verilerini göndermeden önce hizmet koşullarını, veri işlemeyi, bölgesel sınırları, model erişimini ve kullanım maliyetlerini gözden geçirin.

İkizler dili yükleme IChatClient

.NET örneği, resmi Google GenAI istemcisini ve topluluk Mscc.GenerativeAI.Microsoft uygulamasını gösterir.

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

Bir IChatClient uygulama seçin ve İkizler Geliştirici API'sini veya Köşe AI kimlik doğrulamasını yapılandırın.

Paketi yükle

pip install agent-framework-gemini --pre

Configuration

İkizler Geliştirici API'sini kullanın:

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

Veya Köşe AI'sini yapılandırın:

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

GeminiChatClient akış, işlev araçları, yapılandırılmış çıkış, genişletilmiş düşünme ve sağlayıcı tarafından barındırılan araçları destekler.

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

Pakette Google Search topraklama, Google Haritalar topraklama, kod yürütme, dosya arama ve MCP için fabrikalar bulunur.

Google Search temel alma

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'sı geminiprovider İkizler çıkarımını sağlar. Sağlayıcıya özgü oluşturucu aracılığıyla bir standart *agent.Agent oluşturun.

İkizler sağlayıcı paketine ve örneklere bakın.

Tools

Araç C# Python Go Notlar
İşlev Araçları Standart model işlevi çağrısı.
Araç Onayı Çerçeve araç döngüsü tarafından uygulanır.
Kod Yorumlayıcısı GeminiChatClient.get_code_interpreter_tool().
Dosya Arama GeminiChatClient.get_file_search_tool().
Web Araması aracılığıyla get_web_search_tool()Google Search temel alma.
Google Haritalar topraklama GeminiChatClient.get_maps_grounding_tool().
Barındırılan MCP Araçları GeminiChatClient.get_mcp_tool().
Yerel MCP Araçları Uygulama işleminde çalışır.

Sonraki Adımlar