Об этом проекте

## Обзор 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.