26 lines
800 B
Python
26 lines
800 B
Python
|
|
from dataclasses import dataclass, field
|
||
|
|
from typing import Annotated
|
||
|
|
|
||
|
|
from src.agents.common.context import BaseContext
|
||
|
|
from src.agents.common.mcp import MCP_SERVERS
|
||
|
|
from src.agents.common.tools import gen_tool_info
|
||
|
|
|
||
|
|
from .tools import get_tools
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass(kw_only=True)
|
||
|
|
class Context(BaseContext):
|
||
|
|
tools: Annotated[list[dict], {"__template_metadata__": {"kind": "tools"}}] = field(
|
||
|
|
default_factory=list,
|
||
|
|
metadata={
|
||
|
|
"name": "工具",
|
||
|
|
"options": gen_tool_info(get_tools()), # 这里的选择是所有的工具
|
||
|
|
"description": "工具列表",
|
||
|
|
},
|
||
|
|
)
|
||
|
|
|
||
|
|
mcps: list[str] = field(
|
||
|
|
default_factory=list,
|
||
|
|
metadata={"name": "MCP服务器", "options": list(MCP_SERVERS.keys()), "description": "MCP服务器列表"},
|
||
|
|
)
|