diff --git a/src/agent/runner.rs b/src/agent/runner.rs index 1fe7194..f5fce7a 100644 --- a/src/agent/runner.rs +++ b/src/agent/runner.rs @@ -193,8 +193,8 @@ impl Agent { } else if text.starts_with("Your context was just rebuilt") { jnl_tokens += tokens; } else if jnl_tokens == 0 && conv_tokens == 0 { - // First user message is personality/memory context - // Count it as memory, not identity + // Personality context — part of identity + id_tokens += tokens; } else { in_conversation = true; conv_tokens += tokens; @@ -207,13 +207,10 @@ impl Agent { } } - // Memory = personality context + loaded nodes from tool calls - let mut mem_tokens: usize = self.context.personality.iter() - .map(|(_, content)| count(content)) + // Memory = nodes loaded during the session via tool calls + let mem_tokens: usize = self.context.loaded_nodes.iter() + .map(|node| count(&node.render())) .sum(); - for node in &self.context.loaded_nodes { - mem_tokens += count(&node.render()); - } self.context_budget = ContextBudget { identity_tokens: id_tokens,