Herramienta de Memoria
Paquete Java: com.etendoerp.copilot.toolpack
Visión general
La Herramienta de Memoria es una herramienta integral para gestionar memorias de usuario en una base de datos vectorial utilizando Chroma como almacenamiento de backend. Proporciona operaciones CRUD (Crear, Leer, Actualizar, Eliminar) para memorias específicas por usuario con capacidades de búsqueda por similitud vectorial, lo que permite a los asistentes almacenar y recuperar información contextual a lo largo de las conversaciones.
Info
Para poder incluir esta funcionalidad, debe estar instalado el Copilot Extensions Bundle. Para ello, siga las instrucciones del marketplace: Copilot Extensions Bundle. Para más información sobre las versiones disponibles, la compatibilidad con el core y las nuevas funcionalidades, visite Copilot Extensions - Notas de la versión.
Funcionalidad
Esta herramienta permite a los asistentes mantener memoria persistente a lo largo de las conversaciones almacenando información importante en una base de datos vectorial. Admite capacidades de búsqueda semántica, lo que permite una recuperación inteligente de memorias relevantes en función del contexto y la similitud. La herramienta está acotada por usuario, garantizando el aislamiento de datos y la privacidad.
Las funcionalidades clave incluyen:
- Persistencia de memoria: almacenar información importante que persiste entre sesiones de conversación
- Búsqueda semántica: encontrar memorias relevantes mediante búsqueda por similitud vectorial
- Aislamiento de usuario: las memorias de cada usuario se almacenan por separado y de forma segura
- Operaciones CRUD: conjunto completo de operaciones para la gestión de memorias
- Generación automática de ID: se asignan automáticamente identificadores únicos a cada memoria
Operaciones compatibles
Modo Añadir
Crea una nueva memoria con generación automática de ID.
- Parámetros obligatorios:
mode(establecido en "add"),memory(contenido a almacenar) - Devolución: mensaje de éxito con el ID de memoria generado
Modo Selector
Encuentra memorias mediante búsqueda por similitud vectorial.
- Parámetros obligatorios:
mode(establecido en "search"),query(cadena de búsqueda) - Parámetros opcionales:
k(número máximo de resultados, por defecto: 3) - Devolución: lista de memorias coincidentes con sus IDs
Modo Actualizar
Modifica el contenido de una memoria existente preservando los metadatos.
- Parámetros obligatorios:
mode(establecido en "update"),memory_id(memoria objetivo),memory(nuevo contenido) - Devolución: mensaje de éxito confirmando la actualización
Modo Eliminar
Elimina una memoria específica de la base de datos.
- Parámetros obligatorios:
mode(establecido en "delete"),memory_id(memoria objetivo) - Devolución: mensaje de éxito confirmando la eliminación
Ejemplos de uso
Añadir una memoria
Para almacenar una nueva memoria:
Salida esperada:
{
"result": "Memory added for user_id user123: User prefers dark theme and 24-hour time format (memory_id: 550e8400-e29b-41d4-a716-446655440000)"
}
Buscar memorias
Para encontrar memorias relevantes:
Salida esperada:
{
"result": "- User prefers dark theme and 24-hour time format (memory_id: 550e8400-e29b-41d4-a716-446655440000)\n- User likes concise responses (memory_id: 550e8400-e29b-41d4-a716-446655440001)"
}
Actualizar una memoria
Para modificar el contenido de una memoria existente:
{
"mode": "update",
"memory_id": "550e8400-e29b-41d4-a716-446655440000",
"memory": "User prefers dark theme, 24-hour time format, and compact layout"
}
Salida esperada:
{
"result": "Memory updated for user_id user123: User prefers dark theme, 24-hour time format, and compact layout (memory_id: 550e8400-e29b-41d4-a716-446655440000)"
}
Eliminar una memoria
Para eliminar una memoria específica:
Salida esperada:
{
"result": "Memory with memory_id 550e8400-e29b-41d4-a716-446655440000 deleted for user_id user123"
}
Implementación técnica
Base de datos vectorial
La herramienta utiliza Chroma como backend de base de datos vectorial, configurado con:
- Almacenamiento persistente en directorios específicos por usuario
- Funciones de embeddings para búsqueda semántica
- Vectorización automática de documentos
Aislamiento de usuario
Las memorias se aíslan por usuario mediante:
- Colecciones de almacenamiento vectorial específicas por usuario (
{assistant_id}_memories) - Filtrado de metadatos basado en
user_iddesde el contexto del hilo - Control de acceso seguro que garantiza que los usuarios solo puedan acceder a sus propias memorias
Variables de contexto
La herramienta requiere las siguientes variables de contexto:
assistant_id: identificador único para la instancia del asistentead_user_id: identificador de usuario de Active Directory
Gestión de errores
La herramienta incluye una gestión de errores integral para:
- Modos de operación no válidos
- Falta de parámetros obligatorios
- Validación de variables de contexto
- Fallos en operaciones de base de datos
- Verificación de permisos de usuario
Respuestas de error comunes:
"Invalid mode 'xyz'. Use 'add', 'search', 'update', or 'delete'.""The 'memory' parameter is required for 'add' mode.""No memory found with memory_id xyz for user_id user123""assistant_id or ad_user_id not found in Payload."