Ваш файл claude.md на самом деле замедляет ИИ-кодинг на 99%

AAI LABS
Computing/SoftwareManagementInternet Technology

Transcript

00:00:00Один единственный файл решает, будет ли продукт, который вы получите, действительно
00:00:04тем, что вам нужно.
00:00:05Для пользователей Claude Code это claud.md, у других есть свои файлы, но чаще всего
00:00:10они используют agents.md.
00:00:11Но что бы вы ни использовали, если вы не настроите это должным образом, вы будете продолжать бороться со своим
00:00:15агентом в каждой задаче.
00:00:17И если вы думаете, что запуска простой команды init достаточно для вас, то вы на самом деле
00:00:20ошибаетесь.
00:00:21Вам нужно следовать структурированному шаблону, адаптированному к проекту, который действительно заставляет вашего агента
00:00:26работать лучше.
00:00:27По этой причине мы собрали лучшие практики, которым вам нужно следовать, из других заслуживающих доверия источников,
00:00:31а также из нашего опыта работы с Claude Code, чтобы вы могли применить их напрямую в
00:00:35своем рабочем процессе.
00:00:36И последнее важно, потому что оно определяет, как ваш агент на самом деле следует вашим инструкциям,
00:00:41и если их не соблюдать, остальные инструкции в вашем файле не будут такими эффективными.
00:00:45Первое, что вам нужно добавить в файл claud.md, — это кое-что, взятое прямо
00:00:49из репозитория навыков Андрея Карпатого, где содержатся лучшие шаблоны для claud.md, о которых он говорит.
00:00:54Вам нужно добавить явную инструкцию для Claude думать перед написанием кода.
00:00:58Это заставляет Claude выражать предположения явно.
00:01:01Если существует несколько интерпретаций, он должен представить их все, чтобы мы могли выбрать из
00:01:05набора реализаций.
00:01:07Это заставляет Claude мыслить с другой точки зрения, прежде чем он на самом деле погрузится в
00:01:11решение.
00:01:12Это гарантирует, что реализованное решение соответствует тому, что вы хотели.
00:01:15Эта строка избавляет наш рабочий процесс от огромного количества правок, поэтому мы нашли ее
00:01:20такой полезной.
00:01:21С добавлением этой инструкции, всякий раз, когда вы просите Claude реализовать функцию, он будет, по сути,
00:01:25задавать ряд вопросов, связанных с поставленной задачей, чтобы ваши ответы направляли его
00:01:29в том, как на самом деле выполнить задачу.
00:01:31Эта часть особенно полезна, потому что теперь Claude не будет гадать с реализацией
00:01:35и сразу приступать к выполнению на основе шаблонов, которые он запомнил из обучающих данных.
00:01:39Он будет тщательно продумывать, какая реализация является правильной, и подтверждать с вами, является ли это
00:01:43задуманной реализацией, а затем действительно работать над функцией, вместо того чтобы просто дико
00:01:48угадывать ее, а вам приходится прерывать Claude, потому что он не следовал правильным реализациям,
00:01:52которые были у вас в голове, что происходит гораздо чаще и требует от вас много
00:01:56исправлений.
00:01:57Следующее правило — выбирать простоту в первую очередь.
00:01:59Это что-то настолько простое, но все же это должно быть специально указано в claud.md, чтобы
00:02:04агенту правильно напоминали об этом принципе.
00:02:07Claude или любой другой агент имеет тенденцию писать большие решения для проблем, которые можно решить
00:02:11простыми.
00:02:12Но это проблема не только потому, что вызывает задержки.
00:02:15Это также затрудняет рефакторинг кода в дальнейшем и еще больше усложняет добавление функций, потому что
00:02:19реализация настолько многословна, что потребляет много токенов для реализации простых вещей.
00:02:24Так что эта строка буквально подталкивает Claude итерироваться в сторону простоты.
00:02:27Мы также добавляем это в каждый проект, особенно при работе над масштабными приложениями, потому что
00:02:32в этом масштабе это становится более важным.
00:02:35Это конкретно говорит Claude не добавлять никаких функций сверх того, что было запрошено, и обеспечить
00:02:39надлежащую обработку ошибок для реализации.
00:02:41Дисциплинированная структура вокруг этого — это, по сути, жесткий порог.
00:02:44Если решение любой задачи, о которой вы просите, может быть обработано в 200 строках и может быть переработано
00:02:49до 50, то Claude должен переписать решение, потому что его подход неверный.
00:02:54Это действительно предотвратит написание Claude большого количества бесполезного кода с вещами,
00:02:58которые даже не реализуемы, и отражает неверное направление, которое выбрал Claude.
00:03:03Третья часть claud.md — это выполнение хирургических изменений, или, проще говоря, затрагивание
00:03:08только тех частей, которые агент абсолютно обязан затронуть.
00:03:11Это касается того, с чем мы часто сталкиваемся, когда Claude пишет большое количество кода за
00:03:15один раз, и исправление должно быть явно указано в файле claud.md.
00:03:19Claude или агенты в целом, когда их просят выполнить одну задачу, склонны пытаться улучшить вещи
00:03:24вокруг этой задачи тоже.
00:03:25Эти улучшения могут выглядеть как изменения смежного кода или форматирование кодовой базы, на чем
00:03:29мы на самом деле не хотим, чтобы он фокусировался в данный момент.
00:03:32Но это раздражает, потому что внимание Claude рассеивается между несколькими вещами, которые он
00:03:36пытается реализовать одновременно.
00:03:37Настройка таких изменений не является хорошей идеей, потому что Claude по сути включает вещи,
00:03:41которые мы не хотели, чтобы он делал прямо сейчас.
00:03:43Поэтому нам нужно прямо указать в claud.md инструкцию не делать этого.
00:03:47Если агент замечает какой-либо не связанный с задачей мертвый код, он должен упомянуть об этом, вместо того чтобы исправлять его самостоятельно.
00:03:52Порой такие вещи присутствуют по определенным причинам, которые должны быть решены позже,
00:03:56а не на той стадии, на которой сейчас находится приложение.
00:03:58Ментальная структура, которая позволяет Claude решать, как действовать должным образом, заключается в проверке каждого изменения
00:04:03и просмотре, действительно ли оно возвращается к тому, о чем просил пользователь.
00:04:06Если возвращается, то он должен внести это изменение.
00:04:08Если нет, он не должен затрагивать эту функцию.
00:04:10Если эта строка добавлена, то всякий раз, когда у Claude есть какая-либо проблема в реализации, он будет, по сути,
00:04:14изменять только то, что пользователь попросил его исправить.
00:04:17Поэтому он расскажет вам обо всех других проблемах, которые он нашел в том же файле, и вы сможете решить
00:04:21оттуда, хотите ли вы на самом деле, чтобы он исправил их или нет.
00:04:24Последний шаблон, который был извлечен из работы Андрея Карпатого, — это выполнение, управляемое целью.
00:04:29Агенты не знают, как должен выглядеть правильный результат, что является основной проблемой.
00:04:33Они работали бы намного эффективнее, если бы знали, и именно это правило исправляет.
00:04:36В файле claud.md нам нужно явно указать Claude определить критерии успеха
00:04:41для каждой задачи, которую мы ему даем.
00:04:43Поэтому для любой задачи, которую мы передаем, Claude должен преобразовать ее в проверяемую цель.
00:04:47Например, если вы даете ему задачу добавить валидацию, он напишет тесты для недопустимых входных данных
00:04:52и обеспечит, чтобы эти тестовые случаи действительно проходили с правильными возвращаемыми значениями для правильных входных данных.
00:04:57Так что вся идея заключается в том, чтобы агент реализовал тестовые случаи, а затем итерировал, пока все тестовые
00:05:01случаи не будут пройдены, и в конце проект будет иметь такое же поведение, которое нам на самом деле нужно от него.
00:05:06Если вы дадите ему любую подсказку по задаче, он установит проверяемую цель и спланирует реализацию.
00:05:11Затем он проверит работу для вас, добавив все тестовые случаи и показав, как он будет
00:05:15обрабатывать все приложение в целом.
00:05:17Теперь, это может работать для логических рассуждений, но если вы хотите, чтобы агент проверил, как ваш
00:05:21интерфейс выглядит, агент не может написать тестовые случаи для этого.
00:05:23Поэтому для этого вы можете добавить расширение Claud Chrome или Puppeteer MCP, чтобы он мог проверить
00:05:28как выглядит интерфейс, используя эти инструменты.
00:05:30Это помогает, потому что изменения в интерфейсе трудно оценить, глядя на код самого себя, и давая
00:05:35агенту проверяемый способ позволить ему увидеть текущие визуальные эффекты приложения, и, используя это, он может исправить
00:05:40проблемы.
00:05:41Поэтому вы можете явно добавить строку, чтобы он знал, что после реализации интерфейса
00:05:45он также должен проверить результат через MCP.
00:05:48Если вы создали файл claud.md с помощью собственной команды init Claude Code, вы увидите, что
00:05:53он добавляет команды для запуска сервера разработки и сервера сборки.
00:05:57Но они уже есть в его обучающих данных, и Claude уже знает эти команды, и
00:06:01нам не нужно явно тратить строки в claud.md, говоря ему то, что он уже знает.
00:06:05Так что в своем файле вам нужно упомянуть только инструменты, которые вы хотите, чтобы Claude использовал вместо
00:06:09тех, к которым он прибегает по умолчанию.
00:06:11Существуют определенные инструменты командной строки, которые делают рабочий процесс быстрее, но которых нет в обучающих данных Claude
00:06:16или шаблонах, на которые он уже полагается.
00:06:18Поэтому вам нужно добавить их явно, чтобы Claude знал, что эти инструменты установлены
00:06:22и не возвращался к тому, что он использует самостоятельно все время.
00:06:26Например, если вы установили CLI GitHub вместо использования git для работы, вы можете
00:06:30добавить инструкцию в claud.md использовать его CLI вместо стандартных команд git для всех
00:06:36операций.
00:06:37Аналогично, вы можете добавить больше команд, которые не являются стандартными.
00:06:41Вам также нужно добавить инструкции по запуску проекта в этом файле, если они отличаются
00:06:45от обычных.
00:06:46Например, большинство проектов в стандартной настройке запускаются с помощью npm, и если ваш проект запускается с
00:06:51pnpm, вам нужно добавить эту информацию, чтобы агент знал, какие команды на самом деле должны
00:06:56быть выполнены.
00:06:57Все остальное, помимо команд, которые Claude уже знает, не должно быть включено в файл claud.md.
00:07:01файл.
00:07:02Следующее упоминание в claud.md вдохновлено создателем Claude Code и рабочим процессом,
00:07:07который он раскрыл.
00:07:08Он говорил о том, что claud.md — это не файл «написал один раз и используй вечно».
00:07:12Это то, что постоянно нуждается в изменении, обновлении и улучшении в процессе
00:07:16создания, как постоянный процесс, который требует итераций снова и снова.
00:07:20Поэтому вам нужно добавить инструкцию, что если Claude должен был быть уведомлен пользователем о том, что его реализация
00:07:25была неверной, он должен сначала применить исправления, указанные пользователем.
00:07:29Как только Claude применит эти исправления, он должен также добавить эти знания в специальный
00:07:33файл, чтобы Claude мог постепенно создавать базу знаний о том, чего он не должен делать и что является
00:07:38правильным способом выполнения вещей, к которому он может обращаться позже по мере необходимости.
00:07:42Но прежде чем мы двинемся вперед, давайте послушаем слово от нашего спонсора.
00:07:45Klaus, вы, наверное, слышали об ИИ-агентах.
00:07:47Может быть, вы пытались настроить его самостоятельно, 15 минут вы смотрите в терминал,
00:07:51вставляя API-ключи в конфигурационные файлы, задаваясь вопросом, не слили ли вы только что что-то важное.
00:07:56Klaus пропускает все это.
00:07:57Klaus запускает OpenClaw, open-source ИИ-агента в облаке.
00:08:00Вы регистрируетесь, получаете $15 в кредитах Open Router и начинаете промптить.
00:08:04Никакого терминала, никакого docker, никакого квеста по поиску API-ключей.
00:08:07Я протестировал его, попросив Klaus проскрейпить каталог стартапов, организовать результаты в таблицу
00:08:12и отправить мне по электронной почте.
00:08:13Один промпт в окне чата, готово.
00:08:15Никакого кода, никаких расширений браузера.
00:08:17Он поставляется со встроенными инструментами, такими как Exa и Apollo, и подключается к Slack, WhatsApp, даже
00:08:21iMessage.
00:08:22Все работает на изолированной машине, полностью отделенной от ваших личных учетных записей.
00:08:27Если что-то ломается, их агент автоисправления Clawbert исправляет это без вашего вмешательства.
00:08:31Переходите по ссылке в закрепленном комментарии и попробуйте Klaus бесплатно.
00:08:35Поскольку большинство проектов по программированию управляются Git, вам нужно явно добавить инструкцию
00:08:39в claud.md, что Claude не должен запускать команды, которые необратимы без подтверждения.
00:08:44И если возникает необходимость выполнить такую команду, агент должен сначала запросить разрешение.
00:08:48Эти команды опасны, потому что как только они выполнены, последствия необратимы
00:08:53и они могут нанести ущерб производству.
00:08:55Вещи, такие как принудительная отправка (force push), сброс головы (reset head), слияние веток или выполнение команд принудительного удаления
00:09:00команд.
00:09:01Вам также нужно добавить инструкцию, что если Claude не уверен, является ли команда деструктивной
00:09:04или нет, он должен спросить, вместо того чтобы предполагать.
00:09:07Это избавит вас от множества проблем.
00:09:08Например, если Claude случайно попытается объединить ветку, которую вы не хотите объединять,
00:09:12он попросит разрешения, прежде чем делать это, и вы можете отказать, чтобы ваша работа
00:09:16оставалась в безопасности.
00:09:17Нет необходимости помещать все аспекты информации в один файл claud.md, потому что это
00:09:22просто раздует его без необходимости и отвлечет агента от того, что ему на самом деле нужно делать.
00:09:27Поэтому вам нужно создать файлы правил с областью действия пути, которые объявляют свою область действия на первой строке
00:09:31и содержат инструкции, адаптированные для этих конкретных файлов.
00:09:34Вам также нужно упомянуть расположение этих файлов в claud.md, чтобы Claude знал, что они существуют.
00:09:40Например, если вы хотите, чтобы Claude следовал определенным специфическим инструкциям при написании API, вы
00:09:44можете добавить их в файл правил для них, чтобы, когда Claude работает над ними, он мог загрузить
00:09:48эти инструкции и использовать их напрямую.
00:09:50Но не менее важно то, что это также гарантирует, что инструкции, связанные с API, не будут мешать,
00:09:55когда Claude не работает над ними.
00:09:56Вы можете иметь несколько файлов правил для разных частей проекта, каждый из которых содержит инструкции,
00:10:00адаптированные к этой конкретной области.
00:10:02Таким образом, Claude загружает только соответствующие инструкции, когда работает над этой частью.
00:10:06Поэтому это предотвращает раздувание контекста и держит агента сфокусированным на текущей задаче, вместо того
00:10:11чтобы быть отвлеченным не связанными правилами.
00:10:13Большинство масштабных приложений находятся в монорепозитории, который представляет собой один большой репозиторий, где
00:10:18все различные компоненты хранятся вместе, причем каждая папка действует как отдельная часть
00:10:22сама по себе, и каждая часть управляется независимо, при этом внося вклад в другой аспект
00:10:27основного приложения.
00:10:28Поэтому, если вы запускаете проект из монорепозитория, вам нужно убедиться, что каждый подрепозиторий
00:10:32содержит свой собственный файл claud.md, чтобы он на самом деле содержал инструкции, специфичные
00:10:37для него, и не должен был полагаться только на инструкции из глобального claud.md.
00:10:42Глобальный файл должен состоять только из инструкций, которые широко применимы ко всем частям
00:10:47системы.
00:10:48Но файлы claud.md с областью действия работают лучше, потому что они могут содержать инструкции, специфичные
00:10:52для этого конкретного приложения или модуля.
00:10:54Это позволяет агенту работать лучше, потому что он будет иметь более сфокусированное руководство.
00:10:58Поэтому размещение всех инструкций для крупного проекта в основном файле — неверный ход.
00:11:02Это фактически раздует файл информацией, и когда Claude проходит через области с инструкциями,
00:11:07которые не касаются текущей задачи, это может привести к тому, что его внимание рассеется от того, что ему
00:11:11на самом деле нужно сделать.
00:11:12Также, если вам нравится наш контент, рассмотрите возможность нажатия кнопки «хайп», потому что это помогает нам
00:11:16создавать больше подобного контента и охватывать больше людей.
00:11:19Вам также нужно добавить описание проекта в файл claud.md и убедиться, что эта
00:11:24инструкция помещена в самом начале его, а не погребена внутри остальных
00:11:29инструкций.
00:11:30Потому что агент получает суть того, о чем все приложение, прочитав это первым.
00:11:33Поэтому он понимает контекст того, как структурировано приложение, что оно делает в целом, каковы
00:11:38различные сервисы и зависимости, и как приложение работает.
00:11:41Таким образом, он знает с самого начала, вместо того чтобы смотреть на код, чтобы сделать вывод, что
00:11:45делает приложение.
00:11:46Еще один раздел, который нам нужно добавить в ваш файл claud.md, заключается в том, что Claude должен проверить
00:11:50не только то, что функция существует, но и то, что она функционирует правильно, как задумано, прежде чем сообщать
00:11:55о любой задаче как о выполненной.
00:11:57Он должен использовать все доступные механизмы проверки, чтобы подтвердить, что сборка и тесты проходят должным образом,
00:12:02но суть этого раздела заключается в обеспечении того, чтобы задача была на самом деле завершена, используя реальные
00:12:07шаги проверки, а не просто проверяя, что код для функции существует.
00:12:11Поэтому эта инструкция подталкивает Claude отчитываться более добросовестно и использовать несколько
00:12:15типов проверок, таких как модульные тесты, линтинг и проверка типов, чтобы убедиться, что приложение реализовано
00:12:20правильно и работает как задумано.
00:12:23И последнее, но не менее важное: способ, которым вы упорядочиваете инструкции в файле claud.md, также
00:12:27очень важен для обеспечения высокой производительности агента.
00:12:29Вы должны упорядочить их по приоритету.
00:12:31Первыми инструкциями должны быть жесткие правила, что означает всегда не подлежащие обсуждению, без каких-либо исключений
00:12:36вообще.
00:12:37Эти жесткие правила всегда должны идти первыми, перед любыми другими правилами.
00:12:40Затем идут правила среднего приоритета, которые не такие строгие, как предыдущие.
00:12:44Они несколько обсуждаемы, но все же важны и не должны быть нарушены.
00:12:48После этого идут инструкции с низким приоритетом, которые в основном включают ссылки и удобства,
00:12:52так что агенту не нужно возвращаться и использовать этот раздел в качестве основного источника решений.
00:12:57Еще одна важная вещь: вам нужно убедиться, что файл claud.md остается коротким.
00:13:01Лучшая практика — держать его в строгом пределе 300 строк, что считается оптимальным
00:13:06для производительности агента.
00:13:07Но как только он становится длиннее, производительность начинает снижаться.
00:13:10Файл claud.md, о котором здесь говорилось, и все другие ресурсы, упомянутые здесь, доступны
00:13:15в AI Labs Pro для этого видео и для всех наших предыдущих видео, откуда вы можете скачать
00:13:20и использовать их для своих проектов.
00:13:21Если вы нашли ценность в том, что мы делаем, и хотите поддержать канал, это лучший способ
00:13:25сделать это.
00:13:26Ссылка в описании.
00:13:27Это подводит нас к концу этого видео.
00:13:29Если вы хотите поддержать канал и помочь нам продолжать создавать видео, подобные этому, вы можете сделать
00:13:33это с помощью кнопки супер-спасибо ниже.
00:13:35Как всегда, спасибо за просмотр, и увидимся в следующем.

Key Takeaway

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

Highlights

  • Файл claud.md должен содержать инструкцию, заставляющую ИИ мыслить перед написанием кода, явно выражая предположения.

  • Оптимальный объем файла claud.md составляет не более 300 строк для предотвращения снижения производительности агента.

  • Принцип простоты в claud.md ограничивает написание избыточного кода, требуя переписывания решения, если оно превышает необходимый объем строк.

  • Инструкции в файле должны быть упорядочены по приоритету: от жестких правил, не допускающих исключений, до рекомендаций с низким приоритетом.

  • Для крупных монорепозиториев эффективнее использовать локальные файлы правил с областью действия пути, чем полагаться только на глобальный claud.md.

  • Инструкции по запуску проекта и специфическим CLI-инструментам должны быть явными, если они отличаются от стандартных данных обучения ИИ.

Timeline

Базовая структура и мышление ИИ

  • Файл claud.md требует структурированного шаблона, адаптированного под проект.
  • Явная инструкция думать перед написанием кода предотвращает случайные реализации.
  • ИИ должен представлять несколько вариантов решения для выбора оптимального.

Использование простого запуска команды init недостаточно для полноценной работы агента. Требуется явно прописать обязательное размышление ИИ, чтобы он задавал уточняющие вопросы вместо угадывания реализации на основе обучающих данных.

Принципы простоты и хирургических изменений

  • Инструкция по выбору простоты в первую очередь минимизирует лишние токены и упрощает рефакторинг.
  • ИИ обязан вносить изменения только в те части кода, которые напрямую относятся к задаче пользователя.
  • Обнаруженный мертвый код следует упоминать, а не исправлять самостоятельно без запроса.

Принуждение агента к простоте кода предотвращает написание многословных решений. Введение правила хирургических правок исключает нежелательную автоматическую оптимизацию форматирования или смежных функций, которые рассеивают внимание агента.

Целеполагание и инструменты

  • ИИ должен преобразовывать каждую задачу в проверяемую цель с использованием тестов.
  • Для визуальных интерфейсов необходимо подключать инструменты проверки через MCP.
  • В claud.md нужно указывать только те инструменты, которые отличаются от стандартных значений модели.

Успех реализации подтверждается прохождением тестовых случаев. Добавление специализированных CLI-команд или инструментов (например, GitHub CLI вместо стандартного git) явно направляет агента, исключая использование менее эффективных методов по умолчанию.

Итеративное улучшение и безопасность

  • Файл claud.md требует постоянного обновления на основе опыта предыдущих ошибок.
  • ИИ обязан запрашивать разрешение перед выполнением необратимых команд, таких как force push.
  • Деструктивные действия требуют явного подтверждения от пользователя.

Процесс программирования с ИИ включает накопление базы знаний о верных и неверных методах работы внутри проекта. Безопасность критических операций с Git должна быть защищена обязательным подтверждением.

Масштабирование и приоритезация

  • Использование локальных файлов правил с областью действия пути предотвращает перегрузку контекста.
  • Описание проекта в начале файла помогает агенту лучше понимать контекст зависимостей.
  • Инструкции должны следовать строгой иерархии: от жестких правил к рекомендациям.

Для монорепозиториев рекомендуется распределять правила по подпапкам. Соблюдение ограничения в 300 строк и четкая приоритезация инструкций гарантируют высокую производительность агента и фокусировку на текущих задачах.

Community Posts

View all posts