From 47d5c96ee8ad0e04f66bf6a7f24846f36b32de95 Mon Sep 17 00:00:00 2001 From: Alex Yao <33379584+alexyao2015@users.noreply.github.com> Date: Sun, 12 Oct 2025 15:04:33 -0400 Subject: [PATCH] Fix bedrock tool input schema (#5064) Signed-off-by: alexyao2015 Co-authored-by: alexyao2019@gmail.com --- crates/goose/src/providers/formats/bedrock.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/goose/src/providers/formats/bedrock.rs b/crates/goose/src/providers/formats/bedrock.rs index bff8ff33..8521ec51 100644 --- a/crates/goose/src/providers/formats/bedrock.rs +++ b/crates/goose/src/providers/formats/bedrock.rs @@ -188,6 +188,14 @@ pub fn to_bedrock_tool_config(tools: &[Tool]) -> Result Result { + let mut input_schema = tool.input_schema.as_ref().clone(); + + // If the schema doesn't have a "type" field, add it + // This is required by Bedrock + if !input_schema.contains_key("type") { + input_schema.insert("type".to_string(), Value::String("object".to_string())); + } + Ok(bedrock::Tool::ToolSpec( bedrock::ToolSpecification::builder() .name(tool.name.to_string()) @@ -198,7 +206,7 @@ pub fn to_bedrock_tool(tool: &Tool) -> Result { .unwrap_or_default(), ) .input_schema(bedrock::ToolInputSchema::Json(to_bedrock_json( - &Value::Object(tool.input_schema.as_ref().clone()), + &Value::Object(input_schema), ))) .build()?, ))