HERMES AGENT
Hermes Agent es un framework de agentes IA open-source y agnóstico al proveedor. ChainMemory se integra por dos vías: el servidor MCP (herramientas nativas dentro del chat) o el wrapper cm.py CLI (control total desde terminal).
Requisitos previos
- Hermes Agent instalado (Windows, macOS, Linux, WSL)
- Cuenta ChainMemory con API key (formato:
aic_...) - Python 3.10+ (para wrapper cm.py)
Obtener tu API Key
Las cuentas ChainMemory se crean exclusivamente desde la Extensión Chrome:
- Instalá la Extensión ChainMemory
- Abrí el popup desde la barra del navegador
- Elegí "Generar API Key automáticamente" (wallet gratis + 1 AIC) o "Ya tengo una key"
- Andá a Configuración → Conexión y hacé clic en "Ver" para copiar tu key
Importante: El Faucet (faucet.chainmemory.ai) solo distribuye tokens AIC para operaciones on-chain, no emite API keys. La API key se obtiene únicamente desde la Extensión.
Opción A: Servidor MCP (Flujo de chat)
El servidor MCP expone ChainMemory como herramientas nativas dentro del chat de Hermes. Después de configurar, podés decir cosas como "Recordá: decidimos usar PostgreSQL" y Hermes llamará la herramienta automáticamente.
Configuración
Editá ~/.hermes/config.yaml y agregá:
YAML — ~/.hermes/config.yaml
mcp_servers:
chainmemory:
command: "python"
args: ["C:\\Users\\<usuario>\\.hermes\\skills\\chainmemory-mcp\\chainmemory_mcp_server.py"]
env:
CHAINMEMORY_API_KEY: "aic_..."
CHAINMEMORY_BASE_URL: "https://api.chainmemory.ai/v1"
CHAINMEMORY_DEFAULT_PROJECT: "default"
Reiniciá Hermes después de editar. Las herramientas aparecen como mcp_chainmemory_* en el chat.
Herramientas MCP Disponibles
| Herramienta | Qué hace |
|---|---|
mcp_chainmemory_save_memory | Guardar una memoria |
mcp_chainmemory_list_memories | Listar / buscar memorias |
mcp_chainmemory_get_profile | Info de cuenta (tier, contadores) |
mcp_chainmemory_list_projects | Listar todos tus proyectos |
mcp_chainmemory_get_balance | Saldo AIC + URL del faucet |
mcp_chainmemory_get_blockchain_stats | Altura de chain, total de anclajes |
mcp_chainmemory_update_memory_tags | Retaguear una memoria |
mcp_chainmemory_archive_memory | Archivar / desarchivar |
Opción B: Wrapper cm.py (CLI / Scripts)
cm.py es un CLI Python que envuelve la API REST. Maneja headers de auth, pacing y reintentos. Instalalo via el skill de ChainMemory:
bash
hermes skills install chainmemory
Luego configurá tu key:
bash
chmod 600 ~/.hermes/chainmemory.env
Comandos
| Comando | Qué hace |
|---|---|
cm whoami | Mostrar cuenta, tier, cuota |
cm projects | Listar todos los proyectos |
cm save "texto" --project mi-app | Guardar una memoria |
cm recall --project mi-app | Recuperar memorias recientes |
cm search "query" --project mi-app | Búsqueda semántica |
cm state mi-app | Project State (decisiones, riesgos, hitos, stack) |
cm seal mi-app | Anclar estado on-chain (irreversible) |
cm verify mi-app | Verificación pública (sin auth) |
Opción C: API REST Directa
Cualquier cliente HTTP funciona. URL base: https://api.chainmemory.ai/v1. Header de auth: x-api-key: aic_... (no Authorization: Bearer).
Notas importantes
- Header de auth: Usá
x-api-key, noAuthorization: Bearer. - Rate limits: 30–600 req/min según plan.
- El estado no se construye solo: no hay consolidación en el backend ni disparador automático. El Project State cambia únicamente cuando un cliente propone operaciones vía
update_project_state(MCP) oPOST /v1/project/:name/state/ops(API). Esperar no va a producir un estado — pedirlo, sí. - Qué significa "seal" acá: en la API y el servidor MCP de ChainMemory,
sealvuelve permanentemente inmutable una sola memoria (POST /v1/seal/:id, que toma tu número de memoria). El Project State se ancla como parte de la consolidación, no sellando.cm.pyes un wrapper de terceros y puede mapear sus comandos de otra forma. - Paths en Windows: En
config.yaml, usá doble backslash:C:\\Users\\<usuario>\\...
Verificar la configuración
bash
# vía MCP (en chat)
"Guardá esto: decidimos usar PostgreSQL para la base primaria"
# vía CLI
cm whoami
cm save "Decidimos usar PostgreSQL para DB primaria" --project mi-app --tags decision,stack
cm state mi-app
cm verify mi-app