From 2a962d4a9616c9b6be1f30615f27400fbf0a8e26 Mon Sep 17 00:00:00 2001 From: Buddha <17410369+elseasama@users.noreply.github.com> Date: Mon, 16 Feb 2026 20:12:42 +0530 Subject: [PATCH] fix: retry with nudge when LLM returns empty response after tool use --- pkg/agent/loop.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/agent/loop.go b/pkg/agent/loop.go index f3dd94090..3173793dd 100644 --- a/pkg/agent/loop.go +++ b/pkg/agent/loop.go @@ -468,6 +468,19 @@ func (al *AgentLoop) runLLMIteration(ctx context.Context, messages []providers.M "iteration": iteration, "content_chars": len(finalContent), }) + // If content is empty and we just processed tool results (iteration > 1), + // retry once by adding a nudge message to prompt the model to respond. + if strings.TrimSpace(finalContent) == "" && iteration > 1 && iteration < al.maxIterations { + logger.InfoCF("agent", "Empty response after tool use, retrying with nudge", + map[string]interface{}{ + "iteration": iteration, + }) + messages = append(messages, providers.Message{ + Role: "user", + Content: "Please provide your response based on the tool results above.", + }) + continue + } break }