Как настроить AI-агента под проект: контекст, rules, skills, MCP — конспект двух вебинаров

от автора

Эта статья — выжимка двух наших апрельских вебинаров с разработчиком агента Михаилом Костицыным. По общим тезисам каждый может проверить выводы у себя.

Записи вебинаров на RuTube:Вебинар 1 — AI-инструменты для разработчиков 2026Вебинар 2 — Настройка проекта под агента

TL;DR

  • Качество результата агента = качество контекста. Все остальное — производные.

  • Правил кастомизации пять: rules, skills, режимы агента, MCP, AgentIgnore. У каждого свой случай применения.

  • AGENTS.md — точка истины проекта. Memory bank — долгосрочная память.

  • Главные антипаттерны: недостаточный контекст и перегруженный контекст. Решения противоположные, симптомы тоже разные.

  • Подход TDD/SDD с агентом даёт лучшее качество. С локальными моделями он критичен.

Эволюция: от автодополнения до агентских систем

Цепочка короткая:

Этап

Что умеет

Главная боль

Автодополнение

продолжить строку, дописать функцию

контекст = текущий файл

Чат-ассистенты

диалог, объяснение кода

человек = прокси, copy-paste

Агенты

читать/править файлы, запускать команды, MCP

перегрузка одного контекста

Агентские системы

оркестратор + sub-agents, роли

сложность настройки

В чат-ассистентах разработчик постоянно копировал код туда-обратно — отсюда «много ручной работы и разрыв контекста». Агенты живут прямо в проекте, видят весь код, имеют инструменты. Сверху — агентские системы, которые координируют нескольких специализированных агентов и решают проблему переполнения единого контекста.

Где живёт агент: три класса инструментов

Консольные агенты

Живут в терминале. Запускаются на удалённом сервере, в CI, легко параллелить через git worktree.

Плюсы

Минусы

Нет vendor-lock на IDE

Меньше контроля при разработке

Можно ставить в CI/CD

Нет семантики языка — только LSP

Параллелизм нескольких агентов

Нет автодополнения для подконтрольной генерации

Опаснее по безопасности (доступ к ФС)

Примеры: Claude Code, Codex, Gemini CLI, Qwen Code, Opencode, Aider (умеет коммитить сам). Полностью автономные: AutoGPT, SWE-agent, OpenHands.

Агенты внутри IDE

Лучше понимают язык: PSI/индексы, рефакторинги через API, семантический поиск (Find Usages, Go to Declaration). Знакомый UI — недооценённый фактор при внедрении в команду.

Плюсы

Минусы

Понимание языка через PSI

Привязка к одной IDE

Знакомый UI разработчика

Тяжело параллелить

Автодополнение

Сложно поднять в CI

Примеры: Cursor (форк VS Code), Veai, GitHub Copilot, Windsurf, Cline, Sweep Dev, Zed.

Агенты в CI/CD

Асинхронное ревью PR, генерация описаний, авто-фиксы, changelog’и.

Плюсы

Минусы

Не отнимают ресурсы человека

Замедляют пайплайны

Единый стандарт ревью

Непредсказуемые расходы на токены

Галлюцинации убивают доверие к ревью

Доступ к чувствительной инфраструктуре

Примеры: CodeRabbit, PR-Agent (Codium Merge), GitHub Copilot for PRs, GitLab Duo (умеет искать уязвимости).

Полностью автономные

Принимают задачу из Jira/GitHub Issue и идут решать без участия человека: AutoGPT, SWE-agent, OpenHands.

Контекст: откуда берётся и как ломается

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

Автоматический сбор — три подхода в индустрии:

Подход

Что даёт

Где ломается

LSP-серверы

AST, синтаксис

Не понимают семантику, плохо со сломанным кодом

PSI (JetBrains)

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

Привязка к JetBrains-платформе

RAG по коду

Эмбеддинги, гибкий поиск

Неделимый код режется по чанкам, ничего не знает про компиляцию

PSI — единственный из трёх, который видит код семантически: точно знает, что метод наследуется, что аннотация применима, что функция используется именно вот здесь. Плюс работает со сломанным кодом — может объяснить агенту, в чём именно ошибка компиляции.

Главное правило

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

Антипаттерн 1: недостаточный контекст

Симптом. Агент решает не ту задачу.

Решения:

  • Редактируйте уже отправленное сообщение, а не дописывайте уточнения новым. Если ответите «нет, ты понял неправильно» — агент в контексте увидит и исходную задачу, и поправку, и начнёт путаться.

  • Используйте rules для повторяющихся указаний, которые мигрируют из чата в чат.

  • Передавайте полную спецификацию через MCP — из Jira, Confluence, GitHub.

  • План перед решением — большинство агентов умеют декомпозировать задачу до начала работы. Это сразу даёт спецификацию де-факто.

Антипаттерн 2: перегруженный контекст

Симптом. Агент смешивает разные задачи или вдруг начинает решать что-то третье.

Решения:

  • Одна задача = один чат. Большая задача → декомпозиция на подзадачи в отдельных чатах.

  • Сжатие чата (compression) — функция большинства агентов. Сжимает контекст, оставляя выжимку, чтобы перейти ко второй связанной задаче без полной передачи истории.

Пять уровней кастомизации

Уровень

Что это

Когда применять

Rules

Правила, попадающие в system prompt

Стиль кода, обход багов модели, инструкции по PowerShell, приоритизация MCP

Skills

Описание решения конкретной задачи (frontmatter + ресурсы + скрипты)

Повторяющиеся задачи: e2e-тесты, миграции, рефакторинги

Режимы агента

Своя модель, system prompt, инструменты и скиллы под роль

Отдельный агент для тестирования, дебага, аналитики

MCP-серверы

Внешние инструменты

Jira, Confluence, GitHub/GitLab, Figma, Playwright, Chrome

AgentIgnore

Ограничение области чтения и редактирования

Legacy, секреты, TDD-флоу

Rules

Текстовые правила, которые добавляются в system prompt каждого чата.

Что писать:

  • область применения правила (где оно работает, где — нет);

  • что точно нельзя.

Классический кейс — PowerShell на Windows. Большинство моделей училось на bash/zsh, на PS они путаются. Один отдельный rule про специфику работы с PowerShell — и проблема снимается раз и навсегда.

Другие частые применения:

  • стиль агента (автономный/контролируемый);

  • корпоративный код-стайл (Google Java Style, параметризованные тесты);

  • обход багов конкретных моделей (например, Claude 4.5 Sonnet любит создавать много отчётов — можно ограничить);

  • приоритизация MCP — если агент не зовёт подключенный сервер, явно прописать, когда и зачем его использовать.

Skills

В отличие от rules, скилл — это описание решения одной конкретной задачи. Структура:

skills/└── my-skill/    ├── SKILL.md           # промпт + frontmatter с описанием    ├── scripts/           # скрипты, которые агент может вызвать    └── references/        # документация и спецификации

В frontmatter — имя и описание скилла. По описанию агент сам понимает, когда его вызывать. Запуск вручную — /имя_скилла.

Важно про контекст. Пока скилл не вызван, агент видит только описание из frontmatter — никаких ресурсов и скриптов в контекст не попадает. Это спасает от загрязнения.

Рекомендации:

  • одна цель на скилл (даже если из подзадач);

  • область применения и запреты — обязательно;

  • ссылайтесь из SKILL.md на скрипты и ресурсы — иначе агент их «не заметит»;

  • структура папок (scripts/, references/) необязательна, но агент в ней лучше ориентируется;

  • топ-даун (написать всё сразу) — долго и без понимания, нужно ли. Ботом-ап (выносить из часто повторяющихся запросов) — практичнее;

  • генерировать скиллы можно самим агентом, но валидируйте руками.

Совместимость. Формат SKILL.md стал кросс-вендорным стандартом — его поддерживают Claude Code, Cursor, Codex, Copilot, Veai. Скилл, написанный для Claude Code, работает в Veai и наоборот.

Режимы агента (роли / sub-agents)

Кастомизируется:

  • модель (например, для агента-тестера достаточно GLM 5.1, для архитектора — Opus 4.7);

  • system prompt с описанием роли;

  • набор доступных инструментов;

  • набор скиллов.

Частая ошибка — описывать роль через структуру компании («архитектор», «тимлид», «DevOps»). Лучше отталкиваться от задач, которые агент решает. «Архитектор» модель не понимает, «генерирует диаграммы зависимостей и проверяет циклы» — понимает.

В большинстве агентов из коробки есть Plan mode и Code mode. Многие умеют оркестрацию — выбирать, кого из sub-agents позвать на конкретный шаг.

MCP-серверы

Не сложная штука: чаще всего MCP — это прокси между моделью и сервисом. Парсит аргументы от модели, делает HTTP-запрос, ужимает ответ под лимит контекста, отдаёт обратно.

Полезные:

  • GitHub MCP — чтение репо, поиск, issues, PR, ветки, коммиты, ревью.

  • Atlassian MCP — Confluence (поиск через CQL, страницы) и Jira (создание задач, поиск через JQL, статусы). Очень ценно — там вся доменная логика компании.

  • Figma MCP — структура проекта, слои, компоненты, переменные. С динамикой/анимацией не работает.

  • Playwright MCP — превращение мануальных кликов в автотесты.

  • Chrome MCP — DevTools агенту в руки.

Если агент не зовёт MCP — пишите rule, скилл или отдельного агента, явно предназначенного для этого MCP.

AgentIgnore

Синтаксис как у .gitignore. У вендоров разные имена: .cursorignore, .codeiumignore, у Veai два файла — .veaireadignore и .veaiwriteignore (разнесли «не читать» и «не редактировать»).

Сценарии:

Ситуация

Что запретить

Legacy / стабильные модули

Запись (читать можно — для понимания)

Слишком сложный модуль, не доверяете агенту

Запись

Секреты, креды, .env

Чтение и запись

TDD: не подгонять тесты под реализацию

Запись на папку с тестами

Важно. Через инструмент запуска команды в терминале агент теоретически может обойти AgentIgnore. Хорошие агенты ставят рядом маленькую модель-проверяльщика для команд, но и это в теории обходится сложным скриптом. Это касается всех вендоров — open question индустрии.

Документация для агента

AGENTS.md

Файл в корне проекта. Попадает в system prompt — агент о нём всегда знает.

Что внутри:

  • структура проекта по папкам и модулям;

  • стек;

  • команды сборки и тестов;

  • стиль кода;

  • архитектурные парадигмы;

  • что точно нельзя делать.

Создание — обычно команда /init (часто это скилл), которая проходит по проекту и собирает первичный AGENTS.md. После генерации обязательно валидируйте: ошибка в этом файле живёт в контексте всегда. Версионируйте в репозитории как точку истины для команды.

Совет: не раздувайте. Файл добавляется в каждый чат, занимает контекст. Если AGENTS.md разросся до 1000 строк — это уже не помощь, а нагрузка.

Memory Bank

Долгосрочная память агента — папка с маркдаун-файлами, ограниченная по объёму. Логика:

  1. Раз в N сообщений — агент достаёт релевантные факты, добавляет в контекст.

  2. Раз в N сообщений — сохраняет новые факты из текущего диалога.

  3. При переполнении — суммаризует и удаляет нерелевантное.

Цель — чтобы с каждым следующим чатом агент лучше понимал ваш проект.

Нюанс: чем меньше N, тем больше расход токенов. У некоторых агентов N = 1, что превращается в постоянную дополнительную нагрузку на провайдера.

Memory Bank есть у Cline, Cursor, Claude Code (по-разному реализован). У Veai — на финальной стадии тестирования, в одном из ближайших релизов.

Засорение контекста: что должен делать агент и что вы

Агент

  • Кэшировать токены у выбранного провайдера. Закэшированные токены сильно дешевле.

  • Авто-компрессия чата при заполнении контекста. У Veai — настраиваемая шкала (75%, 80%).

  • Сохранять результаты тулов в файл, отдавать модели только структуру. Особенно важно для непредсказуемых MCP, ответ которых легко перегружает контекст.

Вы

  • Знайте провайдера. У Anthropic кэш живёт 5 минут — мелкие задачи быстрее и дешевле решать в этом окне.

  • Сжимайте чат вручную, когда видите, что контекст забит. Помните: это не строго положительный эффект — может пострадать качество.

  • Отключайте ненужные инструменты. Описание тулов само по себе ест контекст.

  • Сжимайте AGENTS.md и rules, если они разрослись и потеряли актуальность.

Чек-лист настройки проекта под агента

Шаг

Время

Что делать

1. AGENTS.md

~10 мин

/init + ручная валидация

2. AgentIgnore

5–15 мин

Legacy, секреты, TDD-каталоги

3. MCP

30 мин

Подключить Jira, Confluence, GitHub. Сравнить community/официальные

4. Rules

15 мин

Стиль агента + обходы багов моделей

5. Skills

По необходимости

Сначала проверить готовые в реестрах

6. Commit

1 мин

Закоммитить — единая точка истины для команды

Ответы на вопросы из чата

Какие задачи в принципе нельзя решить с помощью LLM?

Прямого «нельзя» нет, если рядом сидит человек и валидирует. Аккуратнее с задачами, требующими жёсткого детерминизма (поиск уязвимостей со сложными алгоритмами) — лучше дать агенту специализированный инструмент через MCP. Со слабыми/маленькими моделями агентские пайплайны идут тяжело.

Как не скатиться к джуну при использовании AI?

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

Cursor vs JetBrains-агенты — стоит ли переходить?

Cursor — форк VS Code, придётся менять среду. Если привыкли к JetBrains — попробуйте плагины: Cline, Sweep Dev, Veai. Переход на Cursor оправдан, только если вам не хватает функций в IDE-агентах.

Когда использовать SDD, а когда не стоит усложнять?

Зависит от сложности задачи относительно модели:

  • Простые задачи — с наскоку.

  • Средние и сложные — SDD/планирование.

  • Если агент уходит не туда — откатить, написать план или спецификацию, продолжить от неё.

  • Если агент идёт правильно, но не доводит до конца — TDD: зафиксировать систему валидации, дать агенту работать до зелёных тестов.

Как контролировать потребление токенов?

Дробить задачи. Одна задача — один чат. Точки синхронизации делать через план-файл, в который доносится прогресс — чтобы под-агенты с маленькими контекстами видели общую картину.

Какие модели локально хороши при ограниченном железе?

DeepSeek R1 32B (~2× H200, хорошее соотношение). GLM 5 — лучше по качеству, но требует больше железа. Очень большие модели можно квантизовать, но осторожно.

Какие фичи локальных LLM работают в разработке (think, web)?

Thinking — работает (для локальных важна не цена токенов, а нагрузка на сервер). Web/внешние источники — помогают. Внутри агента критичны инструменты типа запуска инспекций.

Аналитики и тестировщики — могут использовать AI?

Могут и должны. Тестирование и аналитика хорошо ложатся на агентов, но агента нужно кастомизировать под роль — отдельные скиллы, корпоративные rules, декомпозиция задач.

Полезные ссылки

В конце мая будет третий вебинар заключительный — «Работа с AI на уровне пользователя». Разберём типичный флоу разработчика с агентом, личные настройки и лайфхаки.

🔥 Акция до конца майских праздников — авторежим со скидкой 60% по минутам.

В режиме Auto по умолчанию сейчас стоит GPT‑5.5 с максимальным reasoning (xHigh). Если по какой-то причине модель недоступна — автоматически подключается Opus 4.7. Прогнали через бенчмарк GPT‑5.5 против GPT‑5.4: +20% закрытых задач, 100% success rate инструментов, агент доводит до конца там, где старый сдавался.

🔥Самое время проверить, как далеко агент дойдёт без вашего участия. → Установить плагин (https://veai.ru/download)

ссылка на оригинал статьи https://habr.com/ru/articles/1031992/