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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user