githubEdit

REPL-loop (цикл агента)

REPL-loop (Read-Eval-Print Loop — цикл чтения, выполнения, вывода) — фундаментальный паттерн взаимодействия между человеком и AI-агентом, в котором агент итеративно получает задачу, выполняет действие, наблюдает результат и продолжает до завершения цели.

Термин пришёл из программирования, где REPL — это интерактивная оболочка (Python REPL, Node.js REPL), в которой каждая введённая команда немедленно выполняется и выводит результат. В контексте AI-агентов REPL-loop описывает тот же принцип, но на уровне агентного цикла: агент не генерирует ответ за один проход, а итерирует через действия и наблюдения.


Классический REPL в программировании

$ python
>>> x = [1, 2, 3]          ← Read (ввод)
>>> sum(x)                  ← Eval (выполнение)
6                           ← Print (вывод)
>>> x.append(4)             ← следующая итерация
>>> sum(x)
10

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

  • Мгновенная обратная связь — результат виден сразу

  • Итеративность — каждый шаг строится на предыдущем

  • Стейтфулность — переменные сохраняются между шагами


REPL-loop в AI-агентах

AI-агент адаптирует тот же цикл, но вместо ввода — задача на естественном языке, вместо eval — вызов инструмента, вместо print — наблюдение за результатом:

Пример: агент пишет и запускает тест


ReAct: Reasoning + Acting

Распространённая реализация REPL-loop в LLM-агентах — паттерн ReAct (Reasoning + Acting), предложенный в 2022 году. Агент явно чередует шаги размышления (Thought) и действия (Action):

Явный Thought-шаг делает рассуждение агента прозрачным и помогает избежать прыжков к неверным действиям.


Виды REPL-loop в зависимости от инструментов

1. Code execution loop

Агент пишет код → запускает → видит ошибку → исправляет → повторяет:

Используется в: Claude Code, Cursor Agent, Devin, GitHub Copilot Workspace

2. Browser loop

Агент взаимодействует с браузером итеративно:

Используется в: Claude Computer Use, browser-use, Playwright MCP

3. File system loop

Агент читает → анализирует → редактирует → верифицирует:

4. Multi-agent loop

Несколько агентов взаимодействуют в цикле — оркестратор и специализированные субагенты:


Параметры качества REPL-loop

Глубина цикла (loop depth)

Сколько итераций делает агент, прежде чем достичь цели:

  • 1-3 итерации — простые задачи (прочитать файл, добавить строку)

  • 5-15 итераций — средние задачи (написать функцию с тестами)

  • 20+ итераций — сложные задачи (реализовать фичу с нуля, провести исследовательское тестирование)

Слишком длинный цикл — признак плохого планирования или неподходящей задачи.

Детерминизм (determinism)

Один и тот же запрос должен давать схожий результат при повторном запуске. На практике LLM-агенты недетерминированы — важно при CI/CD-интеграции.

Стоп-критерий (stopping condition)

Агент должен знать, когда остановиться:

  • Явный: задача выполнена по чёткому критерию (тесты зелёные)

  • Неявный: агент решает сам («задача выглядит выполненной»)

  • По лимиту: принудительная остановка после N итераций

Без чёткого стоп-критерия агент может уйти в бесконечный цикл или остановиться преждевременно.


REPL-loop в тестировании

Исследовательское тестирование через REPL

Автоматическое исправление тестов

Генерация тест-данных


Управление REPL-loop: советы для QA

Давайте чёткие стоп-критерии:

Ограничивайте scope:

Задавайте формат наблюдений:

Используйте Human-in-the-Loop на ключевых точках:


Ограничения

Накопление ошибок — ошибка на раннем шаге может привести к цепочке неверных действий в последующих итерациях (error propagation).

Контекстный предел — каждая итерация добавляет информацию в контекст модели. При длинных циклах контекст заканчивается, и агент теряет ранние наблюдения.

Галлюцинации действий — агент может «выдумать» результат инструмента вместо реального вызова, если инструмент недоступен.

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


Связанные материалы

Last updated