diff --git a/llama_stack/log.py b/llama_stack/log.py index 11aa1bf7e..481385974 100644 --- a/llama_stack/log.py +++ b/llama_stack/log.py @@ -11,6 +11,7 @@ from typing import Dict from rich.console import Console from rich.logging import RichHandler +from rich.errors import MarkupError # Default log level DEFAULT_LOG_LEVEL = logging.INFO @@ -82,6 +83,18 @@ class CustomRichHandler(RichHandler): kwargs["console"] = Console(width=120) super().__init__(*args, **kwargs) + def emit(self, record): + """Override emit to handle markup errors gracefully.""" + try: + super().emit(record) + except MarkupError: + original_markup = self.markup + self.markup = False + try: + super().emit(record) + finally: + self.markup = original_markup + def setup_logging(category_levels: Dict[str, int]) -> None: """ diff --git a/llama_stack/providers/inline/agents/meta_reference/agent_instance.py b/llama_stack/providers/inline/agents/meta_reference/agent_instance.py index b7cba4e46..3619b3f67 100644 --- a/llama_stack/providers/inline/agents/meta_reference/agent_instance.py +++ b/llama_stack/providers/inline/agents/meta_reference/agent_instance.py @@ -16,7 +16,6 @@ from typing import Any, AsyncGenerator, Dict, List, Optional, Tuple, Union from urllib.parse import urlparse import httpx -from rich.markup import escape from llama_stack.apis.agents import ( AgentConfig, @@ -1030,7 +1029,7 @@ async def execute_tool_call_maybe( **toolgroup_args.get(group_name, {}), }, ) - logger.info(f"tool call {name} completed with result: {escape(str(result))}") + logger.info(f"tool call {name} completed with result: {result}") return result