diff --git a/arcade/arcade/cli/utils.py b/arcade/arcade/cli/utils.py index d2fd1f3b..422715ed 100644 --- a/arcade/arcade/cli/utils.py +++ b/arcade/arcade/cli/utils.py @@ -17,6 +17,7 @@ from openai import OpenAI, Stream from openai.types.chat.chat_completion import Choice as ChatCompletionChoice from openai.types.chat.chat_completion_chunk import ChatCompletionChunk from openai.types.chat.chat_completion_chunk import Choice as ChatCompletionChunkChoice +from pydantic import ValidationError from rich.console import Console from rich.live import Live from rich.markdown import Markdown @@ -201,7 +202,11 @@ def get_tools_from_engine( try: page_iterator = client.tools.list(toolkit=toolkit or NOT_GIVEN) for tool in page_iterator: - tools.append(ToolDefinition.model_validate(tool.model_dump())) + try: + tools.append(ToolDefinition.model_validate(tool.model_dump())) + except ValidationError: + # Skip listing tools that aren't valid ToolDefinitions + continue except APIConnectionError: console.print( f"❌ Can't connect to Arcade Engine at {base_url}. (Is it running?)", style="bold red"