MemoryGuard
Gobernanza de memoria MCP local-primero para agentes de codificación con reglas compartidas, deduplicación, auditoría, reversión e información de tokens.
Documentación
MemoryGuard
Memoria compartida gobernada para agentes de codificación.
Memoria MCP local-first con organización automática, reglas con alcance, evidencia y reversión.
Deja que los agentes escriban sin convertir la memoria compartida en un montón sin revisar. MemoryGuard organiza cada escritura, preserva la evidencia detrás de los cambios y mantiene las decisiones de gobernanza reversibles.
Sin cuenta. Sin servidor remoto. Sin telemetría remota. La telemetría de uso local es opcional y almacena agregados acotados y que preservan la privacidad localmente.
Inicio rápido · Actualización · Biblioteca de conocimiento · Arquitectura · Hosts compatibles · Privacidad y seguridad
Una proyección gobernada sintética: las señales se mueven a través de categorías de memoria mientras el texto de conversación en bruto permanece fuera del grafo.
Novedades en v0.7.8
v0.7.8 consolida las correcciones de gobernanza, observabilidad y tiempo de ejecución del host preparadas después de v0.7.7:
- Gobernanza canónica de memoria y reglas: las reglas, hábitos y memorias relacionados convergen a través de una única ruta canónica de lectura/escritura mientras la evidencia, los enlaces de origen, las ramas del grafo, el historial de sustitución, la revisión de conflictos y la resolución permanecen auditables y reversibles.
- Gobernanza multiagente legible: identidades de programa verificadas, etiquetas legibles, iconos de familia seguros, alcance de grupo compartido, explicaciones de riesgo, cierre de conflictos obsoletos y el shell de GUI de siete páginas mantienen la gobernanza diaria comprensible.
- Vista de uso y ahorro local: la página de Tokens muestra eventos locales de conversión MCP y unidades estimadas de referencia frente a entregadas de siete/treinta días. Las mediciones de tokens del proveedor se usan solo cuando se informan (actualmente Codex y Grok); Claude, Cursor y Trae permanecen explícitamente no compatibles. No se almacena cuerpo de conversación, cuenta, ruta ni identificador de instancia.
- Alineación del ciclo de vida y tiempo de ejecución de Codex: la evidencia de hilo de terminal controla la recuperación de cohortes filtradas propiedad de Codex; los turnos ordinarios siguen siendo reanudables. La reparación instalada alinea los Hooks de MCP y ciclo de vida con el intérprete actual mientras preserva la identidad de Agente/grupo compartido y los límites de cierre ante fallos.
Consulta el registro de la versión v0.7.8.
Los detalles de versiones anteriores se mantienen en el Changelog y registros de versiones de GitHub.
Refactorización principal V2 en v0.6.0
v0.6.0 fue una refactorización del plano de datos de producción, no una actualización solo de almacenamiento:
- Dominios V2 autoritativos: los estados de Memoria, Reglas, Evidencia, Contenido, Tiempo de ejecución, Proyección, Activos, CodeGraph, Habilidades y Sistema se separan en dominios SQLite explícitos con límites gobernados.
- Transición explícita:
V1_ACTIVE → V2_BUILDING → V2_READY → V2_ACTIVEes de cierre ante fallos; V2 nunca retrocede silenciosamente a almacenes heredados o escrituras duales después de READY/ACTIVE. - Migración sin pérdidas: la preparación de fuente congelada usa copias de seguridad en línea coherentes de SQLite, valida la evidencia de origen/destino, vuelve a verificar la deriva de la fuente en vivo y preserva los datos V1 más las copias de seguridad de migración para la reversión.
- Enrutamiento nativo: las superficies MCP, CLI, GUI y Hook se clasifican explícitamente; la versión cerró la transición de 233 superficies con 138 rutas implementadas, 95 rutas retiradas y cero rutas neutrales/bloqueantes.
- Inteligencia gobernada: el ciclo de vida de reglas y RuleMerge, extracción/enriquecimiento, importación MCP externa, plano de control del proveedor, historial de conversación, Biblioteca de conocimiento y gobernanza de GUI usan las rutas de evidencia y decisión V2.
- Evidencia operativa: Auditoría de referencia, salud SQLite por dominio, mantenimiento protegido, evidencia de reversión y diagnósticos no vinculados seguros son parte de la preparación y las operaciones.
Por qué MemoryGuard
La memoria persistente resuelve el almacenamiento. No resuelve la gobernanza.
Cuando varios agentes de codificación escriben en el mismo contexto, los registros se vuelven duplicados, obsoletos, contradictorios, demasiado amplios o inseguros de reutilizar. MemoryGuard se sitúa entre los agentes de codificación y su memoria compartida para mantener ese contexto utilizable.
| Sin gobernanza | Con MemoryGuard |
|---|---|
| Las notas se acumulan sin un estado canónico | Las escrituras se clasifican, deduplican, sustituyen o se muestran como conflictos |
| Una corrección destruye silenciosamente el valor anterior | La evidencia y las cadenas de sustitución preservan qué cambió y por qué |
| Los tokens y credenciales pueden permanecer activos | El contenido de apariencia sensible se pone en cuarentena de la memoria activa |
| Cada escritura necesita aprobación manual | Los agentes escriben normalmente; las personas revisan excepciones y resultados |
| Los registros de chat en bruto se filtran al contexto futuro | El historial de conversación permanece como un archivo de evidencia separado y leído explícitamente |
Arquitectura del sistema
%%{init: {"theme":"base","themeVariables":{"background":"#071521","fontFamily":"Arial, sans-serif","fontSize":"14px","primaryTextColor":"#EEF4F8","lineColor":"#557287","edgeLabelBackground":"#071521","clusterBkg":"#0A1A29","clusterBorder":"#27445A"},"flowchart":{"htmlLabels":true,"curve":"basis","nodeSpacing":32,"rankSpacing":48,"padding":14}}}%%
flowchart TB
Hosts["CODING-AGENT HOSTS<br/>Claude Code · Codex · Cursor · TRAE "]:::host
Gateway["LOCAL INTEGRATION<br/>MCP stdio · redirect rules · lifecycle hooks "]:::gateway
subgraph Core["GOVERNANCE CORE "]
direction LR
Identity["TRUST<br/>identity · scope "]:::core
MemoryAPI["MEMORY<br/>governed I/O "]:::active
Rules["RULES<br/>scope · assignment "]:::rule
HistoryAPI["HISTORY<br/>search · timeline "]:::history
Security["SAFETY<br/>validate · quarantine "]:::danger
Identity --> MemoryAPI
Identity --> Rules
Identity --> HistoryAPI
MemoryAPI --> Security
end
subgraph Stores["LOCAL GOVERNED STORES "]
direction LR
SharedDB[("V2 DOMAIN STORES<br/>Memory · Rules · Evidence · Content ")]:::store
HistoryDB[("HISTORY STORE<br/>isolated conversations ")]:::historyStore
AuditDB[("RECOVERY STORE<br/>versions · receipts · backups ")]:::store
end
Bootstrap["BOUNDED CONTEXT BOOTSTRAP<br/>mandatory rule pack · relevant recall "]:::bootstrap
Control["HUMAN CONTROL<br/>CLI · desktop governance console "]:::surface
Hosts --> Gateway --> Identity
MemoryAPI --> SharedDB
Rules --> SharedDB
HistoryAPI --> HistoryDB
Security --> AuditDB
SharedDB --> Bootstrap
Control --> Identity
classDef host fill:#12243A,stroke:#38D5C8,color:#EEF4F8,stroke-width:1.4px;
classDef gateway fill:#0D3338,stroke:#38D5C8,color:#EEF4F8,stroke-width:2.4px;
classDef core fill:#12243A,stroke:#557287,color:#EEF4F8,stroke-width:1.4px;
classDef active fill:#0D383A,stroke:#38D5C8,color:#EEF4F8,stroke-width:2px;
classDef rule fill:#3B2C18,stroke:#F3B562,color:#EEF4F8,stroke-width:1.8px;
classDef history fill:#102F45,stroke:#73C7F5,color:#EEF4F8,stroke-width:1.8px;
classDef danger fill:#3A2028,stroke:#EA6A6A,color:#EEF4F8,stroke-width:1.8px;
classDef bootstrap fill:#EEF4F8,stroke:#38D5C8,color:#071521,stroke-width:2.4px;
classDef store fill:#0B1624,stroke:#7F96A8,color:#EEF4F8,stroke-width:1.4px;
classDef historyStore fill:#102436,stroke:#73C7F5,color:#EEF4F8,stroke-width:1.4px;
classDef surface fill:#EEF4F8,stroke:#38D5C8,color:#071521,stroke-width:2px;
style Core fill:#081827,stroke:#27445A,stroke-width:1px,color:#EEF4F8
style Stores fill:#081827,stroke:#27445A,stroke-width:1px,color:#EEF4F8
linkStyle default stroke:#557287,stroke-width:1.4px;
Inicio rápido
Metadatos del registro MCP
Este paquete expone un servidor MCP stdio local como io.github.irisxc4/memoryguard.
Los metadatos del registro se mantienen en server.json. El marcador anterior
es obligatorio en el README del paquete PyPI. El artefacto PyPI actual de agent-memguard 0.7.8
no tiene marcador, por lo que 0.7.8 aún no se puede publicar en el registro MCP.
Para la próxima versión, primero incrementa ambas versiones de server.json a la
nueva versión del paquete, publica un artefacto PyPI con marcador, confirma que su
versión y marcador son visibles, y luego ejecuta mcp-publisher publish.
1. Instalar
python -m pip install agent-memguard
Para la consola de gobernanza de escritorio:
python -m pip install "agent-memguard[gui]"
2. Autorizar el proyecto actual
memoryguard source add .
3. Conectar o reparar tu agente de codificación
La configuración global del proveedor se reconstruye desde el enlace real en el directorio de datos de usuario canónico. El comando es idempotente y elimina las anulaciones obsoletas a nivel de proyecto de MemoryGuard después de una toma de control global exitosa.
# Repair one provider
memoryguard provider repair claude
memoryguard provider repair codex
memoryguard provider repair cursor
memoryguard provider repair trae
# Repair every detected provider
memoryguard provider repair all
Reinicia el host después de la instalación y luego verifica la integración:
memoryguard doctor
memoryguard mcp-status
memoryguard hooks status --provider all
Inicia la consola de escritorio:
memoryguard gui
memoryguard-gui . permanece disponible para accesos directos de escritorio. Un
memoryguard gui simple siempre abre el directorio de control de usuario canónico
(por defecto %LOCALAPPDATA%\MemoryGuard en Windows), por lo que ejecutarlo desde un proyecto
o desde C:\Windows\System32 no puede cambiar silenciosamente las bases de datos.
MEMORYGUARD_WORKSPACE es una anulación explícita del operador; un
memoryguard gui <project-path> o memoryguard gui --workspace <project-path> explícito
selecciona un espacio de trabajo específico.
No recuerda un proyecto seleccionado previamente ni abre un selector de carpetas.
En Windows, memoryguard gui separa la ventana nativa de la terminal, por lo que
cerrar PowerShell no cierra la GUI.
Configuración y comportamiento específicos del proveedor:
Enlace estable de Codex / Router
Codex/Router vincula MemoryGuard al programa y control local estable de Codex. Un perfil de cuenta es un endpoint/alias, no un nuevo propietario de memoria: cambiar de perfil descubre o repara automáticamente el perfil y reutiliza el enlace de Agente verificado y el grupo activo. La identidad de solicitud permanece de cierre ante fallos; esto no comparte registros entre máquinas ni con cuentas arbitrarias.
Actualización
MemoryGuard se actualiza actualmente a través del administrador de paquetes de Python:
python -m pip install --upgrade agent-memguard
memoryguard --version
memoryguard doctor
Si instalaste el extra de GUI, mantenlo durante la actualización:
python -m pip install --upgrade "agent-memguard[gui]"
No hay comando de autoactualización del paquete. El administrador de paquetes es la
ruta autoritativa de actualización de paquetes; memoryguard upgrade a continuación es el flujo
explícito de migración de espacio de trabajo, no un actualizador de paquetes.
Actualizar un directorio de datos V1 existente
Actualiza el paquete y luego ejecuta la migración verificada. No se requieren argumentos de espacio de trabajo, directorio de datos, aplicación o confirmación para el directorio de datos de usuario normal:
python -m pip install --upgrade agent-memguard
memoryguard --version # 0.7.8
memoryguard upgrade
memoryguard doctor
El comando prepara V2, valida la evidencia de fuente congelada y en vivo,
migra el control de Agente/Grupo, activa solo después de que todas las compuertas pasen y elimina
solo el lote de copia de seguridad perteneciente a esa migración exitosa. Volver a ejecutarlo en
V2_ACTIVE es idempotente. Para un informe sin escrituras, usa:
memoryguard upgrade --preview
Las opciones avanzadas explícitas de espacio de trabajo/directorio de datos permanecen disponibles para operadores que gestionan una instalación aislada. Una compuerta fallida permanece no activa y preserva su evidencia; la activación exitosa no mantiene una copia de seguridad de migración redundante.
Espacios de trabajo pre-V2 existentes: transición V2 explícita
v0.6.0 nunca activa automáticamente un espacio de trabajo existente. Actualiza el paquete primero, luego usa la CLI de operador empaquetada:
# Read-only manifest status
memoryguard-v2 status -w .
# Build a frozen-source V2 shadow and stop at V2_READY
memoryguard-v2 prepare -w . --apply
# Activate only after the prepare result is V2_READY / ready=true
memoryguard-v2 activate -w . --confirm V2_ACTIVE
El paso de preparación usa copias de seguridad en línea coherentes de SQLite, preserva V1 y
migration-backups, y vuelve a verificar la deriva de la fuente en vivo antes de READY. La activación
realiza otra verificación de deriva fresca antes de cambiar el manifiesto. No elimines
los datos V1 heredados ni las copias de seguridad de migración como parte de la actualización.
Biblioteca de conocimiento
La consola de escritorio puede convertir una carpeta seleccionada o un conjunto de archivos en una biblioteca de conocimiento local gobernada. Los archivos fuente permanecen donde están; MemoryGuard almacena el índice buscable en su directorio de datos de usuario en lugar de copiar una base de datos de tiempo de ejecución en cada proyecto fuente. Los metadatos de conocimiento nunca se convierten en un segundo almacén de cuerpo fuente.
| Capacidad | Comportamiento actual |
|---|---|
| Ingestión de archivos/carpetas | Agregar una carpeta como libro o archivos seleccionados como documentos |
| Estructura | Analizar documentos, preservar el contexto de capítulo/sección y crear fragmentos trazables |
| Recuperación | Búsqueda de texto completo, incrustaciones opcionales y un grafo de conocimiento en capas |
| Sincronización natural | Re-ingestar archivos cambiados; un escaneo parcial o fallido no elimina silenciosamente contenido indexado previamente |
| Ciclo de vida | Mover un libro a la papelera de la biblioteca, restaurarlo o purgar explícitamente su instantánea de recuperación |
| Candidatos de memoria | Previsualizar candidatos respaldados por evidencia antes de aceptarlos en la memoria a largo plazo gobernada |
Abre la consola de escritorio y elige Biblioteca de conocimiento. La incrustación remota o la indexación basada en modelos es opcional y requiere autorización explícita; la recuperación local de texto completo permanece disponible sin enviar texto fuente a un proveedor remoto.
Actualización de CodeGraph
La primera compilación de CodeGraph es una compilación completa explícita y confirmada. Después de que un alcance
se haya compilado, cada escritura de archivo confiable exitosa puede desencadenar una actualización
incremental para ese alcance, sujeta a una validación estricta de ruta fuente y enlace activo.
Los hashes de contenido sin cambios son una no operación; los archivos eliminados se retiran;
el siguiente contexto recibe un recibo acotado de affected. MemoryGuard no
ejecuta un daemon ni un observador para esta ruta y no infiere rutas de shell o
texto de forma libre.
Superficies de la consola de escritorio
La GUI sigue una arquitectura de información de siete páginas:
- Resumen de gobernanza
- Fuentes de datos y agentes
- Núcleo de memoria
- CodeGraph
- Reglas y hábitos
- Historial de conversación
- Señales de riesgo y consola de gobernanza
Las listas de agentes usan nombres legibles de programa/proveedor; el ID subyacente permanece disponible en la vista de detalle. Los datos vacíos se muestran como un estado vacío explícito.
Ciclo de vida de escritura y gobernanza
%%{init: {"theme":"base","themeVariables":{"background":"#071521","fontFamily":"Arial, sans-serif","fontSize":"14px","primaryTextColor":"#EEF4F8","lineColor":"#557287","edgeLabelBackground":"#071521","clusterBkg":"#0A1A29","clusterBorder":"#27445A"},"flowchart":{"htmlLabels":true,"curve":"basis","nodeSpacing":30,"rankSpacing":42,"padding":14}}}%%
flowchart TD
subgraph Intake["01 · INTAKE "]
direction LR
Write(["Memory write "]):::entry
Scope["Resolve identity<br/>scope · audience "]:::core
Validate{"Authorized? "}:::decision
Reject["Reject<br/>no persistence "]:::danger
Write --> Scope --> Validate
Validate -- NO --> Reject
end
subgraph Organize["02 · ORGANIZE "]
direction TB
Secret{"Sensitive? "}:::decision
Quarantine["Quarantine<br/>outside active set "]:::danger
Compare["Classify · compare<br/>governed records "]:::active
Relation{"Relationship "}:::decision
New["NEW<br/>create active record "]:::result
Duplicate["DUPLICATE<br/>merge provenance "]:::result
Correction["CORRECTION<br/>supersede old record "]:::rule
Conflict["CONFLICT<br/>preserve both sides "]:::danger
Secret -- YES --> Quarantine
Secret -- NO --> Compare --> Relation
Relation --> New
Relation --> Duplicate
Relation --> Correction
Relation --> Conflict
end
subgraph Govern["03 · GOVERN "]
direction LR
Receipt[("Evidence event<br/>version receipt ")]:::store
Review["CLI or desktop review "]:::surface
Action["Correct · merge<br/>restore · delete "]:::rule
Snapshot["Reversible<br/>snapshot "]:::active
Receipt --> Review --> Action --> Snapshot
end
Validate -- YES --> Secret
Quarantine --> Receipt
New --> Receipt
Duplicate --> Receipt
Correction --> Receipt
Conflict --> Receipt
classDef entry fill:#EEF4F8,stroke:#38D5C8,color:#071521,stroke-width:2.4px;
classDef core fill:#12243A,stroke:#557287,color:#EEF4F8,stroke-width:1.5px;
classDef decision fill:#0D3338,stroke:#38D5C8,color:#EEF4F8,stroke-width:2px;
classDef active fill:#0D383A,stroke:#38D5C8,color:#EEF4F8,stroke-width:2px;
classDef result fill:#12243A,stroke:#38D5C8,color:#EEF4F8,stroke-width:1.6px;
classDef rule fill:#3B2C18,stroke:#F3B562,color:#EEF4F8,stroke-width:1.8px;
classDef danger fill:#3A2028,stroke:#EA6A6A,color:#EEF4F8,stroke-width:1.8px;
classDef store fill:#0B1624,stroke:#7F96A8,color:#EEF4F8,stroke-width:1.4px;
classDef surface fill:#EEF4F8,stroke:#38D5C8,color:#071521,stroke-width:2px;
style Intake fill:#081827,stroke:#27445A,stroke-width:1px,color:#EEF4F8
style Organize fill:#081827,stroke:#27445A,stroke-width:1px,color:#EEF4F8
style Govern fill:#081827,stroke:#27445A,stroke-width:1px,color:#EEF4F8
linkStyle default stroke:#557287,stroke-width:1.4px;
La consola no es una cola de aprobación. Los agentes siguen avanzando. MemoryGuard registra el resultado y expone la evidencia necesaria para corregirlo más tarde.
Lo que puedes gobernar
| Señal | Acción de gobernanza |
|---|---|
| Memoria duplicada o desactualizada | Inspeccionar el registro canónico y la cadena de sustitución; restaurar una versión anterior cuando sea necesario |
| Memorias en conflicto | Mantener ambas visibles hasta que el conflicto se resuelva deliberadamente |
| Secretos, tokens o credenciales | Poner en cuarentena el registro para que no pueda entrar en la memoria compartida activa |
| Organización automática incorrecta | Corregir, fusionar, bloquear, restaurar o revertir con evidencia |
| Múltiples agentes de codificación | Vincular agentes a un grupo compartido único preservando la identidad y el alcance de la fuente |
| Reglas obligatorias | Asignar reglas a un Agente, proyecto, proveedor, rol de ejecución o grupo compartido |
Las reglas y el historial permanecen separados
MemoryGuard mantiene deliberadamente la memoria gobernada a largo plazo y el historial crudo de conversación en rutas diferentes.
| Superficie | Propósito | Comportamiento del contexto |
|---|---|---|
| Reglas y hábitos | Preferencias, procedimientos, correcciones, hechos, proyectos y reglas obligatorias con alcance | Las reglas obligatorias usan un presupuesto independiente de caracteres/tokens después del alcance, exclusión, conflicto y deduplicación semántica. Un recuento efectivo superior a 20 es una advertencia de salud, no un bloqueo duro; el almacenamiento no está limitado por recuento. Los registros sensibles, corruptos, de tamaño excesivo por elemento y el desbordamiento agregado aún fallan de forma cerrada sin truncamiento silencioso. Los registros ordinarios se recuperan cuando son relevantes |
| Historial de conversación | Archivo local de evidencia cruda con controles de acceso de propietario y grupo compartido | Nunca entra en el arranque automáticamente; el texto crudo se lee solo a través de herramientas de historial explícitas |
| Grafo neuronal | Navegación y gobernanza sobre memoria, reglas, proyectos, agentes y sesiones | Los nodos de historial contienen metadatos seguros y resúmenes, no contenido crudo de chat |
La recuperación del historial es progresiva: resultados de búsqueda, luego una línea de tiempo acotada, luego un turno o sesión seleccionado explícitamente. Extraer del historial crea una vista previa primero; no escribe silenciosamente una memoria a largo plazo.
%%{init: {"theme":"base","themeVariables":{"background":"#071521","fontFamily":"Arial, sans-serif","fontSize":"14px","primaryTextColor":"#EEF4F8","lineColor":"#557287","edgeLabelBackground":"#071521","clusterBkg":"#0A1A29","clusterBorder":"#27445A"},"flowchart":{"htmlLabels":true,"curve":"basis","nodeSpacing":30,"rankSpacing":42,"padding":14}}}%%
flowchart LR
subgraph HistoryPath["CONVERSATION EVIDENCE "]
direction TB
Archive[("Raw local history ")]:::historyStore
Search["Search summaries "]:::history
Timeline["Bounded timeline "]:::history
Read["Explicit turn or session "]:::history
Preview["Evidence-backed<br/>extraction preview "]:::history
Confirm["Explicit acceptance "]:::surface
Isolation["NO AUTOMATIC<br/>BOOTSTRAP PATH "]:::barrier
Archive --> Search --> Timeline --> Read --> Preview --> Confirm
Archive -.-> Isolation
end
subgraph GovernedMemory["GOVERNED LONG-TERM MEMORY "]
direction TB
Mandatory["Scoped mandatory rules "]:::rule
Assignments["Agent · project<br/>role · group scope "]:::core
RulePack["Mandatory-rule<br/>budget "]:::budget
Ordinary["Facts · preferences<br/>projects · procedures "]:::memory
Recall["Task-relevant<br/>recall budget "]:::budget
Context["BOUNDED CONTEXT PACKET "]:::context
Mandatory --> Assignments --> RulePack --> Context
Ordinary --> Recall --> Context
end
HistoryPath ==>|GOVERNED WRITE | GovernedMemory
classDef rule fill:#3B2C18,stroke:#F3B562,color:#EEF4F8,stroke-width:1.8px;
classDef core fill:#12243A,stroke:#557287,color:#EEF4F8,stroke-width:1.4px;
classDef memory fill:#0D383A,stroke:#38D5C8,color:#EEF4F8,stroke-width:1.8px;
classDef budget fill:#12243A,stroke:#38D5C8,color:#EEF4F8,stroke-width:1.6px;
classDef context fill:#EEF4F8,stroke:#38D5C8,color:#071521,stroke-width:2.4px;
classDef history fill:#102F45,stroke:#73C7F5,color:#EEF4F8,stroke-width:1.6px;
classDef historyStore fill:#102436,stroke:#73C7F5,color:#EEF4F8,stroke-width:1.6px;
classDef surface fill:#EEF4F8,stroke:#73C7F5,color:#071521,stroke-width:2px;
classDef barrier fill:#3A2028,stroke:#EA6A6A,color:#EEF4F8,stroke-width:2px;
style GovernedMemory fill:#081827,stroke:#27445A,stroke-width:1px,color:#EEF4F8
style HistoryPath fill:#081827,stroke:#27445A,stroke-width:1px,color:#EEF4F8
linkStyle default stroke:#557287,stroke-width:1.4px;
Hosts compatibles
| Host | Integración | Límite actual |
|---|---|---|
| Claude Code | Enlace MCP global, reglas de redirección, Hook de ciclo de vida a nivel de usuario | Ruta de toma de control verificada |
| Codex | Enlace MCP global, reglas de redirección, Hook de ciclo de vida a nivel de usuario | Ruta de toma de control verificada |
| Cursor | Enlace MCP global, reglas de redirección, Hook de ciclo de vida a nivel de usuario | Ruta de toma de control verificada |
| TRAE | Enlace MCP y reglas de redirección | Sin costura de Hook verificada; reportado como respaldo en lugar de toma de control completa |
El estado del proveedor se reporta honestamente como redirigido, observado, operativo o no compatible. MemoryGuard no afirma que puede deshabilitar la memoria nativa de cada host cuando el host no expone un punto de integración confiable.
Arquitectura
| Capa | Responsabilidad |
|---|---|
| Evidencia y contenido | Fuentes autorizadas, evidencia inmutable, blobs/ocurrencias con direccionamiento por contenido, manifiestos de fuente y archivos de conversación |
| Memoria y reglas | Átomos de memoria con alcance, revisiones, enlaces, definiciones de reglas, decisiones, enlaces de evidencia y operaciones de gobernanza compensatorias |
| Ejecución y proyección | Contexto de trabajo acotado, proyecciones de escenarios/perfiles, CodeGraph, Assets y metadatos de Skills |
| Transición y gobernanza | Manifiesto de cuatro estados, enrutamiento nativo MCP/CLI/GUI/Hook, Auditoría de Referencia, mantenimiento, adaptadores de proveedor y evidencia de reversión |
V2 usa dominios SQLite autoritativos separados en lugar de una única base de
datos de memoria compartida. La ejecución lee y escribe V2 solo después de que
el manifiesto alcanza V2_ACTIVE; V2_BUILDING y V2_READY nunca
recurren silenciosamente ni escriben en doble vía. La evidencia permanece
trazable sin ser tratada como memoria automáticamente confiable.
Privacidad y seguridad
- MemoryGuard se ejecuta como un servidor MCP stdio local.
- Todos los datos gobernados permanecen locales a menos que autorices
explícitamente un modelo remoto o una operación de incrustación. La
telemetría de uso opcional es solo local: sus eventos de tokens de host
medidos y eventos de conversión deterministas se almacenan bajo
.memoryguard/usage_telemetry.sqlite; no sube datos. Los ahorros de tokens son estimaciones basadas en unidades deterministas de MemoryGuard, no una declaración de facturación del proveedor. Los hosts sin reporte de tokens permanecen no compatibles en las columnas medidas. - La base de datos de la Biblioteca de Conocimiento usa
MEMORYGUARD_HOMEo el directorio de datos de usuario de la plataforma, por lo que una carpeta de fuente seleccionada no recibe su propia base de datos de conocimiento. - El estado autoritativo del espacio de trabajo V2 se separa bajo
.memoryguard/en dominios explícitos de Memoria, Reglas, Evidencia, Contenido, Ejecución, Proyección, Assets, CodeGraph, Skills y Sistema; el control de Historial, Fuente, Enlace y Grupo son superficies nativas de V2. Los artefactos heredados de V1 se preservan como evidencia local de reversión/auditoría después de la transición y ya no son la ruta de escritura activa de ejecución V2; solomemoryguard.migrationpuede leerlos. - El escaneo de fuentes es de solo lectura por defecto.
- Las rutas de gobernanza mutantes usan validación, alcance explícito, procedencia y estado reversible.
- Los registros en cuarentena permanecen fuera de la memoria compartida activa.
- El historial crudo de conversación nunca se inyecta en el arranque automáticamente.
- El acceso al historial de grupos compartidos sigue la membresía activa actual y no otorga derechos de eliminación sobre la fuente de otro Agente.
CLI
El comando instalado memoryguard expone estas operaciones de nivel superior:
| Comando | Propósito |
|---|---|
audit [path] | Ejecutar una auditoría de solo lectura y generar un informe |
open [path] | Abrir el informe interactivo más reciente |
explain <finding_id> | Explicar evidencia y riesgo para un hallazgo |
source <action> | Listar, agregar, eliminar o previsualizar fuentes autorizadas |
scan | Escanear fuentes autorizadas y construir el libro de cobertura |
doctor | Diagnosticar el manifiesto V2, disponibilidad de dominios y cobertura nativa |
mcp-status | Inspeccionar la salud de MCP/backend V2; los recuentos de inquilinos requieren un alcance de Agente vinculado |
hooks <action> | Instalar, inspeccionar, pausar, reparar o eliminar Hooks de host |
provider <action> | Inspeccionar o reparar integraciones globales de proveedores |
| `storage audit | report` |
| `storage sweep | compact` |
groups <action> | Inspeccionar el estado del grupo gobernado |
gui [path] | Lanzar la consola de gobernanza interactiva |
desktop | Lanzar el ejecutor de escritorio confiable |
Los flujos de trabajo antiguos de V1 plan, apply,
verify, undo, import y gc pueden
permanecer analizables como superficies de compatibilidad retiradas explícitas,
pero no son una ruta de ejecución V1. Bajo V2_ACTIVE devuelven un
resultado retirado estable en lugar de escribir a través de un almacén
heredado. La entrada de datos heredados se acepta solo mediante el flujo de
actualización explícito memoryguard.migration.
Ejecuta memoryguard --help o memoryguard <command> --help para la referencia de comandos en
vivo.
API MCP
El servidor MCP expone herramientas para:
- lectura, búsqueda, escritura, actualización, eliminación y estado de memoria gobernada;
- arranque de contexto acotado con aislamiento de reglas obligatorias;
- creación de reglas, retroalimentación, gobernanza de fusión, deshacer y estadísticas de alcance;
- vinculación de Agentes e inspección de grupos compartidos;
- escaneo de fuentes, proyección de grafos, vistas previas de importación y planificación de construcción;
- descubrimiento e importación de MCP externos;
- vistas previas de extracción de documentos y aceptación de candidatos;
- búsqueda en el historial de conversación, línea de tiempo, lectura explícita, exportación, eliminación y vista previa de extracción;
- instalación de proveedores y enriquecimiento de agente host.
Usa MCP tools/list como fuente de verdad para el conjunto exacto de
herramientas compatibles con la versión instalada.
Enlaces del proyecto
- Paquete PyPI
- Lanzamientos de GitHub
- Registro de cambios
- Registro de lanzamiento v0.7.8
- Registro de lanzamiento v0.7.7
- Registro de lanzamiento v0.7.6
- Registro de lanzamiento v0.7.5
- Registro de lanzamiento v0.7.4
- Registro de lanzamiento v0.7.3
- Registro de lanzamiento v0.7.2
- Registro de lanzamiento v0.7.1
- Puerta de lanzamiento v0.7.0
- Especificación de continuidad de memoria y almacenamiento sin pérdida
- Política de privacidad
- Términos de uso
- Guía de contribución
- Acuerdo de Licencia de Colaborador
- Rastreador de problemas
Hoja de ruta
- Línea de lanzamiento actual: v0.7.8 consolida la gobernanza canónica, la gobernanza GUI legible para múltiples agentes, la telemetría de uso solo local y la alineación del ciclo de vida/ejecución de Codex. v0.7.7 hace segura la reparación de proveedores desnudos en un hogar de control verificado y vinculado de forma única y alinea las reparaciones instaladas de Codex MCP/Hook con el intérprete actual preservando la identidad del Agente y del grupo compartido. v0.7.6 hace consistente la selección de ejecución de Codex Hook/MCP a través de una única instantánea inmutable, acorta las ventanas de bloqueo de estado de Hook y mantiene honesto el estado de éxito/ fallo del arranque con manejo explícito de desbordamiento obligatorio con fallo cerrado. Los registros de lanzamiento anteriores conservan los cambios detallados de revisión de conflictos v0.7.5, gobernanza canónica v0.7.4, historial compartido v0.7.3 y escritura/lectura y ciclo de vida de Codex v0.7.2. El trabajo de migración solo V2 v0.7.1 y el ciclo de vida de escritorio permanecen documentados como contexto histórico de lanzamiento.
- Límite de aceptación: la evidencia de Graphify es el resultado enfocado
3 / 3más la exportación/proyección real del repositorio completo descrita anteriormente. No afirma que la suite de pruebas del repositorio completo de Graphify upstream haya pasado. - Siguiente después del lanzamiento: ingestión más amplia de CodeGraph/ Skills, informes de mantenimiento más amigables para el operador y observabilidad adicional de migración. Los registros a largo plazo no se retiran solo por ser antiguos.
- Más tarde: capacidades de equipo y empresa solo después de demanda validada.
Contribución
Las issues y las solicitudes de extracción son bienvenidas. Lee CONTRIBUTING.md antes de enviar un cambio. Las solicitudes de extracción requieren acuerdo con el CLA.