TL-Agent · Контроль действий ИИ-агента на нотариальных квитанциях

Агент не может разрешить себе действие сам.
И не может переписать, что сделал.

TL-Agent даёт ИИ-агенту разрешения в виде нотариальных квитанций сети TimeLayer — квитанций, которые он не способен выписать себе сам. Каждое действие подкреплено одной из них. История — неподделываемая, проверяется офлайн любой третьей стороной.

НЕТ КВИТАНЦИИ — НЕТ ДЕЙСТВИЯ
  • Контроль действий. Каждое действие проходит через гейт: нет валидной квитанции — действие не выполняется. Топология задаёт, что вообще позволено.
  • Неподделываемая история. Что агент сделал — записано квитанциями, которые ни агент, ни оператор не могут переписать. Проверяется офлайн третьей стороной.
  • Fail-closed по замыслу. Конфликт, отсутствие разрешения, неизвестное действие → агент останавливается и ждёт человека. Молчание — безопасный отказ, а не скрытый успех.

Автономным ИИ-агентам сегодня нечем себя ограничить и нечем себя доказать.

  • Агент может сам себе «разрешить» действие или заявить, что что-то сделал — на слово модели, без всякого доказательства.
  • Его лог действий живёт у оператора и редактируем. Третья сторона не может проверить, что было на самом деле.
  • Нет машинно-проверяемой границы между «что агенту позволено» и «что он реально сделал».

Когда агент тратит деньги, шлёт письма и меняет данные от вашего имени — «доверяй логу» это не ответ.

Разрешения и история агента становятся нотариальными квитанциями — которые он не может выписать себе и не может переписать.

  • Перед действием SDK проверяет: есть ли валидная квитанция-разрешение, объявлено ли действие в топологии, проходит ли нотариальная подпись офлайн-проверку. Нет → STOP.
  • Что агент сделал, фиксируется квитанциями результата — портативная, защищённая от подмены история, которая едет с агентом.
  • Любой проверяет эту историю офлайн открытым верификатором — без доверия к оператору агента.

Почему не просто повесить проверки в коде агента?

Первый вопрос разработчика: «я и сам могу добавить флаги и логи». Разница вот в чём:

Сам (флаги + лог в коде)TL-Agent
Агент по сути сам решает — может «разрешить» себе обойти проверку Разрешение — нотариальная квитанция, которую агент не выпускает сам (INV-01)
История — лог у оператора, редактируем История — квитанции, которые нельзя переписать, проверка третьей стороной
Доверие — к твоему коду и серверу Доверие — к кворуму независимых операторов, офлайн-проверка открытым кодом
«Сделано» — на слово модели «Сделано» — только при наличии квитанции (INV-06: текст модели не доказательство)

Одной строкой: проверку в коде агент обходит; нотариальную квитанцию, которую он не может выписать себе, — нет.

Память, в которой агент не может соврать

ИИ-агенты теряют память между сессиями — но даже та память, что есть (векторные базы, контекст), имеет дыру: её можно галлюцинировать или отредактировать. TL-Agent добавляет недостающий слой:

Не замена памяти — та её часть, которой нельзя соврать. Проверяемая, неподделываемая, портативная история того, что агент доказуемо сделал. Обычная память отвечает «что я знаю»; квитанции отвечают «что я на самом деле сделал — и это нельзя переписать».

Честно: квитанции не хранят содержимое и не делают смысловой поиск — это провенанс, а не recall. Зато это история, которую агент не может подделать. Этого нет ни у одной памяти.

Один вызов в цикле агента

Открытый Rust SDK, GitHub, без сетевых вызовов в гейте:

let bundle = AgentBundle::load("./agent-bundle")?; match bundle.check_action("action_read_files") { CheckResult::Allow(receipt) => { // выполнить — разрешение нотариально подтверждено } CheckResult::Stop { reason, .. } => { // остановиться — NO_RECEIPT, TOPOLOGY_VIOLATION и т.д. } }

Exit code 0 = ALLOW, 1 = STOP. Подключается к любому shell-скрипту или CI.

CLI-команды

  • tl-agent check — гейт перед действием
  • tl-agent next — допустимые следующие шаги
  • tl-agent audit — проверка всего bundle
  • tl-agent record — запись выполнения с дайджестом

Bundle собирается в кабинете

  • Задайте действия и топологию визуально
  • Каждое действие получает нотаризованную квитанцию
  • Скачайте готовый ZIP-bundle
  • Используйте с Rust SDK или CLI сразу

Air-gapped режим — для регулируемых отраслей

Допуски агента — на физическом носителе, который он не может переписать.

Bundle — это просто папка, поэтому одни и те же допуски запускаются как из контейнера на диске, так и с USB-флешки — на выбор. Лог или простая запись так не умеют: они привязаны к серверу, который их написал. Нотариальная квитанция проверяется офлайн на любой машине — допуски можно унести на флешке, и они останутся защищёнными от подмены и самопроверяемыми.

  • Bundle лежит на съёмном read-only носителе. Агент только читает — выписать себе новое разрешение физически не может.
  • Результаты кладутся на отдельный носитель; заверение происходит вне агентской среды.
  • Чтобы дать больше — квитанцию не правят (она неизменяема), а собирают новый bundle: новые действия получают свежие квитанции, старые лежат рядом нетронутыми.
  • Для финтеха, юр-теха, медицины, госсектора — где «агент не должен иметь возможности сам себя разблокировать» это требование, а не пожелание.
Честная рамка: защищает от агента, не от взломанного хоста. Нужен настоящий аппаратный read-only. Заверение новой квитанции требует онлайн-момента. Это опция, не обязаловка — обычный режим работает из файловой системы.

Что мы говорим честно

  • Сеть TimeLayer: кворум независимых операторов, публичные ключи на GitHub
  • Подписи: Ed25519, хеш-обязательство квантово-устойчиво; постквантовые подписи — в дорожной карте
  • TL-Agent — guardrails + неподделываемый аудит для кооперативного агента, а не песочница, физически запирающая злонамеренный код
  • Не память в смысле recall — провенанс. Не обещаем «агент будет всё помнить»
  • Внешний аудит сети — в дорожной карте; «живая честная сеть, а не сертифицированная»
НЕТ КВИТАНЦИИ — НЕТ ДЕЙСТВИЯ

Часть экосистемы TimeLayer