Циклы итеративного самокорректирования
Запускайте тесты, разбирайте сбои и просите модель исправить их — так устроен внутренний цикл каждого современного агента-программиста
«Циклы итеративного самокорректирования» — бесплатный урок AI Agents на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Зачем нужна самокоррекция
Первые попытки часто завершаются неудачей. Определяющее свойство агента программирования — способность:
- Запустить код
- Прочитать ошибку
- Исправить код
- Повторить
Именно этот внутренний цикл отличает настоящих агентов программирования от демонстраций автодополнения текста.
The Loop
def code_until_pass(task, max_iters=10):
write_initial_code(task)
for i in range(max_iters):
result = run_tests()
if result.passed:
return 'success'
fix_prompt = f'Tests failed:\n{result.stderr}\nRead the code, identify the bug, and fix it with edit_file.'
agent.run(fix_prompt)
return 'gave up'Предоставляйте полезную обратную связь
Общее сообщение «тесты не пройдены» не помогает действовать. Передавайте полный вывод ошибок, трассировки стека, ожидаемые и фактические значения:
fix_prompt = f'''
The tests failed with this output:
FAILED tests/test_utils.py::test_add
AssertionError: expected 4, got 5
at line 42
Fix the code by editing the file.
'''Перечитывайте перед повторным исправлением
Модели забывают. Заставляйте их на каждой итерации заново читать текущее состояние файла:
fix_prompt = 'First, read_file the failing module. Then edit it.'Обнаруживайте повторяющиеся сбои
Если один и тот же тест не проходит три итерации подряд с одинаковыми ошибками, агент застрял. Перепланируйте или эскалируйте:
if same_error_count >= 3:
return 'stuck — replanning needed'Replan When Stuck
replan_prompt = f'''
The current approach is not working. The repeated error is:
{error}
Describe ONE alternative approach to solving the task.
'''Эскалируйте к более мощной модели
Если недорогая модель застряла, повторите SAME запрос на исправление с более мощной моделью:
if iter > 3 and using_cheap_model:
switch_to_big_model()
# often unblocks 50% of stuck casesПроверяйте после каждого редактирования
Не выполняйте много редактирований, а затем проверку — будет слишком трудно определить причину сбоев. Измените что-то одно, проверьте, затем переходите к следующему изменению.
Включайте вывод тестов в контекст
Храните недавний вывод тестов в контексте агента. Без него агент не знает, что он только что сделал:
messages.append({'role': 'tool', 'content': f'After your edit, tests now: {test_summary}'})Избегайте бесконечных циклов «исправления»
Установите жесткий предел числа итераций. Если по достижении максимального числа итераций задача не выполнена, эскалируйте её человеку:
if iter == MAX_ITERS - 1:
notify_human(task, current_state, error_history)
breakОтслеживайте метрики самокоррекции
- Среднее число итераций до успеха
- Задачи, от которых отказались после достижения максимального числа итераций
- Задачи, выполненные за 1 итерацию, по сравнению с 5
Эти метрики помогают улучшать запросы и инструменты.
Самокритика без тестов
Для задач без четкого набора тестов добавьте этап критики: пусть агент проверит собственные изменения перед отправкой:
critique_prompt = '''
Review your changes for:
- Off-by-one errors
- Missing error handling
- Breaking other tests
Return FIX LATER or DONE.
'''Входные данные для самокоррекции
Каковы самые важные входные данные для «цикла исправления» агента?
Повторение
Запуск → ошибка → исправление → повторение. Передавайте конкретные ошибки. Перечитывайте перед повторным исправлением. Обнаруживайте остановки. При застревании эскалируйте к более мощным моделям или людям.
Часто задаваемые вопросы
Урок «Циклы итеративного самокорректирования» бесплатный?
Да — полный текст урока «Циклы итеративного самокорректирования» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Циклы итеративного самокорректирования»?
Запускайте тесты, разбирайте сбои и просите модель исправить их — так устроен внутренний цикл каждого современного агента-программиста Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Циклы итеративного самокорректирования»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Шаблоны работы агентов: планирование — выполнение — проверка
- Инструменты для написания кода (чтение, редактирование, Bash)
- Циклы итеративного самокорректирования
- Архитектуры SWE-Agent и OpenDevin