Hindsight: qué puede conservar un agente entre sesiones
Código de Hindsight: del cliente Python al motor de memoria
Usa un commit fijo para distinguir el método público del comportamiento del servidor.
Qué aprenderás
- Leer la superficie del cliente
- Localizar la frontera del servidor
- Dejar notas reproducibles
Antes de empezar
- Uso básico del cliente Python
- Un caso de prueba sintético y un límite de despliegue
Guarda correcciones, recuperaciones erróneas y costes para repetir la prueba.
Conclusiones clave
- El cliente y el motor son capas distintas.
- Una firma no es una medición de ejecución.
- Las afirmaciones de código deben fijarse a un commit.
Leer la superficie del cliente
El archivo hindsight_client.py revisado define Hindsight y los métodos retain, recall y reflect. Recibe bank_id y la entrada correspondiente antes de delegar en objetos de API generados. Los nombres ayudan a ubicar solicitudes, pero no prueban que todas las ramas del servidor funcionen igual.
Sigue los argumentos: banco, contenido, consulta y límites opcionales. Si una aplicación cambia de bank_id entre escritura y búsqueda, parecerá un fallo de recuperación aunque haya enviado las solicitudes a lugares distintos.
Localizar la frontera del servidor
En la revisión fijada, memory_engine.py contiene entradas para retain y recall, variantes asíncronas y reflect_async. Es un punto de partida para leer el código. El archivo es extenso; limita la conclusión a una ruta comprobada y sus pruebas relacionadas.
El motor puede llamar al modelo, al almacenamiento y a tareas de fondo. Interpreta un retorno correcto del cliente según los campos de respuesta; no demuestra que todas las observaciones derivadas hayan terminado de actualizarse.
Dejar notas reproducibles
Anota commit, firma, argumentos y tipo de respuesta. Si un parámetro no está claro, enlaza al archivo de ese mismo commit en lugar de inferirlo de un README más reciente. Las citas de esta serie apuntan a la versión capturada.
Se leyó código fuente sin instrumentar un servidor activo. El rastro sugerido es un ejercicio para el lector; latencias, cantidad de llamadas y comportamiento de base de datos necesitan una ejecución aparte.
Cómo elegir
| Criterio | Opción A | Opción B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Pasos de implementación
- 1
Localiza los tres métodos del cliente fijo.
- 2
Sigue un bank_id hasta la entrada del motor.
- 3
Registra campos de respuesta y ramas pendientes.
Ejemplo para copiar
Hindsight.retain(bank_id, content)
-> client API request
-> MemoryEngine.retain_async(...)
-> storage and model work (inspect separately)Preguntas frecuentes
¿Dónde se implementa reflect?
El motor inspeccionado contiene reflect_async; sigue sus llamadores para entender la ruta del servidor.
¿Se perfilaron consultas SQL?
No. La inspección de fuentes fue limitada.
Fuentes
- Hindsight / hindsight-clients/python/hindsight_client/hindsight_client.pyFuente verificada 2026-09-26
- Hindsight / hindsight-api-slim/hindsight_api/engine/memory_engine.pyFuente verificada 2026-09-26