Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Google Gemini kann einen Agent Framework-Agent über die Gemini-Entwickler-API oder vertex AI sichern. Der anbieterspezifische Client verarbeitet Authentifizierungs- und Gemini-Anforderungsoptionen, während Agent Framework die Agentdefinition und -orchestrierung besitzt.
Important
Google Gemini und Vertex AI sind Drittanbietersysteme. Überprüfen Sie die Dienstbedingungen, die Datenverarbeitung, regionale Grenzen, den Modellzugriff und die Nutzungskosten vor dem Senden von Anwendungsdaten.
Installieren eines Minis IChatClient
Das .NET Beispiel zeigt den offiziellen Google GenAI-Client und die Community-ImplementierungMscc.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}");
Wählen Sie eine IChatClient Implementierung aus, und konfigurieren Sie die Gemini Developer API oder die Vertex AI-Authentifizierung.
Installiere das Paket
pip install agent-framework-gemini --pre
Configuration
Verwenden Sie entweder die Gemini-Entwickler-API:
GEMINI_API_KEY="<api-key>"
GEMINI_MODEL="gemini-2.5-flash"
# GOOGLE_API_KEY and GOOGLE_MODEL are also supported.
Oder konfigurieren Sie Vertex AI:
GOOGLE_GENAI_USE_VERTEXAI="true"
GOOGLE_CLOUD_PROJECT="<project-id>"
GOOGLE_CLOUD_LOCATION="us-central1"
GOOGLE_MODEL="gemini-2.5-flash"
GeminiChatClient unterstützt Streaming, Funktionstools, strukturierte Ausgabe, erweitertes Denken und vom Anbieter gehostete Tools.
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")
Das Paket umfasst Fabriken für Google Search Grounding, Google Maps-Erdung, Codeausführung, Dateisuche und MCP.
Google Search-Grundlagen
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())
Das Go SDK bietet für geminiprovider Gemini-Ableitung. Erstellen Sie einen Standard *agent.Agent über den anbieterspezifischen Konstruktor.
Sehen Sie sich das Gemini-Anbieterpaket und Beispiele an.
Tools
| Werkzeug | C# | Python | Go | Hinweise |
|---|---|---|---|---|
| Funktionswerkzeuge | ✅ | ✅ | ✅ | Aufrufen der Standardmodellfunktion. |
| Toolgenehmigung | ✅ | ✅ | ✅ | Wird von der Framework-Toolschleife angewendet. |
| Codedolmetscher | ❌ | ✅ | ❌ |
GeminiChatClient.get_code_interpreter_tool(). |
| Dateisuche | ❌ | ✅ | ❌ |
GeminiChatClient.get_file_search_tool(). |
| Websuche | ❌ | ✅ | ❌ | Google Search geerdet durch get_web_search_tool(). |
| Erdung von Google Maps | ❌ | ✅ | ❌ |
GeminiChatClient.get_maps_grounding_tool(). |
| Gehostete MCP-Tools | ❌ | ✅ | ❌ |
GeminiChatClient.get_mcp_tool(). |
| Lokale MCP-Tools | ✅ | ✅ | ✅ | Wird im Anwendungsprozess ausgeführt. |