diff --git a/src/google/adk/telemetry/tracing.py b/src/google/adk/telemetry/tracing.py index 707bc31396..2e32221878 100644 --- a/src/google/adk/telemetry/tracing.py +++ b/src/google/adk/telemetry/tracing.py @@ -116,11 +116,14 @@ def _safe_json_serialize(obj) -> str: The JSON-serialized object string or if the object cannot be serialized. """ + def _default(o: Any) -> Any: + if isinstance(o, BaseModel): + return o.model_dump(mode='json') + return '' + try: # Try direct JSON serialization first - return json.dumps( - obj, ensure_ascii=False, default=lambda o: '' - ) + return json.dumps(obj, ensure_ascii=False, default=_default) except (TypeError, OverflowError): return ''