Agent Receipts

Responsabilidade criptográfica para agentes de IA. Recibos assinados com Ed25519 para cada chamada de ferramenta MCP — restrições, cadeias, julgamento de IA, faturamento, painel local.

Documentação

Agent Receipts

Seu agente de IA lembra de tudo — e você pode provar isso.

Memória persistente para agentes de IA, respaldada por recibos criptográficos. Cada fato que seu agente aprende é assinado, rastreável e verificável de forma independente. Sem necessidade de nuvem.

Live Demo Interactive Walkthrough npm version License: MIT

Experimente a Demonstração Interativa · Instale em 30 Segundos · Como é Diferente


O Problema

Você está construindo com agentes de IA. O Claude Code refatora seu módulo de autenticação e diz "pronto, todos os testes passam". Seu agente gera um orçamento para um cliente e diz que aplicou o preço correto. Seu assistente lembra das suas preferências da semana passada — mas você não consegue ver por que ele pensa isso, ou se está certo.

Três coisas estão quebradas:

  1. Agentes esquecem tudo entre sessões. Cada conversa começa do zero. O contexto é perdido. Você reexplica as mesmas coisas.

  2. Quando os agentes lembram, você não consegue ver o que está dentro. A memória da plataforma é uma caixa-preta. Você não consegue ver o que foi armazenado, quando ou por quê. Não consegue corrigir, exportar ou verificar.

  3. Não há prova do que os agentes realmente fizeram. Logs são mutáveis. Agentes escrevem seus próprios logs. "Atualizei 3 arquivos e todos os testes passam" — será mesmo? Você está confiando na palavra do agente sobre o próprio trabalho.

O que o Agent Receipts Faz

Memória que realmente funciona

Seu agente recebe memória estruturada e persistente entre sessões — pessoas, projetos, ferramentas, preferências, fatos. Não é um armazenamento simples de chave-valor. É um grafo de entidade-observação onde cada fato está vinculado à conversa que o criou.

# Your agent learns something
memory_observe → "User prefers TypeScript, uses Neovim, building a SaaS called ModQuote"

# Next session, it already knows
memory_context → loads everything: entities, observations, relationships, preferences

# You can search it
memory_recall → "what tech stack does the user prefer?" → structured results

# You can forget (and the forget itself is tracked)
memory_forget → soft delete with audit trail

O agente lida com isso automaticamente quando você adiciona o prompt de sistema. Você não gerencia a memória manualmente.

Prova que é realmente prova

Cada observação de memória e cada ação do agente produz um recibo — um documento JSON assinado com:

  • Assinatura Ed25519 — à prova de adulteração, verificável de forma independente
  • Hashes de entrada/saída — prova exatamente o que entrou e saiu (dados brutos nunca são armazenados)
  • Carimbos de data/hora — quando aconteceu, quando foi concluído
  • ID do agente — qual agente fez
  • Cadeia de proveniência — rastreie qualquer memória até a conversa que a criou

Isso não é registro de log. Logs são arquivos de texto mutáveis que o agente escreve sobre si mesmo. Recibos são provas criptográficas que um terceiro pode verificar sem confiar em você, no seu servidor ou no agente.

Tudo roda localmente

npx @agent-receipts/mcp-server

É isso. Sem chave de API. Sem conta. Sem nuvem. Sem taxa mensal. Nenhum dado sai da sua máquina. Banco de dados SQLite em ~/.agent-receipts/. Funciona offline.

Por Que Isso Existe

Eu estava construindo o ModQuote — um SaaS multi-tenant onde agentes de IA geram orçamentos para oficinas de proteção automotiva. Dinheiro real, clientes reais, responsabilidade real.

Quando o Claude gerou um orçamento de US$ 2.400 para PPF, eu precisava de respostas: Quais dados do veículo ele recebeu? Quais regras de preço ele aplicou? Se um cliente contestar o preço, posso provar o que aconteceu — não com uma entrada de log que o agente escreveu sobre si mesmo, mas com prova criptográfica?

Eu analisei as ferramentas existentes:

  • Mem0 — ótima memória, mas sem prova. Ela lembra das coisas, mas não consegue provar quando ou por que as aprendeu. As memórias são mutáveis.
  • Langfuse — ótima observabilidade, mas é rastreamento, não prova. Logs são internos ao seu sistema, não verificáveis por terceiros.
  • Zep — grafo de conhecimento temporal, mas hospedado e opaco.

Nenhuma delas conseguia responder: "Prove para alguém fora do seu sistema que este agente específico tomou esta ação específica com esta entrada específica neste momento específico."

Então construí o Agent Receipts. Agora cada geração de orçamento é um recibo assinado. Cada memória tem uma cadeia de proveniência. E quando alguém pergunta "como o agente chegou a esse número?" — eu entrego um recibo que eles podem verificar por conta própria.

Como é Diferente

Agent ReceiptsMem0LangfuseZep
MemóriaGrafo de entidade-observação assinadoExtração inteligente + consolidaçãoSem memóriaGrafo de conhecimento temporal
ProvaRecibos assinados Ed25519NenhumaRastreamentos mutáveisNenhuma
VerificaçãoOffline, por qualquer pessoa, sem servidorNãoNãoNão
Infraestruturanpx e pronto. Zero configuração.Requer LLM para extraçãoNuvem ou auto-hospedadoAPI na nuvem
CustoGratuito para sempre (local)Nível gratuito, depois pagoNível gratuito, depois pagoPago
ExportaçãoPacotes portáteis com verificação criptográficaExportação disponívelExportação via APINão
Trilha de auditoriaCadeia de recibos imutávelMutávelLogs mutáveisMutável

O Agent Receipts não é uma versão melhor dessas ferramentas. É algo diferente.

O Mem0 responde: "O que meu agente lembra?" O Langfuse responde: "O que aconteceu no meu pipeline de LLM?" O Agent Receipts responde: "Você consegue provar?"

Comece Agora

1. Adicione o Servidor MCP

Claude Code:

claude mcp add agent-receipts -- npx @agent-receipts/mcp-server

Claude Desktop (claude_desktop_config.json) / Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "agent-receipts": {
      "command": "npx",
      "args": ["@agent-receipts/mcp-server"]
    }
  }
}

2. Adicione o Prompt de Sistema

Isso informa ao seu agente quando observar memórias, recuperar contexto e rastrear ações — para que funcione automaticamente:

npx @agent-receipts/cli prompts claude-code

Copie a saída para as instruções do seu projeto ou prompt de sistema.

3. Comece a Usar

Seu agente agora vai:

  • Chamar memory_context no início das sessões para carregar o que sabe sobre você
  • Chamar memory_observe quando aprender algo que vale a pena lembrar
  • Chamar track_action quando realizar ações significativas
  • Assinar tudo com Ed25519

4. Veja o que Está Acontecendo

npx @agent-receipts/dashboard    # Web UI at localhost:3274
npx @agent-receipts/cli stats    # Terminal overview
npx @agent-receipts/cli memory entities  # See what your agent remembers

5. Experimente Antes de Instalar

Execute a demonstração interativa → — experimente memória, verificação e exportação de pacotes em 60 segundos. Sem necessidade de instalação.

O que Está Incluído

  • 24 ferramentas MCP — memória, ações, verificação, restrições, julgamentos, faturamento, pacotes
  • 21 métodos de SDK — API TypeScript completa
  • 14 comandos CLI + 9 subcomandos de memória — primeiro no terminal
  • 18 páginas de painel — recibos, grafo de memória, cadeias, agentes, restrições, julgamentos, faturas
  • 492 testes — zero any TypeScript, zero avisos ESLint
  • Ed25519 + SHA-256 — via @noble/ed25519 (auditado, JS puro)
  • SQLite + FTS5 — local-first com busca de memória em texto completo

Pacotes de Memória Portáteis

Exporte toda a memória do seu agente como um único arquivo verificável:

npx @agent-receipts/cli memory export > my-project.bundle.json

O pacote inclui cada entidade, observação, relacionamento, os recibos que os criaram e a chave pública necessária para verificar tudo. Entregue a outro agente, outra equipe ou outra instância do Agent Receipts — eles podem verificar cada fato sem confiar em você.

Links

Demonstração InterativaExperimente no seu navegador — 60 segundos
Painel ao VivoVeja o painel completo com dados de exemplo
Como FuncionaAnatomia do recibo, modelo de memória, história do ModQuote
npmTodos os 6 pacotes
Referência Completa da API do SDK (21 métodos)

Rastreamento de Ações

  • ar.track(params) — Rastreie uma ação concluída com hash automático
  • ar.start(params) — Crie um recibo pendente
  • ar.complete(receiptId, params) — Complete um recibo pendente
  • ar.verify(receiptId) — Verifique a assinatura Ed25519 de um recibo
  • ar.get(receiptId) — Obtenha um recibo por ID
  • ar.list(filter?) — Liste recibos com filtragem e paginação
  • ar.getPublicKey() — Obtenha a chave pública de assinatura
  • ar.getJudgments(receiptId) — Obtenha julgamentos para um recibo
  • ar.cleanup() — Exclua recibos expirados
  • ar.generateInvoice(options) — Gere fatura a partir de recibos

Memória

  • ar.context(params?) — Obtenha despejo completo do contexto de memória para inicialização de sessão
  • ar.observe(params) — Armazene uma observação de memória (sempre com recibo)
  • ar.recall(params?) — Busque memórias (silencioso por padrão, audited: true para recibo)
  • ar.forget(params) — Exclusão suave de observação ou entidade (sempre com recibo)
  • ar.entities(filters?) — Liste entidades
  • ar.relate(params) — Crie relacionamento entre entidades
  • ar.provenance(observationId) — Obtenha cadeia de proveniência
  • ar.memoryAudit(params?) — Relatório de auditoria de memória

Pacotes

  • ar.exportBundle(params?) — Exporte pacote de memória portátil e verificável
  • ar.importBundle(bundle, params?) — Importe e verifique um pacote de memória

Aliases

  • ar.emit(params) — Alias para track()
Referência Completa das Ferramentas MCP (24 ferramentas)
FerramentaDescriçãoParâmetros Principais
track_actionRastreie uma ação do agente com hash automáticoaction, input, output, constraints
create_receiptCrie um recibo com hashes pré-computadosaction, input_hash, output_hash
complete_receiptComplete um recibo pendente com resultadosreceipt_id, output, status
verify_receiptVerifique a assinatura criptográficareceipt_id
get_receiptRecupere um recibo por IDreceipt_id
list_receiptsListe recibos com filtragemagent_id, status, chain_id
get_chainObtenha todos os recibos em uma cadeiachain_id
get_public_keyExporte a chave pública Ed25519—
judge_receiptInicie avaliação do AI Judgereceipt_id, rubric
complete_judgmentComplete um julgamento pendentereceipt_id, verdict, score
get_judgmentsObtenha todos os julgamentos para um reciboreceipt_id
cleanupExclua recibos expiradosdry_run, cleanup_memory
generate_invoiceGere fatura a partir de recibosfrom, to, format
get_startedGuia de primeiros passos—
memory_contextDespejo completo de contexto para inicialização de sessãoscope, max_entities
memory_observeArmazene uma observação de memóriaentity_name, entity_type, content
memory_recallBusque memórias armazenadasquery, entity_type, scope
memory_forgetExclusão suave de observação ou entidadeentity_id ou observation_id
memory_entitiesListe entidades conhecidasentity_type, scope, query
memory_relateCrie relacionamento entre entidadesfrom_entity_id, to_entity_id, type
memory_provenanceCadeia de proveniência para observaçãoobservation_id
memory_auditRelatório de auditoria de operações de memóriaagent_id, from, to
memory_export_bundleExporte pacote de memória portátilentity_ids, include_receipts
memory_import_bundleImporte e verifique pacote de memóriabundle, skip_existing
Referência Completa da CLI | Comando | Descrição | |---------|-------------| | `init` | Criar diretório de dados e gerar chaves de assinatura | | `keys [--export] [--import]` | Exibir, exportar ou importar chaves de assinatura | | `inspect ` | Exibir um recibo de forma legível | | `verify [--key]` | Verificar a assinatura de um recibo | | `list [--agent] [--status] [--json]` | Listar recibos com filtros | | `chain [--tree]` | Mostrar cadeia de recibos | | `judgments [--json]` | Listar julgamentos de um recibo | | `cleanup [--dry-run]` | Excluir recibos expirados | | `stats` | Agregar estatísticas de recibos | | `export [--pretty]` | Exportar recibos como JSON | | `invoice --from --to [--format]` | Gerar fatura | | `seed [--demo] [--count] [--clean]` | Semear dados de demonstração | | `watch [--agent] [--action]` | Observar novos recibos | | `prompts ` | Guia de configuração (claude-code, cursor, sistema) | | `memory context` | Resumo do contexto de memória | | `memory observe ` | Armazenar observação | | `memory recall [query]` | Buscar memórias | | `memory entities [--type]` | Listar entidades | | `memory forget ` | Esquecer observação ou entidade | | `memory audit` | Relatório de auditoria de memória | | `memory provenance ` | Cadeia de proveniência | | `memory export` | Exportar memórias como JSON | | `memory import ` | Importar memórias |
Configuração
Variável de AmbienteDescriçãoPadrão
AGENT_RECEIPTS_DATA_DIRCaminho do diretório de dados~/.agent-receipts
AGENT_RECEIPTS_AGENT_IDID de agente padrãolocal-agent
AGENT_RECEIPTS_ORG_IDID da organizaçãolocal-org
AGENT_RECEIPTS_ENVIRONMENTRótulo do ambienteproduction
RECEIPT_SIGNING_PRIVATE_KEYChave privada Ed25519 (hex)Gerada automaticamente

Armazenamento:

~/.agent-receipts/
├── keys/
│   ├── private.key    # Ed25519 private key (mode 0600)
│   └── public.key     # Ed25519 public key
├── receipts.db        # SQLite database (receipts + memory)
└── config.json        # Agent and org configuration

Pacotes

PacoteDescrição
@agent-receipts/schemaEsquemas Zod e tipos TypeScript
@agent-receipts/cryptoAssinatura Ed25519, verificação, gerenciamento de chaves
@agent-receipts/mcp-serverServidor MCP com 24 ferramentas
@agent-receipts/sdkSDK TypeScript (21 métodos)
@agent-receipts/cliInterface de linha de comando
@agent-receipts/dashboardInterface web Mission Control

Roadmap

  • Camada em nuvem — painéis de equipe, sincronização de memória multi-agente, verificação entre organizações
  • Recuperação semântica — busca de memória com embeddings
  • Adaptadores de frameworks — integrações LangChain, CrewAI, AutoGen
  • Pontes de confiança entre organizações — duas organizações verificando os recibos de agentes uma da outra

Licença

MIT


Construído por Amin Suleiman — construindo ModQuote e Agent Receipts.