From 9a074f2fbefafbbcf42d61a037db689802d36a0f Mon Sep 17 00:00:00 2001 From: Tyler Longwell Date: Thu, 4 Dec 2025 11:56:21 -0500 Subject: [PATCH] fix: prevent panic when LLM creates task with empty response schema --- crates/goose/src/agents/subagent_handler.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/crates/goose/src/agents/subagent_handler.rs b/crates/goose/src/agents/subagent_handler.rs index 2d6f7f8167..66d995687f 100644 --- a/crates/goose/src/agents/subagent_handler.rs +++ b/crates/goose/src/agents/subagent_handler.rs @@ -131,9 +131,13 @@ fn get_agent_messages( } } - let has_response_schema = recipe.response.is_some(); + let valid_response = recipe + .response + .as_ref() + .filter(|r| r.json_schema.is_some()) + .cloned(); agent - .apply_recipe_components(recipe.sub_recipes.clone(), recipe.response.clone(), true) + .apply_recipe_components(recipe.sub_recipes.clone(), valid_response.clone(), true) .await; let user_message = Message::user().with_text(text_instruction); @@ -170,7 +174,7 @@ fn get_agent_messages( } } - let final_output = if has_response_schema { + let final_output = if valid_response.is_some() { agent .final_output_tool .lock()