agents: log oversized prompts to llm-logs/oversized/ for debugging
When a prompt exceeds the size guard, dump it to a timestamped file with agent name, size, and seed node keys. Makes it easy to find which nodes are blowing up prompts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
3a8575b429
commit
0c687ae7a4
1 changed files with 10 additions and 0 deletions
|
|
@ -143,6 +143,16 @@ fn run_one_agent_inner(
|
||||||
// Rough estimate: 1 token ≈ 4 bytes. Reserve 16K tokens for output.
|
// Rough estimate: 1 token ≈ 4 bytes. Reserve 16K tokens for output.
|
||||||
let max_prompt_bytes = 800_000; // ~200K tokens, leaves room for output
|
let max_prompt_bytes = 800_000; // ~200K tokens, leaves room for output
|
||||||
if agent_batch.prompt.len() > max_prompt_bytes {
|
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!(
|
return Err(format!(
|
||||||
"prompt too large: {}KB (max {}KB) — seed nodes may be oversized",
|
"prompt too large: {}KB (max {}KB) — seed nodes may be oversized",
|
||||||
prompt_kb, max_prompt_bytes / 1024,
|
prompt_kb, max_prompt_bytes / 1024,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue