00:00:00Google Workspace стал гораздо удобнее для ИИ-агентов, потому что они выпустили
00:00:04мощный CLI-инструмент, который позволяет вашему агенту взаимодействовать с любым Google Workspace API.
00:00:09Читайте файлы с Диска, отправляйте письма и даже создавайте слайды — всё это создано с нуля
00:00:14специально для ИИ-агентов, то есть они используют минимум токенов и динамически создают команды
00:00:19во время выполнения, так что API всегда актуальны. Но теперь, когда такая крупная компания, как Google,
00:00:24создает CLI для того, что раньше было (и остается) MCP-сервером, что это означает
00:00:29для будущего MCP? Подписывайтесь, и давайте выясним.
00:00:33В прошлом месяце я делал видео о том, как Playwright выпустили CLI для того, что раньше было MCP-сервером.
00:00:42Теперь, похоже, Google Workspace сделали то же самое, и люди в Твиттере просто в восторге.
00:00:46Этот CLI-инструмент создал Джастин, который написал в блоге о том, как он оптимизировал его
00:00:52специально для агентов, о чем мы поговорим позже. Но у него уже более 100
00:00:57навыков, которые можно скачать с skills.sh, что, конечно, очень порадовало g-man.
00:01:01Но прежде чем мы перейдем к возможностям, нужно разобраться с настройкой, потому что,
00:01:06как мы знаем об инструментах Google Cloud, там все не так просто. Сейчас покажу.
00:01:10Прежде всего, вам понадобится доступ к консоли Google Cloud. Вы можете создать новый
00:01:15проект или использовать существующий. Я создал новый. Затем нужно установить gcloud CLI,
00:01:21что на Mac можно сделать через brew. И затем, установив Google Workspace CLI,
00:01:26вам нужно будет запустить эту команду для настройки, которая довольно интуитивна.
00:01:31Используйте свою почту для авторизации, выберите проект GCP и укажите API, к которым нужен доступ.
00:01:37Завершив этот этап, перейдите в раздел Credentials в API & Services
00:01:42и создайте новый OAuth client ID. Думаю, тип приложения может быть любым — я выбрал "Web",
00:01:48но, уверен, с "Desktop" тоже сработает, так как нужны только client ID и secret.
00:01:53После этого начинается самое сложное, так как после запуска следующей команды
00:01:57нужно выбрать область доступа (auth scope). Для демо я выбрал всё,
00:02:02что не очень безопасно, но я просто тестировал API. Затем вы получите огромный URL для авторизации
00:02:08в браузере. Убедитесь, что там нет опечаток, иначе возникнут ошибки,
00:02:12но главное — запишите номер порта после localhost, в моем случае это 51065.
00:02:18Затем вернитесь в консоль Cloud, в раздел OAuth consent screen,
00:02:23выберите свой веб-клиент. И внизу, в поле "Authorized redirect URIs",
00:02:28замените порт на свой (51065). Но это еще не всё.
00:02:33Перейдите в раздел Audience, прокрутите вниз и добавьте свой email, если его там нет.
00:02:37Если у вас уже опубликованное приложение, этой проблемы не будет,
00:02:40но так как я просто тестирую API, я использую тестовый режим.
00:02:44Поэтому мне нужно добавить свой email и адреса всех пользователей этого CLI.
00:02:48Теперь можно скопировать URL и завершить настройку CLI по шагам.
00:02:52В итоге вы должны увидеть статус "success". Если экран не появился,
00:02:56подождите пару секунд и попробуйте снова, так как регистрация redirect URI занимает время.
00:03:01Весь этот процесс — именно настройка — занял у меня больше всего времени,
00:03:06что лишний раз доказывает: я нечасто пользуюсь инструментами Google Cloud. Но когда все готово,
00:03:11вы увидите свои данные, и тогда начнется самое интересное. Смотрите.
00:03:15Начнем с простого: я попрошу Claude дать мне информацию о моих последних 10 письмах.
00:03:19Надеюсь, там нет ничего секретного. Используя GWS CLI,
00:03:24он выдал данные по каждому письму: отправитель, тема, дата и ярлыки.
00:03:28И заметьте: для этой задачи было использовано всего 9% контекста, просто потому что
00:03:33здесь нет MCP-инструментов. Большая часть контекста ушла на сообщения. Окей, попробуем другое.
00:03:38Я попрошу Claude создать черновик письма с темой "Я люблю Claude" и текстом
00:03:44в виде милого стихотворения. Снова используется GWS CLI, пишется Python через bash, и готово —
00:03:50у меня появился новый черновик, написанный Claude. Приближу немного:
00:03:56вот письмо со стихом о любви к Claude. Но есть кое-что любопытное в том,
00:04:00как именно Claude использует GWS CLI. Если посмотреть на выполненные команды,
00:04:05мы увидим множество подкоманд и флаг params с JSON внутри.
00:04:11Интересно вот что: если бы я, как человек, захотел сделать то же самое,
00:04:16введя "gws help" для просмотра подкоманд, я бы увидел лишь малую часть.
00:04:23Чтобы углубиться в конкретную команду, мне пришлось бы постоянно использовать help снова и снова.
00:04:28Но агент находит эту информацию мгновенно. Он знает
00:04:32точные параметры для получения нужных данных. Только посмотрите.
00:04:37Я ввел запрос, он один раз заглянул в help и сразу во всем разобрался.
00:04:43Позже мы разберем подробнее, как это работает, но в разделе help
00:04:48описаны принципы использования, включая сервис, ресурс и подресурс.
00:04:53Мы видим сервис внизу. А для более детальной информации
00:04:57можно использовать "gws schema" с указанием сервиса и метода. Ладно, еще один тест.
00:05:03Я попрошу Claude создать презентацию Google Slides с одним титульным слайдом
00:05:08под названием "Коты Клода" и четырьмя слайдами с изображениями котов. Он снова использует CLI,
00:05:15запрашивает помощь, изучает команды для слайдов и презентаций. И вот презентация готова.
00:05:20Давайте взглянем на нее в браузере. Вот она. Как видите, я уже
00:05:24делал тест с "Собаками Клода", но проверим эту. Заголовок "Коты Клода", подзаголовок,
00:05:30милая подборка и пять слайдов с котиками. Это реально круто. И мы
00:05:36использовали всего 15% контекста. Можно продолжать до бесконечности.
00:05:42Например, я создал таблицу с населением каждого штата США с итоговой суммой
00:05:47и даже запланировал события в календаре. Заметьте, я сделал всё это,
00:05:52не устанавливая специальные навыки для Google Workspace. Но в проекте их много —
00:05:58там есть помощники, роли и рецепты для сложных действий, вроде блокировки времени или переноса встреч.
00:06:05Как Джастину удалось так хорошо это реализовать? Во-первых, он
00:06:10сделал упор на вложенный JSON, который неудобен людям, но идеален для агентов. Также
00:06:16он сделал документацию доступной для запросов на лету. Мы это видели:
00:06:21благодаря разделу schema, если API обновится или агент введет неверный параметр,
00:06:26он сразу поймет, как это исправить, без лишней путаницы. Также
00:06:31можно использовать поля, чтобы ограничить объем данных, возвращаемых от API.
00:06:36Агент запрашивает только то, что ему нужно, не получая лишнего,
00:06:42что значительно экономит токены. И, конечно, навыки (skills) для подсказок агенту,
00:06:47которые я не использовал в демо, но они дают гораздо больше информации,
00:06:53чем просто флаг help. Значит ли это, что MCP-серверы уходят в прошлое, а CLI — это будущее?
00:06:59Не совсем. С MCP агент может вызывать функции напрямую,
00:07:06вместо того чтобы строить консольные команды и передавать JSON, как делает CLI.
00:07:11Инструменты MCP также лучше подходят для сложных цепочек шагов, и им не нужен терминал,
00:07:16поэтому у Google Workspace CLI есть поддержка MCP. Однако CLI потребляет гораздо меньше токенов,
00:07:24даже с включенным поиском инструментов. Они переносимы, то есть работают с любой средой
00:07:28агентов или вообще без нее. И команды легко воспроизвести вручную для отладки.
00:07:34Так что всё зависит от ваших задач. Хотя у меня и возникло пару проблем с CLI,
00:07:40например, опечатки в сгенерированных URL — понятия не имею, как это вышло.
00:07:47Настройка порта localhost для редиректа тоже заняла время. Не знаю,
00:07:52особенность ли это Google Cloud или самого CLI, но было неприятно. Еще была
00:07:59проблема с обновлением токенов, я даже создал тикет на GitHub. Ну,
00:08:05точнее, Claude написал его за меня — я сам ничего не писал. Но для проекта,
00:08:10которому меньше недели и у которого уже 10 тысяч звезд, будущее выглядит многообещающе.
00:08:16Кстати о будущем: если вы хотели создать Electron-приложение на базе Bun,
00:08:21чтобы оно было быстрым и легким, посмотрите мое видео об Electrobun,
00:08:26где я показываю, как использовать его для простого Vite-проекта.