Claude Code in action
Что вы узнаете
- Приложения Anthropic - Claude Code и использование компьютера
- Настройка Claude Code
- Улучшения с серверами MCP
- Параллелизация Claude Code
- Автоматическая отладка
- Как работает использование компьютера
- Агенты и рабочие процессы
- Рабочие процессы параллелизации
- Цепочечные рабочие процессы
- Маршрутизация рабочих процессов
- Агенты и инструменты
- Инспекция среды
- Рабочие процессы против агентов
- Тест по агентам и рабочим процессам
- Итоговая оценка
- Тест итоговой оценки
Агенты и рабочие процессы
При создании приложений с Claude вы часто будете сталкиваться с задачами, которые невозможно выполнить за один запрос. Именно здесь на помощь приходят рабочие процессы и агенты — это стратегии для обработки сложных, многошаговых процессов.
На самом деле, вы использовали эти концепции на протяжении всего курса. Помните, когда мы использовали инструменты и позволяли Claude самостоятельно решать, как выполнять задачи? Это был агент в действии.
Выбор между рабочими процессами и агентами
Решение сводится к тому, насколько хорошо вы понимаете задачу:
- когда вы можете представить точный поток или шаги, которые Claude должен выполнить для решения проблемы, или когда UX вашего приложения ограничивает пользователей определенным набором задач
- когда вы не уверены, какую именно задачу или параметры задачи вы дадите Claude
Рабочие процессы — это последовательности вызовов к Claude, предназначенные для решения конкретной проблемы через заранее определенную серию шагов. Агенты дают Claude цель и набор инструментов, ожидая, что Claude сам выяснит, как достичь цели с помощью предоставленных инструментов.
Пример реального рабочего процесса
Давайте рассмотрим практический пример: создание приложения "Изображение в CAD". Пользователи перетаскивают изображение металлической детали, и приложение создает файл STEP (отраслевой стандарт для 3D-моделей).
Вот как мы можем разбить это на шаги рабочего процесса:
- Передать изображение Claude, попросив его подробно описать объект
- На основе описания попросить Claude использовать библиотеку CadQuery для моделирования объекта
- Создать рендеринг 3D-модели
- Попросить Claude оценить рендеринг по сравнению с исходным изображением. Если есть проблемы, исправить их и повторить.
Это идеальный сценарий рабочего процесса, потому что у нас есть довольно хорошее представление о том, что именно делать, когда пользователь предоставляет файл изображения, и мы можем легко записать все это в коде как заранее определенную последовательность шагов.
Паттерн "Оценщик-Оптимизатор"
Пример с CAD демонстрирует распространенный паттерн рабочего процесса, называемый "оценщик-оптимизатор":
- Производитель: Принимает входные данные и создает выходные (Claude использует CadQuery для моделирования и рендеринга)
- Оценщик: Оценивает выходные данные по критериям
- Обратная связь: Если оценщик отклоняет выходные данные, обратная связь возвращается производителю для улучшения
- Цикл: Цикл продолжается до тех пор, пока оценщик не примет выходные данные
Зачем изучать паттерны рабочих процессов?
Выявление различных рабочих процессов дает вам набор повторяемых рецептов для реализации собственных функций. Паттерн "оценщик-оптимизатор" хорошо зарекомендовал себя у других инженеров — рассмотрите возможность его использования в своих приложениях!
Помните, рабочие процессы не реализуются сами по себе. Вам все равно нужно писать фактический код. Но наличие этих проверенных паттернов в качестве отправных точек может значительно сэкономить ваше время и помочь избежать распространенных ошибок, которые другие уже решили.
Рабочие процессы параллелизации
При создании приложений ИИ вы часто будете сталкиваться с задачами, которые кажутся простыми, но становятся сложными, если пытаться обработать все в одном запросе. Давайте рассмотрим паттерн рабочего процесса, который поможет вам разбить сложные задачи и получить лучшие результаты от Claude.
Проблема со сложными одиночными запросами
Представьте, что вы создаете приложение для проектирования материалов, где пользователи загружают изображения деталей и получают рекомендации по лучшему материалу для использования. Вашим первым инстинктом может быть отправка изображения Claude с простым промптом, прося его выбрать между металлом, полимером, керамикой, композитом, эластомером или деревом.
Этот базовый подход может сработать, но вы просите Claude провести много анализа, не давая ему надлежащих указаний. Естественным улучшением было бы расширить промпт подробными критериями для каждого типа материала.
Однако это создает новую проблему: вы получаете огромный промпт, который может запутать Claude, потому что ему приходится одновременно жонглировать несколькими сложными анализами. Модель может отвлечься, пытаясь одновременно рассмотреть все различные плюсы и минусы каждого материала.
Лучший подход: параллелизация
Вместо того чтобы втискивать все в один запрос, вы можете разбить задачу на несколько специализированных запросов, которые выполняются параллельно. Вот как это работает:
Отправьте одно и то же изображение Claude несколько раз, но с разными специализированными промптами. Каждый запрос фокусируется на оценке детали только для одного типа материала:
- Один запрос анализирует пригодность для металла
- Другой оценивает варианты полимеров
- Третий рассматривает керамические материалы
- И так далее для каждого типа материала
Каждый промпт может быть высокоспециализированным для своего конкретного материала, включая соответствующие критерии, такие как требования к прочности, термостойкость или производственные ограничения.
Агрегирование результатов
Как только вы получите все индивидуальные результаты анализа, вы делаете финальный запрос к Claude, который действует как агрегатор. Этот запрос берет все специализированные анализы и просит Claude сравнить их и дать окончательную рекомендацию.
Теперь Claude не нужно беспокоиться о сравнении материалов с нуля. Вместо этого он может сосредоточиться на оценке результатов анализа и выявлении наиболее перспективного варианта на основе уже собранных вами подробных оценок.
Паттерн параллелизации
Этот подход следует общему паттерну, называемому рабочим процессом параллелизации:
- Разбивайте одну сложную задачу на несколько специализированных подзадач
- Выполняйте подзадачи параллельно (одновременно)
- Агрегируйте результаты вместе на заключительном этапе
Ключевая идея заключается в том, что параллелизованные подзадачи не обязательно должны быть идентичными. Каждая может иметь специализированный промпт, различные инструменты или уникальные подходы, адаптированные к ее конкретной цели.
Преимущества параллелизации
Этот паттерн рабочего процесса предлагает несколько преимуществ:
- Сфокусированное внимание: Claude может сосредоточиться на одном конкретном анализе за раз, вместо того чтобы жонглировать несколькими сложными соображениями
- Более простая оптимизация: Вы можете улучшать и тестировать промпт для каждой подзадачи независимо
- Лучшая масштабируемость: Добавление новых типов материалов или критериев не усложняет существующие подзадачи
- Более быстрое выполнение: Поскольку подзадачи выполняются параллельно, общее время часто меньше, чем при последовательном подходе
Когда использовать этот паттерн
Параллелизация хорошо работает, когда у вас есть сложная задача, которую можно разбить на независимые подзадачи. Ищите ситуации, когда вы просите Claude рассмотреть несколько вариантов, выполнить несколько типов анализа или одновременно обработать различные аспекты одной и той же проблемы.
Паттерн особенно полезен, когда каждая подзадача выигрывает от специализированного промптинга или когда вы хотите обеспечить полное покрытие различных возможностей, не перегружая модель слишком большой сложностью сразу.