diff --git a/poc-memory/src/agents/knowledge.rs b/poc-memory/src/agents/knowledge.rs index 03d3166..c77f7f2 100644 --- a/poc-memory/src/agents/knowledge.rs +++ b/poc-memory/src/agents/knowledge.rs @@ -143,6 +143,16 @@ fn run_one_agent_inner( // Rough estimate: 1 token ≈ 4 bytes. Reserve 16K tokens for output. let max_prompt_bytes = 800_000; // ~200K tokens, leaves room for output if agent_batch.prompt.len() > max_prompt_bytes { + // Log the oversized prompt for debugging + let oversize_dir = store::memory_dir().join("llm-logs").join("oversized"); + fs::create_dir_all(&oversize_dir).ok(); + let oversize_path = oversize_dir.join(format!("{}-{}.txt", + agent_name, store::compact_timestamp())); + let header = format!("=== OVERSIZED PROMPT ===\nagent: {}\nsize: {}KB (max {}KB)\nnodes: {:?}\n\n", + agent_name, prompt_kb, max_prompt_bytes / 1024, agent_batch.node_keys); + fs::write(&oversize_path, format!("{}{}", header, agent_batch.prompt)).ok(); + log(&format!("oversized prompt logged to {}", oversize_path.display())); + return Err(format!( "prompt too large: {}KB (max {}KB) — seed nodes may be oversized", prompt_kb, max_prompt_bytes / 1024,