Бонус: начислена 1 монета за дневную активность. Сейчас у вас 1 монета

Как работает ИИ-агент для написания кода кратко

Лекция



Если упростить, практически любой современный ИИ-агент для написания кода (например, встроенный агент в IDE, автономный coding agent или система с субагентами) работает как цикл "планирование → выполнение → проверка → исправление".

Вот примерная архитектура.

Как работает ИИ-агент для написания кода

1. Главный агент (Orchestrator)

Это "дирижер".

Он:

  • получает запрос пользователя;
  • понимает цель;
  • составляет план;
  • решает, какие субагенты нужны;
  • собирает результаты обратно.

Например:

Сделай интернет-магазин на FastAPI с React.

Главный агент не пишет весь код сам.

Он может решить:

  • 1 Backend
  • 2 Frontend
  • 3 База данных
  • 4 Docker
  • 5 Тесты
  • 6 README

2. Планировщик

Он разбивает задачу.

Например:

Создать API
↓
Создать модели
↓
Создать миграции
↓
Создать роуты
↓
Добавить JWT
↓
Написать тесты

Это может быть дерево задач.

Backend
├── auth
├── users
├── products
├── orders
└── payments

3. Субагенты

Это отдельные экземпляры LLM со своей ролью.

Например.

Backend Agent

Получает только задачу:

  • Напиши API пользователей.

Он вообще не знает про React.

Frontend Agent

Получает:

  • Используй API.
  • Сделай страницы:
  • - Login
  • - Products
  • - Cart

Database Agent

Получает:

  • Спроектируй PostgreSQL.

Test Agent

Получает:

  • Проверь backend.
  • Напиши unit tests.

Documentation Agent

Получает:

  • Создай README.

Почему субагенты быстрее

Представим один агент.

Контекст:

  • 300 файлов
  • 50 000 строк

LLM начинает забывать детали.

А если разделить:

Backend Agent

  • видит только
  • backend/

Frontend Agent

  • видит только
  • frontend/

Каждый использует меньше контекста.

4. Навыки (Skills), MCP-серверы и Tools (инструменты)

Практически ни один современный coding agent не ограничивается только генерацией текста.

Если говорить о современных агентных системах, то навыки (Skills), MCP-серверы и Tools (инструменты) — это три разных уровня абстракции, хотя на практике они работают вместе.

Можно представить это так:

Запрос пользователя
        │
        ▼
   Главный агент
        │
        ├─────────────┬──────────────┐
        ▼             ▼              ▼
     Skills        MCP Servers      Tools
        │             │              │
        └─────────────┴──────────────┘
                    │
                    ▼
                Выполнение

1. Tools — атомарные действия

Инструмент делает одно конкретное действие.

Обычно он умеет:

  • читать файлы
  • писать файлы
  • создавать папки
  • запускать терминал
  • git
  • docker
  • pytest
  • npm
  • curl
  • браузер
  • поиск документации
  • выполнить команду;
  • сделать HTTP-запрос;
  • выполнить SQL-запрос;
  • открыть браузер.

То есть:

read_file(path)
write_file(path)
run_terminal(cmd)
search_web(query)

У инструмента обычно нет логики.

Он просто выполняет команду.

То есть цикл выглядит так:

LLM
↓
создать файл
↓
запустить тест
↓
увидеть ошибку
↓
исправить файл
↓
повторить

2. Skills — готовые процедуры

Навык — это уже мини-процесс, состоящий из нескольких шагов.

Например:

Навык "Создать REST API"
↓
прочитать структуру проекта
↓
создать модели
↓
создать контроллеры
↓
создать тесты
↓
обновить README

Он может использовать десятки инструментов внутри.

То есть

Skill
↓
Tool
↓
Tool
↓
Tool
↓
Tool

Навык отвечает на вопрос:

Как выполнить типичную задачу?

Например:

Skill: Добавить новую страницу
↓
создать файл
↓
добавить маршрут
↓
обновить меню
↓
написать тест

3. MCP — способ подключить внешние возможности

MCP (Model Context Protocol) — это протокол, а не инструмент и не навык.

Он отвечает за связь между агентом и внешней системой.

Например:

IDE
↓
MCP
↓
GitHub

или

LLM
↓
MCP
↓
PostgreSQL

или

LLM
↓
MCP
↓
Docker

или

LLM
↓
MCP
↓
Figma

Сам MCP ничего не делает.

Он говорит:

"Вот список функций, которые предоставляет эта система."

MCP-сервер предоставляет инструменты

Например:

GitHub MCP
↓
list_repositories()
↓
create_issue()
↓
merge_pull_request()
↓
create_branch()

Для агента это выглядит как набор новых инструментов.

Другой пример:

Postgres MCP
↓
execute_sql()
↓
list_tables()
↓
describe_table()

Тогда где Skill?

Допустим есть навык

Исправить баг

Он может делать следующее:

1 Прочитать issue
2 Найти код
3 Исправить
4 Запустить тесты
5 Создать PR

Внутри используются:

GitHub MCP
↓
get_issue()
Filesystem Tool
↓
read_file()
Terminal Tool
↓
pytest
GitHub MCP
↓
create_pull_request()

То есть один навык может использовать одновременно:

  • локальные инструменты;
  • MCP-серверы;
  • другие навыки.

Получается такая иерархия

Agent
↓
Skill
↓
Tool
↓
MCP Server
↓
Реальная система

Например:

Навык Создать Pull Request
↓
git diff
↓
git commit
↓
GitHub MCP
↓
create_pull_request()

Или наоборот

Иногда MCP сам предоставляет готовый навык.

Например сервер CI может иметь:

deploy_application()
rollback()
create_release()

Для агента это уже почти навыки, хотя технически они приходят как инструменты через MCP.

Одновременно ли используются?

Да.

Например агент получает задачу:

"Исправь ошибку и создай Pull Request."

Он может сделать примерно следующее:

Skill "Исправить баг"
↓
Filesystem Tool
↓
Terminal Tool
↓
Git Tool
↓
GitHub MCP
↓
Browser MCP
↓
Skill "Code Review"
↓
GitHub MCP

Все это работает в одном цикле.

Краткое сравнение

Компонент Что это Основная роль
Tool Отдельное действие «Прочитай файл», «запусти команду», «выполни SQL»
Skill Сценарий из нескольких шагов «Добавить API», «Исправить баг», «Подготовить релиз»
MCP Протокол подключения Дает агенту доступ к возможностям внешних систем (GitHub, IDE, базы данных, Docker и др.)

Главное отличие в том, что MCP не конкурирует с Tools. Наоборот, MCP чаще всего является способом предоставить агенту новые инструменты. А Skills находятся уровнем выше: они координируют использование этих инструментов (локальных и полученных через MCP) для решения законченной задачи.

5. Цикл исполнения (Agent Loop)

Это самое важное.

Почти все агенты работают примерно так.

Пока задача не выполнена:

  • подумать
  • выбрать действие
  • выполнить действие
  • посмотреть результат
  • принять следующее решение

Например:

Шаг 1

Создать app.py
↓
Шаг 2
Запустить pytest
↓
Ошибка
↓
Исправить
↓
Запустить снова
↓
Ошибка
↓
Исправить
↓
Все тесты зеленые

6. Память

Есть несколько уровней памяти.

Краткосрочная

Контекст текущего диалога.

Например:

Мы используем FastAPI.

Рабочая память

План задач.

✔ Backend
✔ Database
 Tests
 Docs

Долговременная

Может хранить:

стиль кода
предпочтения
архитектуру
предыдущие решения

7. Проверяющий агент

Очень часто используется отдельный агент.

Он ничего не пишет.

Он только ищет ошибки.

Например:

Backend Agent написал код.
↓
Reviewer Agent
↓
Нашел баг
↓
Вернул замечания
↓
Backend Agent исправил

Это похоже на процесс Code Review.

8. Debug Agent

Отдельный агент может заниматься исключительно ошибками.

Например.

pytest
↓
FAIL
↓
Debug Agent
↓
читает stacktrace
↓
исправляет
↓
повторяет

9. Главный цикл

В итоге все можно представить так:

Пользователь
↓
Главный агент
↓
План
↓
Субагенты
↓
Код
↓
Компиляция
↓
Тесты
↓
Ошибки
↓
Исправление
↓
Тесты
↓
Ошибки
↓
Исправление
↓
Готово

10. Как субагенты взаимодействуют

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

Пример:

Frontend Agent
        │
        ▼
Главный агент
        ▲
        │
Backend Agent

Или через общие артефакты проекта:

  • файловую систему (код, конфиги);
  • трекер задач;
  • общий план;
  • журнал изменений.

Главный агент может передать одному субагенту результаты другого, например: "Backend завершил API, теперь используй эту OpenAPI-спецификацию для генерации клиента".

11. Что используют продвинутые системы

На практике современные системы (например, агенты в IDE или автономные coding agents) часто добавляют еще несколько компонентов:

  • Менеджер контекста — выбирает только те файлы, которые действительно нужны для текущей задачи.
  • RAG (Retrieval-Augmented Generation) — ищет релевантные участки кода, документацию и историю изменений вместо загрузки всего проекта в контекст.
  • Планировщик зависимостей — определяет порядок выполнения задач, чтобы избежать конфликтов.
  • Изолированные среды (например, контейнеры) — позволяют безопасно запускать тесты, сборку и линтеры.
  • Механизмы слияния изменений — помогают объединить результаты нескольких субагентов, если они работали параллельно.

Упрощенный псевдокод

while not task.completed():
    plan = planner.next_step()
    agent = orchestrator.select_agent(plan)
    result = agent.execute(plan)
    repository.apply(result)
    report = tester.run()
    if report.failed:
        debugger.fix(report)
    else:
        planner.mark_done()

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

создано: 2026-06-22
обновлено: 2026-06-22
1



Помог ли вам этот ответ?
Нажмите оценку и напишите коротко почему. Так мы сможем сделать следующие ответы точнее и полезнее.
Насколько вы довольны ответом?
Ваш отзыв напрямую влияет на качество следующих подсказок и ответов.


Поделиться:
Пожаловаться

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выполнения задания
  • Возможно применение функции гаранта на сделку
  • Приоритетная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можете продать (как исполнитель) или купить (как заказчик) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно применение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии

Оставить комментарий

Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Лекции и учебник по "Разработка программного обеспечения и информационных систем"

Термины: Разработка программного обеспечения и информационных систем