Перейти к содержимому
← Назад к блогу

Аудит-лог отвечает только на один из четырёх вопросов стека доверия

В августе 2026 я читал обзор KYA-подходов (arXiv 2605.25376) и сверял с ним свои таблицы вызовов инструментов. Обзор фиксирует незакрытые разрывы в трёх местах: идентичность агента, происхождение данных, проверяемые поведенческие контракты. Мои таблицы закрывали ровно один из четырёх вопросов.

Screenshot: набросок журнала вызовов, колонки call_id, mandate_id, depth, spend_cap, ts.

Четыре вопроса

IDENTITY   кто действует?
AUTHORITY  кто разрешил и в каких границах?
EVIDENCE   что произошло?
ASSURANCE  было ли правильно, и кто платит за ошибку?

Audit trail, lineage, redaction, retention закрывают третий вопрос. Observability-платформы добавили эти поверхности в 2025–2026, цены упали, аудит стал commodity. По остальным трём вопросам готовых ответов нет.

Идентичность: имя, которое переживёт ротацию ключа

Агенту нужен стабильный идентификатор, не привязанный к одному API-ключу или кошельку. W3C DID и Verifiable Credentials выиграли войну форматов, ERC-8004 добавила on-chain passport. Если логируете вызовы по id ключа, каждая ротация переписывает историю. Эти стандарты ставят рядом деньги и правила: дизайнерскую сторону этой границы разбираю в посте Дизайн для Web3: где доверие встречается с регуляцией.

Полномочия: мандат, а не политика в конфиге

Мандат это подписанный артефакт, который можно предъявить третьей стороне: кто выдал, что разрешено, когда истекает. Цепочка Google AP2 (Intent → Cart → Payment) переносится как W3C VC, UCAN, ZCAP-LD и macaroons решают ту же задачу в capability-системах. Схема на один файл: tool_calls.mandate_id ссылается на строку мандата, scope лежит в JSONB (разрешённые инструменты, лимит трат, окно времени). После этого строка approved в базе становится ссылкой на подписанный документ.

Цепочка делегирования: так не умеет никто

Человек → агент A → агент B → агент C. Кто разрешил финальный вызов? Обзор стандартов идентичности (arXiv 2604.23280) отвечает: ни одна production-система. Рабочая цепочка держит три свойства: каждое звено подписывает, каждое звено сужает scope, отзыв в корне каскадом гасит все листья. Теорию можно не решать. Достаточно честно записывать цепочку и уметь ответить «depth=3, root principal=P». Сейчас так не умеет почти никто.

Проверяемость: диспуты и кнопка стоп

Расчёты x402 финальны, chargeback нет. Когда инструмент взял $0.05 и вернул мусор, сегодня не происходит ничего. Нужны три части: escrow с таймаутом, протокол диспута с доказательствами из журнала, автоматический арбитраж для микроплатежей, потому что за одну копейку вручную не спорят. Журнал перестаёт быть бумагой и становится доказательством. Внутри интерфейса дешёвая версия этого доказательства: видимая уверенность модели. Разбираю в посте Glass-box AI: показываю уверенность модели чтобы люди доверяли.

Вторая половина assurance: остановка. Агента, сошедшего с ума в три часа ночи, можно поймать только стопом до следующего вызова, поэтому задержка отзыва — метрика, которую можно продавать: секунды или минуты.

Скучное берите готовым

Ротация ключей: GCP KMS. Trusted time: NTP плюс внешний сервис штампов, без подписанных меток времени порядок событий недоказуем. Адаптеры AP2, ERC-8004, MCP-I, Visa TAP, Mastercard Agent Pay: тонкие, по одному на протокол, пока стандарты воюют. Jurisdiction resolver: сначала обычная таблица правил. Такую таблицу я держу вне модели: зачем ей отдельный слой, разбираю в посте Почему вашему ИИ-агенту нужен комплаенс-слой.

Я собираю agent-facing поверхности и держу доказательства по каждому вызову. Форма контакта есть на сайте.

Проект: Дашборд комплаенса для ИИ-команд

Прочитали? К делу

Эти методы я применяю на платных проектах. Посмотрите, во сколько это обходится.