Інтеграція AI API не готова, коли перший запит повернув 200. Вона готова, коли контракти, права, збої, повтори та збережені результати поводяться передбачувано.
Розглядайте модель як один компонент контрольованої бізнес-транзакції.
Спочатку контракт, потім промпт
Зафіксуйте endpoint, метод, авторизацію, схеми запиту й відповіді, коди, timeout, rate limits та версіонування.
Промпт не є API-контрактом. Перевіряйте вихід моделі за суворою схемою до запису.
Розділіть identity, authentication та authorisation
Використовуйте окрему service identity і мінімальні scopes. Розділіть читання та запис; не давайте видалення процесу оновлення.
OWASP відносить broken object-level authorisation і broken authentication до головних ризиків. Звіряйтеся зі статтею про захист даних.
Зберігайте секрети поза контентом
Токени мають бути в secret manager або захищеній конфігурації, не в промптах, логах, Trello чи коді.
Не передавайте конфіденційні дані до перевірки мети, умов постачальника, регіону, retention і прав.
Зробіть записи безпечними й повторюваними
Використовуйте idempotency key або transaction ID, якщо retry може створити дублікат. Після запису перечитайте ресурс.
Уточніть, чи оновлення часткове, чи повна заміна. Read-before-write потрібен для повного PUT.
- перевіряти власника об'єкта
- відхиляти зайві поля
- розділяти тимчасові та постійні помилки
- обмежувати retry і застосовувати backoff
- зберігати before/after важливих записів
Валідуйте кожну межу
Перевіряйте файли й URL, вихід моделі, tool arguments, API response і збережений запис. Дозволяйте лише потрібні адреси проти SSRF.
Для важливих дій застосовуйте human approval.
Спроєктуйте timeout, fallback і reconciliation
Розділіть timeout підключення й операції. Після timeout віддалений запис міг відбутися.
До повтору перевірте стан за transaction ID. Зіставляйте очікуване і фактичне.
Тестуйте систему цілком
Застосуйте сценарії з передзапускової перевірки: хибна схема, пропущене поле, прострочений токен, rate limit, timeout, дублікати, часткова відповідь і чужий об'єкт.
Приймання — правильний бізнес-стан, а не успішний HTTP.
Реальна пастка повного оновлення
В одному API PATCH відсутній, а PUT вимагає повний об'єкт статті. Оновлення лише status могло стерти інші поля.
Я виконую GET, зберігаю всі поля, змінюю одне значення, надсилаю повний PUT, знову роблю GET і порівнюю всі 21 поле. DELETE виключено, хоча токен має право.
Безпеку дала явна семантика методу та перевірка результату, а не код успіху.
Питання та відповіді
Чи має AI звертатися до API напряму?
Краще через контрольований tool-layer із валідацією й політиками.
Коли повторювати запит?
Лише за визначених тимчасових помилок і з лімітом. Невизначений запис спочатку звіряють.
Що таке idempotency?
Повтор одного логічного запиту не створює додаткових ефектів. Потрібен стабільний ключ.
Чи достатньо 200?
Ні. Перевірте збережений стан і бізнес-результат.
Що логувати?
ID, версію контракту, рішення політики, виклик, результат, помилку, retry і before/after без секретів.
Операційний аркуш контролю
До погодження внесіть кожен контроль у таблицю: власник, доказ, поріг і дата наступної перевірки. Фраза «контролювати якість» не є виконуваною. Правило «операційний власник щопонеділка перевіряє частку суттєвих виправлень і ставить процес на паузу вище погодженого порога» можна перевірити.
Пов'яжіть контроль із наслідком для бізнесу. Якщо помилка схеми може пошкодити запис клієнта, опишіть containment і reconciliation. Якщо стрибок вартості пояснюється сезонним обсягом, задайте контекст проти хибної ескалації.
Версіонуйте промпти, схеми, політики, інструменти та зовнішні залежності. Результат без конфігурації неможливо відтворити. Винятки повинні мати причину, власника і строк завершення.
Відрепетируйте людський шлях. Власник має знайти докази, зупинити або обмежити workflow, увімкнути fallback і пояснити стан без прохання до AI діагностувати себе.
