Об этом проекте
## Обзор
GIF (Governed Intelligence Framework) — это среда управления вызовами инструментов ИИ. Вместо регистрации действий агента постфактум она применяет политики до выполнения любого инструмента, на уровне MCP (Model Context Protocol). Проект формулирует проблему как проблему траекторий, а не записей: один агент может за секунды выполнить тысячи по отдельности допустимых запросов к несвязанным источникам данных, и вывод, сделанный из совокупности, сам по себе может быть нарушением, которое стандарты управления на уровне записей не улавливают.
## Что он делает
Когда агент ИИ вызывает инструмент, GIF:
1. Проверяет Persona — активна ли управляющая идентичность, находится ли она в пределах окна действия и разрешено ли ей вызывать инструмент.
2. Применяет область — вызовы за пределами объявленной области Persona отклоняются и фиксируются как полноценные события управления, а не как обычные ошибки.
3. Оценивает политики комбинирования — обработчики инструментов внедряющего вызывают предоставляемый GIF оценщик перед выполнением; если набор источников данных, затронутых в текущей сессии, пересекает объявленный порог чувствительности, вызов, завершающий эту комбинацию, блокируется. Пример из README: финансовые записи, кадровые записи и метаданные коммуникаций могут быть допустимы по отдельности, но их соединение через отдельные вызовы может быть недопустимым.
4. Записывает всё — разрешённые вызовы, отказы и сессии, с правами только для вставки на уровне базы данных.
## Ключевые понятия
- **Persona**: управляющая идентичность, несущая обязательную, ненулевую объявленную цель, явную область инструментов, временные границы действия и цепочку делегирования. Создаётся людьми-администраторами до действий ИИ.
- **Область**: перечислимый список разрешённых действий; инструменты за его пределами не могут быть вызваны.
- **Нарушение области**: полноценная запись управления, описываемая как доказательство того, что граница сработала.
- **Политика комбинирования**: объявленное правило о том, что определённый набор источников данных, доступ к которым осуществляется совместно в сессии, образует границу. GIF предоставляет схему, оценщик активных политик и семантику отказа в закрытом состоянии. Оценщик v0.1 использует разрешение политик по первому совпадению; исчерпывающая оценка указана как пункт траектории v0.2.
- **Журнал аудита**: только для вставки на уровне разрешений базы данных — роль приложения не может обновлять или удалять записи аудита.
- **Цепочка делегирования**: дочерние Persona содержат строгие подмножества родительской области, поэтому действия субагентов прослеживаются до корневой административной власти.
## Архитектура
Два контейнера Docker: PostgreSQL 16 и сервер MCP на Node.js. Клиенты отправляют POST на сервер MCP, который проверяет Persona, применяет область и направляет инструмент; PostgreSQL хранит personas, sessions, audit_events и scope_violations. Оценщик политик комбинирования предоставляется как примитив, который внедряющие серверы инструментов вызывают в своих собственных точках диспетчеризации. Механизм применения поставляется как импортируемый пакет (`gif-enforcement`), зарегистрированный как версионированная зависимость git, чтобы внедряющие могли добавлять доменные инструменты без изменения исходного кода GIF.
## Целостность аудита
Записи аудита связаны хеш-цепочкой на уровне базы данных: триггер вычисляет дайджест SHA-256 по канонической байтовой форме и связывает его с дайджестом предыдущей строки, поэтому постфактумное изменение или удаление разрывает цепочку. CLI-верификатор обходит разделы, пересчитывает дайджесты и сообщает о несоответствиях и разрывах цепочки. Каноническая форма и процедура проверки определены в отдельном репозитории Tamper-Evident Audit Record Contract (каноническая форма `audit-record-contract/1`, изначально представленная в MCP как SEP-3004), для которого GIF является эталонной реализацией. Зеркальный набор векторов находится в репозитории; README указывает, что `npm run vectors` ожидает прохождение 26 векторов.
## Быстрый старт
Предварительные требования — Docker Engine 24+, Docker Compose v2 и Git. Документированный поток клонирует тег `v0.2.4`, копирует `.env.example`, удаляя секрет-заполнитель, добавляет сгенерированный `IDENTITY_HMAC_SECRET`, задаёт реальные пароли и запускает `docker compose up -d --build`. База данных автоматически инициализирует роли, схему и миграции. Сервер MCP отказывается запускаться, если секрет HMAC остаётся заполнителем или короче 32 байт. Оба публикуемых порта по умолчанию привязываются к `127.0.0.1`; `GIF_BIND_ADDR` расширяет это, и указан runbook развёртывания в продакшене. Конечная точка MCP проверяет заголовок `Origin` браузера, отвечая 403 для запрещённых источников, если они не перечислены в `GIF_ALLOWED_ORIGINS`; клиенты, не отправляющие заголовок Origin, не затрагиваются. Состояние проверяется через `GET /health`.
## Текущее состояние
README рекомендует закреплять `v0.2.4`, который работает на субстрате MCP SDK 2.0 и несёт семантику управляющих сессий v0.2: явные дескрипторы `gif_session_id`, создаваемые `session_start`, закрытие по инициативе вызывающего и TTL по настенным часам. Основное применение описано как завершённое и проверенное сквозным образом на реальном экземпляре PostgreSQL 16, с набором интеграционных тестов и сценариями соответствия, запускаемыми при каждом коммите через CI, и строгим режимом TypeScript повсюду. В перечисленных поставленных возможностях: жизненный цикл persona, уровень применения MCP с транспортом Streamable HTTP, журнал аудита только для добавления с хеш-цепочкой и CLI-верификатором цепочки, обнаружение нарушений области, применение цепочки делегирования, управление сессиями, реестр инструментов и диспетчеризация на основе реестра, упаковка применения, примитив политики комбинирования и привязка идентичности провизионера через HMAC-токен идентичности.
Устаревший выпуск `v0.1.0` на выведенном из эксплуатации субстрате MCP SDK v1 больше не рекомендуется: в нём отсутствует усиление защиты SQL-идентификаторов (advisory GHSA-47gp-w74f-grvr) и он не получает обратных портов. README указывает, что инъекция затрагивает теги вплоть до `v0.2.0-rc.1` включительно, причём `v0.2.0-rc.2` — первый исправленный тег, и направляет существующих внедряющих к документу миграции. Дорожная карта усиления соответствия, охватывающая внешние якоря временных меток, шифрование при хранении, многоарендное операционное усиление и цепочки аудита по областям, задокументирована в обзоре продукта.
## Документация и лицензия
Репозиторий поставляет руководство простым языком, обзор продукта, разбор кодовой базы, диаграммы архитектуры, документ о секретах, runbooks для участников и внедряющих, а также исполняемые векторы соответствия. Лицензировано под Apache License 2.0; авторское право 2026 Notboatanchor Labs LLC.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.