00:00:00Хотя Claude Code и является одним из мощнейших инструментов для ИИ-разработки,
00:00:03почему он пасует перед определенными задачами? С учетом новых функций, которые Anthropic
00:00:08выпускает в последнее время, и рабочих процессов, которые мы выстроили вокруг него, методы
00:00:12работы с этим инструментом полностью изменились по сравнению с тем, что было пару недель назад. Наша команда использует Claude
00:00:16Code ежедневно, причем не только для разработки, но и для исследований, управления нашим
00:00:21продакшн-конвейером и автоматизации задач, вообще не связанных с кодом. Позвольте мне показать вам все,
00:00:26что нам удалось выяснить. Недавно в Claude Code добавили команду insights. Она анализирует
00:00:31все ваши прошлые сессии за определенный период и генерирует отчет. В этом отчете
00:00:36анализируется ваш стиль работы, «прожариваются» ваши привычки, подсвечивается то, что вы делали правильно,
00:00:40а в чем ошибались, и даются советы по улучшению. Больше всего нас интересовал поиск причин,
00:00:45почему что-то пошло не так, ведь именно на ошибках можно научиться. Отчет выделил
00:00:49моменты, где возникало больше всего трудностей, и предложил функции для оптимизации
00:00:54рабочего процесса. Например, мы помним сессию, где основной агент постоянно запрашивал
00:00:58список задач в течение долгого времени при использовании команд агентов. Из-за этого сессия затянулась,
00:01:03и нам пришлось прервать ее вручную. Чтобы предотвратить это в будущем, мы можем скопировать этот промпт
00:01:07в файл cloud.md, чтобы при использовании Claude Code с несколькими агентами Claude не опрашивал
00:01:12систему бесконечно, а сразу переходил к делу. Эти советы можно импортировать в проекты, чтобы
00:01:17опыт работы с Claude Code со временем только улучшался. Наша команда провела много времени за работой
00:01:22в Claude Code, и важнейшим этапом по-прежнему остается качественная передача контекста агенту.
00:01:26Это могут быть требования к проекту, разбитые на части, или документация по фреймворкам и
00:01:30библиотекам, которые вы используете. Когда вы даете правильный контекст, количество ошибок стремится к нулю,
00:01:35потому что агент точно знает, что делать. Что касается проектной документации, мы предпочитаем, чтобы Claude писал ее сам,
00:01:39а не делать это вручную. Мы дали Claude специфический промпт, содержащий всю информацию,
00:01:44необходимую для разделения идеи проекта на требуемые документы. Мы попросили его создать
00:01:48четыре документа, каждый из которых посвящен определенному аспекту приложения. Самый важный — это PRD,
00:01:53содержащий требования и объем проекта. Затем идет architecture.md,
00:01:57где прописаны форматы данных, структура файлов, API и все детали архитектуры.
00:02:02Далее — decision.md, в котором собраны все решения, принятые Claude в ходе создания проекта,
00:02:08что служит справочником на будущее. И, наконец, самый важный — feature.json, содержащий
00:02:12все функции в формате JSON. В нем экономно расходуются токены при описании каждой функции,
00:02:17указаны критерии готовности фичи и ключ passes для
00:02:22отслеживания того, что уже реализовано, а что нет. Теперь, когда большая задача разбита на
00:02:27мелкие части, нам нужно предоставить документацию по инструментам для реализации через
00:02:31MCP Context 7. Там есть документация по всем библиотекам и фреймворкам, которая регулярно обновляется,
00:02:36чтобы агенты могли загружать свежие данные и восполнять пробел между знаниями модели и
00:02:41текущим состоянием технологий. Настройка MCP занимает всего несколько шагов. После установки
00:02:46он использует инструменты Context 7 и получает информацию о библиотеках напрямую. Это позволяет использовать
00:02:50актуальную документацию, избегать ошибок из-за несовпадения версий и получать более
00:02:55точную реализацию. Хуки — еще одна недооцененная возможность. Хуки в Claude Code
00:03:00— это консольные команды, которые запускаются в определенные моменты жизненного цикла. Существует много типов,
00:03:05срабатывающих в разное время, например, при старте сессии, до или после использования инструмента. Но самое главное
00:03:11— это настройка специфических кодов завершения. Эти коды говорят Claude Code, продолжать ли работу,
00:03:16заблокировать или игнорировать действие. Код 0 означает успех. Код 2 означает блокирующую ошибку. Так что
00:03:22когда Claude пытается сделать то, чего не должен, он получает код 2, сообщение об ошибке
00:03:27и может исправиться. Любой другой код, кроме этих двух, не является блокирующим, отображается в подробном режиме,
00:03:32и выполнение продолжается. Код 2 очень важен, так как с его помощью можно контролировать
00:03:37поведение агента. Если вы когда-нибудь пробовали разработку через тестирование (TDD) с Claude Code,
00:03:41вы могли заметить, что он склонен менять сами тесты, если не может их пройти. Чтобы это
00:03:46предотвратить, мы настроили кастомный хук, который срабатывает перед использованием инструмента. Этот хук защищает тест-скрипты
00:03:50выводится сообщение о том, что изменение папок с тестами запрещено, и возвращается
00:03:55it shows an error message saying modifications to test folders are not allowed and returns
00:04:00код завершения 2. С этим хуком, когда мы дали Claude команду запустить тесты и они
00:04:05не прошли, он попытался изменить файлы тестов. Но скрипт заблокировал это, и появилось сообщение
00:04:10о запрете модификации. Это не дало Claude редактировать файлы, которые не следует трогать. Если вы работали
00:04:15с MCP, то знаете, что они раздувают окно контекста. А когда вы работаете над масштабным проектом,
00:04:19количество подключенных MCP растет. В итоге все инструменты MCP занимают место в окне контекста,
00:04:25и оно переполняется. Специально для этого в Claude Code есть экспериментальный режим MCP CLI, который решает
00:04:31эту проблему. Мы установили флаг экспериментального MCP CLI в значение true. После этого все MCP, которые отображались
00:04:36в контексте, исчезли, и инструменты MCP перестали занимать место в окне контекста. Возник вопрос:
00:04:41как получить доступ к инструментам, если их больше нет в памяти? Вместо того чтобы загружать все
00:04:45схемы инструментов заранее, Claude Code использует команды MCP CLI info и MCP CLI calls и запускает все подключенные
00:04:52MCP через эти инструменты через bash. С установленным флагом, когда мы давали промпт, вместо вызова
00:04:56инструмента MCP напрямую, он вызывал их через MCP CLI и запускал как bash-команды, а не как
00:05:03инструменты MCP. Таким образом, нужный инструмент загружался только по запросу, предотвращая раздувание контекста. Также,
00:05:08если вам нравится наш контент, нажмите кнопку хайпа, ведь это помогает нам создавать больше
00:05:13подобных видео и охватывать больше людей. В наших прошлых роликах мы подчеркивали важность использования
00:05:18git, чтобы вся работа агентов отслеживалась в системе контроля версий. Вы также можете откатиться назад, если агенты
00:05:23реализовали что-то неправильно. Мы также выпускали видео, где использовали git для запуска агента на долгосрочной
00:05:28задаче, которое вы можете посмотреть на канале. Мы использовали параллельных агентов для работы над разными
00:05:32деревьями файлов (worktrees), чтобы они могли создавать все функции проекта, оставаясь изолированными друг от друга.
00:05:37Так мы могли объединить их результаты позже без конфликтов, так как работа агентов
00:05:41над одними и теми же файлами вызывает проблемы. Ветки не так удобны, потому что они приводят к конфликтам. Агентам
00:05:46сложно переключаться между ветками, так как ветки делят одну рабочую директорию, в отличие от worktrees.
00:05:50Поэтому мы дали промпт, в котором указали несколько функций для реализации и уточнили,
00:05:55что каждый агент должен работать в отдельном worktree. Система использовала отдельного
00:05:59агента для каждого дерева и реализовала функции изолированно, даже если описания их задач
00:06:03в некоторых моментах пересекались. После того как Claude правильно реализовал все функции в
00:06:08отдельных ветках, мы дали команду объединить результат, чтобы получить все функции в одной рабочей
00:06:13директории. Строгий режим (strict mode) необходим для переноса бремени проверки ошибок на агента. Это
00:06:18нужно настраивать для любого языка, который вы используете, потому что это ловит баги
00:06:22на этапе сборки, а не когда пользователи сталкиваются с ними в рантайме. Так как наш основной язык — TypeScript,
00:06:26мы всегда устанавливаем strict mode в true. Это включает проверку на null и неявные
00:06:31типы, заставляет соблюдать строгую типизацию, что в целом уменьшает количество ошибок в рантайме. Это важно
00:06:36для ИИ-агентов, так как у них нет встроенного способа отлавливать ошибки времени выполнения. Строгий режим сводит
00:06:41к минимуму риск сбоев в рантайме и гарантирует, что компилятор возьмет эти вопросы на себя. Агенты могут
00:06:46опираться на логи ошибок в терминале для применения известных исправлений. Вместо того чтобы полагаться только
00:06:51на проверку скриптами, стоит добавить еще один уровень тестирования. Вы пишете пользовательские истории (user stories),
00:06:56которые описывают взаимодействие пользователя с системой, чтобы направлять процесс тестирования после
00:07:00сборки приложения. Мы фактически определяем пользовательские истории перед реализацией проектов, так как это
00:07:05задает стандарт, которому должна следовать реализация. По промпту Claude написал несколько историй
00:07:10в папке, содержащей все возможные способы взаимодействия пользователя с системой. Каждая история
00:07:15описывает конкретный аспект приложения, его приоритет и критерии приемки, по которым агент проводит тест.
00:07:21Пользовательские истории охватили все возможные сценарии, включая идеальный путь и краевые случаи. Эти
00:07:26истории по сути говорят агентам, как взаимодействовать с только что построенной системой. Имея правильные
00:07:31инструкции по взаимодействию, любой агент может применить те же принципы к
00:07:35создаваемому приложению и лучше соответствовать ожиданиям пользователей. Когда истории были задокументированы, мы попросили
00:07:40Claude реализовать их одну за другой и дали команду начать с оптимального пути, указанного в каждой
00:07:45истории, убедившись, что все краевые случаи учтены. Таким образом, в реализации было меньше пробелов и
00:07:50пользователи оставались более довольны. Все советы, о которых мы говорили, доступны в
00:07:55виде готовых шаблонов в AI Labs Pro. Для тех, кто не знает, это наше недавно запущенное
00:08:00сообщество, где вы получаете готовые шаблоны, промпты, все команды и навыки, которые можно
00:08:05внедрить прямо в ваши проекты. Если вы цените то, что
00:08:10мы делаем, и хотите поддержать канал — это лучший способ. Ссылки в описании.
00:08:14Нам нужно использовать параллелизацию по максимуму, потому что именно так агент ускоряет
00:08:20свой рабочий процесс и внедряет вещи, которые не зависят друг от друга. Мы знаем, что Claude автоматически
00:08:25определяет, можно ли запустить задачу параллельно или последовательно, но
00:08:29создание агентов вручную тоже не помешает. Мы также рассматривали эти возможности агентов в нашем прошлом
00:08:34видео об ускорении рабочего процесса, но эта скорость достигается ценой повышенного расхода токенов.
00:08:39Тем не менее, усилия по параллелизации того стоят. В какой-то момент
00:08:43мы работали над исследованием влияния улучшений Opus 4.6, используя ту же модель, и она постоянно
00:08:49галлюцинировала, хотя мы предоставляли источники. Она писала неверную информацию, и нам приходилось
00:08:54постоянно ее поправлять. Исследование казалось бессмысленным, так как нам приходилось все исправлять
00:08:58самим. Чтобы предотвратить это в будущем, мы использовали параллельных агентов. Мы поставили задачу по исследованию,
00:09:03где хотели сравнить возможности роя агентов KimiK 2.5 и Claude.
00:09:09Мы задействовали двух агентов: одного для самого исследования, а другого для проверки фактов за первым агентом. Основная
00:09:14идея заключалась в том, чтобы оба агента общались друг с другом для обеспечения точности выводов, чтобы нам
00:09:19не пришлось делать это самим. В такой схеме один агент выполняет задачу, а другой критически
00:09:24ее анализирует, создавая состязательный процесс. Исследователь начал первым, а
00:09:28фактчекер ждал, пока не будет готов первый черновик. Как только черновик был готов,
00:09:33фактчекер приступил к проверке. Он мгновенно выявил множество неточностей в
00:09:38данных, которые привел исследователь, и нам больше не нужно было искать их вручную. Оба агента продолжали
00:09:43взаимодействовать, поддерживая строгий процесс проверки. Один агент был полностью посвящен
00:09:47уличению другого в неверной информации. В таком состязательном режиме можно запускать множество задач,
00:09:52не только исследования, но и разработку, где один агент пишет код, а другой проверяет реализацию на соответствие плану.
00:09:57По словам создателя Claude Code, агент работает лучше, если у него есть способ проверять свою работу.
00:10:02Суть здесь в том, чтобы дать агенту «глаза», то есть возможность убедиться, что реализованная функция корректна
00:10:07и соответствует ожиданиям. Поскольку эти агенты работают в терминале, они не могут
00:10:12выявить проблемы, возникающие в рантайме, особенно на стороне клиента. Мы используем несколько способов
00:10:17проверки работы агента. Первый — расширение Claude для Chrome, которое предоставляет браузерные инструменты,
00:10:21такие как захват DOM, проверка логов консоли и прочее. Еще один инструмент — Puppeteer MCP.
00:10:26Он полезен тем, что запускается в отдельном браузере без ваших существующих сессий, в отличие от расширения для Chrome.
00:10:31Он изолирован и не мешает вашим текущим сессиям, что дает дополнительный уровень
00:10:36приватности. Но наш фаворит — это браузер агента от Vercel. Это не MCP, а CLI-инструмент,
00:10:41дающий агентам возможности браузерного тестирования. В нем есть инструменты для навигации, создания скриншотов и
00:10:46многого другого. В отличие от других инструментов, он ориентируется не только на скриншоты.
00:10:51Вместо этого он использует дерево доступности (accessibility tree), где каждый элемент имеет уникальную ссылку. Это сжимает
00:10:56весь DOM с тысяч токенов до примерно 200–400, что гораздо экономнее для контекста. Это и было главной проблемой
00:11:01расширения Claude для Chrome, которую решил браузер агента. Расширение загружает весь DOM в
00:11:07окно контекста и быстро его исчерпывает. Мы также добавили инструкции в Claude.md, чтобы Claude
00:11:12сначала полагался на браузер агента, прежде чем переходить к тестированию на базе MCP. Так Claude использует браузер агента
00:11:17как основной метод проверки. Но есть и другой аспект. Тестирование важно, но есть способ
00:11:23уменьшить количество ошибок без тестов и код-ревью. Мы просим Claude предсказывать вещи,
00:11:28которые еще не произошли. Мы просим Claude проверить реализацию и выявить места, где
00:11:33приложение может дать сбой. Это работает, потому что мы даем Claude шанс предугадать потенциальные проблемы,
00:11:38сопоставляя их с ошибками в других приложениях, даже если мы сами еще не столкнулись с ними
00:11:43в ходе тестов. Это заставляет Claude взглянуть на код под другим углом.
00:11:47Когда мы попросили его об этом, он выявил критические пробелы, которые прошли даже через нашу многоуровневую
00:11:52систему тестирования, и нашел 18 проблем, которые могли бы навредить в продакшене.
00:11:57Наши обычные тесты их не поймали. Их удалось найти только тогда, когда мы заставили Claude взглянуть на
00:12:01проект под другим углом. На этом наше видео подходит к концу. Если вы хотите поддержать
00:12:06канал и помочь нам выпускать подобные ролики, вы можете сделать это с помощью кнопки «Суперспасибо»
00:12:10ниже. Как всегда, спасибо за просмотр, и до встречи в следующем видео!
00:12:15below. As always thank you for watching and I'll see you in the next one.