Agent Receipts
Responsabilidad criptográfica para agentes de IA. Recibos firmados con Ed25519 para cada llamada de herramienta MCP: restricciones, cadenas, juicio de IA, facturación, panel local.
Documentación
Agent Receipts
Tu agente de IA recuerda todo — y puedes demostrarlo.
Memoria persistente para agentes de IA, respaldada por recibos criptográficos. Cada hecho que tu agente aprende está firmado, es rastreable y verificable de forma independiente. No se requiere nube.
Prueba la Demo Interactiva · Instala en 30 Segundos · Cómo Es Diferente
El Problema
Estás construyendo con agentes de IA. Claude Code refactoriza tu módulo de autenticación y dice "listo, todas las pruebas pasan". Tu agente genera una cotización para un cliente y dice que aplicó el precio correcto. Tu asistente recuerda tus preferencias de la semana pasada — pero no puedes ver por qué piensa eso, ni si es correcto.
Tres cosas están rotas:
-
Los agentes olvidan todo entre sesiones. Cada conversación comienza desde cero. El contexto se pierde. Vuelves a explicar las mismas cosas.
-
Cuando los agentes recuerdan, no puedes ver el interior. La memoria de la plataforma es una caja negra. No puedes ver qué almacenó, cuándo o por qué. No puedes corregirla, exportarla ni verificarla.
-
No hay prueba de lo que los agentes realmente hicieron. Los registros son mutables. Los agentes escriben sus propios registros. "Actualicé 3 archivos y todas las pruebas pasan" — ¿lo hizo? Estás confiando en la palabra del agente sobre su propio trabajo.
Qué Hace Agent Receipts
Memoria que realmente funciona
Tu agente obtiene memoria estructurada y persistente entre sesiones — personas, proyectos, herramientas, preferencias, hechos. No es un almacén plano de clave-valor. Es un grafo de entidad-observación donde cada hecho se vincula a la conversación que lo creó.
# 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
El agente maneja esto automáticamente cuando agregas el prompt del sistema. No gestionas la memoria manualmente.
Prueba que es realmente prueba
Cada observación de memoria y cada acción del agente produce un recibo — un documento JSON firmado con:
- Firma Ed25519 — a prueba de manipulaciones, verificable de forma independiente
- Hashes de entrada/salida — prueba exactamente qué entró y salió (los datos brutos nunca se almacenan)
- Marcas de tiempo — cuándo ocurrió, cuándo se completó
- ID del agente — qué agente lo hizo
- Cadena de procedencia — rastrea cualquier memoria hasta la conversación que la creó
Esto no es registro. Los registros son archivos de texto mutables que el agente escribe sobre sí mismo. Los recibos son prueba criptográfica que un tercero puede verificar sin confiar en ti, en tu servidor o en el agente.
Todo se ejecuta localmente
npx @agent-receipts/mcp-server
Eso es todo. Sin clave de API. Sin cuenta. Sin nube. Sin tarifa mensual. Ningún dato sale de tu máquina. Base de datos SQLite en ~/.agent-receipts/. Funciona sin conexión.
Por Qué Existe Esto
Estaba construyendo ModQuote — un SaaS multiinquilino donde los agentes de IA generan cotizaciones para talleres de protección automotriz. Dinero real, clientes reales, responsabilidad real.
Cuando Claude generó una cotización de PPF de $2,400, necesitaba respuestas: ¿Qué datos del vehículo recibió? ¿Qué reglas de precios aplicó? Si un cliente disputa el precio, ¿puedo demostrar lo que sucedió — no con una entrada de registro que el agente escribió sobre sí mismo, sino con prueba criptográfica?
Miré las herramientas existentes:
- Mem0 — gran memoria, pero sin prueba. Recuerda cosas, pero no puede probar cuándo o por qué las aprendió. Los recuerdos son mutables.
- Langfuse — gran observabilidad, pero es rastreo, no prueba. Los registros son internos a tu sistema, no verificables por terceros.
- Zep — grafo de conocimiento temporal, pero alojado y opaco.
Ninguno de ellos pudo responder: "Demuestra a alguien fuera de tu sistema que este agente específico tomó esta acción específica con esta entrada específica en este momento específico."
Así que construí Agent Receipts. Ahora cada generación de cotización es un recibo firmado. Cada memoria tiene una cadena de procedencia. Y cuando alguien pregunta "¿cómo llegó el agente a ese número?" — les doy un recibo que pueden verificar ellos mismos.
Cómo Es Diferente
| Agent Receipts | Mem0 | Langfuse | Zep | |
|---|---|---|---|---|
| Memoria | Grafo de entidad-observación firmado | Extracción inteligente + consolidación | Sin memoria | Grafo de conocimiento temporal |
| Prueba | Recibos firmados Ed25519 | Ninguna | Trazas mutables | Ninguna |
| Verificación | Sin conexión, por cualquiera, sin servidor | No | No | No |
| Infraestructura | npx y listo. Configuración cero. | Requiere LLM para extracción | Nube o autoalojado | API en la nube |
| Costo | Gratis para siempre (local) | Nivel gratuito, luego de pago | Nivel gratuito, luego de pago | De pago |
| Exportación | Paquetes portátiles con verificación criptográfica | Exportación disponible | Exportación por API | No |
| Rastro de auditoría | Cadena de recibos inmutable | Mutable | Registros mutables | Mutable |
Agent Receipts no es una mejor versión de estas herramientas. Es algo diferente.
Mem0 responde: "¿Qué recuerda mi agente?" Langfuse responde: "¿Qué sucedió en mi pipeline de LLM?" Agent Receipts responde: "¿Puedes demostrarlo?"
Comienza
1. Agrega el 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. Agrega el Prompt del Sistema
Esto le dice a tu agente cuándo observar memorias, recordar contexto y rastrear acciones — para que funcione automáticamente:
npx @agent-receipts/cli prompts claude-code
Copia la salida en las instrucciones de tu proyecto o en el prompt del sistema.
3. Empieza a Usarlo
Tu agente ahora:
- Llamará a
memory_contextal inicio de las sesiones para cargar lo que sabe sobre ti - Llamará a
memory_observecuando aprenda algo que valga la pena recordar - Llamará a
track_actioncuando realice acciones significativas - Firmará todo con Ed25519
4. Ve lo que Está Sucediendo
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. Prueba Antes de Instalar
Ejecuta la demo interactiva → — experimenta memoria, verificación y exportación de paquetes en 60 segundos. No se requiere instalación.
Qué Hay Dentro
- 24 herramientas MCP — memoria, acciones, verificación, restricciones, juicios, facturación, paquetes
- 21 métodos SDK — API completa de TypeScript
- 14 comandos CLI + 9 subcomandos de memoria — primero en terminal
- 18 páginas de panel — recibos, grafo de memoria, cadenas, agentes, restricciones, juicios, facturas
- 492 pruebas — cero
anyde TypeScript, cero advertencias de ESLint - Ed25519 + SHA-256 — mediante
@noble/ed25519(auditado, JS puro) - SQLite + FTS5 — local primero con búsqueda de memoria de texto completo
Paquetes de Memoria Portátiles
Exporta toda la memoria de tu agente como un único archivo verificable:
npx @agent-receipts/cli memory export > my-project.bundle.json
El paquete incluye cada entidad, observación, relación, los recibos que los crearon y la clave pública necesaria para verificar todo. Entrégalo a otro agente, otro equipo u otra instancia de Agent Receipts — pueden verificar cada hecho sin confiar en ti.
Enlaces
| Demo Interactiva | Pruébala en tu navegador — 60 segundos |
| Panel en Vivo | Ve el panel completo con datos de muestra |
| Cómo Funciona | Anatomía del recibo, modelo de memoria, historia de ModQuote |
| npm | Los 6 paquetes |
Referencia completa de la API del SDK (21 métodos)
Seguimiento de Acciones
ar.track(params)— Rastrea una acción completada con hash automáticoar.start(params)— Crea un recibo pendientear.complete(receiptId, params)— Completa un recibo pendientear.verify(receiptId)— Verifica la firma Ed25519 de un reciboar.get(receiptId)— Obtén un recibo por IDar.list(filter?)— Lista recibos con filtrado y paginaciónar.getPublicKey()— Obtén la clave pública de firmaar.getJudgments(receiptId)— Obtén juicios para un reciboar.cleanup()— Elimina recibos expiradosar.generateInvoice(options)— Genera factura a partir de recibos
Memoria
ar.context(params?)— Obtén volcado completo del contexto de memoria para la inicialización de sesiónar.observe(params)— Almacena una observación de memoria (siempre con recibo)ar.recall(params?)— Busca memorias (silencioso por defecto,audited: truepara recibo)ar.forget(params)— Eliminación suave de observación o entidad (siempre con recibo)ar.entities(filters?)— Lista entidadesar.relate(params)— Crea relación de entidadar.provenance(observationId)— Obtén cadena de procedenciaar.memoryAudit(params?)— Informe de auditoría de memoria
Paquetes
ar.exportBundle(params?)— Exporta paquete de memoria portátil y verificablear.importBundle(bundle, params?)— Importa y verifica un paquete de memoria
Alias
ar.emit(params)— Alias paratrack()
Referencia completa de herramientas MCP (24 herramientas)
| Herramienta | Descripción | Parámetros Clave |
|---|---|---|
track_action | Rastrea una acción del agente con hash automático | action, input, output, constraints |
create_receipt | Crea un recibo con hashes precalculados | action, input_hash, output_hash |
complete_receipt | Completa un recibo pendiente con resultados | receipt_id, output, status |
verify_receipt | Verifica la firma criptográfica | receipt_id |
get_receipt | Recupera un recibo por ID | receipt_id |
list_receipts | Lista recibos con filtrado | agent_id, status, chain_id |
get_chain | Obtén todos los recibos en una cadena | chain_id |
get_public_key | Exporta la clave pública Ed25519 | — |
judge_receipt | Inicia la evaluación del Juez IA | receipt_id, rubric |
complete_judgment | Completa un juicio pendiente | receipt_id, verdict, score |
get_judgments | Obtén todos los juicios para un recibo | receipt_id |
cleanup | Elimina recibos expirados | dry_run, cleanup_memory |
generate_invoice | Genera factura a partir de recibos | from, to, format |
get_started | Guía de inicio | — |
memory_context | Volcado completo de contexto para inicialización de sesión | scope, max_entities |
memory_observe | Almacena una observación de memoria | entity_name, entity_type, content |
memory_recall | Busca memorias almacenadas | query, entity_type, scope |
memory_forget | Eliminación suave de observación o entidad | entity_id o observation_id |
memory_entities | Lista entidades conocidas | entity_type, scope, query |
memory_relate | Crea relación de entidad | from_entity_id, to_entity_id, type |
memory_provenance | Cadena de procedencia para observación | observation_id |
memory_audit | Informe de auditoría de operaciones de memoria | agent_id, from, to |
memory_export_bundle | Exporta paquete de memoria portátil | entity_ids, include_receipts |
memory_import_bundle | Importa y verifica paquete de memoria | bundle, skip_existing |
Referencia completa de CLI
| Comando | Descripción | |---------|-------------| | `init` | Crear directorio de datos y generar claves de firma | | `keys [--export] [--import]` | Mostrar, exportar o importar claves de firma | | `inspect ` | Imprimir un recibo de forma legible | | `verify [--key]` | Verificar la firma de un recibo | | `list [--agent] [--status] [--json]` | Listar recibos con filtros | | `chain [--tree]` | Mostrar cadena de recibos | | `judgments [--json]` | Listar juicios de un recibo | | `cleanup [--dry-run]` | Eliminar recibos caducados | | `stats` | Agregar estadísticas de recibos | | `export [--pretty]` | Exportar recibos como JSON | | `invoice --from --to [--format]` | Generar factura | | `seed [--demo] [--count] [--clean]` | Sembrar datos de demostración | | `watch [--agent] [--action]` | Observar nuevos recibos | | `prompts ` | Guía de configuración (claude-code, cursor, system) | | `memory context` | Resumen de contexto de memoria | | `memory observe ` | Almacenar observación | | `memory recall [query]` | Buscar memorias | | `memory entities [--type]` | Listar entidades | | `memory forget ` | Olvidar observación o entidad | | `memory audit` | Informe de auditoría de memoria | | `memory provenance ` | Cadena de procedencia | | `memory export` | Exportar memorias como JSON | | `memory import ` | Importar memorias |Configuración
| Variable de entorno | Descripción | Predeterminado |
|---|---|---|
AGENT_RECEIPTS_DATA_DIR | Ruta del directorio de datos | ~/.agent-receipts |
AGENT_RECEIPTS_AGENT_ID | ID de agente predeterminado | local-agent |
AGENT_RECEIPTS_ORG_ID | ID de organización | local-org |
AGENT_RECEIPTS_ENVIRONMENT | Etiqueta de entorno | production |
RECEIPT_SIGNING_PRIVATE_KEY | Clave privada Ed25519 (hex) | Generada automáticamente |
Almacenamiento:
~/.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
Paquetes
| Paquete | Descripción |
|---|---|
@agent-receipts/schema | Esquemas Zod y tipos TypeScript |
@agent-receipts/crypto | Firma Ed25519, verificación, gestión de claves |
@agent-receipts/mcp-server | Servidor MCP con 24 herramientas |
@agent-receipts/sdk | SDK de TypeScript (21 métodos) |
@agent-receipts/cli | Interfaz de línea de comandos |
@agent-receipts/dashboard | Interfaz web de Mission Control |
Hoja de ruta
- Nivel cloud — paneles de equipo, sincronización de memoria multi-agente, verificación entre organizaciones
- Recuperación semántica — búsqueda de memoria impulsada por embeddings
- Adaptadores de frameworks — integraciones con LangChain, CrewAI, AutoGen
- Puentes de confianza entre organizaciones — dos organizaciones verificando los recibos de agentes de la otra
Licencia
MIT
Creado por Amin Suleiman — creando ModQuote y Agent Receipts.