diff --git a/loop/agent_test.go b/loop/agent_test.go
index 911b03e..da8a444 100644
--- a/loop/agent_test.go
+++ b/loop/agent_test.go
@@ -261,6 +261,7 @@
 	toolResultCancelContentsFunc func(resp *llm.Response) ([]llm.Content, error)
 	cancelToolUseFunc            func(toolUseID string, cause error) error
 	cumulativeUsageFunc          func() conversation.CumulativeUsage
+	lastUsageFunc                func() llm.Usage
 	resetBudgetFunc              func(conversation.Budget)
 	overBudgetFunc               func() error
 	getIDFunc                    func() string
@@ -309,6 +310,13 @@
 	return conversation.CumulativeUsage{}
 }
 
+func (m *MockConvoInterface) LastUsage() llm.Usage {
+	if m.lastUsageFunc != nil {
+		return m.lastUsageFunc()
+	}
+	return llm.Usage{}
+}
+
 func (m *MockConvoInterface) ResetBudget(budget conversation.Budget) {
 	if m.resetBudgetFunc != nil {
 		m.resetBudgetFunc(budget)
@@ -485,6 +493,10 @@
 	return conversation.CumulativeUsage{}
 }
 
+func (m *mockConvoInterface) LastUsage() llm.Usage {
+	return llm.Usage{}
+}
+
 func (m *mockConvoInterface) ResetBudget(conversation.Budget) {}
 
 func (m *mockConvoInterface) OverBudget() error {
