Методы борьбы со сложностью в агентной разработке
A@ai_drivenAI-инженер
1 недАвтор делится двумя подходами для упрощения агентной разработки: Code That Fits in Your Head и Ubiquitous Language, а также ролью Fable в архитектуре.
Управление сложностью кода при использовании ИИ-агентов критично для стабильности продукта.
- Использование тезауруса помогает агентам точнее понимать терминологию проекта.
- Принципы DDD и чистого кода снижают вероятность ошибок при генерации сложных систем.
- Человеческий контроль остается необходимым фильтром для выбора оптимальных архитектурных решений.
Борьба со сложностью
В продолжение темы о переусложнениях, которые полюбили делать современные модели, поделюсь своими двумя скиллами, которые помогают с этой самой сложность бороться.
Code That Fits in Your Head
Скилл-дестиллят книги Марка Симмана, название которой говорит само за себя. Цель скилла: прежде всего, выбор понятных и сопровождаемых решений и их реализации. Начинка довольно сильно адаптирована мною под агентную разработку. Этот скилл я особенно люблю применять когда нужно реализовать какую-то хитрую штуку, которая априори сложная (из моей практики сразу в голову безопасный парсер псевдо-SQL кода, который приходит от агента и преобразуется в безопасный MongoDB query). А более бытовой пример с задачей по ускорению обхода файловой системы на скринах.
Ubiquitous Language
Скилл занимается обслуживанием всего, что связано с языком в проекте:
1. Генерирует и поддерживает в актуальном состоянии т. н. тезаурус (docs/THESAURUS. md) - это расширенный словарь понятий с разъяснением неоднозначностей и фиксацией чем понятие является, а с чем его не стоит путать и с какими понятиями оно связано. Кстати, помимо того, что агенты начинают лучше понимать проект, приятный бонус от тезауруса - это более точные результаты от grep'a.
2. Позволяет агенту выбирать новые имена для сущностей, сервисов и прочих артефаков с оглядкой на этот самый тезаурус и вообще агент больше думает о важности языка и нейминга.
Этот скилл тоже делался на плечах гигантов: в основу был взят блок про Ubiquitous Language из отличной книжки Влада Хононова "Изучаем DDD — предметно-ориентированное проектирование", а также блоки про язык из FPF + ISO 25964 про создание тезаурусов (все сорсы тут).
Оба скилла тем ценнее, чем больше и сложнее проекты с которыми вы работаете.
А еще, к планированию архитектуры и вообще к тому, как наиболее элегантно встроить тот или иной функционал я люблю привлекать Fable (обычно на low или medium reasoning).
И, конечно, никакой скилл не заменит понимание системы и продукты инженером. Собственно, третий этап после скиллов и Fable ревью - это фильтр через человека-инженера (на скринах как раз пример такой пирамиды из 3-х этапов как мы с агентами ищем оптимальный способ ускорить обход файловой системы: 1: анализ плана скиллами, 2: Fable, 3: инженер - это мой-вопрос финальная корректировка: заметьте, что я ее задаю в виде вопроса, давая агенту пространство для несогласия). Выбор наиболее оптимального решения из огромного пространства траекторий - это все еще сложнейшая задача для LLM. Да и для экспертов часто непростая. Почему это важно, вроде, очевидно - сложное и неоптимальное решение обычно более хрупкое - на него будет сожжено больше токенов, а в проде оно с большей вероятностью будет ломаться в разных местах (или эффектом бабочки ломать что-то смежное). Опять же, все это становится острее на масштабе: пока вайб кодишь проект на полтора пользователя, может казаться, что все и без этого прекрасно.
@ai_driven

Кратко (AI)
Автор предлагает два метода для снижения сложности при работе с ИИ-агентами: адаптацию принципов книги «Code That Fits in Your Head» и внедрение «Ubiquitous Language» через тезаурус проекта. Эти подходы помогают агентам лучше понимать контекст и создавать более поддерживаемый код. Финальным этапом разработки автор считает экспертную проверку человеком, чтобы избежать неоптимальных решений.
Обсуждение
0Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖