From c7509a0c2dca90e11529f72ed40b79c20d317f68 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 16 Mar 2026 18:44:48 -0400 Subject: [PATCH] agents: log raw LLM output to files, not graph nodes Raw agent responses were being stored as nodes in the graph (_consolidate-*, _knowledge-*), creating thousands of nodes per day that polluted search results and bloated the store. Now logged to ~/.claude/memory/llm-logs//.txt instead. Node creation should only happen through explicit agent actions (WRITE_NODE, REFINE) or direct poc-memory write tool calls. Co-Authored-By: Claude Opus 4.6 (1M context) --- poc-memory/src/agents/knowledge.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/poc-memory/src/agents/knowledge.rs b/poc-memory/src/agents/knowledge.rs index 3ac389d..14e0de8 100644 --- a/poc-memory/src/agents/knowledge.rs +++ b/poc-memory/src/agents/knowledge.rs @@ -674,13 +674,13 @@ pub fn run_one_agent( let output_kb = output.len() / 1024; log(&format!("response {}KB", output_kb)); - // Store raw output for audit trail — key includes a content slug + // Log raw output to file, not the graph let ts = store::compact_timestamp(); - let slug = make_report_slug(&output); - let report_key = format!("_{}-{}-{}{}", llm_tag, agent_name, ts, - if slug.is_empty() { String::new() } else { format!("-{}", slug) }); - let provenance = agent_provenance(agent_name); - store.upsert_provenance(&report_key, &output, &provenance).ok(); + let log_dir = store::memory_dir().join("llm-logs").join(agent_name); + fs::create_dir_all(&log_dir).ok(); + let log_path = log_dir.join(format!("{}.txt", ts)); + fs::write(&log_path, &output).ok(); + log(&format!("logged to {}", log_path.display())); let actions = parse_all_actions(&output); let no_ops = count_no_ops(&output);