from pydantic import BaseModel, Field from typing import List, Dict, Any, Literal, Union, Optional class SystemItem(BaseModel): command_template: str = Field(..., description="底层 shell 命令模板") args_schema: Dict[str, Any] = Field(default_factory=dict, description="该指令接受的参数约束") class IndividualItem(BaseModel): description: str params: Dict[str: str] base_prompt: str = Field(..., description="个体的基础人格/背景设定") class ToolItem(BaseModel): description: str plugin_path: str = Field(..., description="插件物理路径或类路径") class ControlRegister(BaseModel): # 统一使用 Dict,方便通过 name 快速索引:{ "name": ItemObject } system_registry: Dict[str, SystemItem] = Field(default_factory=dict) individual_registry: Dict[str, IndividualItem] = Field(default_factory=dict) tool_registry: Dict[str, ToolItem] = Field(default_factory=dict) global_information : Dict[str, str] = Field(default_factory=dict)