Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Google Gemini может вернуть агент Agent Framework через API разработчика Gemini или Vertex AI. Клиент, зависящий от поставщика, обрабатывает параметры проверки подлинности и запроса Gemini, в то время как Agent Framework владеет определением агента и оркестрацией.
Important
Google Gemini и Vertex AI являются сторонними системами. Просмотрите условия обслуживания, обработку данных, региональные границы, доступ к модели и затраты на использование перед отправкой данных приложения.
Установка Gemini IChatClient
Пример .NET демонстрирует официальный клиент Google GenAI и реализацию сообщества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}");
Выберите одну IChatClient реализацию и настройте api разработчика Gemini или проверку подлинности Vertex AI.
Установите пакет
pip install agent-framework-gemini --pre
Configuration
Используйте либо API разработчика Gemini:
GEMINI_API_KEY="<api-key>"
GEMINI_MODEL="gemini-2.5-flash"
# GOOGLE_API_KEY and GOOGLE_MODEL are also supported.
Или настройте ИИ вершин:
GOOGLE_GENAI_USE_VERTEXAI="true"
GOOGLE_CLOUD_PROJECT="<project-id>"
GOOGLE_CLOUD_LOCATION="us-central1"
GOOGLE_MODEL="gemini-2.5-flash"
GeminiChatClient поддерживает потоковую передачу, средства функций, структурированные выходные данные, расширенные средства мышления и средства, размещенные у поставщика.
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")
Пакет включает фабрики для поиска Google Search, приземления Google Maps, выполнения кода, поиска файлов и MCP.
Поиск Google Приземление
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())
Пакет SDK для Go предоставляет geminiprovider вывод Gemini. Создайте стандарт *agent.Agent с помощью конструктора для конкретного поставщика.
Ознакомьтесь с пакетом и примерамипоставщика Gemini.
Tools
| инструмент | C# | Python | Вперед | Примечания |
|---|---|---|---|---|
| Средства функций | ✅ | ✅ | ✅ | Вызов функции стандартной модели. |
| Утверждение инструмента | ✅ | ✅ | ✅ | Применяется циклом инструментов платформы. |
| Интерпретатор кода | ❌ | ✅ | ❌ |
GeminiChatClient.get_code_interpreter_tool(). |
| Поиск файлов | ❌ | ✅ | ❌ |
GeminiChatClient.get_file_search_tool(). |
| Поиск в Интернете | ❌ | ✅ | ❌ | Google Search заземление через get_web_search_tool(). |
| Подземление Google Maps | ❌ | ✅ | ❌ |
GeminiChatClient.get_maps_grounding_tool(). |
| Размещенные средства MCP | ❌ | ✅ | ❌ |
GeminiChatClient.get_mcp_tool(). |
| Локальные средства MCP | ✅ | ✅ | ✅ | Выполняется в процессе приложения. |