Claude Code и инженерия AI-агентов: кратко о главном
🎯 О чём этот конспект: Разбор закрытой сессии в South Park Commons с участием инженера команды Claude Code (Anthropic). В конспекте раскрываются внутренняя кухня разработки Claude Code, принципы «инженерии оболочек» (shell engineering), отказ от классического RAG в пользу прямых файловых операций, техники метапромптинга через интервью и создание динамических агентов под задачи любой сложности.
👤 Кому будет полезно: Вайбкодерам, AI-инженерам, фаундерам стартапов и разработчикам, создающим приложения и агентные пайплайны на базе LLM (Cursor, Claude Code, Windsurf, API Anthropic/OpenAI).
✨ Что получите: Понимание того, как устроены передовые AI-агенты изнутри; готовые промпты для уточнения требований и дешёвого прототипирования; критерии выбора между субагентами и линейным контекстом; стратегию создания AI-продуктов, устойчивых к выходу новых поколений моделей.
1. Контекст-менеджмент: динамический сбор вместо бесконечных окон и RAG
Контекст: В индустрии долгое время доминировала идея, что для идеального кодинга с ИИ нужно бесконечно раздувать контекстное окно (до 100 млн токенов) и загружать туда всю кодовую базу целиком, либо строить тяжеловесные RAG-векторные пайплайны. Опыт команды Claude Code показал, что передовые модели гораздо эффективнее работают, когда сами динамически исследуют проект и формируют свой рабочий контекст по мере необходимости. Классический RAG для поиска по коду становится антипаттерном, уступая место точечным файловым операциям и утилитам вроде grep.
Тайминг: , ,
Выгода: Экономия 70–90% токенов за счёт отказа от раздутого контекста, снижение задержки ответа и избавление от необходимости поддерживать сложные векторные базы данных для кодовой базы.
Как применить:
- Шаг 1: Переход от эмбеддингов к файловым утилитам — Настройте агентные инструменты так, чтобы модель искала файлы через
ripgrep/grepи точечное чтение фрагментов, а не через поиск по векторным базам. - Шаг 2: Хранение памяти в чистом виде — Позвольте агенту читать и записывать контекст напрямую в markdown-файлы проекта (например,
CLAUDE.md,MEMORY.md), а не во внешние хранилища состояний.
# Пример конфигурации команд поиска для агента в терминале
rg --files | grep -E "src/|lib/"
rg "functionNameOrType" ./src -t ts -C 3Результат: Агент получает только релевантный код в реальном времени, не засоряя контекст устаревшими эмбеддингами.
2. Эволюция рассуждений: почему жесткое планирование уступает мгновенному reasoning
Контекст: На ранних этапах развития агентных систем (уровня Claude 3.5 Sonnet / Opus 4) требовалось принудительно заставлять модель генерировать подробный многоэтапный план перед каждым действием (Planning Mode). Модели нового поколения уже обладают встроенной способностью к долгосрочному рассуждению и сразу выстраивают корректные логические цепочки. Избыточные надстройки планирования начинают замедлять работу и ограничивать модель.
Тайминг: , ,
Выгода: Ускорение выполнения задач в 2-3 раза за счёт устранения лишних фаз генерации предварительных планов там, где модель способна действовать напрямую.
Как применить:
- Шаг 1: Очистка системных промптов — Удалите громоздкие обязательные инструкции вида «Сначала составь план из 10 шагов, затем выполни каждый».
- Шаг 2: Переход на верифицируемый результат — Вместо контроля плана предоставьте модели подробное описание целевого состояния и набор тестов для автоматической валидации результата.
Задача: Реализуй эндпоинт аутентификации пользователей через WebAuthn.
Требования:
- Кодовая база: Next.js App Router + TypeScript.
- Валидация: Все unit-тесты в test/auth.test.ts должны проходить успешно.
- Не создавай отдельный файл с планом, переходи сразу к коду и проверке тестов.Результат: Модель сразу приступает к кодингу и исправлению ошибок по тестам, минимизируя трату токенов на формальные описания.
3. Динамические оболочки (Workflows) и адаптация под скачки моделей
Контекст: Частая ошибка при создании AI-продуктов — жесткое кодирование агентной логики и цепочек вызовов (hardcoded pipelines). Когда выходит новая модель, такая архитектура устаревает и ограничивает её потенциал. Подход Anthropic заключается в концепции генерации пользовательской оболочки на лету (On-the-fly Shells / Workflows): агент сам конструирует промежуточную структуру под сложную задачу (например, массовый research на 100 источников), выполняет её и очищает контекст.
Тайминг: , , ,
Выгода: Архитектура не ломается при обновлении базовых моделей; агент способен динамически масштабировать число подзадач под сложность проблемы.
Как применить:
- Шаг 1: Создание мета-инструментов оркестрации — Предоставьте агенту возможность создавать временные скрипты или субагентов для параллельной обработки данных.
- Шаг 2: Регулярный рефакторинг обвязки — Удаляйте вспомогательные костыли, правила и парсеры, как только новая версия модели начинает справляться с задачей «из коробки».
// Концептуальный интерфейс динамического воркфлоу
interface WorkflowGenerator {
generateExecutionPlan(task: string): Promise<{
steps: Array<{ name: string; tool: string; args: Record<string, any> }>;
parallelSubagentsCount: number;
}>;
executeAndSynthesize(plan: any): Promise<string>;
}Результат: Система автоматически масштабирует контекст и число параллельных агентов под тяжелые задачи без ручной перенастройки пайплайна.
4. Метапромптинг через интервью и фреймворк работы с неизвестными
Контекст: Сложные задачи часто проваливаются из-за неоднозначности (ambiguity) в требованиях пользователя. Разработчик сталкивается с четырьмя категориями информации: Известные известные, Известные неизвестные, Неизвестные известные и Неизвестные неизвестные. Инструмент Claude Code «Задать пользователю вопрос» (Ask User Questions) перевернул взаимодействие: вместо того чтобы пытаться угадать или требовать идеальный промпт на входе, модель проводит интервью с человеком, закрывая «слепые зоны».
Тайминг: , , ,
Выгода: Снижение количества итераций на переписывание кода с 5–7 попыток до 1–2 за счёт предварительного выявления скрытых требований и пограничных случаев.
Как применить:
- Шаг 1: Запуск метапромпта-интервьюера — Перед сложной реализацией попросите модель задать 3–5 уточняющих вопросов по архитектуре и UX.
- Шаг 2: Ответ на ключевые развилки — Ответьте на вопросы модели, передав ей контекст, о котором вы могли забыть упомянуть в исходном запросе.
Я хочу добавить систему подписок и биллинга через Stripe в наш SaaS.
Прежде чем писать код или создавать файлы, проведи со мной интервью:
1. Задай мне 4-5 ключевых вопросов о пограничных сценариях (отмена, триалы, смена тарифа, вебхуки).
2. Выдели возможные архитектурные ловушки, о которых я мог не подумать.
3. Дождись моих ответов и только потом сформируй финальное ТЗ.Результат: Сформулированная спецификация учитывает все граничные случаи до написания первой строчки продакшн-кода.
5. Дешёвое прототипирование: сырой HTML против тяжелых компонентов
Контекст: При проектировании интерфейсов и логики проверка гипотез внутри готового приложения требует огромных затрат: создания стейтов, роутинга, редьюсеров и типизации. Если вы ещё точно не знаете, понравится ли вам результат (категория «Неизвестные известные»), внесение изменений напрямую в код проекта сжигает время и контекст агента. Самый эффективный путь — запросить быструю генерацию нескольких вариантов в чистом HTML/CSS.
Тайминг: , ,
Выгода: Экономия до 80% времени на UI-эксперименты; возможность быстро отсмотреть 4-5 концептов дизайна за один промпт.
Как применить:
- Шаг 1: Запрос мультива his-макетов — Попросите модель создать единый HTML-файл с несколькими независимыми вариантами интерфейса.
- Шаг 2: Выбор и интеграция — Выберите нужный визуальный паттерн и только после этого отдайте команду агенту на перенос в React/Vue/Svelte-компоненты.
Мне нужен дашборд аналитики для вайбкодеров.
Не трогай текущие React-компоненты проекта.
Создай один изолированный файл `prototype.html` с использованием Tailwind CDN, содержащий 3 разных варианта компоновки:
- Вариант A: Минималистичный (фокус на таймлайне действий)
- Вариант B: Метрики и виджеты в сетке (Bento Grid)
- Вариант C: Консольный/терминальный стиль
Я открою файл в браузере и выберу направление.Результат: Наглядный интерактивный прототип за секунды без риска сломать стейт основного приложения.
6. Эвалы (Evals) против быстрой интуиции: когда нужны бенчмарки
Контекст: В сообществе AI-разработчиков часто навязывают создание сложных систем оценки (Evals) с первого дня. Однако разработка качественных эвалов — это монотонный, ресурсоёмкий и высококвалифицированный труд. На этапе перехода от 0 к 1 (стартапы, прототипы, новые фичи) эвалы тормозят команду. Они необходимы только тогда, когда архитектура стабилизировалась, над проектом работают наёмные инженеры и требуется предотвратить регрессию на масштабе.
Тайминг: , , ,
Выгода: Ускорение запуска MVP в 3-5 раз за счёт фокуса на продуктовых итерациях и «насмотренности» (vibes), а не на поддержке сотен синтетических тестов.
Как применить:
- Шаг 1: Фаза 0 -> 1 — Опирайтесь на личный догфудинг (dogfooding) и быструю ручную проверку крайних случаев.
- Шаг 2: Фаза масштабирования (Scale) — Создавайте узкие эвалы только под конкретные обнаруженные деградации (например, эвал на преждевременную остановку агента при длинных генерациях).
# Пример простого функционального эвала на проверку выполнения задачи
def test_agent_completes_without_early_stop():
task = "Рефакторинг 15 legacy-файлов и прогон линтера"
agent_output = run_claude_code(task)
assert "Task completed" in agent_output
assert not agent_output.has_premature_halt()
assert run_linter().exit_code == 0Результат: Инвестиции в бенчмаркинг происходят строго вовремя, не сжигая ресурсы на ранних стадиях проекта.
7. Декомпозиция задач: короткие циклы вместо 12-часовых сессий
Контекст: С ростом мощности моделей разработчики начали запускать огромные непрерывные цепочки агентов с каскадом верификаторов, длящихся часами. На практике такие длинные циклы часто упираются в сжатие контекста (context compaction), потерю фокуса и избыточную трату ресурсов. Практики из Anthropic рекомендуют отдавать предпочтение относительно коротким, изолированным задачам с возможностью быстрой валидации человеком или тестами.
Тайминг: , ,
Выгода: Предсказуемый результат, защита от галлюцинаций в сжатом контексте и сохранение контроля над архитектурой приложения.
Как применить:
- Шаг 1: Дробление крупной фичи — Разбивайте эпик на атомарные подзадачи, где результат каждой можно подтвердить коммитом или тестом.
- Шаг 2: Параллельные сессии — Ведите 2-3 параллельные независимые сессии терминала (например, одна на backend, вторая на документацию, третья на UI-прототип) вместо одной монолитной сессии.
# Работа с независимыми сессиями Claude Code в разных ветках
git checkout -b feature/auth-api
claude "Реализуй только эндпоинты API в src/api/auth.ts и напиши unit-тесты"
# В отдельной вкладке терминала:
git checkout -b feature/auth-ui
claude "Сверстай компоненты формы входа в src/components/AuthForm.tsx"Результат: Чистые PR, отсутствие конфликтов контекста и полный контроль над каждым модулем.
8. Стратегия «Осушение океана»: создание продуктов на стыке AI и закрытых данных
Контекст: С удешевлением создания софта классические стартап-модели «просто добавь AI в интерфейс» теряют защитный ров (moat). Лаборатории (Anthropic, OpenAI) быстро закрывают базовые потребности. Реальная ценность смещается в две зоны: решение сверхсложных инженерных задач, требовавших ранее сотен миллионов строк кода («осушение океана»), и интеграция AI с закрытыми, зарегулированными данными (банкинг, медицина, сложная бюрократия), к которым у базовых моделей нет доступа.
Тайминг: , , ,
Выгода: Создание устойчивого бизнеса, который не будет уничтожен очередным обновлением базовых моделей LLM.
Как применить:
- Шаг 1: Поиск человеческих и регуляторных барьеров — Фокусируйтесь на получении эксклюзивного доступа к API, закрытым базам данных и физическим процессам.
- Шаг 2: Амбициозные задачи — Беритесь за проекты, которые ранее казались невозможными для маленькой команды (например, собственные физические движки, симуляции материалов, кастомные парсеры и рендереры текста вроде Pretext).
Результат: Продукт строится на экспоненте развития AI, дополняя базовые модели, а не конкурируя с ними в их базовом функционале.
Claude Code и инженерия AI-агентов: ответы на частые вопросы
В: Стоит ли быть вежливым в промптах и говорить модели «спасибо»? О: Внутренние исследования Anthropic в области интерпретируемости показали, что эмоциональный тон влияет на активацию признаков модели: грубое обращение активирует специфические паттерны («со мной обращаются грубо»), что может негативно сказываться на генерации. Вежливый и конструктивный тон сохраняет стабильность работы модели и делает совместный дебаг истории переписки более продуктивным.
В: Почему классический RAG для работы с кодом теряет актуальность? О: Векторные базы данных и эмбеддинги фрагментов кода часто теряют синтаксические связи, иерархию типов и актуальное состояние репозитория. Модели уровня Claude 3.7 / Opus 4 значительно лучше ориентируются по коду с помощью прямых системных инструментов: grep, glob, чтения дерева файлов и анализа связей в реальном времени.
В: Как правильно организовать долговременную память агента? О: Самый надежный подход — хранение данных в чистом текстовом виде внутри самого репозитория (например, CLAUDE.md, файлы в директории .claude/ или в формате GitHub Issues). Модели отлично умеют читать и актуализировать такие файлы, не требуя внешней сложной инфраструктуры баз данных.
В: В чём ключевое отличие продвинутых пользователей AI от обычных (разрыв 7x)? О: Продвинутые пользователи не используют ИИ как поисковую строку. Они применяют агентные мета-техники: декомпозируют задачи на изолированные контексты, используют модель для интервьюирования себя, заставляют AI генерировать альтернативные варианты в дешёвых форматах (HTML/скрипты) и выстраивают цикл обратной связи через тесты и линтеры.
В: Как понять, когда нужно разделять логику на субагентов? О: Субагенты необходимы для задач, требующих изоляции контекста (например, параллельный аудит безопасности, независимый research по десяткам ссылок или запуск параллельных верификаторов). Если задача последовательна и может быть проверена тестами, эффективнее решать её в одной сессии с коротким контекстом.
Claude Code и инженерия AI-агентов: инструменты и ссылки из видео
- Claude Code — Терминальный AI-агент от Anthropic для автономной разработки и рефакторинга кодовых баз —
https://docs.anthropic.com/en/docs/agents-and-tools/claude-code - Goodfire — Платформа для исследования интерпретируемости и внутренних признаков нейросетей —
https://www.goodfire.ai - Pretext — Библиотека для кастомного рендеринга текста в браузере, созданная инженером из React Core — упомянут в видео
- Conductor — Инструмент оркестрации агентной разработки — упомянут в видео
- South Park Commons (SPC) — Сообщество фаундеров и инкубатор технологических стартапов —
https://www.southparkcommons.com - SWE-bench / SWE-bench Pro — Отраслевой бенчмарк для оценки способностей AI-моделей в решении реальных задач программной инженерии — упомянут в видео
Конспект создан на основе видео «Claude Code Deep Dive with Tariq» канала South Park Commons. Все права на оригинальный материал принадлежат авторам. Источник: https://www.youtube.com/watch?v=fo8-oen267Y