From c5efc6e65067d68340854c5284b46b662ba500df Mon Sep 17 00:00:00 2001 From: ProofOfConcept Date: Wed, 25 Mar 2026 02:28:44 -0400 Subject: [PATCH] budget: identity = system prompt + personality, memory = loaded nodes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Personality is identity, not memory. Memory is nodes loaded during the session via tool calls — things I've actively looked at. Co-Authored-By: Proof of Concept --- src/agent/runner.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) 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,