feat: add MCP tool integration

This commit is contained in:
Xin Wang
2026-07-18 00:00:06 +08:00
parent bdf3d3dd9c
commit e39bb48ba8
21 changed files with 1641 additions and 62 deletions

View File

@@ -55,8 +55,8 @@ class PromptBrain(BaseBrain):
for tool in cfg.tools:
if tool.type == "end_call":
schema, handler = self._make_end_call_tool(tool, runtime)
elif tool.type == "http":
schema, handler = self._make_http_tool(tool, runtime)
elif tool.type in {"http", "mcp"}:
schema, handler = self._make_remote_tool(tool, runtime)
else:
continue
schemas.append(schema)
@@ -96,7 +96,7 @@ class PromptBrain(BaseBrain):
if self._dynamic_enabled and self._runtime is not None:
self._runtime.set_system_prompt(self._store.render(self._cfg.prompt))
def _make_http_tool(self, tool, runtime: BrainRuntime):
def _make_remote_tool(self, tool, runtime: BrainRuntime):
properties, required = self._tools.schema_parts(tool)
self._tools.register_secrets(tool)
@@ -108,7 +108,7 @@ class PromptBrain(BaseBrain):
await params.result_callback(result)
except (ToolExecutionError, ValueError) as exc:
await params.result_callback(
{"status": "error", "message": f"HTTP 工具调用失败: {exc}"}
{"status": "error", "message": f"工具调用失败: {exc}"}
)
schema = FunctionSchema(