2025-08-31 00:34:26 +08:00
|
|
|
|
from dataclasses import dataclass, field
|
2025-09-01 22:37:03 +08:00
|
|
|
|
from typing import Annotated
|
2025-08-31 00:34:26 +08:00
|
|
|
|
|
2025-11-05 02:04:34 +08:00
|
|
|
|
from src.agents.common import BaseContext, gen_tool_info
|
2025-12-30 19:01:45 +08:00
|
|
|
|
from src.knowledge import knowledge_base
|
2026-01-14 17:32:19 +08:00
|
|
|
|
from src.services.mcp_service import get_mcp_server_names
|
2025-08-31 10:27:58 +08:00
|
|
|
|
|
|
|
|
|
|
from .tools import get_tools
|
2025-08-31 00:34:26 +08:00
|
|
|
|
|
2025-09-01 22:37:03 +08:00
|
|
|
|
|
2025-08-31 00:34:26 +08:00
|
|
|
|
@dataclass(kw_only=True)
|
|
|
|
|
|
class Context(BaseContext):
|
2025-08-31 10:27:58 +08:00
|
|
|
|
tools: Annotated[list[dict], {"__template_metadata__": {"kind": "tools"}}] = field(
|
2025-08-31 00:34:26 +08:00
|
|
|
|
default_factory=list,
|
|
|
|
|
|
metadata={
|
|
|
|
|
|
"name": "工具",
|
2025-12-24 18:52:14 +08:00
|
|
|
|
"options": lambda: gen_tool_info(get_tools()), # 这里的选择是所有的工具
|
2025-12-30 19:01:45 +08:00
|
|
|
|
"description": "内置的部分工具,包含 common 工具和本智能体的特有工具(不含 MCP)。",
|
|
|
|
|
|
},
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
knowledges: list[str] = field(
|
|
|
|
|
|
default_factory=list,
|
|
|
|
|
|
metadata={
|
|
|
|
|
|
"name": "知识库",
|
|
|
|
|
|
"options": lambda: [k["name"] for k in knowledge_base.get_retrievers().values()],
|
|
|
|
|
|
"description": "知识库列表,可以在左侧知识库页面中创建知识库。",
|
|
|
|
|
|
"type": "list", # Explicitly mark as list type for frontend if needed
|
2025-08-31 00:34:26 +08:00
|
|
|
|
},
|
|
|
|
|
|
)
|
2025-09-01 03:38:46 +08:00
|
|
|
|
|
|
|
|
|
|
mcps: list[str] = field(
|
|
|
|
|
|
default_factory=list,
|
2025-12-24 18:52:14 +08:00
|
|
|
|
metadata={
|
|
|
|
|
|
"name": "MCP服务器",
|
2026-01-14 17:32:19 +08:00
|
|
|
|
"options": lambda: get_mcp_server_names(),
|
2025-12-30 19:01:45 +08:00
|
|
|
|
"description": (
|
|
|
|
|
|
"MCP服务器列表,建议使用支持 SSE 的 MCP 服务器,"
|
2025-12-30 19:19:49 +08:00
|
|
|
|
"如果需要使用 uvx 或 npx 运行的服务器,也请在项目外部启动 MCP 服务器,并在项目中配置 MCP 服务器。"
|
|
|
|
|
|
),
|
2025-12-24 18:52:14 +08:00
|
|
|
|
},
|
2025-09-01 03:38:46 +08:00
|
|
|
|
)
|