1. Введение
В этом практическом занятии вы узнаете, как создать профессионального агента искусственного интеллекта, используя комплект разработки агентов (ADK) , который напрямую подключается к официальным серверам Google Workspace MCP .
Протокол контекста модели (MCP) — это открытый стандарт, позволяющий моделям ИИ безопасно использовать инструменты, предоставляемые удаленными серверами. ADK — это фреймворк Google для создания автономных агентов. Комбинируя их, вы можете создавать высоконастраиваемых агентов, основанных на ваших данных из Gmail, Google Drive, Google Calendar, Google Chat и People.
Полную документацию по доступным инструментам и настройкам см. в разделе «Настройка серверов Google Workspace MCP» .
Что вы будете делать
- Включите сервисы Google Workspace MCP в своем проекте Google Cloud.
- Настройте согласие OAuth и создайте учетные данные как для локального тестирования, так и для развертывания в производственной среде.
- Создайте локальный агент ADK, который подключается к 5 серверам Workspace MCP, используя статические токены.
- Создайте и разверните готовый к использованию в производственной среде агент ADK на платформе Gemini Enterprise Agent Platform (GEAP) Agent Runtime , использующий динамическую инъекцию токенов.
- Зарегистрируйте и протестируйте свой собственный агент непосредственно в Gemini Enterprise .
Что вам понадобится
- Веб-браузер (например, Chrome).
- Проект Google Cloud с включенной функцией выставления счетов.
- Учетная запись Google Workspace (с включенными интеллектуальными функциями).
- На вашем локальном компьютере должен быть установлен Python 3.11+.
- Интерфейс командной строки Google Cloud (
gcloud) установлен и инициализирован.
2. Прежде чем начать
Создайте или выберите проект Google Cloud.
Опция консоли
В консоли Google Cloud выберите или создайте проект Google Cloud.
Опция командной строки
Создайте новый проект и установите его в качестве активного:
gcloud projects create YOUR_PROJECT_ID
gcloud config set project YOUR_PROJECT_ID
Включите API
Для использования серверов Google Workspace MCP необходимо включить как стандартные API Google Workspace, так и выделенные службы MCP.
Опция консоли
Чтобы активировать их в веб-браузере, нажмите на следующие кнопки:
Опция командной строки. Выполните следующие команды в терминале:
# Enable standard GWS APIs
gcloud services enable chat.googleapis.com \
drive.googleapis.com \
calendar-json.googleapis.com \
people.googleapis.com \
gmail.googleapis.com
# Enable dedicated MCP services
gcloud services enable calendarmcp.googleapis.com \
chatmcp.googleapis.com \
drivemcp.googleapis.com \
gmailmcp.googleapis.com
Настройте приложение чата.
Для использования сервера Google Chat MCP необходимо настроить приложение чата в вашем проекте Google Cloud.
- Перейдите в Google Chat API > Управление > Конфигурация .
- Настройте приложение «Чат»:
- Название приложения :
ADK Workspace Agent - URL-адрес аватара :
https://developers.google.com/chat/images/quickstart-app-avatar.png - Описание :
MCP server connection for ADK Agent - В разделе «Функциональность» отключите параметр «Включить интерактивные функции» .
- В разделе «Журналы» выберите « Записывать ошибки в журнал» и перейдите в раздел «Ведение журнала» .
- Название приложения :
- Нажмите « Сохранить ».
3. Настройка согласия OAuth и клиентов.
Серверы Google Workspace MCP используют OAuth 2.0 для безопасной аутентификации. Необходимо настроить экран согласия OAuth и создать два отдельных идентификатора клиента: один для локальной разработки и один для развернутого агента.
Настройка экрана согласия OAuth
- В консоли Google Cloud нажмите на значок меню навигации (гамбургер) в верхнем левом углу. Выберите Google Auth Platform > Брендинг (или API и сервисы > Экран согласия OAuth, если Google Auth Platform не отображается).
- Настройка информации о приложении :
- Название приложения :
Workspace ADK Agent - Адрес электронной почты службы поддержки пользователей : выберите свой адрес электронной почты.
- Название приложения :
- Настройка аудитории : выберите «Внутренняя» .
- Настройка контактной информации : введите свой адрес электронной почты, затем нажмите «Создать» .
- Перейдите в раздел «Доступ к данным» > «Добавить или удалить области действия» . В разделе «Добавить области действия вручную» добавьте следующие области действия, чтобы предоставить доступ ко всем 5 службам:
https://www.googleapis.com/auth/calendar.calendarlist.readonly https://www.googleapis.com/auth/calendar.events https://www.googleapis.com/auth/calendar.calendars https://www.googleapis.com/auth/chat.spaces https://www.googleapis.com/auth/chat.messages https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.compose https://www.googleapis.com/auth/gmail.send https://www.googleapis.com/auth/directory.readonly https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/contacts.readonly https://www.googleapis.com/auth/cloud-platform - Нажмите «Добавить в таблицу» , затем «Обновить» и, наконец, «Сохранить» .
Создание идентификатора клиента для локальной разработки (настольное приложение)
- В консоли Google Cloud перейдите в раздел Google Auth Platform > Clients (или API & Services > Credentials ). Нажмите Create Credentials (или Create Client ) и выберите OAuth client ID .
- Выберите «Настольное приложение» в качестве типа приложения.
- Назовите его
Workspace Agent Local. - Нажмите «Создать» и загрузите JSON-файл. Сохраните его локально как
client_secret.json.
4. Разработка и тестирование агентов
В этом разделе описывается, как создать среду агента. Для тестирования мы будем использовать подход со статическим токеном, получая токен OAuth с помощью gcloud и передавая его в McpToolset из ADK. Вы можете выполнить эти шаги, используя либо локальный компьютер , либо Google Cloud Shell .
Выберите среду разработки: локальный компьютер или Google Cloud Shell . Оба метода будут использовать общий скрипт Python для аутентификации, что обеспечит согласованность на разных платформах.
1. Настройка каталога среды
Выполните следующие команды в терминале, чтобы создать каталог проекта и установить необходимые пакеты.
- Для активации Google Cloud Shell: сначала нажмите значок «Активировать Cloud Shell» (
>_) в правом верхнем углу панели инструментов консоли Google Cloud. - Для локального компьютера: Откройте стандартный терминал.
mkdir -p gws-adk-agent/workspace_agent
cd gws-adk-agent
python3 -m venv .venv
source .venv/bin/activate
pip install google-adk poetry google-auth-oauthlib
2. Подготовьте файл учетных данных.
Файл client_secret.json , загруженный на предыдущем шаге, необходимо поместить в корневую папку каталога gws-adk-agent .
- На локальном компьютере: переместите или скопируйте загруженный файл
client_secret.jsonв каталогgws-adk-agent. - Google Cloud Shell: Создайте файл, выполнив следующую команду в Cloud Shell (замените
[PASTE_JSON_HERE]на фактическое содержимое вашего JSON-файла):
cat << 'EOF' > client_secret.json
[PASTE_JSON_HERE]
EOF
3. Аутентификация и генерация файла .env ( auth.py )
Для обеспечения единообразной аутентификации и во избежание проблем с маршрутизацией CLI, специфичных для конкретной среды, мы используем пользовательский скрипт на Python, работающий на основе официальных библиотек аутентификации Google. Этот скрипт управляет потоком OAuth, сохраняет локально учетные данные приложения по умолчанию (ADC) и генерирует необходимый файл .env .
Создайте файл с именем auth.py в каталоге gws-adk-agent и добавьте в него следующий код:
import json
import os
from urllib.parse import urlparse, parse_qs
import google.auth
from google_auth_oauthlib.flow import InstalledAppFlow
CLIENT_SECRET_FILE = 'client_secret.json'
SCOPES = [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/calendar",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/gmail.readonly",
"https://www.googleapis.com/auth/gmail.compose",
"https://www.googleapis.com/auth/directory.readonly",
"https://www.googleapis.com/auth/contacts.readonly"
]
# Initialize the flow from the client secrets JSON
flow = InstalledAppFlow.from_client_secrets_file(
CLIENT_SECRET_FILE,
scopes=SCOPES,
redirect_uri='http://localhost:8085/'
)
# Generate the Auth URL
auth_url, expected_state = flow.authorization_url(prompt='consent', access_type='offline')
print("\n=== GOOGLE OAUTH OFFICIAL LIBRARY FLOW ===")
print("1. Copy the following link and paste it into your browser (or click it if supported):\n")
print(auth_url)
print("\n2. Authorize the application.")
print("3. Your browser will redirect to a 'localhost' page (it will show a 'Site can't be reached' error, which is EXPECTED and normal).")
print("4. Copy the ENTIRE URL from your browser's address bar (including the http://localhost:8085/ part).\n")
# Get the redirected URL from the user
redirected_url = input("Paste the full localhost URL here: ").strip()
# Exchange the redirect URL for tokens
print("\nExchanging code for tokens...")
try:
parsed_url = urlparse(redirected_url)
query_params = parse_qs(parsed_url.query)
returned_state = query_params.get('state', [None])[0]
code = query_params.get('code', [None])[0]
if not code:
raise ValueError("No 'code' parameter found in the URL.")
if returned_state != expected_state:
raise ValueError("CSRF Warning! State mismatch.")
flow.fetch_token(code=code)
creds = flow.credentials
except Exception as e:
print(f"Authentication failed: {e}")
exit(1)
if not creds.refresh_token:
print("\nError: No refresh token returned. You may need to revoke access and try again.")
exit(1)
# Save Application Default Credentials
adc_data = {
"client_id": creds.client_id,
"client_secret": creds.client_secret,
"refresh_token": creds.refresh_token,
"type": "authorized_user"
}
adc_dir = os.path.expanduser("~/.config/gcloud")
os.makedirs(adc_dir, exist_ok=True)
adc_path = os.path.join(adc_dir, "application_default_credentials.json")
with open(adc_path, "w") as f:
json.dump(adc_data, f, indent=2)
# Detect Project ID
try:
_, project_id = google.auth.default()
except Exception:
project_id = None
project_id = project_id or os.environ.get("GOOGLE_CLOUD_PROJECT", "YOUR_PROJECT_ID")
# Save to .env for local development (relative to project root)
env_dir = "workspace_agent"
os.makedirs(env_dir, exist_ok=True)
env_path = os.path.join(env_dir, ".env")
with open(env_path, "w") as f:
f.write("GOOGLE_GENAI_USE_VERTEXAI=1\n")
f.write(f"GOOGLE_CLOUD_PROJECT={project_id}\n")
f.write("GOOGLE_CLOUD_LOCATION=us-central1\n")
print(f"\nSuccess! Application Default Credentials saved to: {adc_path}")
print(f"Environment variables saved to: {env_path}")
if project_id == "YOUR_PROJECT_ID":
print("NOTE: Could not automatically detect Project ID. Please update it manually in .env")
Запустите скрипт в терминале:
python3 auth.py
Создайте код агента
Независимо от среды, выбранной на предыдущем шаге, код агента остаётся неизменным. Создайте файл с именем agent.py в предварительно созданной подкаталоге workspace_agent и добавьте следующий код. Этот скрипт использует учетные данные по умолчанию приложения (ADC) для авторизации, автоматически проверяя и обновляя учетные данные исключительно в памяти с помощью динамического поставщика заголовков.
import datetime
import google.auth
from google.auth.transport.requests import Request
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
MODEL = "gemini-2.5-flash"
# Load credentials from Application Default Credentials (ADC) saved by auth.py
creds, _ = google.auth.default()
# 1. STARTUP SAFETY: Ensure valid token at import time for static tool discovery (e.g. adk web UI load)
if not creds.valid:
creds.refresh(Request())
print("\n[Agent Startup] Access token refreshed from ADC.")
def auth_header_provider(tool_context=None) -> dict[str, str]:
"""2. RUNTIME SAFETY: Dynamically provides auth headers, refreshing if expired during the session."""
if not creds.valid:
creds.refresh(Request())
print("\n[Agent Runtime] Access token refreshed from ADC.")
return {"Authorization": f"Bearer {creds.token}"}
# Initialize the 5 GWS MCP servers with combined startup headers and dynamic runtime provider
calendar_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://calendarmcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
chat_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://chatmcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
drive_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://drivemcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
gmail_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://gmailmcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
people_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://people.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
current_date = datetime.datetime.now().strftime("%Y-%m-%d")
# Define the agent and attach all 5 toolsets
root_agent = LlmAgent(
model=MODEL,
name='gws_adk_agent',
instruction=f"""You are a helpful assistant grounded in the user's Google Workspace data.
Today's current date is {current_date}. Always calculate relative dates (like 'this week' or 'upcoming meetings') using this reference.
Use the provided MCP tools to answer questions about their Calendar, Chat, Drive, Gmail, and Contacts.""",
tools=[calendar_mcp, chat_mcp, drive_mcp, gmail_mcp, people_mcp]
)
Запустите и протестируйте своего агента.
Вы можете взаимодействовать со своим агентом, используя либо интерактивный веб-интерфейс , либо непосредственно в терминале/оболочке .
Вариант 1: Интерактивный веб-интерфейс
Если вы используете локальный компьютер:
- Запустите веб-интерфейс ADK из корневого каталога вашего проекта
gws-adk-agent:adk web - Откройте
http://localhost:8000в браузере, чтобы пообщаться со своим агентом.
Если вы находитесь в Google Cloud Shell:
- Запустите веб-интерфейс ADK из корневого каталога вашего проекта
gws-adk-agent, явно указав порт 8080:adk web --port 8080 --allow_origins=* - Нажмите кнопку « Предварительный просмотр веб-интерфейса» в правом верхнем углу панели инструментов Cloud Shell и выберите «Предварительный просмотр на порту 8080» , чтобы открыть интерфейс в новой вкладке.
Вариант 2: Режим командной строки терминала (альтернативный)
Если вы предпочитаете оставаться в терминале или хотите избежать настройки предварительного просмотра в веб-браузере, ADK предоставляет встроенный интерактивный режим чата REPL.
Из корневого каталога вашего проекта gws-adk-agent выполните следующую команду (она работает одинаково как на локальном компьютере, так и в Google Cloud Shell):
adk run workspace_agent
Вы сможете начать интерактивный чат непосредственно в своей командной оболочке:
Running agent gws_adk_agent, type exit to exit.
[user]:
Попробуйте отправить запрос своему агенту.
Независимо от выбранного вами интерфейса, попробуйте протестировать агента с помощью запросов, использующих инструменты Workspace MCP:
What are my upcoming meetings this week?Summarize the last 3 unread emails in my Gmail.
5. Внедрение в производство
Для развертывания агента в производственной среде мы не можем использовать жестко закодированный локальный токен. Вместо этого мы используем header_provider из ADK для динамического извлечения токена доступа OAuth, внедряемого платформой Gemini Enterprise при взаимодействии пользователя с агентом.
Создайте код агента производства.
Создайте каталог с пакетом, названным enterprise_ai , и создайте внутри него файл agent.py :
mkdir -p enterprise_ai
В файл enterprise_ai/agent.py запишите следующее содержимое:
import datetime
import os
import re
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
from google.adk.tools.tool_context import ToolContext
MODEL = "gemini-2.5-flash"
# This name MUST match the Authorization Name used during Gemini Enterprise registration
CLIENT_AUTH_NAME = "workspace-adk-auth"
def _get_access_token_from_context(tool_context: ToolContext) -> str:
"""Dynamically parses the user bearer token injected into the ToolContext state."""
escaped_name = re.escape(CLIENT_AUTH_NAME)
pattern = re.compile(fr"^{escaped_name}_\d+$")
state_dict = tool_context.state.to_dict() if hasattr(tool_context.state, 'to_dict') else tool_context.state
matching_keys = [k for k in state_dict.keys() if pattern.match(k)]
if matching_keys:
return state_dict.get(matching_keys[0])
raise Exception(f"No bearer token found in ToolContext state matching pattern {pattern.pattern}")
def auth_header_provider(tool_context: ToolContext) -> dict[str, str]:
"""Provides the dynamic Authorization header for MCP requests."""
token = _get_access_token_from_context(tool_context)
return {"Authorization": f"Bearer {token}"}
# Initialize toolsets using the dynamic header_provider
calendar_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://calendarmcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
chat_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://chatmcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
drive_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://drivemcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
gmail_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://gmailmcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
people_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://people.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
current_date = datetime.datetime.now().strftime("%Y-%m-%d")
root_agent = LlmAgent(
model=MODEL,
name='enterprise_ai',
instruction=f"""You are an enterprise assistant grounded securely in the user's Workspace data.
Today's current date is {current_date}. Always calculate relative dates (like 'this week' or 'upcoming meetings') using this reference.
Always use the provided MCP tools to fetch context from Calendar, Chat, Drive, Gmail, and People.""",
tools=[calendar_mcp, chat_mcp, drive_mcp, gmail_mcp, people_mcp]
)
Развертывание в среде выполнения GEAP Agent Runtime
Разверните свой агент pro-code с помощью интерфейса командной строки ADK:
adk deploy agent_engine \
--project=$(gcloud config get-value project) \
--region=us-central1 \
--display_name="Workspace ADK Agent" \
enterprise_ai
Дождитесь завершения развертывания и скопируйте сгенерированное имя ресурса Reasoning Engine из вывода терминала (например, projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID ).
6. Зарегистрируйтесь в Gemini Enterprise.
Теперь мы интегрируем пользовательский агент ADK в Gemini Enterprise , чтобы пользователи могли общаться с ним напрямую.
Создание идентификатора клиента для производственной среды (веб-приложения)
Для развертывания агента в производственной среде необходимо создать идентификатор клиента веб-приложения . В отличие от настольного клиента, используемого для локального тестирования, клиент веб-приложения обеспечивает безопасный поток аутентификации OAuth на стороне сервера. Это позволяет размещенному агенту в GEAP Agent Runtime безопасно получать токены аутентификации пользователя, пересылаемые Gemini Enterprise, используя указанный URI перенаправления. Эта настройка необходима для безопасного доступа агента к данным Google Workspace от имени пользователя в производственной среде.
- В консоли Google Cloud щелкните меню навигации (значок гамбургера) в верхнем левом углу. Выберите Google Auth Platform > Clients (или API & Services > Credentials , если Google Auth Platform не отображается). Нажмите Create Credentials (или Create Client ) и выберите OAuth client ID .
- В качестве типа приложения выберите «Веб-приложение» .
- Назовите это
Workspace Agent Production. - В разделе «Авторизованные URI перенаправления» добавьте следующие URI:
- Нажмите «Добавить URI» и введите
https://vertexaisearch.cloud.google.com/oauth-redirect. - Снова нажмите «Добавить URI» и введите
https://vertexaisearch.cloud.google.com/static/oauth/oauth.html.
- Нажмите «Добавить URI» и введите
- Нажмите «Создать» . Во всплывающем окне «Клиент OAuth создан» (или из списка клиентов ) скопируйте идентификатор клиента (Client ID ) и секретный ключ клиента (Client Secret ). Они понадобятся вам при регистрации агента в Gemini Enterprise.
Создайте корпоративное приложение Gemini.
- В консоли Google Cloud перейдите на страницу Gemini Enterprise :
- В разделе «Gemini Enterprise» нажмите «Управление» .
- Нажмите «Создать приложение» .
- В разделе Gemini Enterprise нажмите «Создать» .
- В поле «Название вашего приложения» введите название для вашего приложения. Идентификатор вашего приложения (App ID) будет отображаться под названием приложения.
- В поле «Внешнее название вашей компании или организации» введите название компании или организации. Для этого урока вы можете использовать
Cymbal Bank. - Выберите global (Глобальный) в качестве местоположения для вашего приложения.
- Нажмите «Продолжить» .
Зарегистрируйте таможенного агента
- Откройте консоль Gemini Enterprise :
- Выберите активное приложение, перейдите в раздел «Агенты» и нажмите «+ Добавить агента» > «Добавить пользовательского агента через среду выполнения агента» .
- В разделе «Авторизации» нажмите «Добавить авторизацию» :
- Имя авторизации :
workspace-adk-auth(должно точно совпадать с CLIENT_AUTH_NAME в вашем коде Python) - Идентификатор клиента : Вставьте созданный выше идентификатор клиента рабочего веб-приложения .
- Секрет клиента : Вставьте созданный выше секрет клиента для рабочего веб-приложения .
- URI токена :
https://oauth2.googleapis.com/token - URI авторизации : Сформируйте URI, заменив
YOUR_CLIENT_IDна идентификатор клиента , скопированный вами на шаге 5 выше:https://accounts.google.com/o/oauth2/v2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendars%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.send%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fchat.spaces%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fchat.messages%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.file%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdirectory.readonly&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
- Имя авторизации :
- Нажмите «Готово» , затем нажмите «Далее» .
- В разделе «Конфигурация» :
- Имя агента :
Workspace Pro Agent - Описание :
Use this agent to answer questions about your Google Workspace data, including Gmail, Google Drive, Google Calendar, Google Chat, and Contacts. It can find files, summarize emails, check your schedule, and look up contact information. - Механизм обработки логики среды выполнения агента : вставьте имя ресурса механизма, скопированное из выходных данных
adk deploy.
- Имя агента :
- Нажмите «Создать» .
Попробуйте воспользоваться услугами агента в Gemini Enterprise.
Взаимодействовать с агентом можно либо через предварительную версию консоли Google Cloud (самый быстрый вариант для разработчиков), либо через веб-приложение Gemini Enterprise (удобный интерфейс для конечного пользователя).
Вариант 1: Предварительная версия консоли Google Cloud
- В консоли Google Cloud перейдите на страницу Gemini Enterprise :
- В меню навигации нажмите «Приложения» и выберите только что созданное приложение.
- Нажмите «Предварительный просмотр» или « Открыть предварительный просмотр» в правом верхнем углу.
- В строку поиска введите следующий запрос:
Search for files in Drive related to 'Project Milestone', summarize them, and tell me if I have any meetings with the project owner today. - Нажмите Enter , чтобы отправить запрос и просмотреть результаты непосредственно в консоли.
Вариант 2: Веб-приложение Gemini Enterprise
- Откройте интерфейс веб-приложения Gemini Enterprise.
- Перейдите в Меню ☰ > Агенты и выберите Агент Workspace Pro в разделе «Из вашей организации» .
- Введите тот же запрос, что и в предварительной версии консоли Google Cloud.
- При появлении запроса нажмите «Авторизовать» , чтобы пройти процедуру получения согласия пользователя по протоколу OAuth.
- Агент будет бесперебойно выполнять задачи в рамках нескольких сервисов, используя протокол MCP!
7. Уборка
Чтобы избежать ненужных расходов, упорядочьте свои ресурсы:
Опция консоли
Перейдите на панель управления API и сервисами , выберите включенные вами сервисы MCP (например, Calendar MCP, Gmail MCP) и нажмите «Отключить API» . Удалите идентификаторы клиентов OAuth в разделе Google Auth Platform > Clients и удалите развертывание Reasoning Engine из консоли Gemini Enterprise .
Опция командной строки
Для отключения служб MCP выполните следующие команды в терминале:
# Disable Workspace MCP services
gcloud services disable calendarmcp.googleapis.com \
chatmcp.googleapis.com \
drivemcp.googleapis.com \
gmailmcp.googleapis.com
8. Поздравляем!
Поздравляем! Вы успешно создали, протестировали и развернули агента ADK AI, работающего на основе профессионального кода и напрямую подключенного к официальным серверам Google Workspace MCP.
Что вы узнали
- Как включить сервисы Google Workspace MCP в Google Cloud.
- Как обрабатывать учетные данные OAuth для локального тестирования ADK с использованием статических заголовков.
- Как реализовать динамическую инъекцию токенов с использованием
header_providerдля производственных агентов. - Как развернуть агент ADK в GEAP Agent Runtime и зарегистрировать его в Gemini Enterprise.