diff --git a/pkg/agent/loop.go b/pkg/agent/loop.go index 6341cbb4c..bb2bf9ef0 100644 --- a/pkg/agent/loop.go +++ b/pkg/agent/loop.go @@ -1555,6 +1555,7 @@ func (al *AgentLoop) askSideQuestion( var channel, chatID, senderID, senderDisplayName string var media []string var activeSkills []string + var history []providers.Message var summary string if opts != nil { channel = opts.Channel @@ -1570,13 +1571,14 @@ func (al *AgentLoop) askSideQuestion( Budget: agent.ContextWindow, MaxTokens: agent.MaxTokens, }); err == nil && resp != nil { + history = resp.History summary = resp.Summary } } } messages := agent.ContextBuilder.BuildMessages( - nil, + history, summary, question, media, diff --git a/pkg/agent/loop_test.go b/pkg/agent/loop_test.go index 28aef5679..cc53d8a7a 100644 --- a/pkg/agent/loop_test.go +++ b/pkg/agent/loop_test.go @@ -286,8 +286,12 @@ func TestProcessMessage_BtwCommandRunsWithoutPersistingHistory(t *testing.T) { if len(provider.lastMessages) == 0 { t.Fatal("provider did not receive any messages") } - if len(provider.lastMessages) != 2 { - t.Fatalf("provider messages len = %d, want 2 (system + user, no history)", len(provider.lastMessages)) + if len(provider.lastMessages) != 4 { + t.Fatalf("provider messages len = %d, want 4 (system + prior history + user)", len(provider.lastMessages)) + } + + if !reflect.DeepEqual(provider.lastMessages[1:3], initialHistory) { + t.Fatalf("provider history = %#v, want %#v", provider.lastMessages[1:3], initialHistory) } lastMessage := provider.lastMessages[len(provider.lastMessages)-1]