Sobre o projeto
## Visão geral
GIF (Governed Intelligence Framework) é um runtime de governança para invocação de ferramentas de IA. Em vez de registrar o que um agente fez após o fato, ele impõe políticas antes de qualquer ferramenta ser executada, na camada MCP (Model Context Protocol). O projeto enquadra o problema como um de trajetórias em vez de registros: um único agente pode emitir milhares de consultas individualmente permitidas em fontes de dados não relacionadas em segundos, e a inferência extraída do agregado pode ser, ela própria, uma violação que os padrões de governança em nível de registro não capturam.
## O que ele faz
Quando um agente de IA invoca uma ferramenta, o GIF:
1. Verifica a Persona — se a identidade de governança está ativa, dentro de sua janela de validade e autorizada a chamar a ferramenta.
2. Impõe escopo — chamadas fora do escopo declarado da Persona são rejeitadas e registradas como eventos de governança de primeira classe, em vez de erros comuns.
3. Avalia políticas de combinação — os manipuladores de ferramentas do adotante chamam um avaliador fornecido pelo GIF antes da execução; se o conjunto de fontes de dados acessadas na sessão atual ultrapassar um limite de sensibilidade declarado, a chamada que completa essa combinação é bloqueada. O exemplo do README: registros financeiros, registros de RH e metadados de comunicações podem ser permitidos isoladamente, mas sua junção entre chamadas separadas pode não ser.
4. Registra tudo — chamadas permitidas, rejeições e sessões, com permissões somente INSERT no nível do banco de dados.
## Conceitos-chave
- **Persona**: uma identidade de governança que carrega um propósito declarado obrigatório e não anulável, escopo explícito de ferramentas, limites de validade temporal e uma cadeia de delegação. Criada por administradores humanos antes da ação da IA.
- **Escopo**: uma lista enumerada de ações permitidas; ferramentas fora dela não podem ser chamadas.
- **Violação de escopo**: um registro de governança de primeira classe, descrito como evidência de que o limite funcionou.
- **Política de combinação**: uma regra declarada de que um conjunto específico de fontes de dados acessadas em conjunto em uma sessão constitui um limite. O GIF fornece o esquema, um avaliador de políticas ativas e semântica de falha fechada. O avaliador v0.1 usa resolução de política por primeira correspondência; a avaliação exaustiva está listada como um item de trajetória v0.2.
- **Trilha de auditoria**: somente INSERT no nível de permissão do banco de dados — a função da aplicação não pode executar UPDATE ou DELETE nos registros de auditoria.
- **Cadeia de delegação**: Personas filhas possuem subconjuntos estritos do escopo da Persona pai, de modo que as ações de subagentes rastreiam de volta à autoridade administrativa raiz.
## Arquitetura
Dois contêineres Docker: PostgreSQL 16 e um servidor MCP Node.js. Os clientes fazem POST no servidor MCP, que valida a Persona, impõe o escopo e despacha a ferramenta; o PostgreSQL armazena personas, sessões, audit_events e scope_violations. O avaliador de políticas de combinação é exposto como uma primitiva que os servidores de ferramentas adotantes invocam em seus próprios pontos de despacho. O motor de imposição é distribuído como um pacote importável (`gif-enforcement`), registrado como uma dependência git versionada, para que os adotantes possam adicionar ferramentas de domínio sem modificar o código-fonte do GIF.
## Integridade da auditoria
Os registros de auditoria são encadeados por hash na camada do banco de dados: um gatilho calcula um resumo SHA-256 sobre uma forma canônica de bytes e o vincula ao resumo da linha anterior, de modo que a mutação ou exclusão posterior quebra a cadeia. Uma CLI verificadora percorre partições, recalcula os resumos e relata incompatibilidades e quebras de cadeia. A forma canônica e o procedimento de verificação são especificados em um repositório separado de Contrato de Registro de Auditoria à Prova de Violação (forma canônica `audit-record-contract/1`, originalmente submetido ao MCP como SEP-3004), para o qual o GIF é a implementação de referência. Um conjunto de vetores espelhado vive no repositório; o README afirma que `npm run vectors` espera 26 vetores passando.
## Início rápido
Os pré-requisitos são Docker Engine 24+, Docker Compose v2 e Git. O fluxo documentado clona a tag `v0.2.4`, copia `.env.example` removendo o segredo placeholder, anexa um `IDENTITY_HMAC_SECRET` gerado, define senhas reais e executa `docker compose up -d --build`. O banco de dados inicializa funções, esquema e migrações automaticamente. O servidor MCP se recusa a iniciar se o segredo HMAC permanecer como placeholder ou tiver menos de 32 bytes. Ambas as portas publicadas vinculam-se a `127.0.0.1` por padrão; `GIF_BIND_ADDR` amplia isso, e um runbook de implantação em produção é referenciado. O endpoint MCP valida o cabeçalho `Origin` do navegador, respondendo 403 para origens não permitidas, a menos que listadas em `GIF_ALLOWED_ORIGINS`; clientes que não enviam cabeçalho Origin não são afetados. A saúde é verificada via `GET /health`.
## Estado atual
O README recomenda fixar `v0.2.4`, que roda sobre o substrato MCP SDK 2.0 e carrega a semântica de sessão de governança v0.2: handles `gif_session_id` explícitos emitidos por `session_start`, fechamento conduzido pelo chamador e TTL de relógio de parede. A imposição central é descrita como completa e validada de ponta a ponta contra uma instância real do PostgreSQL 16, com uma suíte de integração e cenários de conformidade executados em cada commit via CI, e modo estrito do TypeScript em todo o código. As capacidades distribuídas listadas incluem ciclo de vida de persona, a camada de imposição MCP com transporte HTTP Streamable, a trilha de auditoria somente anexação encadeada por hash com uma CLI verificadora de cadeia, detecção de violação de escopo, imposição de cadeia de delegação, gerenciamento de sessões, registro de ferramentas e despacho conduzido por registro, empacotamento de imposição, a primitiva de política de combinação e vinculação de identidade do provisionador via token de identidade HMAC.
Um release legado `v0.1.0` sobre o substrato aposentado MCP SDK v1 não é mais recomendado: ele carece de endurecimento de identificadores SQL (advisory GHSA-47gp-w74f-grvr) e não recebe backports. O README afirma que a injeção afeta tags até e incluindo `v0.2.0-rc.1`, com `v0.2.0-rc.2` sendo a primeira tag corrigida, e aponta os adotantes existentes para um documento de migração. Um roteiro de endurecimento de conformidade cobrindo âncoras de carimbo de tempo externas, criptografia em repouso, endurecimento operacional multi-inquilino e cadeias de auditoria por escopo está documentado na visão geral do produto.
## Documentação e licença
O repositório inclui um guia em linguagem simples, uma visão geral do produto, um passo a passo da base de código, diagramas de arquitetura, um documento de segredos, runbooks para contribuidores e adotantes, e vetores de conformidade executáveis. Licenciado sob Apache License 2.0; copyright 2026 Notboatanchor Labs LLC.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.