diff --git a/src/agent/runner.rs b/src/agent/runner.rs index aee7cdf..5bc3ce4 100644 --- a/src/agent/runner.rs +++ b/src/agent/runner.rs @@ -195,9 +195,8 @@ impl Agent { .map(|e| count(&e.content)).sum(); let mem_tokens: usize = self.context.loaded_nodes.iter() .map(|node| count(&node.render())).sum(); - let total_conv: usize = self.context.messages.iter() + let conv_tokens: usize = self.context.messages.iter() .map(|m| crate::agent::context::msg_token_count(&self.tokenizer, m)).sum(); - let conv_tokens = total_conv.saturating_sub(mem_tokens); self.context_budget = ContextBudget { identity_tokens: id_tokens, @@ -695,10 +694,7 @@ impl Agent { } // Conversation — each message as a child - let conv_start = self.context.messages.iter() - .position(|m| m.role == Role::Assistant || m.role == Role::Tool) - .unwrap_or(self.context.messages.len()); - let conv_messages = &self.context.messages[conv_start..]; + let conv_messages = &self.context.messages; let conv_children: Vec = conv_messages.iter().enumerate() .map(|(i, msg)| { let text = msg.content.as_ref() @@ -726,7 +722,7 @@ impl Agent { Role::System => "system", }; ContextSection { - name: format!("[{}] {}: {}", conv_start + i, role_name, label), + name: format!("[{}] {}: {}", i, role_name, label), tokens, content: text, children: Vec::new(),