{"status": "completed", "save": false, "saved": false, "memory_id": null, "memory_ids": [], "saved_count": 0, "raw": "{\"memories\": [{\"type\": \"episode\", \"subtype\": \"session_summary\", \"scope\": \"global\", \"title\": \"sebas: [telegram] se estan corriendo memory sweeps de todas las sesiones recie…\", \"content\": \"User asked: [telegram] se estan corriendo memory sweeps de todas las sesiones recientes?\\nResult: Cambio mínimo seguro primero: Archivos a tocar: - `/home/sebas/pi-config/scripts/session-memory-analyzer.py` - `/home/sebas/agents-database/src/shared_agent_memory/service.py` Reglas exactas: 1. filtro de ingreso No guardar memoria si contenido/título matchea: - `You are running one deterministic` - `Subagent intake task_` - `Task ID: task_` - `Payload: {` - `route\\\\\\\": {` - `phase-machine pass` - prompts internos de loop/iteration 2. filtro por forma No guardar si: - casi todo el contenido es boilerplate - domina JSON/routing/payload - no hay user fact, decision, artifact, o resultado reusable claro 3. dedupe normalizado Antes de consolidar, comparar versión normalizada sin: - `[telegram]` - urls - task ids / run ids - timestamps - blobs JSON - espacios/puntuación extra 4. promotions honestas No contar `episode active` como promotion automática. Solo promotion real si: - venía `inbox` y sube a `active` - o pasa filtro durable explícito 5. consolidación más dura para episodios Para `episode`: - lower dedupe thresholds - si es near-duplicate operativo: link + archive Implementación mínima: - en analyzer: - skip de memorias candidatas ruidosas - en service: - helper `normalize_for_dedupe()` - usar eso en duplicate/high-similarity - sacar conteo inflado de promoted Orden de trabajo: 1. meter filtros de ruido 2. meter dedupe normalizado 3. corregir métricas de promotion 4. correr dry run de nuevo 5. recién después decidir si activarlo full Esperado: - baja inmediata de ruido nuevo - menos “promotions” falsas - más links/archives útiles Si querés, siguiente mensaje: hago el cambio.\", \"source_ref\": \"session:019e926c-6feb-7773-8e97-5645482738b0\", \"evidence_ref\": \"/home/sebas/pi-config/sessions/--home-sebas--/2026-06-04T11-37-20-619Z_019e926c-6feb-7773-8e97-5645482738b0.jsonl\", \"confidence\": 0.72, \"freshness\": 0.95, \"importance\": 0.56, \"reason\": \"Deterministic fallback because model analysis was unavailable: Warning: No models match pattern \\\"gemini-3-flash-preview:minimal\\\"\\nWarning: No models match pattern \\\"gemini-3-flash-preview:medium\\\"\\nWarning: No models match pattern \\\"claude-3-7-sonnet:low\\\"\\nWarning: No models match pattern \\\"claude-3-7-sonnet:medium\\\"\\nWarning: No models match pattern \\\"claude-3-7-sonnet:high\\\"\\nWarning: No models match pattern \\\"o3-mini:low\\\"\\nWarning: No models match pattern \\\"o3-mini:medium\\\"\\nWarning: No models match pattern \\\"o3-mini:high\\\"\\nWarning: No models match pattern \\\"minimax-m2.5-free:minimal\\\"\\nWarning: No models match pattern \\\"qwen/qwen3-coder:free:minimal\\\"\\nWarning: No models match pattern \\\"google/gemma-3-27b-it:free:minimal\\\"\\nNo API key for provider: openai-codex\"}], \"reason\": \"fallback-analysis:Warning: No models match pattern \\\"gemini-3-flash-preview:minimal\\\"\\nWarning: No models match pattern \\\"gemini-3-flash-preview:medium\\\"\\nWarning: No models match pattern \\\"claude-3-7-sonnet:low\\\"\\nWarning: No models match pattern \\\"claude-3-7-sonnet:medium\\\"\\nWarning: No models match pattern \\\"claude-3-7-sonnet:high\\\"\\nWarning: No models match pattern \\\"o3-mini:low\\\"\\nWarning: No models match pattern \\\"o3-mini:medium\\\"\\nWarning: No models match pattern \\\"o3-mini:high\\\"\\nWarning: No models match pattern \\\"minimax-m2.5-free:minimal\\\"\\nWarning: No models match pattern \\\"qwen/qwen3-coder:free:minimal\\\"\\nWarning: No models match pattern \\\"google/gemma-3-27b-it:free:minimal\\\"\\nNo API key for provider: openai-codex\"}", "result": {"memories": [{"type": "episode", "subtype": "session_summary", "scope": "global", "title": "sebas: [telegram] se estan corriendo memory sweeps de todas las sesiones recie…", "content": "User asked: [telegram] se estan corriendo memory sweeps de todas las sesiones recientes?\nResult: Cambio mínimo seguro primero: Archivos a tocar: - `/home/sebas/pi-config/scripts/session-memory-analyzer.py` - `/home/sebas/agents-database/src/shared_agent_memory/service.py` Reglas exactas: 1. filtro de ingreso No guardar memoria si contenido/título matchea: - `You are running one deterministic` - `Subagent intake task_` - `Task ID: task_` - `Payload: {` - `route\\\": {` - `phase-machine pass` - prompts internos de loop/iteration 2. filtro por forma No guardar si: - casi todo el contenido es boilerplate - domina JSON/routing/payload - no hay user fact, decision, artifact, o resultado reusable claro 3. dedupe normalizado Antes de consolidar, comparar versión normalizada sin: - `[telegram]` - urls - task ids / run ids - timestamps - blobs JSON - espacios/puntuación extra 4. promotions honestas No contar `episode active` como promotion automática. Solo promotion real si: - venía `inbox` y sube a `active` - o pasa filtro durable explícito 5. consolidación más dura para episodios Para `episode`: - lower dedupe thresholds - si es near-duplicate operativo: link + archive Implementación mínima: - en analyzer: - skip de memorias candidatas ruidosas - en service: - helper `normalize_for_dedupe()` - usar eso en duplicate/high-similarity - sacar conteo inflado de promoted Orden de trabajo: 1. meter filtros de ruido 2. meter dedupe normalizado 3. corregir métricas de promotion 4. correr dry run de nuevo 5. recién después decidir si activarlo full Esperado: - baja inmediata de ruido nuevo - menos “promotions” falsas - más links/archives útiles Si querés, siguiente mensaje: hago el cambio.", "source_ref": "session:019e926c-6feb-7773-8e97-5645482738b0", "evidence_ref": "/home/sebas/pi-config/sessions/--home-sebas--/2026-06-04T11-37-20-619Z_019e926c-6feb-7773-8e97-5645482738b0.jsonl", "confidence": 0.72, "freshness": 0.95, "importance": 0.56, "reason": "Deterministic fallback because model analysis was unavailable: Warning: No models match pattern \"gemini-3-flash-preview:minimal\"\nWarning: No models match pattern \"gemini-3-flash-preview:medium\"\nWarning: No models match pattern \"claude-3-7-sonnet:low\"\nWarning: No models match pattern \"claude-3-7-sonnet:medium\"\nWarning: No models match pattern \"claude-3-7-sonnet:high\"\nWarning: No models match pattern \"o3-mini:low\"\nWarning: No models match pattern \"o3-mini:medium\"\nWarning: No models match pattern \"o3-mini:high\"\nWarning: No models match pattern \"minimax-m2.5-free:minimal\"\nWarning: No models match pattern \"qwen/qwen3-coder:free:minimal\"\nWarning: No models match pattern \"google/gemma-3-27b-it:free:minimal\"\nNo API key for provider: openai-codex"}], "reason": "fallback-analysis:Warning: No models match pattern \"gemini-3-flash-preview:minimal\"\nWarning: No models match pattern \"gemini-3-flash-preview:medium\"\nWarning: No models match pattern \"claude-3-7-sonnet:low\"\nWarning: No models match pattern \"claude-3-7-sonnet:medium\"\nWarning: No models match pattern \"claude-3-7-sonnet:high\"\nWarning: No models match pattern \"o3-mini:low\"\nWarning: No models match pattern \"o3-mini:medium\"\nWarning: No models match pattern \"o3-mini:high\"\nWarning: No models match pattern \"minimax-m2.5-free:minimal\"\nWarning: No models match pattern \"qwen/qwen3-coder:free:minimal\"\nWarning: No models match pattern \"google/gemma-3-27b-it:free:minimal\"\nNo API key for provider: openai-codex"}, "fallback_error": "Warning: No models match pattern \"gemini-3-flash-preview:minimal\"\nWarning: No models match pattern \"gemini-3-flash-preview:medium\"\nWarning: No models match pattern \"claude-3-7-sonnet:low\"\nWarning: No models match pattern \"claude-3-7-sonnet:medium\"\nWarning: No models match pattern \"claude-3-7-sonnet:high\"\nWarning: No models match pattern \"o3-mini:low\"\nWarning: No models match pattern \"o3-mini:medium\"\nWarning: No models match pattern \"o3-mini:high\"\nWarning: No models match pattern \"minimax-m2.5-free:minimal\"\nWarning: No models match pattern \"qwen/qwen3-coder:free:minimal\"\nWarning: No models match pattern \"google/gemma-3-27b-it:free:minimal\"\nNo API key for provider: openai-codex"}
