From 438fc105cda719738e20d79437111fcc012c83d8 Mon Sep 17 00:00:00 2001 From: advent259141 <2968474907@qq.com> Date: Wed, 11 Mar 2026 20:37:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=9C=A8=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E6=B3=A8=E5=85=A5=E5=89=8D=E5=AF=B9=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=90=AF=E7=94=A8=E7=9A=84=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/astr_main_agent.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/astrbot/core/astr_main_agent.py b/astrbot/core/astr_main_agent.py index 680892c45..3613aeb03 100644 --- a/astrbot/core/astr_main_agent.py +++ b/astrbot/core/astr_main_agent.py @@ -9,7 +9,7 @@ import zoneinfo from collections.abc import Coroutine from dataclasses import dataclass, field -from astrbot.core import logger +from astrbot.core import logger, sp from astrbot.core.agent.handoff import HandoffTool from astrbot.core.agent.mcp_client import MCPTool from astrbot.core.agent.message import TextPart @@ -1033,13 +1033,18 @@ async def build_main_agent( sandbox_cfg=config.sandbox_cfg, session_id=req.session_id or "", ) + # Respect WebUI tool enable/disable settings + _inactivated: set[str] = set( + sp.get("inactivated_llm_tools", [], scope="global", scope_id="global") + ) for _tp in config.tool_providers: _tp_tools = _tp.get_tools(_provider_ctx) if _tp_tools: if req.func_tool is None: req.func_tool = ToolSet() for _tool in _tp_tools: - req.func_tool.add_tool(_tool) + if _tool.name not in _inactivated: + req.func_tool.add_tool(_tool) _tp_addon = _tp.get_system_prompt_addon(_provider_ctx) if _tp_addon: req.system_prompt = f"{req.system_prompt or ''}{_tp_addon}"