# Instrucciones para el agente: MemOS: almacena y gestiona recuerdos de agentes

Pega este texto a tu agente (Claude Code, Codex, OpenCode, Hermes o el que uses) y dile «ayúdame a montarlo». Son los pasos para ponerlo en marcha; el porqué de cada pieza está en la guía completa.

- Dificultad: intermedio
- Proyecto: https://github.com/MemTensor/MemOS (licencia Apache-2.0)
- Guía completa: https://lab.wisd.ai/hub/memos-stardust-memory

---

## Para el agente: cómo acompañar al usuario

1. Pregunta primero para qué lo quiere. Si su objetivo no necesita algún paso, sáltalo.
2. Antes de instalar, comprueba lo que ya tiene (versiones, claves, sistema operativo).
3. Avanza un paso cada vez: explica en una frase qué vas a hacer y deja que el usuario lo ejecute o lo apruebe.
4. Tras cada paso, comprueba que funcionó antes de seguir. Si falla, para y explica el error.
5. No inventes comandos ni opciones: si la documentación del proyecto contradice estos pasos, manda la documentación.
6. Al terminar, haz una prueba real con el objetivo del usuario y dile dónde profundizar.

---

## Pasos de configuración

### Paso 1: prepara el servicio propio

Comprueba que Git y Docker con Compose están disponibles y que puedes iniciar contenedores. Esta vía construye la API y arranca Neo4j y Qdrant; no necesita Python instalado en el equipo anfitrión. El README publica:

```bash
git clone https://github.com/MemTensor/MemOS.git
cd MemOS
cp docker/.env.example .env
```

Completa los ajustes y claves requeridos en tu entorno de prueba. Después:

```bash
cd docker
docker compose up
```

### Paso 2: prueba la API de esa modalidad

Mantén Compose abierto. En otra terminal con curl disponible, ejecuta esta adaptación del ejemplo local del [README](https://github.com/MemTensor/MemOS#-self-host-the-memos-service):

```bash
curl -X POST http://localhost:8000/product/create_cube \
  -H 'Content-Type: application/json' \
  -d '{"cube_name":"Memoria de prueba","owner_id":"alice","cube_id":"alice_cube"}'
curl -X POST http://localhost:8000/product/add \
  -H 'Content-Type: application/json' \
  -d '{"user_id":"alice","writable_cube_ids":["alice_cube"],"messages":[{"role":"user","content":"Me gustan las fresas."}],"async_mode":"sync"}'
curl -X POST http://localhost:8000/product/search \
  -H 'Content-Type: application/json' \
  -d '{"query":"¿Qué me gusta?","user_id":"alice","readable_cube_ids":["alice_cube"]}'
```

El resultado JSON de búsqueda debe contener el recuerdo sobre las fresas. No uses las rutas ni la autenticación cloud contra este servidor propio. El ejemplo local no autentica a un usuario: el campo `user_id` no demuestra control de acceso. Mantén esta prueba aislada y configura autorización antes de abrirla a otros usuarios.

## Comprobación

Comprueba primero que las tres respuestas no contienen errores y que la búsqueda devuelve la memoria guardada en `alice_cube`. Para probar corrección y aislamiento después, utiliza las operaciones de gestión y la autorización del [servidor REST](https://memos-docs.openmem.net/open_source/getting_started/rest_api_server/): cambiar solo `user_id` en esta receta sin autenticación no prueba aislamiento de acceso.

## Si algo falla

Si la API responde pero no recupera recuerdos, revisa cubos e identificadores de usuario. Si no arranca, comprueba Neo4j, Qdrant y la configuración de modelos.
