Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

@mongodb-js/agent-engine-sdk-memory

Interfaz de memoria unificada para Atlas Agent Engine (TypeScript). Equivalente al paquete agent-engine-sdk-memory de Python: los agentes TypeScript leen y escriben en el servidor de memoria a través de las mismas rutas, con memoria que persiste entre turnos y sesiones.

npm install @mongodb-js/agent-engine-sdk-memory

Memory expone todos los tipos de memoria detrás de una interfaz independiente del medio de transporte:

Tipo
Guardar
Lea

La conversación gira (STM)

recordTurn

(fuentes buildContext)

Semántico (hechos)

saveSemantic

searchSemantic, getSemantic

Episódico (conversaciones)

saveEpisode

searchEpisodes, listEpisodes

Taxonómico (base de conocimientos)

saveTaxonomic

searchTaxonomic, getTaxonomicTerm, listDomains

Procedimientos (instrucciones)

saveProcedure

discoverProcedures, getProcedure

Tipos personalizados (declarados por proyecto)

save

retrieve

Unificado

—

buildContext, search

Todos los métodos son asíncronos. La identidad (userId / sessionId) se resuelve en cada llamada: a partir del argumento, luego de un contexto vinculado y, finalmente, del contexto ambiental del entorno de ejecución. Las operaciones de tipo personalizado son la excepción: no contienen campos de identidad (la plataforma asigna la organización, el proyecto y el usuario a partir de la solicitud), por lo que no resuelven la identidad del lado del cliente y requieren un backend que pueda asignarla (rutas de Gateway con ámbito de proyecto o un entorno de ejecución con ámbito de ejecución).

La interfaz es la misma en ambos casos; solo difiere la forma en que se proporcionan la URL, la autenticación y la identidad.

Un cliente autónomo para scripts, pruebas y código que se ejecutan fuera de la plataforma. Se configura mediante argumentos del constructor o variables de entorno AGENTIC_MEMORY_*.

import { Memory } from "@mongodb-js/agent-engine-sdk-memory";
const memory = new Memory({
serviceAccountToken: process.env.AGENTIC_MEMORY_SERVICE_ACCOUNT_TOKEN, // service-account access token
projectId: "my-project", // set => project-scoped Gateway routes
}); // unset => flat OE routes
await memory.saveSemantic({
text: "favorite color is teal",
label: "favorite_color",
userId: "u1",
metadata: { channel: "web", priority: "high" }, // optional caller-supplied metadata
});
const hits = await memory.searchSemantic({ query: "color", userId: "u1" });
await memory.close();
Env var
Propósito

AGENTIC_MEMORY_SERVICE_ACCOUNT_TOKEN

Token de acceso a la cuenta de servicio (si se establece, se utiliza la URL de la puerta de enlace alojada). AGENTIC_MEMORY_API_KEY es un alias obsoleto: sigue funcionando, imprime DeprecationWarning y entra en conflicto con la nueva variable (establecer ambas genera un error). Crea un token con agentengine service-account create más el intercambio de tokens OAuth que se muestra en el archivo README del SDK de Python.

AGENTIC_MEMORY_BASE_URL

Dirección del servidor.

AGENTIC_MEMORY_PROJECT_ID

Establecer => Rutas Gateway con ámbito de proyecto; vacío => Rutas OE planas.

El código del agente utiliza app.memory (de @mongodb-js/agent-engine-sdk-langgraph). La identidad proviene del contexto de la solicitud ambiental y las llamadas se enrutan a través del proxy de memoria del motor de orquestación; no hay tokens que administrar, ni subprocesos userId:

// inside a tool or entrypoint
await app.memory.saveSemantic({ text: "prefers email over SMS", label: "contact_pref" });
const context = await app.memory.buildContext({ query: "how does the user like to be contacted?" });

La memoria vinculada a la aplicación solo es accesible mientras se maneja una solicitud de la plataforma (necesita el OE_URL del contexto de ejecución).

buildContext({ maxTokens }) Establece un presupuesto opcional para la construcción del contexto (no un costo de obtención). Tras la recuperación y la clasificación, el servidor resta una reserva de formato de token 500 y, a continuación, selecciona de forma voraz bloques de memoria completos que se ajusten al resto. Los valores positivos iguales o inferiores a 500 no dejan presupuesto para memorias. Los valores superiores a 500 aún pueden generar un contexto vacío cuando ningún bloque se ajusta. metadata.token_count informa únicamente de la salida formateada y excluye la reserva. Omita maxTokens para mantener la configuración predeterminada del servidor.

Los errores tipados permiten a los llamadores ramificarse en el modo de fallo: MemoryAuthError (401/403), MemoryRouteNotFoundError (404 con una sugerencia de forma de ruta), MemoryBadRequestError, MemoryServerError (5xx / cuerpo incorrecto), MemoryConnectionError, MemoryNotSupportedError (brecha de capacidad) y MemoryIdentityError (no se pudo resolver un campo de identidad requerido). MemoryNotSupportedError cubre tanto las brechas del lado del cliente como, en las rutas de tipo personalizado, las brechas de capacidad que solo la plataforma puede informar: un 404/405 simple (la plataforma es demasiado antigua para servir la ruta) o el 400 estructurado de la puerta de enlace informa que los tipos de memoria personalizados están deshabilitados en la implementación. Un 404 estructurado de tipo desconocido genera MemoryBadRequestError. Reintentos de transporte 502/503/504 hasta tres veces.

npm install
npm test # vitest
npm run build # tsc
Califique esta página