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

Сейчас занимюсь изучением этой темы в том числе по работе, так что помыслил письмом в продолжение предыдущей заготовки на эту тему Развитие возможностей ИИ-агентов: MCP → навыки и получил следующее.

Для реализации универсального ИИ-агента ему нужно приделать внешний слой мышления. Подходы есть разные: ReAct, REPL, SGR agent core, Darwin Gödel Machine и т.д., появляются новые.

Идея во всех подходах примерно одна и та же: есть повторяющийся цикл [пере]планирования и выполнения шагов плана. В каждой итерации выполняется один запланированный шаг, оценка и корректировка плана при необходимости.
И так до тех пор, пока не будет достигнута цель или предел шагов.

Выполнение шагов может происходить:

  • в LLM путём обработки запроса и результатов выполнения тулов
  • и/или кодом в песочнице (тогда LLM пишет код, выполнение которого даёт результат данного шага).

Плюсы этого подхода:

  • годится для решения широкого круга задач
  • существенно увеличивает пользу, которую можно извлечь из неразмышляющей модели
  • запросы к LLM короткие, подойдёт модель с маленьким контекстным окном
  • внешний слой мышления можно оптимизировать и кастомизировать под сценарии использования без смены/переобучения модели. При этом эффект будет больше, чем от изменения системного промта

Минусы этого подхода:

  • сложность реализации по сравнению с простым RAG-пайплайном
  • нужна LLM с tool calling
  • нужна более-менее соображающая LLM от 30B параметров

Skills

Как дать централизованному корпоративному агенту скиллы, пока точно не скажу – надо подумать и поэкспериментировать.
(Изначально предполагается их хранение прямо в файловой системе.)
Но либо через локальные инструменты, либо через MCP, либо ещё как-то точно можно.
Статья по теме: Как прокачать ИИ-агента без дообучения: Agent Skills / Хабр

Примеры

  1. Реализация одного из подходов в виде общедоступного чат-бота: https://chat.sgr-core.com/
    Он бесплатный, надо залогиниться с гуглоаккаунтом.
    Можно посмотреть цепочку вызова инструментов в ходе выполнения запроса.
    Работает на Qwen3 30B

  2. Ещё один, который запускается локально в докере, получает задание через скрипт, а результаты сохраняет файлом в локальной файловой системе: GitHub - Grigory-T/plan_repl_agent
    Вызывает LLM через OpenRouter, поиск выполняет через Tavily.
    Это первый чужой ИИ-агент, который с первого раза завёлся у меня и отлично работает.

P.S. Нельзя просто так взять и перестать мыслить письмом. Сразу публикации пару раз зашёл в опубликованную заготовку и дописал :rofl: