diff --git a/src/agent/dispatcher.rs b/src/agent/dispatcher.rs index 673ec8c..bf3c4ac 100644 --- a/src/agent/dispatcher.rs +++ b/src/agent/dispatcher.rs @@ -166,8 +166,14 @@ impl ToolDispatcher for NativeToolDispatcher { .iter() .map(|tc| ParsedToolCall { name: tc.name.clone(), - arguments: serde_json::from_str(&tc.arguments) - .unwrap_or_else(|_| Value::Object(serde_json::Map::new())), + arguments: serde_json::from_str(&tc.arguments).unwrap_or_else(|e| { + tracing::warn!( + tool = %tc.name, + error = %e, + "Failed to parse native tool call arguments as JSON; defaulting to empty object" + ); + Value::Object(serde_json::Map::new()) + }), tool_call_id: Some(tc.id.clone()), }) .collect();