1.1 Огляд екзамену
Модуль 1 · Вступ до сертифікаціїУявіть: ви щойно побудували складну систему на Claude — з агентами, інструментами, MCP-серверами. Все працює. Клієнт задоволений. І тут колега питає: «А у тебе є сертифікація?» Ось для цього і існує Claude Certified Architect.
Що таке Claude Certified Architect?
Claude Certified Architect — Foundations — це офіційна сертифікація від Anthropic, яка підтверджує вашу здатність проєктувати, будувати та оптимізувати production-grade рішення на базі Claude. Це не теоретичний тест для студентів — це практичний екзамен для людей, які вже працюють з Claude API, Agent SDK і Claude Code.
Цільовий кандидат — solution architect з 6+ місяцями реального досвіду. Якщо ви хоча б раз побудували agentic workflow, налаштували MCP-сервер або написали CLAUDE.md для команди — ви вже на правильному шляху.
- Ексклюзив для Anthropic Partners — потрібно бути співробітником партнерської компанії
- Безкоштовно для перших 5 000 співробітників партнерів (Early Access)
- Після Early Access — $99
- Не партнер Anthropic? Подати заявку на партнерство →
Формат: 60 питань за 120 хвилин
Давайте розберемо формат, щоб не було сюрпризів у день екзамену:
| Параметр | Значення |
|---|---|
| Кількість питань | 60 питань multiple choice |
| Тривалість | 120 хвилин (2 години) |
| Формат | Прокторований — без перерв, без зовнішніх ресурсів |
| Тип питань | Multiple choice (одна правильна відповідь з 4 варіантів) |
| Прохідний бал | 720 з 1000 (scaled scoring) |
| Штраф за неправильну відповідь | Немає — завжди відповідайте! |
| Сценарії | 6 сценаріїв, з яких 4 випадкових на екзамені |
| Результати | Протягом 2 робочих днів з детальним розбором по секціях |
Немає штрафу за неправильну відповідь! Ніколи не залишайте питання без відповіді. Навіть якщо не впевнені — виберіть найбільш вірогідний варіант. Порожня відповідь гарантовано дає 0 балів, а вгадування — 25% шанс на правильну.
5 доменів: карта знань архітектора
Екзамен побудований навколо 5 доменів. Думайте про них як про 5 стовпів, на яких тримається ваша архітектурна експертиза. Кожен стовп має різну «товщину» — вагу у підсумковому балі:
Домен 1 (Agentic Architecture) має найбільшу вагу — 27%. Це більше ніж чверть вашого балу. Навіть якщо ви ідеально знаєте всі інші домени, провал у агентній архітектурі може коштувати вам сертифікації. А Домен 5 (15%) — найлегший за вагою, але часто має найскладніші питання.
6 сценаріїв: реальний світ на екзамені
Екзамен — не абстрактна теорія. Він побудований навколо 6 реальних сценаріїв, з яких випадково обираються 4 для вашого конкретного екзамену:
- Customer Support Agent — AI-агент підтримки з маршрутизацією, ескалацією та CRM-інтеграцією
- Code Generation з Claude Code — налаштування CLAUDE.md, commands, skills для команди
- Multi-Agent Research — оркестрація кількох агентів для збору та аналізу даних
- Developer Productivity — code review, рефакторинг, автоматизація через Claude Code
- CI/CD Integration — Claude у pipelines: review, тестування, генерація документації
- Structured Data Extraction — витягування даних з документів, batch processing, валідація
Ви не знаєте заздалегідь, які 4 з 6 сценаріїв потраплять на ваш екзамен. Готуйтесь до всіх шести. Кожен сценарій перевіряє знання з кількох доменів одночасно — це не ізольовані теми.
Стратегія балів: де інвестувати час
Бал формується на основі правильних відповідей, зважених відповідно до домену. Мінімальний прохідний бал — 720 з 1000. Якщо ви сильні у Домені 1 (27%), це дає значно більший внесок у підсумковий бал, ніж досконалість у Домені 5 (15%). Але не ігноруйте жоден домен — кожен бал рахується.
Протягом цього курсу ми будемо використовувати наскрізний приклад — OrderBot, AI-асистент для e-commerce стартапу «FreshMart». Він допомагає клієнтам з замовленнями, обробляє повернення, і відповідає на питання. Ви побачите OrderBot у кожному модулі — від агентних циклів до CI/CD.
Домен 1: 0.90 × 270 = 243
Домен 2: 0.75 × 180 = 135
Домен 3: 0.80 × 200 = 160
Домен 4: 0.70 × 200 = 140
Домен 5: 0.60 × 150 = 90
Разом: 243 + 135 + 160 + 140 + 90 = 768 з 1000
Так, ви пройдете екзамен (768 > 720). Зверніть увагу: навіть 60% у Домені 5 не заважає пройти, якщо інші домени сильні. Але якби Домен 1 був 70% замість 90%, ваш бал упав би до 714 — і ви б не пройшли.
1.2 Стратегія підготовки
Модуль 1 · Вступ до сертифікаціїМарафон без плану — це просто довга прогулянка з болем у ногах. Екзамен Claude Certified Architect — це інтелектуальний марафон на 120 хвилин, і без стратегії ви витратите час на те, що знаєте, замість того, щоб підтягнути слабкі місця.
8 рекомендацій з офіційного Exam Guide
Anthropic прямо каже: «Hands-on experience is essential.» Ось 8 порад, які вони дають, з нашими практичними коментарями:
1. Пройдіть курси Anthropic Academy
Anthropic рекомендує 4 курси, і ми серйозно радимо не ігнорувати їх:
- Building with the Claude API (84 лекції, 8.1 год, 10 квізів) — фундамент всього: API, tool_use, structured output, batch, agentic systems
- Introduction to Model Context Protocol — MCP архітектура, Python SDK, ресурси, транспорт
- Claude Code in Action (15 лекцій, 1 год) — CLAUDE.md, commands, skills, GitHub інтеграція
- Claude 101 — базові знання для тих, хто починає з нуля
Всі курси безкоштовні на Anthropic Academy (Skilljar):
anthropic.skilljar.com → розділ Courses
2. Практикуйте з реальними проєктами
Читання документації — необхідно, але недостатньо. Побудуйте хоча б один проєкт з tool_use та MCP. Наш OrderBot — хороший шаблон для початку.
3. Розумійте trade-offs
Більшість питань — не «що правильно?», а «що найкраще у даному сценарії?». Model-driven чи pre-configured? Hub-and-spoke чи pipeline? Prompt-based чи programmatic enforcement? Ви повинні знати компроміси.
4-8. Глибоке занурення в кожен домен
Вивчіть файлову структуру Claude Code напам'ять. Зрозумійте MCP протокол на рівні конфігурації. Опануйте prompt engineering від few-shot до structured output. Розберіться з batch API. Не ігноруйте error handling.
Exam Guide наголошує: «Hands-on experience is essential.» Теоретичних знань недостатньо. Якщо ви ніколи не писали agentic loop, не налаштовували .mcp.json, не створювали CLAUDE.md — витратьте час на практику перед екзаменом.
План підготовки на 2 тижні
Ось реалістичний план, якщо у вас є базовий досвід з Claude:
- День 1-2: Claude 101 + «Claude Code in Action» на Academy
- День 3-4: «Building with Claude API» (перші 40 лекцій)
- День 5: «Introduction to MCP» + решта API курсу
- День 6-7: Модулі 2-4 цього курсу, виконайте всі квізи
- День 8-9: Побудуйте agentic workflow з MCP інтеграцією (власний OrderBot)
- День 10-11: Модулі 5-6 цього курсу + batch API експерименти
- День 12: Налаштуйте CI/CD pipeline з Claude Code для реального проєкту
- День 13-14: Модуль 7 (практичний екзамен), повторіть слабкі місця
Ресурси для підготовки
| Ресурс | Що покриває | Пріоритет |
|---|---|---|
| Anthropic Academy | Всі 5 доменів | Критичний |
| Claude Code Documentation | Домени 3, 4 | Високий |
| MCP Specification | Домен 2 | Високий |
| Claude API Reference | Домени 4, 5 | Середній |
| Цей курс | Всі 5 доменів + практика | Критичний |
Тепер, коли ви знаєте формат і маєте план, пора зануритися у перший (і найважливіший) домен — агентну архітектуру. У наступному уроці ми розберемо, як працює серце будь-якої AI-системи — агентний цикл.
1. Agentic Architecture: 3/5 — працював з агентами, але не з мульти-агентними системами
2. Tool Design & MCP: 2/5 — використовую MCP, але не проєктував власні інструменти
3. Claude Code Config: 4/5 — добре знаю CLAUDE.md та commands
4. Prompt Engineering: 3/5 — знаю основи, але не працював з batch API
5. Context Management: 2/5 — слабке місце
Фокус: Домени 2 і 5 — найслабші. Виділити додатковий час на Tool Design та Context Management.
2.1 Агентні цикли (Agentic Loops)
Модуль 2 · Агентна архітектура (27%)Ваш стартап «FreshMart» хоче автоматизувати підтримку клієнтів. Клієнт пише: «Де моє замовлення #4521?» Бот повинен знайти замовлення в базі, перевірити статус доставки і відповісти. Це не один виклик API — це цикл: запитай модель, вона вирішить зателефонувати до бази, отримає результат, подумає ще, і нарешті відповість. Ласкаво просимо в агентний цикл.
Серце циклу: stop_reason
Увесь агентний цикл тримається на одному полі у відповіді API — stop_reason. Це як світлофор для вашого коду:
| stop_reason | Що це означає | Що робити |
|---|---|---|
tool_use | Claude хоче викликати інструмент | Виконайте інструмент, поверніть результат, продовжуйте цикл |
end_turn | Claude завершив роботу | Зупиніть цикл, поверніть текстову відповідь |
max_tokens | Вичерпано ліміт токенів | Можна продовжити з новим запитом або повідомити користувача |
Агентний цикл продовжується поки stop_reason === "tool_use". Коли модель повертає stop_reason === "end_turn", це сигнал зупинки. Результати інструментів додаються до історії повідомлень (message history), а не передаються окремо.
OrderBot: наш перший агентний цикл
Повернемось до FreshMart. Ось як OrderBot обробляє запит «Де моє замовлення?»:
Model-driven vs Pre-configured
Тепер ключове архітектурне рішення: хто вирішує, що робити далі — модель чи ваш код?
Model-driven (адаптивний)
Модель сама обирає інструменти і порядок. Гнучко, але менш передбачувано.
Коли: research agent, складні задачі з невизначеним потоком
Pre-configured (фіксований)
Ви визначаєте послідовність кроків. Передбачувано, але негнучко.
Коли: ETL pipeline, генерація звітів з фіксованими секціями
Для OrderBot ми обираємо model-driven: клієнт може запитати про замовлення, повернення, або доставку — бот сам вирішить, які інструменти викликати.
Anti-pattern: парсинг природної мови замість tool_use. Деякі розробники витягують дії з тексту через regex. Це ненадійно. Завжди використовуйте tool_use — Claude сам вирішить, коли і який інструмент викликати. Ще один anti-pattern: довільний max_iterations=3 без обґрунтування. Агент може потребувати 1 крок або 10 — залежно від задачі.
У наступному уроці ми масштабуємо OrderBot: замість одного агента — цілу команду спеціалізованих ботів із координатором.
Підхід: Pre-configured (prompt chaining) — тому що послідовність чітко визначена:
1. query_orders(customer_id, date_range) → список замовлень
2. calculate_total(orders) → сума
3. send_email(to, subject, body) → підтвердження
Model-driven тут надлишковий — немає потреби в адаптивності, потік лінійний. Pre-configured дасть передбачуваний результат і менше токенів.
2.2 Мульти-агентна оркестрація
Модуль 2 · Агентна архітектура (27%)OrderBot FreshMart росте. Тепер він обробляє не лише замовлення, а й повернення, скарги, і питання про доставку. Один агент з 15 інструментами починає плутатися — обирає пошук доставки, коли клієнт питає про повернення. Що робити? Розділити одного «універсала» на команду спеціалістів.
Hub-and-spoke: координатор і субагенти
Ось як ми реорганізували OrderBot:
Приймає запит, визначає тип, делегує
track_delivery
check_policy
format_answer
Ключова особливість — ізоляція контексту. Returns Agent не бачить, що Orders Agent щойно шукав замовлення. Кожен працює у своєму «чистому» середовищі, отримуючи від координатора тільки необхідну інформацію.
Субагенти мають ізольований контекст. Координатор передає тільки необхідну інформацію через prompt підзадачі. Оптимальна кількість інструментів на агента — 4-5. Якщо агент має 15+ інструментів, якість вибору різко падає. Розділіть на спеціалізованих субагентів.
Task tool, allowedTools та паралельні виклики
Task tool створює субагентів. allowedTools обмежує їхні можливості (принцип найменших привілеїв):
Якщо субагенту доступні всі інструменти координатора, це порушує ізоляцію і збільшує ризик помилок. На екзамені варіант «дати всім агентам повний доступ до всіх інструментів» — це завжди неправильна відповідь.
Task tool vs fork_session
Task tool
Повна ізоляція контексту. Субагент починає з чистого аркуша, бачить тільки свою задачу.
Для: незалежних підзадач, паралельних викликів
fork_session
Нова сесія наслідує контекст батьківської. Зберігає частину історії.
Для: продовження роботи в паралельній гілці
Тепер наш OrderBot масштабується: координатор + 3 субагенти, кожен з 2-3 інструментами, з можливістю паралельного виконання. У наступному уроці ми додамо воркфлоу-логіку — ескалацію до людини і programmatic guards.
3 субагенти (паралельні):
1. style_checker [allowedTools: read_file, grep] — перевіряє стиль
2. security_reviewer [allowedTools: read_file, grep, search_cve] — шукає вразливості
3. logic_analyzer [allowedTools: read_file, run_tests] — перевіряє логіку
1 субагент (послідовний, після паралельних):
4. summary_writer [allowedTools: write_comment] — синтезує результати
Паралельні: 1, 2, 3. Послідовний: 4 (потребує результатів 1-3).
2.3 Воркфлоу та ескалація
Модуль 2 · Агентна архітектура (27%)Клієнт FreshMart просить OrderBot видалити його акаунт і всі дані. Бот повинен... що? Просто взяти і видалити? Ні. Це критична операція, яка потребує підтвердження людини. Але як архітектурно розділити «бот може зробити сам» від «бот повинен запитати людину»?
Programmatic vs Prompt-based enforcement
Це одне з найважливіших архітектурних рішень на екзамені:
Programmatic (гарантовано)
Hooks, validators, guards. Код блокує заборонену дію — модель не може обійти.
Prompt-based (надійно, не гарантовано)
Інструкції в промпті. Модель зазвичай дотримується, але теоретично може порушити.
Екзамен часто питає: «Який підхід гарантує, що агент не виконає заборонену дію?» Правильна відповідь завжди — programmatic enforcement. Для production найкращий підхід — комбінація: prompt для м'яких правил + programmatic guards для жорстких лімітів.
Hooks в Claude Code: PostToolUse
OrderBot FreshMart використовує hook для аудиту всіх операцій з замовленнями:
Task decomposition: prompt chaining vs dynamic
Session management
| Механізм | Опис | Коли використовувати |
|---|---|---|
--resume | Продовжити попередню сесію з повним контекстом | Повернення до незавершеної задачі |
fork_session | Нова сесія, що наслідує контекст | Паралельна робота над різними аспектами |
/compact | Стиснути контекст, зберігши ключове | Коли контекстне вікно заповнюється |
Prompt chaining — коли потік лінійний (ETL, звіти). Dynamic decomposition — коли задача невизначена (дослідження, рефакторинг). Комбінація prompt + programmatic enforcement — найкращий підхід для production.
Ми завершили найважливіший домен — агентну архітектуру (27% балу). Тепер переходимо до другого стовпа: як правильно проєктувати інструменти, з якими працюють ваші агенти.
2. Дослідження ринку → Dynamic decomposition — невідомо скільки джерел потрібно
3. Рефакторинг → Dynamic decomposition — агент спершу аналізує код, визначає проблеми, потім рефакторить. Кількість кроків залежить від складності.
3.1 Проєктування інструментів
Модуль 3 · Інструменти та MCP (18%)Повернемося до OrderBot. Уявіть: у нього є інструмент manage_order з описом «Manages orders». Клієнт питає: «Скасуйте моє замовлення». Claude дивиться на опис... «Manages orders»... Що саме manage? Створити? Видалити? Оновити? Модель вгадує — і часто помиляється.
Чотири питання хорошого опису
Кожен tool description повинен відповідати на 4 питання:
Погано: розмитий опис
Яку дату? Звідки? В якому форматі?
Добре: точний контракт
OrderBot: розділення manage_order
Ми розбили один «God tool» на 4 чітких інструменти:
MCP isError pattern: помилка vs порожній результат
Ось де багато хто помиляється на екзамені:
Це НЕ помилка
Пошук повернув 0 результатів. is_error: false, content: []
Модель скаже: «Нічого не знайдено»
Це ПОМИЛКА
База даних не відповідає. is_error: true, isRetryable: true
Модель спробує ще раз або ескалює
Tool description відповідає на 4 питання: що робить, які параметри, що повертає, коли НЕ використовувати. Порожній результат — це не помилка. is_error: true тільки для фактичних збоїв (мережа, авторизація, validation).
Коли API пошуку повертає порожній масив — це валідна відповідь, а не помилка. Не ставте is_error: true для порожніх результатів. Екзамен дуже любить цю різницю.
1. db_query: «Executes a read-only SQL SELECT query. Returns rows as JSON array. Max 1000 rows.»
2. db_insert: «Inserts one or more rows. Returns inserted row IDs. Validates schema before insert.»
3. db_update: «Updates rows matching WHERE clause. Returns count of affected rows. Requires WHERE clause.»
4. db_delete: «Soft-deletes rows matching WHERE clause. Does NOT permanently remove data.»
5. db_backup: «Creates full database backup. Returns backup path and size. Takes 2-5 minutes.»
6. db_restore: «Restores from backup. DESTRUCTIVE: overwrites current data. Requires human confirmation.»
3.2 Інтеграція MCP серверів
Модуль 3 · Інструменти та MCP (18%)OrderBot FreshMart потребує доступу до бази замовлень, GitHub для трекінгу багів, і Slack для нотифікацій менеджерам. Як підключити ці зовнішні сервіси? Через MCP — Model Context Protocol. Але де зберігати конфігурацію: у проєкті чи персонально?
Два рівні конфігурації MCP
.mcp.json (Project-level)
У корені проєкту. Ділиться через Git. Для командних інструментів (БД, GitHub, CI).
~/.claude.json (User-level)
У домашній директорії. Персональний. Для індивідуальних інструментів (Obsidian, Notion).
.mcp.json = project-level, Git, для команди. ~/.claude.json = user-level, персональний. Секрети — через ${VARIABLE} (environment variable expansion). Екзамен питає: «Де розмістити MCP сервер для БД проєкту?» — відповідь .mcp.json.
MCP: Tools, Resources, Prompts
MCP сервери надають три типи можливостей:
- Tools — дії, які модель може викликати (search, write, deploy)
- Resources — контекстні дані, що автоматично додаються (schema, docs)
- Prompts — шаблони промптів, специфічні для MCP сервера
tool_choice: контроль вибору інструментів
| Значення | Поведінка | Коли використовувати |
|---|---|---|
auto | Модель сама вирішує, чи потрібен інструмент | За замовчуванням |
any | Модель ПОВИННА викликати хоча б один інструмент | Коли відповідь без tool не має сенсу |
{"type":"tool","name":"X"} | ПРИМУСОВИЙ виклик конкретного інструменту | Structured output через tool_use |
Не давайте одному агенту 20 інструментів. Оптимум — 4-5 на агента. При більшій кількості якість вибору різко падає. Варіант «додати всі інструменти одному агенту» на екзамені завжди неправильний.
3.3 Вбудовані інструменти Claude Code
Модуль 3 · Інструменти та MCP (18%)Ви попросили Claude Code: «Знайди всі місця, де використовується функція processPayment, і додай логування». Як він це зробить? Не магією — а чіткою послідовністю з шести вбудованих інструментів. Знати їх — обов'язково для екзамену.
6 інструментів: коли який використовувати
| Інструмент | Призначення | Коли використовувати |
|---|---|---|
| Read | Читання файлів | Знаєте точний шлях — прочитайте |
| Write | Створення або повне перезаписування | Новий файл або повна заміна |
| Edit | Точкова зміна частини файлу | Зміна конкретних рядків (хірургічно) |
| Bash | Shell-команди | Тести, git, npm — все, що у терміналі |
| Grep | Пошук по вмісту файлів | «Де використовується ця функція?» |
| Glob | Пошук самих файлів по імені | «Які .py файли є в проєкті?» |
Incremental codebase understanding
Ось як Claude Code поступово розуміє великий проєкт (це pattern, який треба знати):
Розрізняйте Grep (пошук по вмісту) та Glob (пошук файлів по імені). Також: Edit (хірургічна зміна) vs Write (повна заміна). На екзамені часто дають сценарій і питають, який саме інструмент обрати.
Не використовуйте Bash для читання файлів (cat, head) або пошуку (grep, find), коли є спеціалізовані інструменти Read, Grep, Glob. Спеціалізовані інструменти ефективніші та безпечніші.
2. Edit — точкова зміна (не потрібно перезаписувати весь файл)
3. Glob — пошук файлів по патерну (components/**/*.tsx)
4. Bash — виконання CLI команди
5. Grep — пошук по вмісту (import auth, from auth)
4.1 Ієрархія CLAUDE.md
Модуль 4 · Конфігурація Claude Code (20%)Ви працюєте над OrderBot у команді з 5 розробників. Один пише коментарі англійською, інший — українською. Один використовує tabs, інший — spaces. Як забезпечити, щоб Claude Code дотримувався єдиних конвенцій для всіх? Відповідь — CLAUDE.md, файл інструкцій з чіткою ієрархією пріоритетів.
Три рівні: User → Project → Directory
| Рівень | Розташування | Scope | Git |
|---|---|---|---|
| User | ~/.claude/CLAUDE.md | Всі проєкти | Ні |
| Project | .claude/CLAUDE.md | Цей проєкт | Так |
| Directory | CLAUDE.md у підпапці | Ця директорія | Так |
@import та .claude/rules/ з path-scoping
Пріоритет: Directory > Project > User. Файли у .claude/rules/ з path: застосовуються тільки до файлів, що відповідають патерну. @import вставляє файли inline для модульної організації.
Файли у .claude/rules/ з path: frontmatter застосовуються тільки до файлів, які відповідають glob-патерну. Якщо Claude працює з файлом поза патерном — ці правила не діють.
.claude/rules/react.md:
path: "frontend/src/**/*.tsx" — Функціональні компоненти, hooks, TanStack Query.claude/rules/python.md:
path: "backend/**/*.py" — Type hints, async/await, Pydantic modelsUser-level (~/.claude/CLAUDE.md): «Відповідай українською», персональні преференції
4.2 Команди та навички (Commands & Skills)
Модуль 4 · Конфігурація Claude Code (20%)Команда FreshMart щодня робить code review. Кожен раз розробник пише: «Проведи review PR, перевір security, performance, style...». Це 5 хвилин на промпт кожен раз. А якби можна було просто набрати /review і отримати все автоматично?
Commands: кастомні slash-команди
.claude/commands/ (Project)
Ділиться через Git. Для команди.
Приклад: /review, /deploy
~/.claude/commands/ (Personal)
Персональний. Не у Git.
Приклад: /explain-ua
Skills: розширені команди з ізоляцією
Skills живуть у .claude/skills/ і мають YAML frontmatter з трьома ключовими полями:
| Поле | Значення | Що робить |
|---|---|---|
context: fork | Ізольована сесія | Skill не бачить попередній контекст розмови |
allowed-tools | Список інструментів | Обмежений набір — принцип least privilege |
argument-hint | Підказка | Що передати як аргумент |
.claude/commands/ = project, Git, команда. ~/.claude/commands/ = personal, не Git. context: fork = ізольована сесія без попереднього контексту. allowed-tools обмежує доступні інструменти для безпеки.
context: fork означає ізольовану сесію. Skill не бачить попередній контекст розмови — це фіча безпеки, а не обмеження. Skill починає з чистого аркуша.
4.3 CI/CD інтеграція
Модуль 4 · Конфігурація Claude Code (20%)OrderBot FreshMart зростає: 3 розробники, 10 PR на тиждень. Хто буде робити code review? Людина? Занадто повільно. Claude Code у CI/CD pipeline — автоматичний review на кожен PR, з JSON-звітом і блокуванням merge при критичних проблемах.
Ключовий набір: -p + --output-format json
У CI/CD: -p (non-interactive) + --output-format json (structured output). --json-schema гарантує формат. Кожен review — ізольована сесія (без --resume). Один PR = один чистий контекст.
Не використовуйте --resume для CI/CD review. Кожен review повинен мати чистий контекст. «Respond in JSON» у промпті — ненадійно. --json-schema — єдиний спосіб гарантувати формат.
Iterative refinement: 3 техніки
- Input/Output examples — покажіть бажаний формат на прикладі
- Test-driven — спочатку тести, потім генерація коду
- Interview pattern — Claude ставить уточнюючі питання перед виконанням (тільки interactive)
5.1 Precision та few-shot
Модуль 5 · Prompt Engineering (20%)OrderBot FreshMart отримує скаргу: «Ваш сайт — повний жах, нічого не працює!». Бот повинен класифікувати тікет. Промпт «Classify this ticket» дасть непередбачуваний результат. Але промпт з чіткими критеріями і прикладами — стабільну класифікацію щоразу.
Explicit criteria vs Vague instructions
Розмитий промпт
Які improvements? Security? Performance? Style? Все одразу?
Precision промпт
Few-shot examples для OrderBot
2-4 різноманітних прикладів — це оптимум. Обов'язково включіть ambiguous case:
False positive reduction
Покажіть не тільки що шукати, а й що НЕ рахувати проблемою:
Precision промпт: (1) що шукати, (2) як оцінювати (severity), (3) як форматувати. Few-shot: 2-4 різноманітних приклади з ambiguous case. Всі приклади — в однаковому форматі.
Few-shot examples повинні бути різноманітними і покривати edge cases. 4 однакових приклади — марна трата контексту. Включіть ambiguous case. Рекомендована кількість — 2-4.
5.2 Structured Output через tool_use
Модуль 5 · Prompt Engineering (20%)OrderBot FreshMart повинен витягувати дані з інвойсів постачальників: назва, номер, дата, сума, товари. Промпт «Extract invoice data as JSON» іноді повертає JSON, іноді — текст з JSON всередині, іноді — markdown таблицю. Як гарантувати стабільний JSON кожного разу?
tool_use як механізм structured output
Замість «прохання» — примус через tool_choice:
Enum + "other": escape hatch
Жорсткий enum без «other» змушує модель вгадувати. З «other» — вона чесно каже «не знаю»:
Без escape hatch
"enum": ["USD", "EUR"]
Інвойс у CAD? Модель обере EUR — hallucination!
З escape hatch
"enum": ["USD", "EUR", "other"]
+ currency_raw для деталей
Інвойс у CAD? Модель: «other», raw: «CAD»
Nullable fields: ключ проти hallucination
Якщо поле може бути відсутнім — зробіть його nullable. Інакше модель вигадає значення:
tool_choice: {"type": "tool", "name": "X"} — примусовий structured output. Enum + «other» — escape hatch для невідомих значень. type: ["string", "null"] — запобігає hallucination для optional полів.
Не робіть поле required, якщо дані можуть бути відсутніми. Модель не може повернути null для required non-nullable поля — вона буде змушена вигадати (hallucinate).
5.3 Batch Processing та Review
Модуль 5 · Prompt Engineering (20%)FreshMart отримує 500 інвойсів від постачальників щомісяця. Обробляти по одному — дорого і повільно. Message Batches API — це «оптовий магазин» для API-запитів: 50% дешевше, обробка до 24 годин.
Message Batches API: 50% savings
Multi-pass review: незалежні instance
Для якісного review — кілька незалежних проходів, кожен з чистим контекстом:
Batch API: 50% дешевше, до 24 годин, custom_id для трекінгу. Self-review (та ж модель перевіряє свій output) має confirmation bias. Для якості — independent instances з чистим контекстом.
Self-review менш ефективна за independent review: модель схильна підтверджувати свої попередні рішення. Для якісного review — окремі API виклики з чистим контекстом і фокусом на конкретному аспекті.
1. Correctness: чи код робить те, що просили?
2. Security: вразливості, injection, secrets
3. Performance: O-нотація, N+1, memory
4. Maintainability: readability, naming, SOLID
Synthesis (звичайний API, потребує результатів): зводить 4 звіти в один.
6.1 Управління контекстом
Модуль 6 · Контекст та надійність (15%)OrderBot працює з клієнтом вже 30 хвилин: обговорили замовлення, повернення, знижку, новий адрес доставки. І раптом клієнт питає: «А що з тим поверненням?» Бот: «Яким поверненням?» Контекст загубився у довгій розмові. Як цього уникнути?
Lost-in-the-middle: де модель «бачить» найкраще
Модель найкраще бачить початок і кінець контексту. Середина — «мертва зона». Висновок: критичні факти — на початку (system prompt) або в кінці (останнє повідомлення).
3 техніки збереження контексту
1. Case facts block
2. Trimming tool outputs
3. Scratchpad files
Case facts block на початку system prompt — найефективніший спосіб зберегти критичну інформацію. Scratchpad file — для довгих сесій. /compact — коли контекст заповнюється. Lost-in-the-middle: важливе — на початку або кінці.
Progressive summarization (автоматичне стиснення) ризикує втратою деталей при кожному стисненні. Альтернатива: зберігайте критичні факти у case facts block або scratchpad, стискайте тільки діалоговий контекст.
2. Scratchpad file: структурований (Completed, Findings, TODO)
3. Trim outputs: до 2000 символів, повні дані — у файли
4. /compact: після кожних 20-30 tool calls
5. Final synthesis: Read scratchpad + Create report
6.2 Ескалація та обробка помилок
Модуль 6 · Контекст та надійність (15%)Клієнт FreshMart просить OrderBot повернути замовлення на $3,000. Бот повинен автоматично обробити? Ні. Це high-risk operation. Бот збирає інформацію, готує запит і передає людині. Ескалація — це фіча, а не failure.
5 тригерів ескалації
| Тригер | Приклад | Дія |
|---|---|---|
| Low confidence | Модель не впевнена (<70%) | Передати людині з контекстом |
| High-risk operation | Видалення даних, великі суми | Запитати підтвердження |
| Missing information | Не вистачає даних для рішення | Запитати додаткову інформацію |
| Policy violation | Запит за межами дозволеного | Повідомити + передати спеціалісту |
| Repeated failures | 3+ невдалих спроб | Зупинити + ескалювати |
Access failure vs Empty result
Access failure (is_error: true)
«Database connection refused»
Не змогли дістатися до даних. Retry або ескалація.
Empty result (is_error: false)
«No matching records», content: []
Дістались, але нічого немає. Інформуємо користувача.
Confidence calibration та information provenance
Ескалація — feature, а не failure. Access failure (is_error: true) vs Empty result (is_error: false) — критична різниця. Confidence calibration визначає routing: auto / review / escalate.
«Database returned 0 rows» — це empty result (is_error: false). «Database connection refused» — це access failure (is_error: true). Різниця визначає реакцію моделі.
Ми завершили всі теоретичні домени! Тепер — практика: 6 сценаріїв екзамену з реальними питаннями.
| Категорія | Ризик | Confidence | Дія |
|---|---|---|---|
| FAQ | Low | >70% | Auto |
| Статус замовлення | Low | >80% | Auto |
| Зміна адреси | Medium | >85% | Auto + verify |
| Повернення <$100 | Medium | >90% | Review (async) |
| Повернення >$100 | High | N/A | Escalate (завжди) |
7.1 Сценарії 1-3: Support, Code Gen, Research
Модуль 7 · Практичний екзаменВи вивчили всі 5 доменів. Тепер час перевірити, чи зможете ви застосувати ці знання у реальних сценаріях — таких самих, як на екзамені. Кожен сценарій перетинає кілька доменів одночасно.
Сценарій 1: Customer Support Agent
Ви проєктуєте AI-агента підтримки для e-commerce (як наш OrderBot): маршрутизація запитів, ескалація до людини, CRM інтеграція.
Tool Design (CRM tools) + Agentic Architecture (ескалація, routing) + Context Management (case facts) + Prompt Engineering (few-shot класифікація)
Сценарій 2: Code Generation з Claude Code
Налаштування Claude Code для команди: CLAUDE.md, commands, skills, MCP.
Сценарій 3: Multi-Agent Research
Мульти-агентна система для дослідження: збір, аналіз, синтез даних.
Сценарій 2: Config, MCP, Prompt. Найважливіший: Config. Помилка: монолітний CLAUDE.md.
Сценарій 3: Agentic, Context, Tools. Найважливіший: Agentic. Помилка: субагенти діляться контекстом.
7.2 Сценарії 4-6: Productivity, CI/CD, Data Extraction
Модуль 7 · Практичний екзаменДругий блок сценаріїв: як Claude Code підвищує продуктивність розробника, інтегрується в CI/CD, і витягує дані з тисяч документів.
Сценарій 4: Developer Productivity
Claude Code для code review, рефакторингу та автоматизації.
Сценарій 5: CI/CD Integration
Claude Code у pipeline: автоматичний review, structured output.
Сценарій 6: Structured Data Extraction
Обробка тисяч документів: tool_use, batch, validation-retry.
1. PDF Parser: PDF → text (pypdf + OCR)
2. Batch API: 10,000 запитів, tool_choice forced, custom_id = filename
3. Tool schema: nullable для optional, enum + other
4. Validator: jsonschema + бізнес-правила
5. Retry Queue: failed → single API (макс 2 спроби)
6. Output: JSON → PostgreSQL
7.3 Фінальний тест — 10 питань
Модуль 7 · Практичний екзаменФінальне випробування. 10 питань з усіх 5 доменів — подібні за стилем і складністю до реального екзамену. Відповідайте на всі — немає штрафу за помилку. Після кожної відповіді — детальне пояснення.
- 10 питань, всі 5 доменів
- Відповідайте на всі — немає штрафу за неправильну відповідь
- Детальне пояснення після кожної відповіді
Перед екзаменом рекомендуємо:
- Повторити слабкі домени (перегляньте квізи, де помилилися)
- Побудувати хоча б 1 agentic workflow з MCP (свій OrderBot)
- Пройти курси Anthropic Academy
- Пам'ятайте: 720/1000, немає штрафу, відповідайте на все
День 2: Практика: побудувати мініпроєкт з MCP, commands, CLAUDE.md. Протестувати Batch API.
День 3: Фінальний тест ще раз. Перечитати всі карточки «Ключове для екзамену» та «Пастка на екзамені».
Пам'ятайте: Домен 1 (Agentic Architecture) = 27% балу. Якщо він слабкий — це пріоритет #1.
