Сценарій 1

Customer Support Resolution Agent

Агент підтримки на Claude Agent SDK обробляє повернення, спори по платежах і питання акаунтів. Доступ до бекенду через MCP-інструменти get_customer, lookup_order, process_refund, escalate_to_human. Ціль — 80%+ first-contact resolution.

Приклади питань

Домен 11 / 2
Дані продакшену показують: у 12% випадків агент пропускає get_customer і викликає lookup_order лише за іменем клієнта, що інколи призводить до помилкової ідентифікації акаунта й неправильних повернень. Яка зміна найефективніше вирішить цю проблему надійності?
AДодати programmatic prerequisite, що блокує lookup_order і process_refund до верифікованого customer ID
BПідсилити system prompt вимогою обов'язкової верифікації через get_customer перед операціями із замовленнями
CДодати few-shot приклади, де агент завжди першим викликає get_customer навіть за наявності номера замовлення
DВпровадити routing-класифікатор, що вмикає лише підмножину інструментів під конкретний тип запиту
✓ A — Коли критична бізнес-логіка вимагає певної послідовності (верифікація перед поверненням коштів), programmatic enforcement дає детерміновані гарантії: він блокує lookup_order і process_refund, доки get_customer не поверне верифікований customer ID. Prompt-підходи — підсилення system prompt чи few-shot приклади з пріоритетом get_customer — лишаються ймовірнісними й мають ненульову ймовірність недотримання. Routing-класифікатор вирішує доступність інструментів, а не їх обов'язковий порядок виконання.
Домен 22 / 2
Логи показують, що агент часто кличе get_customer на запити про замовлення (напр. «перевір моє замовлення #12345») замість lookup_order. Обидва інструменти мають мінімальні описи («Retrieves customer information» / «Retrieves order details») і приймають схожі формати ідентифікаторів. Який найефективніший перший крок?
AРозширити опис кожного інструмента: очікувані формати входу, приклади запитів, edge cases і чіткі межі застосування
BДодати 5–8 ретельних few-shot прикладів у system prompt, що скеровують order-запити саме на lookup_order
CРеалізувати окремий routing-шар, що парсить ввід і наперед обирає інструмент за ключовими словами
DОб'єднати обидва інструменти в один lookup_entity, що сам визначає потрібний бекенд за вводом
✓ A — Описи інструментів — основний механізм вибору для LLM. За мінімальних описів моделі бракує контексту, щоб розрізнити схожі інструменти; розширення опису форматами входу, прикладами запитів, edge cases і межами застосування б'є прямо в причину. Few-shot приклади додають токени, не усуваючи її. Окремий routing-шар з парсингом ключових слів — over-engineering, що обходить розуміння моделі. Злиття в lookup_entity — валідна, але важча архітектурна зміна, ніж потрібно для «першого кроку».
Практика за сценарієм 1 →
Сценарій 2

Code Generation with Claude Code

Команда використовує Claude Code для генерації коду, рефакторингу, дебагу й документації. Потрібна інтеграція у воркфлоу: custom slash commands, CLAUDE.md, та розуміння plan mode vs direct execution.

Приклади питань

Домен 31 / 2
Ви хочете створити custom-команду /review, що запускає стандартний чек-лист код-рев'ю команди. Вона має бути доступна кожному розробнику після clone/pull репозиторію. Де створити файл команди?
AУ директорії .claude/commands/ у репозиторії проєкту, щоб вона версіонувалась
BУ ~/.claude/commands/ у домашній директорії кожного окремого розробника команди
CУ файлі CLAUDE.md у корені проєкту, оформивши її як окрему секцію команд
DУ .claude/config.json у масиві commands разом з описом кожної доступної команди
✓ A — Project-scoped slash-команди зберігають у .claude/commands/ репозиторію — вони версіонуються разом із кодом і доступні всім після clone/pull. Розміщення в ~/.claude/commands/ робить команду особистою й не шерить її між розробниками; CLAUDE.md призначений для контексту, а не для виконуваних команд; а .claude/config.json з масивом commands описує неіснуючий у Claude Code механізм.
Домен 32 / 2
Вам доручили реструктуризувати моноліт у мікросервіси: зміни в десятках файлів і рішення про межі сервісів та залежності модулів. Який підхід обрати?
AУвійти в plan mode: дослідити кодбазу, зрозуміти залежності й спроєктувати підхід
BПочати з direct execution й міняти інкрементально, дозволивши реалізації виявити межі
CDirect execution із повними наперед інструкціями, як структурувати кожен сервіс
DПочати в direct execution і перемкнутись у plan mode лише за несподіваної складності
✓ A — Plan mode створений саме для масштабних змін у десятках файлів, кількох валідних підходів та архітектурних рішень про межі сервісів і залежності модулів — він дозволяє безпечно дослідити код перед комітом до змін. Інкрементальний direct execution ризикує дорогими переробками, коли межі виявляться невдалими; підхід із повними наперед інструкціями хибно припускає готову відповідь без дослідження; а відкладене перемикання ігнорує, що складність уже задана самими вимогами.
Практика за сценарієм 2 →
Сценарій 3

Multi-Agent Research System

Coordinator-агент делегує спеціалізованим subagent'ам: пошук у вебі, аналіз документів, синтез і генерація звіту. Система готує повні звіти з цитуванням джерел.

Приклади питань

Домен 11 / 2
Запустивши систему на темі «вплив AI на креативні індустрії», ви бачите: усі subagent'и відпрацювали успішно, але фінальні звіти охоплюють лише візуальне мистецтво й повністю пропускають музику, письменство та кіно. У логах coordinator'а: він розбив тему на «AI in digital art», «AI in graphic design», «AI in photography». Найімовірніша корінна причина?
AДекомпозиція coordinator'а надто вузька — призначення не покривають усіх доменів самої теми
BSynthesis-агенту бракує інструкцій виявляти прогалини покриття серед отриманих ним знахідок
CЗапити web-search агента надто вузькі, тож їх варто розширити для ширшого охоплення джерел
DDocument-аналіз агент відсіює не-візуальні джерела через надто жорсткі критерії релевантності
✓ A — Логи прямо показують причину: coordinator розклав «креативні індустрії» лише на візуальні підтеми (digital art, graphic design, photography), пропустивши музику, письменство й кіно, тож його призначення не покрили всіх релевантних доменів теми. Subagent'и коректно зробили те, що їм призначили в межах заданого scope. Решта варіантів помилково звинувачують нижчих агентів: брак gap-аналізу в synthesis, вузькість пошукових запитів чи жорсткий фільтр релевантності в document-аналізі — жоден з них не пояснює, чому non-visual домени взагалі не потрапили у призначення.
Домен 52 / 2
Web-search subagent впадає в timeout на складній темі. Ви проєктуєте, як ця інформація про збій тече назад до coordinator'а. Який підхід до error propagation найкраще вмикає інтелектуальне відновлення?
AПовернути coordinator'у структурований error-контекст: тип збою, пробуваний запит і partial results
BРеалізувати retry з exponential backoff усередині subagent'а й повернути лише «search unavailable» по спробах
CПерехопити timeout і повернути порожній результат, позначений як успішний, аби не зупиняти весь пайплайн
DПрокинути timeout-виняток у top-level handler, що негайно завершує весь дослідницький research-воркфлоу
✓ A — Структурований error-контекст дає coordinator'у дані для розумного рішення: ретрай із модифікацією запиту, перехід на альтернативний підхід чи продовження з partial results. Загальний статус «search unavailable» після внутрішніх ретраїв ховає контекст і не дає coordinator'у вибору. Позначення збою як «успіх» приховує помилку (silent suppression). Завершення всього воркфлоу через один timeout надмірне й позбавляє систему стійкості.
Практика за сценарієм 3 →
Сценарій 4

Developer Productivity with Claude

Агент допомагає інженерам досліджувати незнайомі кодбази, розбирати legacy, генерувати boilerplate. Використовує built-in tools (Read, Write, Bash, Grep, Glob) та MCP-сервери.

Приклади питань

Домен 21 / 2
Інженер просить знайти всі місця виклику конкретної функції по кодбазі. Який built-in інструмент обрати?
AGrep — пошук за вмістом файлів: імена функцій і рядки помилок
BGlob — пошук файлів за патерном імені чи розширення по дереву
CRead — послідовно читати кожен файл цілком, шукаючи виклики очима
DBash із інтерактивним редактором для ручного перегляду коду
✓ A — Grep призначений для пошуку за вмістом коду (наприклад, усі виклики функції за іменем, рядки помилок чи import'и). Пошук файлів за патерном імені знаходить лише файли, а не входження тексту в них. Читання кожного файлу цілком читає вміст конкретного файлу, а не шукає по всіх одразу. Інтерактивний редактор через Bash тут недоречний.
Домен 22 / 2
Потрібно знайти всі тестові файли за патерном **/*.test.tsx по проєкту. Який інструмент пасує?
AGlob — пошук шляхів файлів за патерном імені чи розширення
BGrep — пошук текстових входжень усередині вмісту файлів
CEdit — точкова заміна фрагмента за унікальним текстом-якорем
DWrite — створення нового файлу або повний перезапис наявного
✓ A — Glob знаходить файли за патернами імен (наприклад, **/*.test.tsx). Пошук за вмістом призначений для входжень тексту в коді, а не для перебору шляхів. Точкова заміна за якорем і створення файлу служать для модифікації чи генерації, а не для пошуку.
Практика за сценарієм 4 →
Сценарій 5

Claude Code for Continuous Integration

Claude Code інтегрований у CI/CD: автоматичні code review, генерація тестів, фідбек на pull request'и. Потрібні промпти з actionable-фідбеком і мінімумом false positives.

Приклади питань

Домен 31 / 2
Ваш pipeline-скрипт запускає claude "Analyze this PR for security issues", але job висить нескінченно — Claude Code чекає на інтерактивний ввід. Який правильний підхід для автоматизованого пайплайну?
AДодати прапорець -p у виклик claude для неінтерактивного режиму обробки промпту в CI
BВиставити змінну оточення CLAUDE_HEADLESS=true перед запуском команди claude в пайплайні CI
CПеренаправити stdin з /dev/null, щоб процес узагалі не чекав на жодний інтерактивний ввід
DДодати прапорець --batch для пакетної неінтерактивної обробки промпту в пайплайні CI системи
✓ A — Прапорець -p (--print) — задокументований спосіб запуску Claude Code в неінтерактивному режимі: обробляє промпт, друкує результат у stdout і одразу виходить, не чекаючи інтерактивного вводу. Змінна CLAUDE_HEADLESS і прапорець --batch — неіснуючі й не вмикають headless-режим. Редирект stdin з /dev/null — обхідний трюк, що не відповідає офіційному синтаксису Claude Code і не гарантує коректного завершення.
Домен 42 / 2
Команда хоче зменшити витрати на API. Зараз real-time виклики живлять два воркфлоу: (1) блокуючий pre-merge check, який має завершитись до merge, і (2) звіт по tech debt, що генерується вночі для ранкового перегляду. Менеджер пропонує перевести обидва на Message Batches API заради 50% економії. Як оцінити?
AПеревести на batch лише нічні звіти по tech debt, а блокуючі pre-merge checks свідомо лишити на real-time
BПеревести обидва воркфлоу на batch і відстежувати готовність кожного результату через status polling
CЛишити обидва воркфлоу на real-time, щоб уникнути проблем із кореляцією й порядком результатів
DПеревести обидва на batch, додавши timeout-fallback на real-time для запізнілих результатів
✓ A — Batches API дає 50% економії, але час обробки — до 24 годин без гарантії latency. Це неприйнятно для блокуючого pre-merge check, який має завершитись до merge, але ідеально для нічних звітів, що читають уранці. Переведення обох на batch покладається на «зазвичай швидше» — неприйнятно для блокуючого кроку. Побоювання про порядок результатів хибне: відповіді корелюються через custom_id. Timeout-fallback на real-time — зайва складність, що не усуває ризику для блокуючого кроку.
Практика за сценарієм 5 →
Сценарій 6

Structured Data Extraction

Система витягує дані з неструктурованих документів, валідує через JSON-схеми й тримає високу точність. Має акуратно обробляти edge cases й інтегруватися з downstream-системами.

Приклади питань

Домен 41 / 2
Ваша система екстракції інколи повертає синтаксично невалідний JSON, що ламає downstream. Який підхід найнадійніше гарантує schema-compliant вивід без JSON-синтаксичних помилок?
ATool use (tool_use) з JSON-схемою як вхідними параметрами інструмента виводу
BПросити модель у system prompt «повертати валідний JSON» і парсити сирий текст
CЛагодити невалідний JSON постфактум регулярками й евристичними патчами
DЗнизити temperature до нуля, очікуючи, що JSON завжди виходитиме валідним
✓ A — tool_use із JSON-схемою — найнадійніший спосіб гарантованого schema-compliant виводу: модель повертає структуровані дані саме як вхідні параметри інструмента, і це усуває синтаксичні помилки JSON. Прохання в промпті лишається ймовірнісним; полагодження регулярками крихке й не покриває всі випадки невалідної розмітки; нульова temperature робить вивід детермінованим, але не гарантує відповідності схемі.
Домен 42 / 2
Деякі вихідні документи не містять певних полів, а модель вигадує значення, щоб задовольнити required-поля схеми. Як це усунути?
AЗробити такі поля optional/nullable, щоб модель повертала null замість фабрикації
BЛишити поля required, але додати в промпт чітку інструкцію «не вигадувати відсутні значення»
CВидалити ці поля зі схеми взагалі, щоб модель навіть не намагалась їх якось заповнити
DПідвищити max_tokens, щоб модель довше шукала відсутні значення десь у тексті документа
✓ A — Поля, яких може не бути в джерелі, проєктують optional/nullable — тоді модель повертає null, коли даних немає, замість того, щоб під required-обмеження фабрикувати значення. Прохання «не вигадувати» лишається ймовірнісним; повне видалення полів зі схеми втрачає дані там, де вони насправді присутні; збільшення max_tokens не створить відсутню в документі інформацію.
Практика за сценарієм 6 →
Запустити тренажер →Домени екзамену