fix(toolset): 工具传递改为展开的 tools 列表,不再用 FunctionToolset 包装

前端/DB 仍用 toolset 做逻辑分组管理,但传给 pydantic-ai Agent 时
把 toolset 内的 callable 展开为 tools=[] 扁平列表,MCP server 等
需要 toolset 语义的单独走 toolsets=[] 参数。解决工具"存在但调不了"的问题。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 19:05:59 +00:00
parent 78d03388c0
commit b15eeb9e74
8 changed files with 76 additions and 67 deletions
+4 -2
View File
@@ -23,7 +23,7 @@ from fastapi import HTTPException
from typing import Optional, List, Dict
from kilostar.utils.check_user.role_check import RoleChecker
from kilostar.core.postgres_database.model import UserAuthority
from kilostar.utils.mcp_helper import get_all_toolsets_for_scope
from kilostar.utils.mcp_helper import get_all_tools_and_toolsets_for_scope
from kilostar.utils.i18n import t
agent_router = APIRouter(prefix="/api/v1/agent", tags=["agent"])
@@ -84,7 +84,7 @@ async def load_agent(
)
scope = agent_register.individual_name
toolsets = await get_all_toolsets_for_scope(
tools, toolsets = await get_all_tools_and_toolsets_for_scope(
scope, toolset_ids=agent_register.toolsets
)
@@ -102,6 +102,7 @@ async def load_agent(
global_state_machine,
agent_register.provider_title,
agent_register.model_id,
tools,
toolsets,
accept_lang,
persona_prompt,
@@ -112,6 +113,7 @@ async def load_agent(
global_state_machine,
agent_register.provider_title,
agent_register.model_id,
tools,
toolsets,
accept_lang,
persona_prompt,