Как стать автором
Обновить

Лучшие практики для работы с агентным программированием от Anthropic

Время на прочтение18 мин
Количество просмотров8.5K
Автор оригинала: Boris Cherny

Всем привет!
Меня зовут Александр, я COO в SaaS-платформе аналитики данных. Последний год активно изучаю внедрение AI-решений в кросс-функциональные процессы. Делюсь полезными материалами, которые считаю стоят внимания. В основном про AI, изменение процессов, тренды и продуктовое видение.

У себя в телеграм-канале делюсь сжатыми и структурированными саммери статей.

Сегодняшний перевод статьи от Anthropic, создателя всеми известной нейросети Claude, но также создателя инуструмента для разработки Claude CodeClaude Code: Best practices for agentic coding


Claude Code — это инструмент командной строки для агентного программирования. В этой статье рассматриваются советы и приемы, которые доказали свою эффективность при использовании Claude Code в различных кодовых базах, языках и средах.

Мы недавно выпустили Claude Code, инструмент командной строки для агентного программирования. Разработанный как исследовательский проект, Claude Code предоставляет инженерам и исследователям Anthropic более естественный способ интеграции Claude в их рабочие процессы программирования.

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

В этой статье описаны общие шаблоны, которые доказали свою эффективность как для внутренних команд Anthropic, так и для внешних инженеров, использующих Claude Code в различных кодовых базах, языках и окружениях. Ничто в этом списке не высечено в камне и не является универсально применимым; рассматривайте эти предложения как отправные точки. Мы призываем вас экспериментировать и находить то, что работает лучше всего для вас!

Ищете более подробную информацию? Наша подробная документация на claude.ai/code охватывает все функции, упомянутые в этой статье, и предоставляет дополнительные примеры, детали реализации и расширенные техники.

1. Настройка вашего окружения

Claude Code — это агентный помощник по программированию, который автоматически добавляет контекст в запросы. Это сбор контекста потребляет время и токены, но вы можете оптимизировать его путем настройки окружения.

a. Создание файлов CLAUDE.md

CLAUDE.md — это специальный файл, который Claude автоматически включает в контекст при начале разговора. Это делает его идеальным местом для документирования:

  • Общих команд bash

  • Основных файлов и служебных функций

  • Руководств по стилю кода

  • Инструкций по тестированию

  • Этикета репозитория (например, именование веток, merge и rebase и т.д.)

  • Настройки среды разработчика (например, использование pyenv, какие компиляторы работают)

  • Любых неожиданных поведений или предупреждений, характерных для проекта

  • Другой информации, которую вы хотите, чтобы Claude запомнил

Не существует обязательного формата для файлов CLAUDE.md. Мы рекомендуем делать их краткими и читабельными для человека. Например:

# Bash commands
- npm run build: Build the project
- npm run typecheck: Run the typechecker

# Code style
- Use ES modules (import/export) syntax, not CommonJS (require)
- Destructure imports when possible (eg. import { foo } from 'bar')

# Workflow
- Be sure to typecheck when you're done making a series of code changes
- Prefer running single tests, and not the whole test suite, for performance

Вы можете размещать файлы CLAUDE.md в нескольких местах:

  • В корне вашего репозитория, или где вы запускаете claude (наиболее распространенное использование). Назовите его CLAUDE.md и добавьте в git, чтобы вы могли использовать его в разных сессиях и с вашей командой (рекомендуется), или назовите его CLAUDE.local.md и добавьте в .gitignore

  • В любом родительском каталоге относительно места запуска claude. Это наиболее полезно для монорепозиториев, где вы можете запускать claude из root/foo и иметь файлы CLAUDE.md как в root/CLAUDE.md, так и в root/foo/CLAUDE.md. Оба будут автоматически включены в контекст

  • В любом дочернем каталоге относительно места запуска claude. Это обратное вышеуказанному, и в этом случае Claude будет подгружать файлы CLAUDE.md по требованию при работе с файлами в дочерних каталогах

  • В вашей домашней папке (~/.claude/CLAUDE.md), что применяет его ко всем вашим сессиям claude

Когда вы запускаете команду /init, Claude автоматически создает CLAUDE.md для вас.

b. Настройка ваших файлов CLAUDE.md

Ваши файлы CLAUDE.md становятся частью запросов Claude, поэтому их следует совершенствовать, как и любой часто используемый запрос. Распространенная ошибка — добавление обширного содержания без итеративной проверки его эффективности. Уделите время экспериментам и определите, что обеспечивает наилучшее следование инструкциям со стороны модели.

Вы можете добавлять содержимое в ваш CLAUDE.md вручную или нажать клавишу # для передачи Claude инструкции, которую он автоматически включит в соответствующий CLAUDE.md. Многие инженеры часто используют # для документирования команд, файлов и руководств по стилю во время программирования, а затем включают изменения CLAUDE.md в коммиты, чтобы ими могли воспользоваться и другие члены команды.

В Anthropic мы иногда пропускаем файлы CLAUDE.md через улучшитель запросов и часто настраиваем инструкции (например, добавляем акцент с помощью "ВАЖНО" или "ВЫ ДОЛЖНЫ"), чтобы улучшить соблюдение требований.

c. Управление списком разрешенных инструментов Claude

По умолчанию Claude Code запрашивает разрешение на любое действие, которое может изменить вашу систему: запись файлов, многие команды bash, инструменты MCP и т.д. Мы спроектировали Claude Code с этим преднамеренно консервативным подходом, чтобы обеспечить безопасность. Вы можете настроить белый список, чтобы разрешить дополнительные инструменты, которые вы считаете безопасными, или разрешить потенциально небезопасные инструменты, действия которых легко отменить (например, редактирование файлов, git commit).

Есть четыре способа управления разрешенными инструментами:

  • Выбрать "Always allow" (Всегда разрешать) при запросе во время сессии.

  • Использовать команду /allowed-tools после запуска Claude Code для добавления или удаления инструментов из белого списка. Например, вы можете добавить Edit для постоянного разрешения редактирования файлов, Bash(git commit:*) для разрешения git-коммитов или mcp__puppeteer__puppeteer_navigate для разрешения навигации с помощью сервера Puppeteer MCP.

  • Вручную отредактировать ваш .claude/settings.json или ~/.claude.json (мы рекомендуем добавлять первый в систему контроля версий, чтобы делиться им с вашей командой).

  • Использовать флаг CLI --allowedTools для разрешений, специфичных для сессии.

d. Если вы используете GitHub, установите gh CLI

Claude умеет использовать gh CLI для взаимодействия с GitHub для создания задач, открытия запросов на слияние, чтения комментариев и многого другого. Без установленного gh, Claude все еще может использовать GitHub API или сервер MCP, если они у вас установлены.

2. Предоставьте Claude больше инструментов

Claude имеет доступ к вашей оболочке, где вы можете создавать наборы удобных скриптов и функций для него так же, как вы бы делали для себя. Он также может использовать более сложные инструменты через MCP и REST API.

a. Используйте Claude с инструментами bash

Claude Code наследует вашу среду bash, предоставляя ему доступ ко всем вашим инструментам. Хотя Claude знает общие утилиты, такие как инструменты unix и gh, он не будет знать о ваших пользовательских инструментах bash без инструкций:

  1. Расскажите Claude о названии инструмента с примерами использования

  2. Предложите Claude запустить --help, чтобы увидеть документацию инструмента

  3. Документируйте часто используемые инструменты в CLAUDE.md

b. Используйте Claude с MCP

Claude Code функционирует как сервер и клиент MCP. В качестве клиента он может подключаться к любому количеству серверов MCP для доступа к их инструментам тремя способами:

  • В конфигурации проекта (доступно при запуске Claude Code в этом каталоге)

  • В глобальной конфигурации (доступно во всех проектах)

  • В добавленном в репозиторий файле .mcp.json (доступно любому, кто работает с вашей кодовой базой). Например, вы можете добавить серверы Puppeteer и Sentry в ваш .mcp.json, чтобы каждый инженер, работающий с вашим репозиторием, мог использовать их сразу.

При работе с MCP также может быть полезно запустить Claude с флагом --mcp-debug для выявления проблем конфигурации.

c. Используйте пользовательские slash-команды

Для повторяющихся рабочих процессов — циклов отладки, анализа логов и т.д. — сохраняйте шаблоны запросов в Markdown-файлах внутри папки .claude/commands. Они становятся доступными через меню slash-команд при вводе /. Вы можете добавить эти команды в git, чтобы сделать их доступными для остальной части вашей команды.

Пользовательские slash-команды могут включать специальное ключевое слово $ARGUMENTS для передачи параметров из вызова команды.

Например, вот slash-команда, которую вы можете использовать для автоматического получения и исправления проблемы Github:

Please analyze and fix the GitHub issue: $ARGUMENTS.

Follow these steps:

1. Use `gh issue view` to get the issue details
2. Understand the problem described in the issue
3. Search the codebase for relevant files
4. Implement the necessary changes to fix the issue
5. Write and run tests to verify the fix
6. Ensure code passes linting and type checking
7. Create a descriptive commit message
8. Push and create a PR

Remember to use the GitHub CLI (`gh`) for all GitHub-related tasks.

Размещение приведенного выше содержимого в .claude/commands/fix-github-issue.md делает его доступным как команду /project:fix-github-issue в Claude Code. Затем вы можете, например, использовать /project:fix-github-issue 1234, чтобы Claude исправил задачу #1234. Аналогично вы можете добавить свои личные команды в папку ~/.claude/commands для команд, которые вы хотите иметь доступными во всех ваших сессиях.

3. Попробуйте распространенные рабочие процессы

Claude Code не навязывает определенный рабочий процесс, предоставляя вам гибкость использовать его так, как вы хотите. В рамках этой гибкости в нашем сообществе пользователей появилось несколько успешных шаблонов для эффективного использования Claude Code:

a. Исследовать, планировать, кодировать, фиксировать

Этот универсальный рабочий процесс подходит для многих задач:

  1. Попросите Claude прочитать соответствующие файлы, изображения или URL-адреса, предоставляя либо общие указания ("прочитай файл, который обрабатывает логирование"), либо конкретные имена файлов ("прочитай logging.py"), но явно скажите ему пока не писать никакой код.

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

  3. Попросите Claude составить план для подхода к конкретной проблеме. Мы рекомендуем использовать слово "think" (думать), чтобы активировать режим расширенного мышления, который дает Claude дополнительное время вычислений для более тщательной оценки альтернатив. Эти конкретные фразы напрямую соотносятся с повышением уровня бюджета мышления в системе: "think" < "think hard" < "think harder" < "ultrathink." Каждый уровень выделяет прогрессивно больший бюджет мышления для использования Claude.

  4. Если результаты этого шага кажутся разумными, вы можете попросить Claude создать документ или задачу на GitHub с его планом, чтобы вы могли вернуться к этой точке, если реализация (шаг 3) не соответствует тому, что вы хотите.

  5. Попросите Claude реализовать его решение в коде. Это также хорошее место, чтобы попросить его явно проверить обоснованность своего решения при реализации частей решения.

  6. Попросите Claude зафиксировать результат и создать запрос на слияние. Если это актуально, это также хорошее время для Claude обновить любые README или журналы изменений с объяснением того, что он только что сделал.

Шаги #1-#2 имеют решающее значение — без них Claude склонен сразу переходить к кодированию решения. Хотя иногда это именно то, что вам нужно, просьба к Claude сначала провести исследование и планирование значительно улучшает производительность для задач, требующих более глубокого предварительного мышления.

b. Написать тесты, зафиксировать; кодировать, итерировать, зафиксировать

Это любимый рабочий процесс Anthropic для изменений, которые легко проверить с помощью модульных, интеграционных или сквозных тестов. Разработка через тестирование (TDD) становится еще мощнее с агентным кодированием:

  1. Попросите Claude написать тесты на основе ожидаемых пар ввод/вывод. Явно укажите на то, что вы делаете разработку через тестирование, чтобы он избегал создания макетных реализаций, даже для функциональности, которая еще не существует в кодовой базе.

  2. Скажите Claude запустить тесты и подтвердить их неудачное завершение. Часто полезно явно сказать ему не писать никакой код реализации на этом этапе.

  3. Попросите Claude зафиксировать тесты, когда вы удовлетворены ими.

  4. Попросите Claude написать код, который проходит тесты, указав ему не модифицировать сами тесты. Скажите Claude продолжать, пока все тесты не будут пройдены. Обычно требуется несколько итераций, чтобы Claude написал код, запустил тесты, скорректировал код и снова запустил тесты.

  5. На этом этапе может быть полезно попросить его проверить с помощью независимых субагентов, что реализация не переобучается под тесты

  6. Попросите Claude зафиксировать код, когда вы удовлетворены изменениями.

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

c. Написать код, сделать скриншот результата, итерировать

Аналогично рабочему процессу тестирования, вы можете предоставить Claude визуальные цели:

  1. Предоставьте Claude способ делать снимки экрана браузера (например, с сервером Puppeteer MCP, сервером эмулятора iOS MCP или вручную скопируйте/вставьте снимки экрана в Claude).

  2. Дайте Claude визуальный макет, скопировав/вставив или перетащив изображение, или указав Claude путь к файлу изображения.

  3. Попросите Claude реализовать дизайн в коде, сделать снимки экрана результата и продолжать итерации, пока его результат не будет соответствовать макету.

  4. Попросите Claude зафиксировать код, когда вы удовлетворены.

Как и у людей, результаты Claude имеют тенденцию значительно улучшаться с каждой итерацией. Хотя первая версия может быть хорошей, после 2-3 итераций она обычно выглядит намного лучше. Предоставьте Claude инструменты для просмотра своих результатов для достижения наилучших результатов.

d. Безопасный режим YOLO

Вместо того чтобы контролировать Claude, вы можете использовать claude --dangerously-skip-permissions для обхода всех проверок разрешений и позволить Claude работать без перерыва до завершения. Это хорошо работает для таких процессов, как исправление ошибок линтера или генерация шаблонного кода.

Позволять Claude выполнять произвольные команды рискованно и может привести к потере данных, повреждению системы или даже утечке данных (например, через атаки с инъекцией запроса). Чтобы минимизировать эти риски, используйте --dangerously-skip-permissions в контейнере без доступа к интернету. Вы можете следовать этой эталонной реализации с использованием Docker Dev Containers.

e. Q&A по кодовой базе

При ознакомлении с новой кодовой базой используйте Claude Code для обучения и исследования. Вы можете задавать Claude те же вопросы, которые вы бы задали другому инженеру проекта при парном программировании. Claude может агентно искать в кодовой базе, чтобы отвечать на общие вопросы, например:

  • Как работает логирование?

  • Как создать новую конечную точку API?

  • Что делает async move { ... } в строке 134 файла foo.rs?

  • Какие граничные случаи обрабатывает CustomerOnboardingFlowImpl?

  • Почему мы вызываем foo() вместо bar() в строке 333?

  • Какой эквивалент строки 334 baz.py на Java?

В Anthropic использование Claude Code таким образом стало нашим основным процессом онбординга, значительно улучшая время освоения и снижая нагрузку на других инженеров. Никаких специальных подсказок не требуется! Просто задавайте вопросы, и Claude будет исследовать код для поиска ответов.

Используйте Claude для взаимодействия с git
Используйте Claude для взаимодействия с git

f. Используйте Claude для взаимодействия с git

Claude может эффективно обрабатывать многие операции git. Многие инженеры Anthropic используют Claude для более 90% наших взаимодействий с git:

  • Поиск в истории git, чтобы ответить на вопросы вроде "Какие изменения вошли в версию v1.2.3?", "Кто отвечает за эту конкретную функцию?" или "Почему этот API был спроектирован таким образом?" Полезно явно попросить Claude просмотреть историю git для ответа на подобные запросы.

  • Написание сообщений коммитов. Claude автоматически просматривает ваши изменения и недавнюю историю, чтобы составить сообщение, учитывая весь соответствующий контекст

  • Обработка сложных операций git, таких как откат файлов, разрешение конфликтов перебазирования и сравнение и перенос патчей

g. Используйте Claude для взаимодействия с GitHub

Claude Code может управлять многими взаимодействиями с GitHub:

  • Создание запросов на слияние (pull request): Claude понимает сокращение "pr" и генерирует соответствующие сообщения коммитов на основе различий и окружающего контекста.

  • Реализация одноразовых исправлений для простых комментариев при проверке кода: просто скажите ему исправить комментарии в вашем PR (по желанию, дайте более конкретные инструкции) и отправить изменения обратно в ветку PR, когда он закончит.

  • Исправление неудачных сборок или предупреждений линтера

  • Категоризация и сортировка открытых задач путем запроса к Claude для перебора открытых задач GitHub

Это устраняет необходимость запоминать синтаксис командной строки gh при автоматизации рутинных задач.

h. Используйте Claude для работы с Jupyter notebooks

Исследователи и специалисты по данным в Anthropic используют Claude Code для чтения и записи Jupyter notebooks. Claude может интерпретировать выходные данные, включая изображения, обеспечивая быстрый способ исследования и взаимодействия с данными. Нет обязательных запросов или рабочих процессов, но рабочий процесс, который мы рекомендуем, — это иметь Claude Code и файл .ipynb открытыми бок о бок в VS Code.

Вы также можете попросить Claude навести порядок или сделать эстетические улучшения в вашем Jupyter notebook перед тем, как показать его коллегам. Конкретное указание сделать notebook или его визуализации данных "эстетически приятными" как правило помогает напомнить ему, что он оптимизирует для восприятия человеком.

4. Оптимизация рабочего процесса

Приведенные ниже предложения применимы ко всем рабочим процессам:

a. Будьте конкретны в своих инструкциях

Успешность Claude Code значительно повышается с более конкретными инструкциями, особенно при первых попытках. Предоставление четких указаний заранее снижает необходимость в корректировках курса позже.

Например:

Плохо

Хорошо

добавь тесты для foo.py

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

почему у ExecutionFactory такой странный api?

просмотри историю git для ExecutionFactory и обобщи, как возник его api

добавь виджет календаря

посмотри, как существующие виджеты реализованы на главной странице, чтобы понять паттерны, и особенно как разделены код и интерфейсы. HotDogWidget.php — хороший пример для начала. затем следуй паттерну для реализации нового виджета календаря, который позволяет пользователю выбрать месяц и перелистывать вперед/назад для выбора года. Создай с нуля без библиотек, кроме тех, которые уже используются в остальной части кодовой базы.

Claude может сделать вывод о намерениях, но не умеет читать мысли. Конкретика приводит к лучшему соответствию ожиданиям.

Передайте Claude изображения
Передайте Claude изображения

b. Давайте Claude изображения

Claude отлично работает с изображениями и диаграммами через несколько методов:

  • Вставка снимков экрана (профессиональный совет: используйте cmd+ctrl+shift+4 в macOS для создания снимка экрана в буфер обмена и ctrl+v для вставки. Обратите внимание, что это не cmd+v, как вы обычно используете для вставки на Mac, и не работает удаленно.)

  • Перетаскивание изображений непосредственно в поле ввода запроса

  • Указание путей к файлам для изображений

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

Упоминайте файлы, которые вы хотите, чтобы Claude просмотрел или над которыми работал
Упоминайте файлы, которые вы хотите, чтобы Claude просмотрел или над которыми работал

c. Упоминайте файлы, с которыми вы хотите, чтобы Claude работал или просматривал

Используйте автодополнение по Tab для быстрого указания файлов или папок в любом месте вашего репозитория, помогая Claude находить или обновлять нужные ресурсы.

Передавайте Claude URL-адреса
Передавайте Claude URL-адреса

d. Давайте Claude URL-адреса

Вставляйте конкретные URL-адреса вместе с вашими запросами, чтобы Claude мог получить и прочитать их. Чтобы избежать запросов разрешений для одних и тех же доменов (например, docs.foo.com), используйте /allowed-tools для добавления доменов в ваш белый список.

e. Корректируйте курс рано и часто

Хотя режим автоматического принятия (shift+tab для переключения) позволяет Claude работать автономно, вы обычно получите лучшие результаты, будучи активным сотрудником и направляя подход Claude. Вы можете получить наилучшие результаты, тщательно объяснив задачу Claude в начале, но вы также можете корректировать курс Claude в любое время.

Эти четыре инструмента помогают с корректировкой курса:

  • Попросите Claude составить план перед кодированием. Явно скажите ему не кодировать, пока вы не подтвердите, что его план выглядит хорошо.

  • Нажмите Escape для прерывания Claude во время любой фазы (размышление, вызовы инструментов, редактирование файлов), сохраняя контекст, чтобы вы могли перенаправить или расширить инструкции.

  • Дважды нажмите Escape для возврата в истории, отредактируйте предыдущий запрос и исследуйте другое направление. Вы можете редактировать запрос и повторять, пока не получите нужный результат.

  • Попросите Claude отменить изменения, часто в сочетании с опцией №2, чтобы использовать другой подход.

Хотя Claude Code иногда решает проблемы идеально с первой попытки, использование этих инструментов коррекции обычно приводит к созданию лучших решений быстрее.

f. Используйте /clear для поддержания фокуса контекста

Во время длительных сессий окно контекста Claude может заполниться нерелевантными разговорами, содержимым файлов и командами. Это может снизить производительность и иногда отвлекать Claude. Используйте команду /clear часто между задачами для сброса окна контекста.

g. Используйте списки и рабочие заметки для сложных процессов

Для больших задач с несколькими шагами или требующих исчерпывающих решений — таких как миграции кода, исправление многочисленных ошибок линтера или запуск сложных скриптов сборки — улучшите производительность, попросив Claude использовать Markdown-файл (или даже задачу GitHub!) в качестве списка и рабочего блокнота:

Например, чтобы исправить большое количество проблем линтера, вы можете сделать следующее:

  1. Скажите Claude запустить команду линтера и записать все полученные ошибки (с именами файлов и номерами строк) в список Markdown

  2. Поручите Claude решать каждую проблему по одной, исправляя и проверяя перед тем, как отметить её выполненной и перейти к следующей

h. Передача данных в Claude

Существует несколько методов предоставления данных Claude:

  • Копирование и вставка непосредственно в ваш запрос (наиболее распространенный подход)

  • Перенаправление в Claude Code (например, cat foo.txt | claude), особенно полезно для логов, CSV и больших данных

  • Указание Claude извлечь данные через bash-команды, инструменты MCP или пользовательские slash-команды

  • Просьба к Claude прочитать файлы или получить URL (работает также для изображений)

Большинство сессий включают комбинацию этих подходов. Например, вы можете перенаправить файл журнала, а затем сказать Claude использовать инструмент для получения дополнительного контекста для отладки журналов.

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

Claude Code включает безголовый режим для неинтерактивных контекстов, таких как CI, хуки перед коммитом, скрипты сборки и автоматизация. Используйте флаг -p с запросом для включения безголового режима и --output-format stream-json для потоковой передачи вывода JSON.

Обратите внимание, что безголовый режим не сохраняется между сессиями. Вы должны включать его в каждой сессии.

a. Используйте Claude для сортировки задач

Безголовый режим может управлять автоматизацией, запускаемой событиями GitHub, например, когда в вашем репозитории создается новая задача. Например, публичный репозиторий Claude Code использует Claude для проверки новых задач по мере их поступления и назначения соответствующих меток.

b. Используйте Claude в качестве линтера

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

6. Повышение уровня с рабочими процессами с несколькими экземплярами Claude

Помимо автономного использования, некоторые из наиболее мощных приложений включают запуск нескольких экземпляров Claude параллельно:

a. Пусть один Claude пишет код; используйте другой Claude для проверки

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

  1. Используйте Claude для написания кода

  2. Выполните /clear или запустите второй Claude в другом терминале

  3. Попросите второго Claude проверить работу первого Claude

  4. Запустите еще один Claude (или снова /clear) для чтения кода и обратной связи по обзору

  5. Попросите этого Claude отредактировать код на основе обратной связи

Вы можете сделать что-то подобное с тестами: попросите одного Claude написать тесты, а затем попросите другого Claude написать код, чтобы тесты прошли успешно. Вы даже можете заставить ваши экземпляры Claude общаться друг с другом, предоставив им отдельные рабочие черновики и указав, в какой из них писать и из какого читать.

Такое разделение часто дает лучшие результаты, чем использование одного Claude для всего.

b. Имейте несколько локальных копий вашего репозитория

Вместо того чтобы ждать, пока Claude завершит каждый шаг, многие инженеры в Anthropic делают следующее:

  1. Создают 3-4 копии git в отдельных папках

  2. Открывают каждую папку в отдельных вкладках терминала

  3. Запускают Claude в каждой папке с различными задачами

  4. Переключаются между ними для проверки прогресса и подтверждения/отклонения запросов разрешений

c. Используйте git worktrees

Этот подход отлично подходит для нескольких независимых задач, предлагая более легковесную альтернативу нескольким локальным копиям. Git worktrees позволяют вам извлекать несколько веток из одного репозитория в отдельные каталоги. У каждого worktree есть собственный рабочий каталог с изолированными файлами, при этом они используют одну и ту же историю Git и reflog.

Использование git worktrees позволяет запускать несколько сессий Claude одновременно на разных частях вашего проекта, каждая из которых сфокусирована на своей независимой задаче. Например, у вас может быть один Claude, который рефакторит вашу систему аутентификации, в то время как другой создает совершенно не связанный компонент визуализации данных. Поскольку задачи не пересекаются, каждый Claude может работать на полной скорости без ожидания изменений другого или решения конфликтов слияния:

  1. Создайте worktrees: git worktree add ../project-feature-a feature-a

  2. Запустите Claude в каждом worktree: cd ../project-feature-a && claude

  3. Создайте дополнительные worktrees по мере необходимости (повторите шаги 1-2 в новых вкладках терминала)

Некоторые советы:

  • Используйте согласованные соглашения об именовании

  • Поддерживайте одну вкладку терминала на worktree

  • Если вы используете iTerm2 на Mac, настройте уведомления для случаев, когда Claude требуется внимание

  • Используйте отдельные окна IDE для разных worktrees

  • Очистите, когда закончите: git worktree remove ../project-feature-a

d. Используйте безголовый режим с пользовательской оболочкой

claude -p (безголовый режим) программно интегрирует Claude Code в более крупные рабочие процессы, используя его встроенные инструменты и системный запрос. Существует два основных паттерна использования безголового режима:

1. Распараллеливание обрабатывает крупные миграции или анализы (например, анализ настроения в сотнях журналов или анализ тысяч CSV-файлов):

  1. Попросите Claude написать скрипт для создания списка задач. Например, создайте список из 2 тысяч файлов, которые нужно перенести с фреймворка A на фреймворк B.

  2. Пройдите циклом по задачам, программно вызывая Claude для каждой и давая ему задачу и набор инструментов, которые он может использовать. Например: claude -p "migrate foo.py from React to Vue. When you are done, you MUST return the string OK if you succeeded, or FAIL if the task failed." --allowedTools Edit Bash(git commit:*)"

  3. Запустите скрипт несколько раз и уточните ваш запрос для получения желаемого результата.

2. Конвейерная обработка интегрирует Claude в существующие конвейеры обработки данных:

  1. Вызовите claude -p "" --json | your_command, где your_command — это следующий шаг вашего конвейера обработки

  2. Вот и все! JSON-вывод (опционально) может помочь предоставить структуру для более легкой автоматизированной обработки.

Для обоих этих случаев использования может быть полезно использовать флаг --verbose для отладки вызова Claude. Мы обычно рекомендуем отключать подробный режим в производственной среде для более чистого вывода.

Теги:
Хабы:
+4
Комментарии8

Публикации

Работа

Ближайшие события