Урок 8

Совет — зная это, вы уже можете командовать

Самая большая проблема при поручении модификации кода агенту — 20 функций в одном файле. Нужна одна — открылся файл, и 19 ненужных загружены. Это снижает производительность агента на 30-85%.

Решение — три фразы. Поддерживаются Go, TypeScript, Python.

Агенту: “Найди самый длинный файл и разбей по функциям. Имя файла = имя функции. Все существующие тесты должны проходить.”

Агенту: “Запусти filefunc validate и доведи нарушения до 0. Все существующие тесты должны проходить.”

Агенту: “Повторяй tsma next, добавляя тесты ко всем функциям. При непокрытых ветвях — тесты и для них. До All functions complete.”

Не нужно читать код. Инструменты судят, агент исполняет. Вы только принимаете решения.


Почему нужно командовать именно так

Код для людей ≠ Код для агентов

SWE (инженер) прокручивает файл и интуитивно чувствует “это не трогать”. Агент — нет. Он загружает весь файл целиком. 2000 строк — все обрабатываются. Исследования подтверждают: ненужная информация снижает производительность ИИ на 30-85%.

filefunc — один файл, одна концепция

Принцип: один файл = одна концепция. Имя файла = имя концепции.

Без filefunc: read utils.go → 20 функций, 19 ненужных. Загрязнение контекста. С filefunc: read check_one_file_one_func.go → 1 функция. Именно то, что нужно.

Проверено на фреймворке Hono (23k+ звёзд): 186 файлов → 626 файлов. 4 419 тестов — ни один не сломался. Чистый структурный рефакторинг.

tsma — линия обороны легаси-кода

Легаси-код без тестов. Рефакторить боязно — непонятно, что сломается. 60-80% IT-бюджетов Fortune 500 заморожены в этом тупике.

tsma решает: tsma next → агент пишет тест → обратная связь с номерами строк непокрытых ветвей → агент покрывает → PASS → следующая функция. Агенты умирают — прогресс в session.json сохраняется.

4 условия Agent Operable Codebase

УсловиеИнструментЭффект
1 файл = 1 концепцияfilefuncБлокировка загрязнения контекста
Тесты для всех функцийtsmaОбнаружение регрессии после изменений
Символьные ссылкиoperationId (yongol)Отслеживание между слоями
Удаление неявной связанностиwhyso couplingОбнаружение скрытых зависимостей

Послание урока 8: Не делайте поезд быстрее — кладите рельсы.


Связанные статьи


Полный курс Reins Engineering

УрокНазвание
Урок 1Как командовать ИИ
Урок 2Как не доверять ИИ
Урок 3Нерушимое приложение
Урок 4Решения — за пределы кода
Урок 5ИИ на поводьях
Урок 6Прошёл — зафиксировал
Урок 7Как обратить лесть
Урок 8Фабрика агентов
Урок 9Автоматизация за пределами кода
Урок 10Закон данных

Источники

  • Stanford, “Lost in the Middle” (2024) — при скрытии релевантной информации в середине контекста: -30%+
  • Amazon, “Context Length Alone Hurts LLM Performance” (2025) — даже пустые токены: -13,9-85%
  • Теорема Бёма-Якопини (1966) — любая программа = комбинация последовательности, ветвления, цикла
  • Hono: 186 → 626 файлов, 4 419 тестов без поломок
  • tsma: 527 функций, PASS 246, DONE 281, TODO 0