Разработка навыков Google Antigravity

1. Введение

Google Antigravity — это платформа для разработки агентных систем, созданная для того, чтобы помочь вам в разработке в эпоху агентов. Antigravity служит центральным командным центром для ваших ИИ-агентов, предоставляя единую платформу для запуска, мониторинга и координации их действий.

В этом практическом занятии мы сначала познакомимся с Agent Skills — облегченным открытым форматом для расширения возможностей ИИ-агентов с помощью специализированных знаний и рабочих процессов. Вы узнаете, что такое Agent Skills, их преимущества и как они создаются. Затем вы создадите несколько Agent Skills, начиная от форматировщика Git, генератора шаблонов, генератора кода для инструментов и многого другого, — все это можно будет использовать в Antigravity.

Предварительные требования:

  • Система антигравитации установлена ​​и настроена.
  • Базовое понимание Google Antigravity. Рекомендуется пройти практическое занятие: Начало работы с Google Antigravity .

2. Почему важны навыки?

Современные агенты ИИ эволюционировали от простых слушателей до сложных логических машин, интегрирующихся с локальными файловыми системами и внешними инструментами (через MCP-серверы ). Однако неизбирательная загрузка агента целыми кодовыми базами и сотнями инструментов приводит к насыщению контекста и «раздуванию инструментов». Даже при больших контекстных окнах, размещение 40–50 тысяч токенов неиспользуемых инструментов в активной памяти приводит к высокой задержке, финансовым потерям и «разложению контекста», когда модель начинает путаться из-за нерелевантных данных.

Решение: Навыки агентов

Для решения этой проблемы компания Anthropic представила Agent Skills , изменив архитектуру с монолитной загрузки контекста на прогрессивное раскрытие информации . Вместо того чтобы заставлять модель «запоминать» каждый конкретный рабочий процесс (например, миграцию баз данных или аудит безопасности) в начале сессии, эти возможности объединены в модульные, легко обнаруживаемые блоки.

Как это работает

Первоначально модель получает доступ только к облегченному «меню» метаданных. Сложные процедурные знания (инструкции и скрипты) загружаются только тогда, когда намерение пользователя точно соответствует навыку. Это гарантирует, что разработчик, желающий рефакторизовать промежуточное ПО аутентификации, получит контекст безопасности без загрузки несвязанных конвейеров CSS, что делает контекст лаконичным, быстрым и экономически эффективным.

d3f4bcb065a19fea.png

3. Навыки агента и антигравитация

В экосистеме Antigravity навыки выступают в качестве специализированных обучающих модулей, которые заполняют пробел между универсальными моделями и вашим конкретным контекстом. Они позволяют агенту «оснащаться» определенным набором инструкций и протоколов — таких как стандарты миграции баз данных или проверки безопасности — только тогда, когда запрашивается соответствующая задача. Динамически загружая эти протоколы выполнения, навыки эффективно превращают ИИ из обычного программиста в специалиста, который строго придерживается кодифицированных передовых методов и стандартов безопасности организации.

Что такое навык в условиях антигравитации?

В контексте Google Antigravity навык представляет собой пакет, расположенный в каталоге и содержащий файл определения ( SKILL.md ) и необязательные вспомогательные ресурсы (скрипты, ссылки, шаблоны).

Это механизм для расширения возможностей по запросу.

  • Загрузка по запросу : В отличие от системной подсказки (которая всегда загружена), навык загружается в контекст агента только тогда, когда агент определяет, что он актуален для текущего запроса пользователя. Это оптимизирует контекстное окно и предотвращает отвлечение агента на нерелевантные инструкции. В крупных проектах с десятками инструментов такая выборочная загрузка имеет решающее значение для производительности и точности рассуждений.
  • Расширение возможностей : Навыки могут не только давать инструкции, но и выполнять действия. Благодаря включению скриптов Python или Bash, навык может предоставить агенту возможность выполнять сложные многоэтапные действия на локальном компьютере или во внешних сетях без необходимости ручного запуска команд пользователем. Это превращает агента из генератора текста в пользователя инструмента.

Навыки против экосистемы (инструменты, правила и рабочие процессы)

В то время как протокол контекста модели (MCP) выступает в роли «рук» агента, обеспечивая надежные и постоянные соединения с внешними системами, такими как GitHub или PostgreSQL, навыки действуют как «мозги», управляющие ими.

MCP управляет инфраструктурой с сохранением состояния, в то время как Skills представляют собой легковесные, временные определения задач, которые упаковывают методологию использования этих инструментов. Такой бессерверный подход позволяет агентам выполнять задачи по мере необходимости (например, генерацию журналов изменений или миграций) без операционных издержек, связанных с запуском постоянных процессов, загружая контекст только тогда, когда задача активна, и немедленно освобождая его после этого.

Навыки запускаются агентом : модель автоматически определяет намерения пользователя и динамически предоставляет необходимые специфические знания. Такая архитектура обеспечивает широкие возможности компоновки; например, глобальное правило может обеспечивать использование навыка «Безопасная миграция» во время изменений в базе данных, или один рабочий процесс может координировать работу нескольких навыков для создания надежного конвейера развертывания.

4. Развитие навыков

Создание навыка в Antigravity осуществляется в соответствии со специфической структурой каталогов и форматом файлов. Такая стандартизация гарантирует переносимость навыков и возможность надежного анализа и выполнения их агентом. Дизайн намеренно упрощен и основан на широко распространенных форматах, таких как Markdown и YAML, что снижает порог вхождения для разработчиков, желающих расширить возможности своей IDE.

Структура каталогов

Типичная папка Skill выглядит следующим образом:

my-skill/
├── SKILL.md # The definition file
├── scripts/ # [Optional] Python, Bash, or Node scripts
     ├── run.py
     └── util.sh
├── references/ # [Optional] Documentation or templates
     └── api-docs.md
└── assets/ # [Optional] Static assets (images, logos)

Такая структура эффективно разделяет задачи. Логика ( scripts ) отделена от инструкций ( SKILL.md ) и знаний ( references ), что соответствует стандартным методам разработки программного обеспечения.

Файл определения SKILL.md

Файл SKILL.md — это «мозг» навыка. Он сообщает агенту, что представляет собой навык, когда его использовать и как его выполнить.

Оно состоит из двух частей:

  • YAML-заголовок
  • Текст сообщения в формате Markdown.

YAML-заголовок

Это слой метаданных. Это единственная часть навыка, которая индексируется высокоуровневым маршрутизатором агента. Когда пользователь отправляет запрос, агент семантически сопоставляет его с полями описания всех доступных навыков.

---
name: database-inspector
description: Use this skill when the user asks to query the database, check table schemas, or inspect user data in the local PostgreSQL instance.
---

Ключевые области:

  • Имя : Это необязательно. Должно быть уникальным в пределах области видимости. Допускаются строчные буквы и дефисы (например, postgres-query , pr-reviewer ). Если имя не указано, будет использоваться имя каталога по умолчанию.
  • Описание : Это обязательное и наиболее важное поле. Оно служит «ключевой фразой». Оно должно быть достаточно подробным, чтобы специалист в области управления знаниями (LLM) смог определить семантическую значимость. Расплывчатое описание, например, «Инструменты базы данных», недостаточно. Точное описание, например, «Выполняет SQL-запросы только для чтения к локальной базе данных PostgreSQL для получения данных о пользователях или транзакциях. Используйте это для отладки состояний данных», гарантирует правильное освоение навыка.

Текст сообщения в формате Markdown

В теле документа содержатся инструкции. Это «оперативная разработка», сохраненная в файле. При активации навыка это содержимое внедряется в контекстное окно агента.

В тексте должны быть указаны следующие сведения:

  1. Цель: Четко сформулировать, чего можно достичь с помощью данного навыка.
  2. Инструкции: Пошаговая логика.
  3. Примеры: Несколько примеров входных и выходных данных для оценки производительности модели.
  4. Ограничения: правила «Не выполнять» (например, «Не выполнять запросы DELETE»).

Пример содержимого файла SKILL.md:

Database Inspector

Goal
To safely query the local database and provide insights on the current data state.

Instructions
- Analyze the user's natural language request to understand the data need.
- Formulate a valid SQL query.
 - CRITICAL: Only SELECT statements are allowed.
- Use the script scripts/query_runner.py to execute the SQL.
 - Command: python scripts/query_runner.py "SELECT * FROM..."
- Present the results in a Markdown table.

Constraints
- Never output raw user passwords or API keys.
- If the query returns > 50 rows, summarize the data instead of listing it all.

Интеграция скриптов

Одна из самых мощных функций Skills — это возможность делегировать выполнение скриптам. Это позволяет агенту выполнять действия, которые сложно или невозможно выполнить напрямую с помощью LLM (например, выполнение бинарных команд, сложные математические вычисления или взаимодействие с устаревшими системами).

Скрипты размещаются в подкаталоге scripts/ . В файле SKILL.md они указаны по относительному пути.

5. Навыки создания контента

Цель этого раздела — разработка навыков, интегрирующихся в Antigravity, и постепенное отображение различных функций, таких как ресурсы, скрипты и т. д.

Скачать навыки можно из репозитория Github здесь: https://github.com/rominirani/antigravity-skills .

Прежде чем мы разберемся, как был разработан каждый из этих навыков, давайте посмотрим, как мы их настраиваем и делаем доступными в пакете продуктов Antigravity. Приведенные ниже папки актуальны на момент публикации этого лабораторного занятия.

Использование антигравитации или интерфейса командной строки антигравитации

Навыки можно определить в двух рамках, что позволяет создавать как специфические для проекта, так и специфические для пользователя навыки, то есть глобальные навыки.

  • Глобальная область применения ( ~/.gemini/config/skills/ ): Доступно для всех продуктов Antigravity (Antigravity, Antigravity IDE, Antigravity CLI) и проектов. Эти навыки доступны для всех проектов на компьютере пользователя. Подходит для общих утилит, таких как «Форматирование JSON», «Генерация UUID», «Проверка стиля кода», или для интеграции с персональными инструментами повышения производительности.
  • Область действия проекта/рабочей области ( <project-root>/.agents/skills/ ): Это позволит использовать навык только в рамках конкретного проекта. Идеально подходит для скриптов, специфичных для проекта, например, для развертывания в определенной среде, управления базами данных для этого приложения или генерации шаблонного кода для проприетарного фреймворка.

Установка навыков в Antigravity или Antigravity CLI

Для этого урока нам нужно выполнить всего лишь следующие шаги (вы можете сделать это и по-своему):

Шаг 1 : Выполните команду git clone для репозитория https://github.com/rominirani/antigravity-skills

Шаг 2 : Теперь, в зависимости от того, используете ли вы Antigravity или Antigravity CLI, вы можете перейти в папку antigravity-skills/skills_tutorial .

Шаг 3 : Вы найдете набор навыков, упакованных в соответствующие папки. Скопируйте следующие 4 папки:

  • git-commit-formatter
  • license-header-adder
  • database-schema-validator
  • json-to-pydantic

в целевую папку навыков для продукта (в рамках проекта или в глобальном масштабе).

Шаг 4: Если вы используете Antigravity или Antigravity CLI , скопируйте их в <project-root>/.agents/skills/ (область действия проекта).

Если вы запустили Antigravity, вы можете задать простой вопрос: « Какие навыки доступны? », и система ответит вам тем же. Вы увидите список из 4 навыков. Возможно, у вас также есть дополнительные навыки, если вы установили их в своей среде.

191842a2a0d69597.png

Аналогично, если вы используете Antigravity CLI, вы можете ввести следующую команду /skills , и она должна вывести список из 4 навыков. Пример показан ниже:

46be7782d027aa41.png

Теперь, когда мы знаем, как настроить навыки, давайте рассмотрим каждый из навыков и разберемся, как они были созданы. Вы также можете использовать эти шаблоны для создания собственных навыков.

Уровень 1: Базовый маршрутизатор (git-commit-formatter)

Давайте рассмотрим это как "Привет, мир" навыков.

Разработчики часто пишут ленивые сообщения для коммитов, например, "в процессе", "исправить ошибку", "обновления". Ручное обеспечение соблюдения "стандартных коммитов" утомительно и часто забывается. Давайте реализуем навык, который будет обеспечивать соблюдение спецификации "стандартных коммитов". Просто проинструктировав агента о правилах, мы позволим ему действовать в качестве исполнителя.

git-commit-formatter/
└── SKILL.md  (Instructions only)

Ниже представлен файл SKILL.md :

---
name: git-commit-formatter
description: Formats git commit messages according to Conventional Commits specification. Use this when the user asks to commit changes or write a commit message.
---

Git Commit Formatter Skill

When writing a git commit message, you MUST follow the Conventional Commits specification.

Format
`<type>[optional scope]: <description>`

Allowed Types
- **feat**: A new feature
- **fix**: A bug fix
- **docs**: Documentation only changes
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, etc)
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **perf**: A code change that improves performance
- **test**: Adding missing tests or correcting existing tests
- **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation

Instructions
1. Analyze the changes to determine the primary `type`.
2. Identify the `scope` if applicable (e.g., specific component or file).
3. Write a concise `description` in an imperative mood (e.g., "add feature" not "added feature").
4. If there are breaking changes, add a footer starting with `BREAKING CHANGE:`.

Example
`feat(auth): implement login with google`

Как запустить этот пример в режиме антигравитации

Описанные ниже шаги предполагают, что Git установлен на вашем локальном компьютере и правильно настроен.

Предполагая, что вы запустили Antigravity или Antigravity CLI, выполните следующие действия:

Шаг 1: Настройка тестового репозитория Git

Попросите агента создать чистую, изолированную директорию для тестирования операций Git.

Ваш запрос:

Create a folder named git_test in the workspace, initialize a git repository inside it, and create an initial file auth.py with def login(): pass. Stage this file and make an initial commit.

Агент создаст каталог, инициализирует репозиторий, добавит файл в индекс и зафиксирует его с сообщением типа " initial commit ".

Шаг 2: Внесите изменения в код.

Попросите агента изменить код таким образом, чтобы появилась возможность зафиксировать изменения.

Ваш запрос:

In the git_test folder, modify auth.py to add Google Login functionality.

Агент отредактирует файл, добавив новую функцию, и подготовит его к этапу фиксации изменений.

Шаг 3: Подготовка и подтверждение изменений.

Запустите навык git-commit-formatter , попросив агента добавить изменения в индекс и создать коммит.

Ваш запрос:

Stage the changes in the git_test folder and commit them. Make sure to format the commit message using the Conventional Commits skill.

Агент выполнит команду git add auth.py , проанализирует изменения, чтобы определить, что в модуль auth была добавлена ​​новая функция, и сформирует стандартное сообщение коммита, например, feat(auth): implement google login прежде чем выполнить команду git commit .

Шаг 4: Проверьте журнал Git.

Попросите агента получить историю Git, чтобы вы могли убедиться, что отформатированный коммит был успешно записан.

Ваш запрос:

Show me the git log in the git_test folder.

Агент выполнит команду git log -n 5 и вернет вывод, содержащий отформатированное сообщение коммита.

Уровень 2: Использование активов (заголовок лицензии)

Это шаблон "Reference".

В каждом исходном файле корпоративного проекта может потребоваться специальный 20-строчный заголовок лицензии Apache 2.0. Размещение этого статического текста непосредственно в командной строке (или в файле SKILL.md ) неэффективно. Это расходует токены каждый раз при индексации навыка, и модель может «выдумывать» опечатки в юридическом тексте. Хорошей практикой является перенос статического текста в обычный текстовый файл в папке resources/ . Навык дает указание агенту читать этот файл только при необходимости.

Файлы находятся в папке license-header-adder в каталоге skills .

license-header-adder/
├── SKILL.md
└── resources/
   └── HEADER_TEMPLATE.txt  (The heavy text)

Ниже представлен файл SKILL.md :

---
name: license-header-adder
description: Adds the standard open-source license header to new source files. Use involves creating new code files that require copyright attribution.
---

# License Header Adder Skill

This skill ensures that all new source files have the correct copyright header.

## Instructions

1. **Read the Template**:
  First, read the content of the header template file located at `resources/HEADER_TEMPLATE.txt`.

2. **Prepend to File**:
  When creating a new file (e.g., `.py`, `.java`, `.js`, `.ts`, `.go`), prepend the `target_file` content with the template content.

3. **Modify Comment Syntax**:
  - For C-style languages (Java, JS, TS, C++), keep the `/* ... */` block as is.
  - For Python, Shell, or YAML, convert the block to use `#` comments.
  - For HTML/XML, use `<!-- ... -->`.

Как запустить этот пример в режиме антигравитации

Предполагая, что вы запустили Antigravity или Antigravity CLI, выполните следующие действия:

Шаг 1: Создайте файл Python с примером кода.

Ваше задание:

Create a new file my_script.py with the following python code:

def hello():
   print("Hello, World!")

Что произошло (объяснение): Агент запустил инструмент записи файлов (write_to_file), чтобы создать новый файл с именем my_script.py непосредственно в активном каталоге рабочей области, и записал в него базовую функцию Python. Кроме того, командная строка активировала навык license-header-adder . Агент нашел и прочитал файл шаблона лицензии ( HEADER_TEMPLATE.txt ), изменил стиль комментариев с блочных комментариев в стиле C (/* ... */) на комментарии в стиле Python (#) и добавил их в начало файла с помощью инструмента replace_file_content .

Шаг 2: Проверьте содержимое файла.

Взгляните на файл my_script.py . В самом верху он будет содержать заголовок с информацией о лицензии.

Уровень 3: Обучение на примерах (json-to-pydantic)

Схема "Мало выстрелов".

Преобразование неструктурированных данных (например, ответа JSON API) в строгий код (например, модели Pydantic) включает в себя десятки решений. Как следует называть классы? Использовать ли Optional ? snake_case или camelCase ? Записывать эти 50 правил на английском языке утомительно и чревато ошибками.

LLM — это системы сопоставления шаблонов.

Создание навыка на основе наглядного примера ( Input -> Output ) зачастую эффективнее, чем подробные инструкции.

Перейдите в папку json-to-pydantic/ , содержащую файлы навыков, как показано ниже:

json-to-pydantic/
├── SKILL.md
└── examples/
   ├── input_data.json   (The Before State)
   └── output_model.py   (The After State)

Ниже представлен файл SKILL.md :

---
name: json-to-pydantic
description: Converts JSON data snippets into Python Pydantic data models.
---

# JSON to Pydantic Skill

This skill helps convert raw JSON data or API responses into structured, strongly-typed Python classes using Pydantic.

Instructions

1. **Analyze the Input**: Look at the JSON object provided by the user.
2. **Infer Types**:
  - `string` -> `str`
  - `number` -> `int` or `float`
  - `boolean` -> `bool`
  - `array` -> `List[Type]`
  - `null` -> `Optional[Type]`
  - Nested Objects -> Create a separate sub-class.
 
3. **Follow the Example**:
  Review `examples/` to see how to structure the output code. notice how nested dictionaries like `preferences` are extracted into their own class.
 
  - Input: `examples/input_data.json`
  - Output: `examples/output_model.py`

Style Guidelines
- Use `PascalCase` for class names.
- Use type hints (`List`, `Optional`) from `typing` module.
- If a field can be missing or null, default it to `None`.

В папке /examples находятся JSON-файл и выходной файл, то есть файл Python. Оба файла показаны ниже:

input_data.json

{
   "user_id": 12345,
   "username": "jdoe_88",
   "is_active": true,
   "preferences": {
       "theme": "dark",
       "notifications": [
           "email",
           "push"
       ]
   },
   "last_login": "2024-03-15T10:30:00Z",
   "meta_tags": null
}

output_model.py

from pydantic import BaseModel, Field
from typing import List, Optional

class Preferences(BaseModel):
   theme: str
   notifications: List[str]

class User(BaseModel):
   user_id: int
   username: str
   is_active: bool
   preferences: Preferences
   last_login: Optional[str] = None
   meta_tags: Optional[List[str]] = None

Как запустить этот пример в режиме антигравитации

Предполагая, что вы запустили Antigravity или Antigravity CLI, выполните следующие действия:

Шаг 1: Создайте JSON-файл с примерами данных.

Попросите агента создать новый файл product.json , содержащий необработанные данные в формате JSON.

Ваше задание:

Create a new file product.json with the following JSON:

{
 "product": "Widget",
 "cost": 10.99,
 "stock": null
}

Шаг 2: Преобразуйте JSON в модель Pydantic.

Запустите навык json-to-pydantic , чтобы преобразовать данные JSON в структурированный класс Pydantic.

Ваше задание:

Convert the JSON in product.json to a Pydantic model and save it to product_model.py.

Шаг 3: Проверка результата

Взгляните на файл product_model.py . В нём будет содержаться готовая модель Pydantic.

Уровень 4: Процедурная логика (база данных-схема-валидатор)

Это шаблон "Использование инструмента".

Если вы спросите магистра права: «Безопасна ли эта схема?», он, скорее всего, ответит, что всё в порядке, даже если отсутствует критически важный первичный ключ, просто потому что SQL-запрос выглядит корректным.

Давайте делегируем эту проверку детерминированному скрипту. Наш навык database-schema-validator направит агента на выполнение написанного нами скрипта на Python. Скрипт предоставляет бинарное значение (истина/ложь).

database-schema-validator/
├── SKILL.md
└── scripts/
   └── validate_schema.py  (The Validator)

Ниже представлен файл SKILL.md :

---
name: database-schema-validator
description: Validates SQL schema files for compliance with internal safety and naming policies.
---

# Database Schema Validator Skill

This skill ensures that all SQL files provided by the user comply with our strict database standards.

Policies Enforced
1. **Safety**: No `DROP TABLE` statements.
2. **Naming**: All tables must use `snake_case`.
3. **Structure**: Every table must have an `id` column as PRIMARY KEY.

Instructions

1. **Do not read the file manually** to check for errors. The rules are complex and easily missed by eye.
2. **Run the Validation Script**:
  Use the `run_command` tool to execute the python script provided in the `scripts/` folder against the user's file.
 
  `python scripts/validate_schema.py <path_to_user_file>`

3. **Interpret Output**:
  - If the script returns **exit code 0**: Tell the user the schema looks good.
  - If the script returns **exit code 1**: Report the specific error messages printed by the script to the user and suggest fixes.

Ниже представлен файл validate_schema.py :

import sys
import re

def validate_schema(filename):
   """
   Validates a SQL schema file against internal policy:
   1. Table names must be snake_case.
   2. Every table must have a primary key named 'id'.
   3. No 'DROP TABLE' statements allowed (safety).
   """
   try:
       with open(filename, 'r') as f:
           content = f.read()
          
       lines = content.split('\n')
       errors = []
      
       # Check 1: No DROP TABLE
       if re.search(r'DROP TABLE', content, re.IGNORECASE):
           errors.append("ERROR: 'DROP TABLE' statements are forbidden.")
          
       # Check 2 & 3: CREATE TABLE checks
       table_defs = re.finditer(r'CREATE TABLE\s+(?P<name>\w+)\s*\((?P<body>.*?)\);', content, re.DOTALL | re.IGNORECASE)
      
       for match in table_defs:
           table_name = match.group('name')
           body = match.group('body')
          
           # Snake case check
           if not re.match(r'^[a-z][a-z0-9_]*$', table_name):
               errors.append(f"ERROR: Table '{table_name}' must be snake_case.")
              
           # Primary key check
           if not re.search(r'\bid\b.*PRIMARY KEY', body, re.IGNORECASE):
               errors.append(f"ERROR: Table '{table_name}' is missing a primary key named 'id'.")

       if errors:
           for err in errors:
               print(err)
           sys.exit(1)
       else:
           print("Schema validation passed.")
           sys.exit(0)
          
   except FileNotFoundError:
       print(f"Error: File '{filename}' not found.")
       sys.exit(1)

if __name__ == "__main__":
   if len(sys.argv) != 2:
       print("Usage: python validate_schema.py <schema_file>")
       sys.exit(1)
      
   validate_schema(sys.argv[1])

Как запустить этот пример в режиме антигравитации

Предполагая, что вы запустили Antigravity или Antigravity CLI, выполните следующие действия:

Шаг 1: Создайте JSON-файл с примерами данных.

Попросите агента создать новый файл bad_schema.sql , содержащий множество нарушений политик.

Ваше задание:

Create a new file bad_schema.sql with the following SQL:

DROP TABLE IF EXISTS legacy_users;

CREATE TABLE userProfile (
    id INT PRIMARY KEY,
    bio TEXT
);

CREATE TABLE posts (
    title TEXT,
    content TEXT,
    created_at TIMESTAMP
);

CREATE TABLE comments (
    id INT PRIMARY KEY,
    post_id INT,
    body TEXT
);

Приведенный выше файл схемы нарушает все три правила: он использует запрещенный оператор DROP TABLE , использует camelCase для имени таблицы userProfile и забывает первичный ключ id в таблице posts .

Шаг 2: Проверка схемы SQL

Запустите навык database-schema-validator , чтобы выполнить скрипт валидатора на языке Python для вашего файла.

Ваш запрос:

Validate bad_schema.sql using the database-schema-validator skill.

Шаг 3: Проверка результата

Агент сообщит о сбое и отобразит конкретные ошибки, обнаруженные скриптом, непосредственно в чате. Пример выходных данных показан ниже:

Suggested Fixes:
Remove the line DROP TABLE IF EXISTS legacy_users; as dropping tables is forbidden by safety policy.
Rename the table userProfile to use snake_case (e.g., user_profile).
Add a primary key column named id to the posts table definition.

6. Инструментарий разработчика (навыки работы с командной строкой агентов)

Модель «Действие и жизненный цикл».

Разработка агентов искусственного интеллекта включает в себя повторяющиеся задачи жизненного цикла: создание шаблонных файлов, настройка локальных сред выполнения, запуск тестовых запросов и запуск интерактивных площадок.

Вместо того чтобы заставлять вашего помощника по программированию гадать о структуре каталогов или писать шаблонные конфигурации агента с нуля, Agents CLI Skills объединяет этот опыт управления жизненным циклом в конкретные навыки для агентов.

Навыки Agent CLI (Command Line Interface) обеспечивают оптимизированную, ориентированную на разработчиков автоматизацию непосредственно в вашем терминале, устраняя разрыв между написанным кодом и автономным выполнением. В то время как Agent Development Kit (ADK) фокусируется на программной структуре, предоставляя вам SDK, API и структурные шаблоны для создания и управления агентами ИИ, навыки Agent CLI обеспечивают операционную поддержку. Они позволяют разработчикам создавать, тестировать и развертывать агентов локально с быстрой обратной связью, полностью обходя стороной значительные накладные расходы на пользовательский интерфейс.

При подключении к Google Cloud навыки Agent CLI выступают в качестве прямого канала связи с инфраструктурой корпоративного уровня. Вместо того чтобы работать через консоли, вы можете использовать команды CLI для мгновенной упаковки рабочих процессов агентов, управления правами доступа и развертывания их в экосистемах Google Cloud (таких как Vertex AI или Cloud Run). Это превращает сложные задачи по архитектуре облака в простые, воспроизводимые команды терминала, значительно упрощая интеграцию автономных агентов в существующие конвейеры развертывания CI/CD.

Как установить

Убедитесь, что у вас установлены Python 3.11+ , Node.js и менеджер пакетов uv . Затем выполните команду setup в терминале:

uvx google-agents-cli setup

Эта команда устанавливает исполняемый файл agents-cli и регистрирует его специализированные функции для создания и оценки кода в среде вашего помощника по программированию.

Примечание: Навыки будут установлены в папку ~/.agents/skills , которая видна Antigravity. Если вы хотите видеть эти навыки в командной строке Antigravity, вам нужно будет переместить их в папку ~/.gemini/antigravity-cli/skills (глобальная область видимости).

Проверить загрузку навыков в Antigravity можно, просто спросив, какие навыки доступны. Ниже приведён пример ответа для навыков командной строки агента, которые мы только что установили.

aade8c84acacf956.png

Пошаговое руководство

После завершения uvx google-agents-cli setup вы можете запустить, взаимодействовать и тестировать ИИ-агента полностью на своем локальном компьютере.

Шаг 1: Создайте и инициализируйте новый проект агента.

Выполните команду создания, чтобы сформировать стандартизированный макет. После создания необходимо установить зависимости проекта, прежде чем запускать какие-либо задачи.

# 1. Create a lightweight prototype project structure
agents-cli create weather-assistant --prototype --yes

# 2. Move into the directory and install required ADK dependencies
cd weather-assistant
agents-cli install

Что происходит за кулисами: Это создает чистое рабочее пространство, содержащее app/agent.py (ваш основной код), pyproject.toml (метаданные пакета) и agents-cli-manifest.yaml (трекер проекта).

Шаг 2: Выполните локальный тестовый запрос.

Выполните быструю проверку работы вашего агента через командную строку. Убедитесь, что ваш GEMINI_API_KEY экспортирован в терминал, если вы не используете ADC (Application Default Credentials) от Google Cloud. Вы можете получить ключ API Gemini здесь . После получения ключа экспортируйте его в терминал с помощью следующей команды:

export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"

Введите следующую команду в терминале:

agents-cli run "How are you?"

Что происходит за кулисами: Интерфейс командной строки инициализирует жизненный цикл комплекта разработки агентов (ADK) полностью в памяти вашего терминала. Он безопасно перенаправляет приглашение командной строки через ваши локальные учетные данные и записывает ответ в режиме реального времени непосредственно в вашу командную строку.

Шаг 3: Запустите интерактивную веб-площадку.

Запустите встроенную локальную веб-платформу для визуального взаимодействия с вашим агентом.

agents-cli playground

Что происходит за кулисами: CLI запускает веб-сервер ADK, обычно доступный по http://localhost:8080 или, в качестве резервного варианта, http://127.0.0.1:8000 , с функцией «горячей перезагрузки». В веб-интерфейсе выберите приложение в раскрывающемся списке «Выберите приложение» вверху и взаимодействуйте с агентом в диалоговом интерфейсе в правой части веб-приложения.

7. Установка навыков агента с помощью навыков npx.

npx skills — это инструмент командной строки, разработанный компанией Vercel Labs, который выступает в качестве менеджера пакетов для агентов искусственного интеллекта (таких как Antigravity, Claude Code, GitHub Copilot, Cursor и Cline). Это CLI для открытой экосистемы навыков агентов.

Если вы хотите загрузить и установить навыки Agent Skills с помощью пакета npx skills , обратите внимание, что он помещает навыки в папку ~/.agents/skills . Хотя в описании указано, что такие инструменты, как Antigravity, будут использовать навыки из этой папки, имейте в виду, что на момент написания этой статьи Antigravity использует именно эту папку, а Antigravity CLI — нет. Как упоминалось ранее, вам потребуется скопировать навыки, установленные в папке ~/.agents/skills , либо в папку проекта, либо в глобальную область видимости для папок навыков в Antigravity CLI, например.

  1. Область применения проекта : находится в <project-root>/.agent/skills/ .
  2. Глобальная область действия : находится в ~/.gemini/antigravity-cli/skills/ .

8. Поздравляем!

Поздравляем! Вы успешно использовали Google Antigravity для создания своего первого навыка Agent, настроили его и добавили пользовательские возможности.

Вам также удалось настроить набор навыков агента как на уровне проекта, так и на глобальном уровне, что позволило реализовать пользовательские инструменты!

Теперь вы готовы позволить Antigravity взять на себя основную работу над вашими проектами и писать код так, как вам удобно.

Получите значок Kaggle "5-дневный курс по ИИ-агентам"

Вы выполнили эту лабораторную работу в рамках 5-дневного интенсивного курса программирования Vibe от Google на Kaggle? Получите значок за завершение курса: Получить значок 5-дневного курса по ИИ-агентам .

9. Справочные документы