Справочник - CCA-F Claude Certified Architect - Foundations
Последняя проверка: май 2026 г.
Сжатый справочник архитектурных шаблонов, проверяемых на экзамене CCA-F. Читайте сверху вниз или переходите к нужному разделу.
Агентная архитектура и оркестрация
Выбор между одним агентом и роем из нескольких агентов для сложного рабочего процесса.
Начните с одного агента + инструментов. Разделяйте на несколько агентов только тогда, когда границы задач ясны, контекстные окна переполняются или для подзадач требуются разные уровни моделей.
Почему: Многоагентная система добавляет задержки, увеличивает поверхность ошибок и стоимость оркестрации. Большинство рабочих нагрузок в продакшене успешно выполняются одним хорошо оснащенным агентом.
Агент должен обдумывать наблюдения, прежде чем снова действовать.
Реализуйте цикл ReAct (Рассуждай + Действуй): модель генерирует мысль, выбирает инструмент, получает результат и повторяет до тех пор, пока не будет выполнено условие остановки.
Почему: ReAct делает промежуточные рассуждения видимыми, улучшая отладку и позволяя проверять цепочку мыслей.
Агенту необходимо взаимодействовать с внешними системами (API, базы данных, файловые системы).
Определите инструменты через API tool_use. Модель выдает блок tool_use; ваш код выполняет его и возвращает tool_result. Затем модель продолжает работу.
Оркестратор должен распределять разнородные подзадачи (проверка кода, веб-поиск, анализ данных).
Используйте агент-супервизор, который декомпозирует цель, делегирует задачи специализированным подагентам и агрегирует результаты. Каждый подагент имеет свой собственный системный промпт и набор инструментов.
Несколько подагентов должны координироваться без прямого взаимодействия друг с другом.
Направляйте все меж-агентные сообщения через супервизора. Супервизор решает, какой подагент запускается следующим, передает контекст и обеспечивает соблюдение ограничений порядка.
Почему: Прямой обмен сообщениями между узлами создает циклы и затрудняет отслеживание состояния. Центральный супервизор явно поддерживает DAG выполнения.
Агент должен запоминать контекст на протяжении многораундовой сессии.
Передавайте полную историю разговора (системные + предыдущие реплики пользователя/ассистента) в массиве messages. Для длительных сессий суммируйте старые реплики, чтобы оставаться в пределах контекстного окна.
Агенту требуется сохранение состояния между сессиями или между пользователями.
Храните факты во внешнем слое памяти (векторная БД, хранилище ключ-значение, файл). Извлекайте соответствующие воспоминания через RAG и вставляйте их в системный промпт на каждом шаге.
Команда по умолчанию использует агентную архитектуру для каждой функции LLM.
Не используйте агентов, если достаточно одного промпта + структурированного вывода. Агенты добавляют задержки, стоимость и режимы отказа. Резервируйте агентные циклы для задач, требующих итерации или использования инструментов.
Сложная задача рассуждения требует большей внутренней проработки перед ответом.
Включите расширенное мышление с параметром budget_tokens. Модель использует блок мышления перед ответом, улучшая точность при решении многошаговых задач.
Почему: Расширенное мышление обменивает задержку на качество. Установите budget_tokens пропорционально сложности задачи; ограничьте его для контроля стоимости.
Вызов инструмента возвращает ошибку; агент должен корректно восстановиться.
Верните ошибку как tool_result с is_error: true. Модель увидит сбой и сможет повторить попытку с исправленными параметрами, попробовать альтернативный инструмент или объяснить сбой пользователю.
Временные сбои API (429, 529) во время агентного цикла.
Реализуйте экспоненциальную задержку с дрожанием (jitter). При 429 (ограничение скорости) соблюдайте заголовок retry-after. При 529 (перегрузка) отступайте дольше. Никогда не повторяйте ошибки класса 400 вслепую.
Измерение того, улучшается ли агентная система со временем.
Создайте набор для оценки: определите пары вход-выход, запустите агента, оцените выводы (точное совпадение, LLM-в-качестве-судьи, человеческий обзор). Отслеживайте процент прохождения на каждый релиз.
Почему: Без оценок настройка промптов - это догадки. Обнаружение регрессий требует автоматизированной, повторяемой оценки.
Агент производит низкокачественный вывод с первой попытки.
Добавьте шаг рефлексии: после генерации ответа предложите модели критически оценить свой собственный вывод и пересмотреть его. Используйте отдельный ход сообщения или расширенное мышление.
Агентный рабочий процесс выполняет необратимые действия (удаление ресурсов, отправка электронных писем).
Вставьте контрольную точку перед деструктивными операциями. Представьте планируемое действие пользователю, дождитесь одобрения, затем выполните. Запишите решение для аудита.
Конфигурация и рабочие процессы Claude Code
Несколько файлов CLAUDE.md в монорепозитории; неясно, какой из них имеет приоритет.
Три уровня: ~/.claude/CLAUDE.md (пользовательский), CLAUDE.md в корне проекта (проектный), CLAUDE.md в дочерней рабочей области (рабочая область). Все они объединяются; рабочая область переопределяет проект, который переопределяет пользователя.
Команда хочет использовать многоразовые промпты, вызываемые как /my-command.
Создайте файл .claude/commands/<name>.md, содержащий шаблон промпта. Вызывайте с помощью /<name>. Используйте $ARGUMENTS для пользовательского ввода. Команды с областью действия проекта находятся в репозитории.
Автоматически запускать линтер после редактирования файла Claude.
Настройте хук PostToolUse в settings.json, который соответствует инструменту Write/Edit. Скрипт хука запускается после завершения работы инструмента; ненулевой код выхода блокирует изменение.
Claude Code запрашивает разрешение на каждую команду оболочки; замедляет итерацию.
Используйте шаблоны белого списка в settings.json в разделе permissions.allow. Три режима: по умолчанию (запрос для каждой), белый список (автоматическое одобрение совпадающих шаблонов) и yolo (автоматическое одобрение всех - не рекомендуется для продакшена).
Claude Code требуется доступ к пользовательскому MCP серверу (база данных, внутренний API).
Добавьте сервер в mcpServers в settings.json с командой и аргументами. Claude Code запускает MCP сервер как дочерний процесс и обнаруживает инструменты при запуске.
Claude Code работает в ветке функций, пока вы разрабатываете в основной ветке.
Используйте git worktrees. Claude Code работает в каталоге worktree; ваша основная рабочая копия остается нетронутой. Это позволяет избежать конфликтов индекса и жонглирования стешем.
Claude Code генерирует изменения, но вы хотите чистые атомарные коммиты.
Claude Code отслеживает изменения файлов и может создавать коммиты с сообщениями. Просмотрите разницу перед коммитом. Предпочитайте индексировать конкретные файлы вместо `git add -A`, чтобы избежать утечки секретов.
Использование Claude Code из VS Code или JetBrains.
Установите расширение Claude Code. Оно встраивает CLI в качестве панели в IDE, используя те же CLAUDE.md, хуки и настройки. Сессии на основе терминала и IDE взаимозаменяемы.
Длинный промпт с несколькими секциями; модель путает инструкции с данными.
Оберните секции в XML-теги: <instructions>, <context>, <examples>. Claude обучен уважать границы XML как структурные разделители.
Определение постоянного поведения на всех этапах (тон, ограничения, персона).
Размещайте инвариантные инструкции в системном промпте. Сделайте его кратким: роль, ограничения, формат вывода. Сообщения пользователя несут контекст для каждого хода; система несет правила для всей сессии.
Принудить модель начать ответ с определенного префикса (например, открывающаяся фигурная скобка JSON).
Добавьте частичное сообщение ассистента в конец массива messages. Claude продолжит с того места, где вы остановились. Полезно для принудительного соблюдения формата вывода.
Формат вывода модели непоследователен, несмотря на подробные инструкции.
Добавьте 2-3 примера с несколькими демонстрациями в виде пар реплик пользователя/ассистента перед реальным запросом. Примеры закрепляют формат, тон и стиль рассуждений более надежно, чем текстовые инструкции.
Модель пропускает шаги рассуждения при решении многошаговых логических задач.
Промпт с "Думай шаг за шагом" или используйте расширенное мышление. Для продакшена используйте расширенное мышление (budget_tokens), а не промпт для видимой цепочки мыслей, чтобы вывод оставался чистым.
Выбор между детерминированным и творческим выводом.
temperature=0 для детерминированных задач (классификация, извлечение). temperature=0.5-0.7 для творческого письма. temperature=1.0 для максимального разнообразия. Примечание: расширенное мышление требует temperature=1.
Требуется гарантированно валидный вывод JSON от модели.
Определите инструмент с желаемой схемой JSON как input_schema. Установите tool_choice для принудительного использования этого инструмента. Модель возвращает структурированный JSON в блоке tool_use, проверенный по схеме.
Приложение, ориентированное на пользователя, нуждается в низком времени до первого токена.
Используйте stream=true в Messages API. Обрабатывайте события, отправленные сервером, инкрементально: content_block_start, content_block_delta, message_stop. Отображайте токены по мере их поступления.
Обработка тысяч промптов, где задержка не является критичной.
Используйте Messages Batches API. Отправляйте до 100 тысяч запросов за один пакет. Результаты приходят в течение 24 часов со снижением стоимости на 50%. Опрашивайте или используйте вебхук для завершения.
Извлечение данных из отсканированных документов или изображений.
Передавайте изображения в виде блоков содержимого base64 (type: image) или страниц PDF (type: document) в пользовательском сообщении. Claude обрабатывает до 20 МБ за запрос. Для текстовых документов предпочтительнее использовать нативные PDF, а не скриншоты.
Выбор между Opus, Sonnet и Haiku для рабочей нагрузки.
Opus: максимальные возможности, сложное рассуждение, агентные задачи. Sonnet: сбалансированная производительность/стоимость, общее использование в продакшене. Haiku: самый быстрый и дешевый, классификация, маршрутизация, простое извлечение.
Повторяющиеся вызовы используют один и тот же длинный системный промпт; нужно снизить стоимость.
Отметьте кэшируемое содержимое с помощью cache_control: { type: "ephemeral" }. Кэшированные префиксы повторно используются при вызовах до 5 минут (автоматически продлевается при попадании). Стоимость записи на 25% выше; стоимость чтения на 90% ниже.
Каждый инструмент имеет name, description и input_schema (JSON Schema). Description сообщает Claude, когда его использовать; схема проверяет параметры. Делайте описания ориентированными на действие и лаконичными.
Инструмент успешно выполнен; необходимо вернуть результат Claude.
Отправьте пользовательское сообщение с role: "user" и блоком содержимого tool_result. Включите tool_use_id для корреляции. Возвращайте данные как текст или структурированное содержимое; сохраняйте полезные данные менее 100k токенов.
Агенту необходимо одновременно получать данные из трех независимых источников.
Claude может выдавать несколько блоков tool_use в одном ответе. Выполните их параллельно, затем верните все блоки tool_result в одном пользовательском сообщении. Это сокращает количество обращений.
Понимание компонентной модели Model Context Protocol.
Три роли: Хост (приложение, например Claude Code), Клиент (обработчик протокола для каждого сервера), Сервер (предоставляет инструменты/ресурсы/промпты). Клиенты поддерживают соединения 1:1 с серверами.
stdio: локальный процесс, простейшая настройка. SSE: на основе HTTP, устаревший. Streamable HTTP: текущий стандарт для удаленных серверов, поддерживает возобновление и сообщения, инициированные сервером.
Создание пользовательского MCP сервера для предоставления внутренних API.
Используйте MCP SDK (TypeScript или Python). Реализуйте обработчики инструментов с входными схемами. Регистрируйте через server.tool(). Транспорт: stdio для локального, streamable HTTP для удаленного.
Агент должен взаимодействовать с графическим приложением (клики, ввод текста, скриншоты).
Включите инструменты использования компьютера: computer_20250124 (скриншот + мышь + клавиатура), text_editor_20250124, bash_20250124. Модель получает скриншоты и выдает действия на основе координат.
Модель должна всегда вызывать определенный инструмент, а не отвечать текстом.
Установите tool_choice в { type: "tool", name: "my_tool" }. Модель принудительно вызывает этот инструмент. Используйте type: "any", чтобы потребовать вызов любого инструмента, или type: "auto" (по умолчанию), чтобы модель сама принимала решение.
Приложение достигает предела контекста в середине разговора.
Модели Claude поддерживают 200 тысяч токенов. Отслеживайте использование через response.usage. При приближении к лимиту, суммируйте старые реплики или усекайте их. Никогда не отбрасывайте сообщения без предупреждения.
Обработка 150-страничного документа, который занимает большую часть контекстного окна.
Размещайте документ в начале промпта (после системной части). Вопросы ставьте в конце. Используйте кэширование промптов, чтобы избежать повторной отправки при последующих запросах. Для задач с несколькими документами используйте RAG для выбора релевантных фрагментов.
База знаний слишком велика, чтобы поместиться в контекст; модели требуется доступ во время запроса.
Встройте и проиндексируйте документы в векторном хранилище. Во время запроса извлеките топ-k фрагментов, вставьте их в сообщение пользователя. Цитируйте исходные документы в выводе для отслеживаемости.
Модель уверенно заявляет неверные факты.
Основывайте ответы на предоставленном контексте (RAG). Инструктируйте модель говорить "Я не знаю", когда доказательств недостаточно. Используйте цитаты. Проверяйте фактические утверждения по исходным документам программно.
Приложение получает ответы 429 (ограничение скорости) или 529 (перегрузка).
429: вы достигли лимита скорости для вашего уровня. Отступите и повторите попытку; соблюдайте retry-after. 529: API Anthropic перегружен. Отступите дольше. Оба являются временными. Никогда не повторяйте 400 или 401.
Ежемесячные расходы на API выше ожидаемых.
Используйте кэширование промптов для повторяющихся префиксов (скидка 90% на чтение). Направляйте простые задачи на Haiku. Используйте Batch API для асинхронных рабочих нагрузок (скидка 50%). Отслеживайте использование токенов для каждой конечной точки. Убирайте ненужный контекст.
Требуется видимость потребления токенов для каждого запроса.
Каждый ответ Messages API включает usage.input_tokens, usage.output_tokens и (если кэшировано) usage.cache_read_input_tokens. Регистрируйте эти данные для каждого вызова, агрегируйте по конечной точке, устанавливайте оповещения о бюджете.