Как собрать внутреннего coding-агента для команды разработки
Внутренний coding-агент на базе API моделей — это не чат-бот в мессенджере, а конвейер: он читает репозиторий, правит код и открывает pull request. Разбираем, из чего он собирается и во что обходится.

За 2024–2025 годы связка «модель + доступ к репозиторию» превратилась из демо в рабочий инструмент. GitHub Copilot научился режиму агента, Anthropic выпустила Claude Code как консольный инструмент, а Cursor и подобные редакторы предлагают агентов, которые сами вносят правки в несколько файлов. Но у публичных продуктов есть общий минус: они видят ваш код и работают по чужим правилам. Компании, где кодовая база — это актив под NDA, всё чаще собирают агента внутри периметра. Разберём, из каких кусков он состоит, сколько стоит и где ломается.
Что вообще значит «coding-агент»
Обычный ассистент отвечает на вопрос текстом. Агент1 получает цель («почини падающий тест», «добавь эндпоинт») и сам решает, какие действия выполнить: прочитать файлы, запустить линтер, изменить код, прогнать тесты, повторить, если не сошлось. Разница не в модели, а в обвязке вокруг неё — в цикле «наблюдение → действие → результат».
Практически любой внутренний агент состоит из четырёх слоёв:
- Модель — то, что генерирует код и решения. Через API (Claude, GPT, Gemini) или self-hosted (Qwen Coder, DeepSeek, Codestral).
- Инструменты — функции, которые агент может вызывать: чтение файла, запись, grep по репозиторию, запуск команды в песочнице, поиск по документации.
- Оркестратор — код, который крутит цикл, следит за лимитом шагов и контекстным окном2, собирает результаты вызовов обратно в диалог.
- Песочница — изолированная среда, где агент реально запускает команды, не трогая прод и не имея ключей от всего сразу.
Своё против готового: что выбрать
Прежде чем писать оркестратор с нуля, честно ответьте: чем вас не устраивает готовый продукт. Часто ответ — «данные не должны уходить наружу» или «нужна интеграция с внутренним трекером и CI». Если это не так, коробочное решение дешевле в разы.
| Подход | Данные | Гибкость | Затраты на старт |
|---|---|---|---|
| Готовый продукт (Copilot, Cursor) | Уходят к вендору по его политике | Низкая, работаете в его логике | Минимальные, оплата за место |
| API-модель + свой оркестратор | Уходят в API, но код обвязки ваш | Высокая | Средняя, недели разработки |
| Self-hosted модель + свой оркестратор | Не покидают периметр | Максимальная | Высокая: GPU, инженеры, поддержка |
Цены на API и подписки меняются каждые несколько месяцев — актуальные тарифы смотрите на страницах Anthropic, OpenAI и GitHub. Порядок величин на середину 2025 года такой: подписки на готовых агентов — десятки долларов за место в месяц, API оплачивается за токены и на активной команде легко выходит в сопоставимые суммы на человека.
Главная ошибка внутреннего агента — дать ему прод-ключи и права на push в main. Агент должен уметь ровно столько, сколько нужно для одной задачи, и ни каплей больше.
Как собрать минимальную версию
MVP внутреннего агента реально запустить за одну-две недели силами одного инженера. Порядок шагов:
- Выберите модель и способ доступа. Для старта проще API с function calling — не нужно поднимать инференс. Если код нельзя выпускать наружу совсем, сразу закладывайтесь на self-hosted и GPU.
- Опишите набор инструментов. Минимум:
read_file,write_file,list_dir,run_command. Каждый инструмент — это функция с чёткой схемой параметров, которую видит модель. - Поднимите песочницу. Отдельный контейнер с копией репозитория, без сетевого доступа наружу и без секретов прода. Всё, что агент делает, происходит здесь.
- Напишите цикл оркестратора. Отправить задачу → получить решение или вызов инструмента → выполнить → вернуть результат → повторить, пока агент не скажет «готово» или не упрётся в лимит шагов.
- Замкните на pull request, а не на прямой коммит. Результат работы — ветка и PR, который смотрит человек. Это единственная защита, которая работает всегда.
Контекст: репозиторий не влезает в окно
Даже большое контекстное окно не вмещает крупный проект целиком, а если и вмещает — вы платите за каждый токен и получаете шумный ответ. Поэтому агенту дают не весь код, а инструменты поиска: grep по паттерну, чтение конкретного файла, иногда RAG3 по проиндексированной кодовой базе. Пусть агент сам решает, что ему прочитать, вместо того чтобы заливать в него весь репозиторий.
Стоимость и контроль
Каждый шаг агента — это запрос к модели, а агент делает их десятками. Один прогон сложной задачи может стоить заметно дороже одного вопроса в чате. Обязательно ставьте лимит шагов и потолок расходов на задачу, иначе зациклившийся агент сожжёт бюджет за ночь. Логируйте все вызовы инструментов — без этого вы не поймёте, почему агент удалил не тот файл.
Кому это пригодится и кому нет
Внутренний агент оправдан не всем. Он даёт эффект там, где задачи однотипны и хорошо описываются.
Пригодится:
- Командам с рутиной: миграции, обновление зависимостей, генерация тестов по шаблону, правки по единому линтеру в сотнях файлов.
- Компаниям под NDA, которым нельзя отдавать код вендору, — тогда есть смысл в self-hosted варианте.
- Продуктам с большим легаси, где на онбординг нового человека уходят недели: агент с поиском по коду ускоряет разбор.
Не пригодится:
- Маленькой команде на популярном стеке — им дешевле и быстрее купить готовый продукт.
- Задачам, где цена ошибки высока и нет ревью: агент уверенно генерирует правдоподобный, но неверный код.
- Тем, кто ждёт автономности «поставил задачу — забыл». На практике человек всё равно смотрит каждый PR, и это правильно.
Что чаще всего ломается
Агенты уверенно сообщают, что тесты прошли, хотя не запускали их — если оркестратор не проверяет реальный код возврата команды. Они зацикливаются, повторяя одно и то же исправление. Они предлагают удалить файл, который «мешает» ошибке. Ни одно из этих поведений не лечится сменой модели — лечится жёсткими рамками: лимит шагов, обязательная проверка результата команд, запрет деструктивных операций без подтверждения и человек на выходе.
1 Агент — программа, которая на основе модели сама выбирает и выполняет действия для достижения цели, а не просто отвечает текстом.
2 Контекстное окно — максимальный объём текста (в токенах), который модель удерживает за один запрос: и вопрос, и весь прочитанный код, и промежуточные шаги.
3 RAG (retrieval-augmented generation) — подход, при котором перед ответом система находит релевантные куски (здесь — фрагменты кода) во внешнем хранилище и подаёт их модели вместо того, чтобы держать всё в контексте.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Anthropic — Building effective agents, GitHub Copilot documentation
Частые вопросы
Можно ли обойтись без self-hosted модели?
Насколько это дорого в эксплуатации?
Стоит ли давать агенту право коммитить в main?
Какую модель выбрать для кода?
Заменит ли агент разработчиков?
Сколько времени занимает собрать MVP?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.