fix: honor MCP tool error results

This commit is contained in:
chengyongru
2026-07-01 13:03:47 +08:00
committed by Xubin Ren
parent b0258e8b20
commit 21aa900d64
2 changed files with 38 additions and 3 deletions
+5 -2
View File
@@ -14,7 +14,7 @@ from weakref import WeakKeyDictionary
import httpx
from loguru import logger
from nanobot.agent.tools.base import Tool
from nanobot.agent.tools.base import Tool, ToolResult
from nanobot.agent.tools.registry import ToolRegistry
from nanobot.bus.events import (
INBOUND_META_RUNTIME_CONTROL,
@@ -461,7 +461,10 @@ class MCPToolWrapper(_MCPWrapperBase):
return f"(MCP tool call failed: {type(exc).__name__})"
else:
# Success — extract text and persist any image content as artifacts.
return self._render_call_result(result.content, kwargs)
rendered = self._render_call_result(result.content, kwargs)
if getattr(result, "isError", False):
return ToolResult.error(rendered)
return rendered
return "(MCP tool call failed)" # Unreachable, but satisfies type checkers