Аудит-лог отвечает только на один из четырёх вопросов стека доверия
В августе 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 поверхности и держу доказательства по каждому вызову. Форма контакта есть на сайте.