Модуль 2.3 · Урок 2
Урок 2: Базовая работа с Antigravity CLI
Содержание
- Чему вы научитесь
- Два способа дать задачу
- Правила, которые агент читает сам
- Как агент ходит по коду
- Задача 1. Разобрать чужой репозиторий
- Задача 2. Новый файл
- Задача 3. Несколько файлов за один запрос
- Модель на этот запуск
- Полезные флаги режима печати
- Попробуйте сами
- Если что-то странно
- Ключевые выводы
- Следующий урок
Чему вы научитесь
- Дадите задачу агенту в терминале и одним запросом из шелла
- Заставите агента опереться на файлы проекта, а не на память модели
- Создадите файл и поправите несколько файлов за один запрос
- Положите правила в
GEMINI.mdи навык в.agents/skills/ - Поймёте, почему в режиме печати команда шелла может тихо не выполниться
Два способа дать задачу
Команда одна: agy. Способа два.
Терминальный интерфейс. Заходите в папку проекта и запускаете без флагов:
cd ~/projects/my-app
agy
Пишете задачу внизу экрана и жмёте Enter. Контекст сессии живёт, пока не выйдете. Официальный старт: Getting Started.
Один запрос и выход (режим печати). Для скрипта, CI и копипаста из урока:
agy -p "Кратко опиши структуру этой папки. Не выдумывай файлов, которых нет."
-p — то же, что --print и --prompt. Ответ агента идёт в stdout, служебное — в stderr. Документация: Headless mode.
Продолжить прошлый разговор:
agy -p "Теперь то же, но только про тесты" --continue
Правила, которые агент читает сам
На старте agy разбирает файлы правил в корне проекта. Подходят и GEMINI.md, и AGENTS.md — так написано в лучших практиках CLI. Старый GEMINI.md со времён Gemini CLI не нужно переименовывать.
Короткий рабочий файл:
# GEMINI.md
Стек: Python 3.12, FastAPI, pytest.
Стиль: type hints обязательны, без эмодзи в комментариях.
Тесты: pytest -q. Не коммить без просьбы.
Повторяющуюся процедуру кладите в навык — markdown, который становится слэш-командой.
В проекте: .agents/skills/<имя>/ или .agents/skills/<имя>.md.
Глобально на машине: ~/.gemini/antigravity-cli/skills/.
---
name: format-tests
description: Привести тесты проекта к одному стилю
---
Запусти существующий форматтер и линтер тестов.
Не переписывай прод-код. Покажи diff.
Источник: Plugins & skills. MCP и плагины — отдельный разговор; в этом уроке достаточно правил и навыка.
Как агент ходит по коду
Это не «чат, в который вы вставили весь репозиторий». Агент сам выбирает инструменты: смотрит дерево, читает файлы, пишет файлы, при необходимости запускает команду шелла.
graph TD
A["Ваш запрос"] --> B["GEMINI.md / AGENTS.md"]
B --> C["Смотрит файлы"]
C --> D{"Нужна правка?"}
D -->|нет| E["Ответ в терминал"]
D -->|да| F["Пишет файлы"]
F --> G["При необходимости команда шелла"]
G --> E
Имена инструментов видны в потоке --output-format stream-json. В документации Google для CLI фигурируют как минимум run_command и write_to_file плюс запрос разрешения. Не заучивайте старый набор Gemini CLI (run_shell_command, grep_search) — у agy другой бинарь.
Нужны тесты или git из -p — либо работайте в терминале и подтверждайте, либо заранее разрешите команды в ~/.gemini/antigravity-cli/settings.json, либо на выбросной папке:
agy -p "Запусти pytest -q и кратко перескажи падения" --dangerously-skip-permissions
Флаг одобряет все инструменты, включая запись и шелл. На основной машине без копии — нет.
Задача 1. Разобрать чужой репозиторий
Возьмите небольшой открытый проект — не свой монолит в первый раз.
cd ~/projects
git clone https://github.com/axios/axios.git
cd axios
agy -p "Опиши структуру этого репозитория по файлам на диске, не по памяти модели.
1. Какие верхние папки и зачем они.
2. Где точка входа.
3. Как устроены запрос и ответ.
4. Чем гонять тесты, если это написано в репозитории.
Если файла нет — так и скажи."
Сверьте ответ с деревом:
ls
Если агент пересказал «классический axios образца прошлых лет», а папок уже нет — в запросе не хватило «только то, что на диске». Повторите жёстче. В интерактиве тот же текст, без -p.
Найти конкретное место:
agy -p "Найди в этом репозитории код, который работает с HTTP-заголовками.
Дай пути файлов и короткие цитаты. Не придумывай символы, которых нет в файлах."
Задача 2. Новый файл
Лучше не в axios, а в своей песочнице: чужой репозиторий не место для учебных правок, которые потом всплывут в git status.
mkdir -p ~/projects/agy-sandbox && cd ~/projects/agy-sandbox
git init
agy -p "Создай lib/retry.ts с функцией retry.
Требования:
- async-функция и число попыток
- повтор при ошибке, экспоненциальная пауза
- TypeScript с типами
- короткий пример в комментарии
Другие файлы не трогай."
Проверьте, что файл появился: ls lib. Текст ниже — пример, как может выглядеть результат, не эталон agy:
/**
* Повтор вызова с экспоненциальной паузой.
* Пример: await retry(() => fetch("/api"), 3, 100);
*/
export async function retry<T>(
fn: () => Promise<T>,
maxAttempts: number = 3,
initialDelay: number = 100
): Promise<T> {
let lastError: Error | null = null;
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
try {
return await fn();
} catch (error) {
lastError = error as Error;
if (attempt < maxAttempts) {
const delay = initialDelay * Math.pow(2, attempt - 1);
await new Promise((resolve) => setTimeout(resolve, delay));
}
}
}
throw lastError;
}
Задача 3. Несколько файлов за один запрос
Сила терминального агента — не «написать функцию», а согласовать импорт, реализацию и тест.
agy -p "В этой папке:
1. Подключи retry из lib/retry.ts к публичному API, если уже есть точка входа.
Если точки входа нет — создай index.ts с реэкспортом.
2. Добавь test/retry.test.ts: успех после первой ошибки, исчерпание попыток,
что пауза растёт.
3. Не меняй посторонние файлы.
В конце перечисли пути и суть каждого изменения."
После этого:
git status
git diff
Вы смотрите diff, а не верите отчёту агента. Если правки лишние — откатите файлы и сузьте запрос.
Модель на этот запуск
Список того, что доступно вашему входу прямо сейчас:
agy models
В документации режима печати на август 2026 в примере вывода есть Gemini 3.7 Flash, Gemini 3.6 Flash, Gemini 3.1 Pro (и другие). Это не «всегда одни и те же пять строк» — смотрите свой agy models. Не ориентируйтесь на Gemini 2.5 Pro: линейка в курсе — Gemini 3.x.
Зафиксировать модель и глубину рассуждения:
agy -p "Найди в этом сервисе, где кешируется ответ." --model gemini-3.7-flash-high --effort high
Неизвестный --model в режиме печати не подменяется молча: процесс выходит с ошибкой. В интерактиве модель переключают из интерфейса; точные имена — снова agy models.
Полезные флаги режима печати
| Флаг | Зачем |
|---|---|
-p / --print | Один запрос, ответ в stdout |
--continue / -c | Продолжить последний разговор |
--model | Имя из agy models |
--effort low|medium|high | Глубина рассуждения |
--output-format json | Ответ плюс usage и статус |
--print-timeout 15m | Потолок ожидания (по умолчанию 5 минут) |
--dangerously-skip-permissions | Одобрить все инструменты на этот запуск |
Полная таблица — в Headless mode. Долгий рефакторинг — в интерактиве, а не с таймаутом 5 минут.
Попробуйте сами
Возьмите папку с кодом, который вы написали сами (не node_modules).
agy -p "Опиши этот проект по файлам на диске.
Что запускать, где тесты, какие риски править вслепую.
Файлов, которых нет, не называй."Сверьте с ls и README. Если агент «додумал» стек — в следующем запросе запретите догадки ещё жёстче.
mkdir -p ~/projects/weather-sandbox && cd ~/projects/weather-sandbox
git initagy -p "Собери минимальный HTTP-сервис погоды на FastAPI.
GET /weather?city=Moscow
GET /forecast?city=Moscow&days=5
Папки: app/, tests/.
requirements.txt, пример .env без секретов, README с curl.
Не подключай платную погоду: верни заглушку с понятной структурой ответа."Проверьте find . -type f. Ставить зависимости и гонять сервер — сами или в интерактиве с подтверждением команд.
В той же песочнице:
agy -p "Добавь логирование запросов, свои исключения и один тест на ошибку.
Обнови только нужные файлы. В конце — список путей.
Тесты сам не запускай, только напиши."Смотрите git diff. Фраза «тесты сам не запускай» как раз обходит шелл в -p.
Если что-то странно
- Пустой или «общий» ответ — вы не в той папке.
agyработает от текущего каталога. - Файл не появился — смотрите, не отказали ли в разрешении (stderr в
-p, запрос в интерактиве). - Агент правит не те пути — сузьте: «только
app/иtests/, README не трогай». - Справка по флагам:
agy --help. Типичные поломки входа — урок 1 и официальный troubleshooting.
Из России вход в Google часто не открывается. Конкретные марки VPN не советуем. Модели рублями без подписки вендора — arckep.ru, стартовый баланс 100 ₽.
Ключевые выводы
- В папке проекта: интерактив —
agy, один запрос —agy -p "…" GEMINI.mdиAGENTS.mdпо-прежнему читаются; навыки проекта —.agents/skills/- Правка нескольких файлов работает, если в запросе есть границы и вы смотрите
git diff - В режиме печати шелл по умолчанию не свободный — это не баг, это политика разрешений
- Модели линейки Gemini 3.x; актуальный список —
agy models, не статьи про 2.5 Pro
Следующий урок
→ Урок 3: Когда agy, когда Claude Code
Там — чем терминальный агент Google отличается от Claude Code, когда оставить компаниям старый gemini, и как не выбирать «один навсегда».