Сценарій 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 разом з описом кожної доступної команди
AProject-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 лише за несподіваної складності
APlan 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 із інтерактивним редактором для ручного перегляду коду
AGrep призначений для пошуку за вмістом коду (наприклад, усі виклики функції за іменем, рядки помилок чи import'и). Пошук файлів за патерном імені знаходить лише файли, а не входження тексту в них. Читання кожного файлу цілком читає вміст конкретного файлу, а не шукає по всіх одразу. Інтерактивний редактор через Bash тут недоречний.
Домен 22 / 2
Потрібно знайти всі тестові файли за патерном **/*.test.tsx по проєкту. Який інструмент пасує?
AGlob — пошук шляхів файлів за патерном імені чи розширення
BGrep — пошук текстових входжень усередині вмісту файлів
CEdit — точкова заміна фрагмента за унікальним текстом-якорем
DWrite — створення нового файлу або повний перезапис наявного
AGlob знаходить файли за патернами імен (наприклад, **/*.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 для запізнілих результатів
ABatches 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 завжди виходитиме валідним
Atool_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
Запустити тренажер →Домени екзамену