Всё, что я знал об ИИ-кодировании, было неправильным

AAI LABS
Computing/SoftwareInternet Technology

Transcript

00:00:00Вы уже знаете о таких AI-фреймворках для программирования,
00:00:03как Beemad,
00:00:03Speckit и других,
00:00:04но это не единственные.
00:00:06Сотни людей экспериментируют и запускают свои собственные рабочие процессы,
00:00:09но когда вы их пробуете,
00:00:11то замечаете,
00:00:11что они часто не оправдывают обещаний.
00:00:13Дело не в том,
00:00:14что их методы плохи,
00:00:15а в том,
00:00:15что они не подходят под ваш конкретный случай использования.
00:00:18Когда мы создаем приложения,
00:00:19в большинстве случаев мы разрабатываем собственные рабочие процессы вместо того,
00:00:22чтобы полагаться на готовые.
00:00:23Это потому,
00:00:24что рабочие процессы должны строиться вокруг вашего конкретного случая использования и работают только тогда,
00:00:28когда соответствуют проекту,
00:00:29который вы пытаетесь создать.
00:00:30Так как же создать рабочий процесс для собственных задач?
00:00:32Для этого нужно знать определенные принципы.
00:00:34Это принципы,
00:00:35которые каждый фреймворк использует в той или иной форме.
00:00:38Прежде чем обсуждать основные принципы,
00:00:40вам необходимо понять,
00:00:41что находится внутри контекстного окна этих AI-инструментов.
00:00:44Это действительно важно,
00:00:45поскольку управление контекстом — это,
00:00:47по сути,
00:00:47то,
00:00:48чем занимаются эти фреймворки.
00:00:48Контекстное окно — это,
00:00:50по сути,
00:00:50объем информации,
00:00:51который модель может помнить одновременно.
00:00:53Все,
00:00:53что выходит за пределы контекстного окна модели,
00:00:55исчезает из ее оперативной памяти,
00:00:57и у нее нет способа это вспомнить.
00:00:59Модели имеют ограниченное контекстное окно.
00:01:00Например,
00:01:01модели Anthropic имеют контекстное окно в 200 тысяч токенов,
00:01:04а модели Gemini — 1 миллион.
00:01:06Даже если эти цифры кажутся действительно большими в плане отправляемых сообщений,
00:01:10на самом деле они не такие огромные,
00:01:11потому что в этих AI-инструментах контекстное окно состоит не только из системного промпта и пользовательских сообщений,
00:01:17но также включает множество других элементов,
00:01:19таких как прошлые сообщения,
00:01:20файлы памяти,
00:01:21инструменты,
00:01:22вызовы MCP и так далее.
00:01:23Вам нужно научиться максимально эффективно использовать это ограниченное рабочее пространство,
00:01:27чтобы при создании рабочих процессов модель делала именно то,
00:01:30что вы хотите.
00:01:30Я буду использовать Claude Code в качестве основного инструмента для программирования на протяжении всего видео,
00:01:34но вы можете создавать свой рабочий процесс на любой платформе,
00:01:37так как все они имеют инструменты,
00:01:38необходимые для этих принципов.
00:01:39Самый важный принцип и ключ к любому дизайну рабочего процесса — это прогрессивное раскрытие.
00:01:44Это означает показывать языковой модели только то,
00:01:46что важно,
00:01:47и держать внимание модели сосредоточенным на том,
00:01:49что действительно нужно прямо сейчас,
00:01:50вместо того чтобы заполнять контекстное окно всем,
00:01:53что может понадобиться в будущем.
00:01:54Теперь более продвинутые модели,
00:01:56такие как Sonnet 4.5,
00:01:57имеют встроенную функцию редактирования контекста,
00:01:59где они могут понять,
00:02:01что является шумом,
00:02:02и попытаться отфильтровать это самостоятельно,
00:02:04используя команды grep для сужения того,
00:02:06что вам нужно.
00:02:07Но одного этого недостаточно.
00:02:08Когда мы даем расплывчатые инструкции,
00:02:11даже эти новые модели загружают много ненужного и засоряют окно.
00:02:14Вместо того чтобы просить Claude исправить ошибку в вашем бэкенде,
00:02:18лучше попросить его проверить эндпоинты один за другим,
00:02:21а не просить исправить все сразу.
00:02:23Функция навыков в Claude теперь имеет открытый исходный код,
00:02:25и все инструменты могут ее использовать.
00:02:27Навыки — это, по сути, воплощение прогрессивного раскрытия.
00:02:29Их описание предоставляет ровно столько информации,
00:02:32чтобы ваша AI-платформа для программирования знала,
00:02:34когда следует использовать каждый навык,
00:02:36не загружая все в контекст.
00:02:38Огромная ошибка,
00:02:38которую совершают люди,
00:02:39— использовать MCP для всего.
00:02:41Вы должны использовать MCP только когда требуются внешние данные,
00:02:44а навыки — для всего остального.
00:02:46Второй,
00:02:46не менее важный принцип: информация,
00:02:48которая не нужна прямо сейчас,
00:02:50не должна находиться в контекстном окне.
00:02:52Для достижения этого инструменты используют структурированное ведение заметок.
00:02:55И мы можем использовать это в свою пользу,
00:02:56предоставив вашему AI-инструменту внешние файлы,
00:02:58которые он может использовать для документирования любых решений,
00:03:01проблем или технического долга.
00:03:03Этот подход позволяет вашему агенту сохранять критически важный контекст,
00:03:06который в противном случае мог бы быть потерян при создании чего-то действительно сложного.
00:03:09Эти инструменты также имеют функцию сжатия для управления контекстным окном.
00:03:13И когда контекст сбрасывается,
00:03:14вам не нужно полагаться исключительно на краткое содержание после сжатия.
00:03:17Например,
00:03:18ваш агент может использовать эти заметки,
00:03:20чтобы понять контекст того,
00:03:21что уже сделано,
00:03:22а что еще предстоит сделать.
00:03:23Этот подход особенно полезен для долгосрочных задач,
00:03:26которые по своей природе сложны.
00:03:28Возможно, вы знакомы с agent.md.
00:03:30Это стандартный файл контекста,
00:03:32который все агенты читают перед началом сеанса.
00:03:34Некоторые агенты не следуют этому и имеют свой собственный,
00:03:37например,
00:03:38claud.md,
00:03:38и я использую их,
00:03:39чтобы направлять агента о том,
00:03:40как структурированы внешние файлы и что записывать в каждый из них.
00:03:44Иногда эти агенты случайно приостанавливаются посреди долго выполняющейся задачи.
00:03:47Часто это происходит потому,
00:03:49что контекст превысил 70% своего лимита.
00:03:52Вот где вступает концепция бюджета внимания.
00:03:55Контекстное окно — это то,
00:03:56на что модель обращает внимание при генерации выходных данных.
00:03:59Когда оно превышает 70%,
00:04:00модели приходится больше концентрироваться,
00:04:02и возрастает вероятность галлюцинаций.
00:04:04Для AI-агентов это мешает эффективному использованию инструментов,
00:04:08и зачастую они просто решают их игнорировать.
00:04:10Для решения этой проблемы есть несколько встроенных инструментов.
00:04:14Как вы уже знаете,
00:04:14сжатие позволяет модели начать заново с правильным резюме произошедшего в качестве начального промпта и уменьшенным контекстным окном.
00:04:21Поэтому вместо того,
00:04:22чтобы позволять ему заполниться до 90% и активировать функцию автоматического сжатия,
00:04:25старайтесь следить за контекстным окном и делать это самостоятельно.
00:04:28Если вы экспериментируете,
00:04:29используйте встроенную функцию отмотки в Claude,
00:04:31чтобы удалить ненужные части,
00:04:33вместо того чтобы продолжать их и просить Claude внести изменения.
00:04:36Вам также следует очищать или начинать новое контекстное окно для любой новой задачи,
00:04:40чтобы предыдущий контекст не замедлял модель.
00:04:42Еще одна вещь,
00:04:43вытекающая из принципа прогрессивного раскрытия,
00:04:45— это способность этих агентов выполнять задачи в фоновом режиме,
00:04:49не засоряя основное контекстное окно.
00:04:51Подагенты работают в собственном изолированном контекстном окне и только сообщают результат обратно основному агенту.
00:04:57Это особенно полезно при работе над задачами,
00:04:59изолированными друг от друга,
00:05:00потому что ваше основное контекстное окно защищено от раздувания вызовами инструментов и поисками,
00:05:05которые выполняет подагент,
00:05:06обеспечивая сохранение информации в его выделенной рабочей зоне.
00:05:10Поскольку эти агенты работают в фоновом режиме,
00:05:12вы можете продолжать взаимодействовать с основным агентом и позволить ему работать над чем-то,
00:05:15что действительно требует вашего внимания.
00:05:17Всякий раз,
00:05:18когда мне нужно что-то изучить,
00:05:19например,
00:05:19правила нового фреймворка,
00:05:21с которым я работаю,
00:05:21я просто использую этих подагентов.
00:05:23Таким образом,
00:05:24их вызовы инструментов и поиски изолированы,
00:05:26и они просто возвращают ответ основному агенту.
00:05:29Если вы понимаете принцип ведения заметок,
00:05:31вам также следует знать,
00:05:32какой формат файла использовать для какой задачи.
00:05:34Поскольку эти файлы имеют разные форматы,
00:05:36они влияют на количество токенов и,
00:05:37следовательно,
00:05:38на эффективность вашего рабочего процесса.
00:05:40YAML — наиболее эффективный по токенам,
00:05:41поэтому я в основном использую его для схем баз данных,
00:05:44конфигураций безопасности и деталей API.
00:05:46Его отступы помогают моделям правильно структурировать информацию.
00:05:49Markdown лучше подходит для документации,
00:05:51такой как ваш claud.md,
00:05:52потому что уровни заголовков облегчают модели навигацию между разделами.
00:05:56XML специально оптимизирован для моделей Claude.
00:05:59Anthropic заявляет,
00:06:00что их модели дообучены распознавать эти теги как контейнеры и разделители,
00:06:04что полезно,
00:06:05когда у вас есть отдельные разделы,
00:06:07такие как ограничения,
00:06:08резюме или визуальные детали.
00:06:10Другие модели,
00:06:10как правило,
00:06:11предпочитают Markdown и YAML вместо XML.
00:06:13И наконец, JSON.
00:06:14Он наименее эффективен по токенам из-за всех дополнительных скобок и кавычек,
00:06:18поэтому я использую его только для мелочей,
00:06:20таких как состояния задач,
00:06:21и в целом не рекомендую его использовать.
00:06:23Git — это одна из самых базовых вещей,
00:06:24которым вас учат,
00:06:25когда вы начинаете программировать.
00:06:26Мы наблюдаем еще одну тенденцию с этими контекстными рабочими процессами,
00:06:30при которой люди фактически используют историю коммитов git как напоминание модели о достигнутом прогрессе,
00:06:35будь то по всему проекту или по одной задаче.
00:06:37Даже если вы не хотите использовать это для хранения прогресса,
00:06:40вам в целом следует применять эти рабочие процессы контекстного проектирования в git-инициализированном репозитории.
00:06:44Рабочий процесс с контекстной инженерией означает,
00:06:46что вы не позволяете модели делать всё сразу,
00:06:48а заставляете её действовать по запланированным шагам один за другим.
00:06:51Если на любом этапе возникает проблема,
00:06:53git позволяет контролировать,
00:06:55к какой версии откатиться,
00:06:56и помогает выяснить,
00:06:57какое изменение вызывает неполадки.
00:06:59Люди также реализовали параллелизм с помощью git worktrees.
00:07:02Я также показал множество рабочих процессов,
00:07:03где подагенты работают в выделенных worktrees для параллельного выполнения задач.
00:07:07Какой бы рабочий процесс вы ни создали,
00:07:09всегда будут случаи,
00:07:10когда вы повторяете инструкции для стандартных процедур.
00:07:13Хороший пример — как вы просите AI-инструменты делать git-коммиты или обновлять документацию.
00:07:18Почти во всех этих AI-инструментах есть способы переиспользовать наиболее часто повторяющиеся промпты.
00:07:22Я часто использую custom/commands в своих проектах,
00:07:25потому что они по сути дают Claude переиспользуемое руководство.
00:07:28Я часто использую команду catchup,
00:07:30которая содержит инструкции о том,
00:07:32как я структурирую память вне контекстного окна,
00:07:35чтобы Claude знал,
00:07:36как вникнуть в проект,
00:07:37не читая каждый файл.
00:07:38Они также хороши для поддержания структуры.
00:07:40Чтобы мои коммиты и документация следовали определённому формату,
00:07:43я использую команду commit/command,
00:07:45которая следует конкретной структуре для написания сообщений коммитов и выполнения проверок перед коммитом.
00:07:51Таким образом /commands поддерживают всё в стандартизированном виде,
00:07:54и мне не нужно снова и снова инструктировать Claude выполнять задачи так,
00:07:57как я предпочитаю.
00:07:58Как вы знаете,
00:07:58MCP следует использовать всякий раз,
00:08:00когда требуются внешние данные.
00:08:01Jira — наиболее широко используемое программное обеспечение для управления командами.
00:08:04Если вы хотите получить информацию из тикетов,
00:08:06можете использовать Jira MCP,
00:08:07чтобы он мог получать доступ к тикетам напрямую и начинать внедрять изменения.
00:08:11Аналогично,
00:08:11я использую Figma MCP,
00:08:12чтобы предоставить Claude код с руководством по стилю приложения,
00:08:15которое он затем использует для построения дизайна.
00:08:18Для задач,
00:08:19где встроенных возможностей модели недостаточно,
00:08:21MCP необходимы для эффективного взаимодействия с внешними источниками.
00:08:25Вы можете включить эти MCP прямо в свои /commands,
00:08:28чтобы они стали частью всего вашего рабочего процесса.
00:08:31На этом мы подходим к концу этого видео.
00:08:32Если вы хотите поддержать канал и помочь нам продолжать создавать такие видео,
00:08:36вы можете сделать это,
00:08:37используя кнопку «Супер спасибо» ниже.
00:08:39Как всегда,
00:08:39спасибо за просмотр,
00:08:40и увидимся в следующем видео.

Key Takeaway

Эффективные рабочие процессы ИИ-кодирования строятся на принципе прогрессивного раскрытия и грамотном управлении ограниченным контекстным окном модели через навыки, структурированные заметки, подагентов и правильный выбор форматов файлов.

Highlights

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

Контекстное окно заполняется не только сообщениями, но и инструментами, файлами памяти, вызовами MCP — нужно эффективно управлять этим пространством

Навыки (Skills) предпочтительнее MCP для внутренних операций; MCP использовать только для внешних данных

Структурированное ведение заметок во внешних файлах помогает сохранять критический контекст без засорения окна

Следите за заполнением контекста: после 70% возрастает риск галлюцинаций и неэффективного использования инструментов

Подагенты работают в изолированных контекстных окнах, защищая основное окно от раздувания

Используйте Git для контроля версий и историю коммитов как напоминание о прогрессе проекта

Timeline

Введение: проблема готовых фреймворков

Автор объясняет, что популярные AI-фреймворки для программирования (Beemad, Speckit и другие) часто не оправдывают ожиданий пользователей. Проблема не в качестве их методов, а в том, что готовые решения не подходят под конкретные случаи использования. При создании приложений разработчики обычно создают собственные рабочие процессы вместо использования готовых. Для построения эффективного рабочего процесса необходимо понимать определенные принципы, которые используются во всех фреймворках.

Понимание контекстного окна

Контекстное окно — это объем информации, который модель может помнить одновременно, и управление им является ключевой задачей AI-фреймворков. Модели имеют ограниченное контекстное окно: Anthropic предлагает 200 тысяч токенов, а Gemini — 1 миллион. Несмотря на впечатляющие цифры, эти лимиты не так велики, как кажется. Контекстное окно включает не только системный промпт и сообщения пользователя, но также прошлые сообщения, файлы памяти, инструменты, вызовы MCP и другие элементы, что делает эффективное управление этим пространством критически важным.

Принцип прогрессивного раскрытия

Прогрессивное раскрытие — самый важный принцип дизайна рабочих процессов, означающий показ модели только того, что важно в данный момент. Вместо заполнения контекстного окна всем возможным будущим контекстом, нужно держать внимание модели сосредоточенным на текущей задаче. Хотя продвинутые модели, такие как Sonnet 4.5, имеют встроенную функцию редактирования контекста и могут отфильтровывать шум, этого недостаточно при расплывчатых инструкциях. Вместо просьбы исправить ошибку в бэкенде целиком, лучше просить проверять эндпоинты один за другим. Функция навыков (Skills) в Claude с открытым исходным кодом — это воплощение прогрессивного раскрытия, где описание предоставляет достаточно информации для выбора нужного навыка без загрузки всего в контекст.

Навыки vs MCP и структурированное ведение заметок

Распространенная ошибка — использовать MCP (Model Context Protocol) для всего, тогда как его следует применять только для внешних данных, а навыки — для всего остального. Второй важный принцип гласит: информация, не нужная прямо сейчас, не должна находиться в контекстном окне. Для этого инструменты используют структурированное ведение заметок — предоставление AI-инструменту внешних файлов для документирования решений, проблем или технического долга. Этот подход позволяет агенту сохранять критически важный контекст, который иначе был бы потерян при работе над сложными задачами. При сжатии контекста эти заметки помогают понять, что уже сделано и что предстоит, что особенно полезно для долгосрочных задач.

Бюджет внимания и управление контекстом

Агенты часто приостанавливаются посреди долго выполняющихся задач, когда контекст превышает 70% лимита. Контекстное окно определяет, на что модель обращает внимание при генерации выходных данных. При превышении порога 70% модели приходится больше концентрироваться, что увеличивает вероятность галлюцинаций. Для AI-агентов это мешает эффективному использованию инструментов, и они могут просто игнорировать их. Для решения проблемы существует сжатие, позволяющее начать заново с резюме и уменьшенным контекстным окном. Вместо ожидания автоматического сжатия при 90% заполнения, следует мониторить контекст и сжимать самостоятельно, использовать функцию отмотки для удаления ненужных частей и очищать контекст для новых задач.

Подагенты для изолированного выполнения задач

Подагенты — это развитие принципа прогрессивного раскрытия, позволяющее выполнять задачи в фоновом режиме без засорения основного контекстного окна. Они работают в собственных изолированных контекстных окнах и сообщают только результат основному агенту. Это особенно полезно для задач, изолированных друг от друга, поскольку основное окно защищено от раздувания вызовами инструментов и поисками подагента. Поскольку подагенты работают в фоне, можно продолжать взаимодействовать с основным агентом над задачами, требующими внимания. Автор использует подагентов для исследовательских задач, например изучения правил нового фреймворка, чтобы их вызовы инструментов были изолированы, а основному агенту возвращался только ответ.

Выбор формата файлов для эффективности

Понимание принципа ведения заметок требует знания правильного формата файла для каждой задачи, поскольку форматы влияют на количество токенов и эффективность рабочего процесса. YAML наиболее эффективен по токенам, используется для схем баз данных, конфигураций безопасности и деталей API благодаря структурированным отступам. Markdown лучше подходит для документации (например, claud.md), где уровни заголовков облегчают навигацию. XML специально оптимизирован для моделей Claude, которые дообучены распознавать теги как контейнеры и разделители для отдельных разделов (ограничения, резюме, визуальные детали), хотя другие модели предпочитают Markdown и YAML. JSON наименее эффективен из-за скобок и кавычек, поэтому рекомендуется только для простых вещей вроде состояний задач.

Git для контроля версий и прогресса

Git — базовый инструмент программирования, который приобретает новое значение в контекстных рабочих процессах. Растущая тенденция — использование истории коммитов git как напоминания модели о достигнутом прогрессе по проекту или задаче. Даже без этого следует применять контекстное проектирование в git-инициализированных репозиториях. Рабочий процесс с контекстной инженерией означает выполнение запланированных шагов один за другим, а не всего сразу. При возникновении проблем git позволяет контролировать откат к нужной версии и выяснить, какое изменение вызвало неполадки. Также реализован параллелизм через git worktrees, где подагенты работают в выделенных worktrees для параллельного выполнения задач.

Переиспользуемые команды и MCP для внешних данных

В любом рабочем процессе возникают повторяющиеся инструкции для стандартных процедур, таких как git-коммиты или обновление документации. Почти все AI-инструменты предлагают способы переиспользования промптов через custom/commands, дающие Claude переиспользуемое руководство. Автор использует команду catchup с инструкциями о структуре памяти вне контекста, чтобы Claude мог вникнуть в проект без чтения каждого файла, и команду commit для поддержания единообразного формата коммитов и документации. MCP следует использовать для внешних данных: Jira MCP для доступа к тикетам, Figma MCP для получения руководства по стилю приложения. Для задач, где встроенных возможностей недостаточно, MCP необходимы для эффективного взаимодействия с внешними источниками, и их можно включить в /commands как часть рабочего процесса.

Заключение

Автор благодарит зрителей за просмотр и предлагает поддержать канал через кнопку «Супер спасибо», чтобы помочь создавать подобные обучающие видео в будущем. Завершает видео традиционным прощанием и обещанием увидеться в следующем выпуске.

Community Posts

View all posts