From bd93ae663dcbf966443ca0da59f8fc18be9b1105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=BD=AE?= Date: Sun, 16 Nov 2025 19:46:27 +0800 Subject: [PATCH] add generic_agent --- fastapi_app.py | 6 +++--- ...ings_agent.json => mcp_settings_generic_agent.json} | 0 ..._prompt_agent.md => system_prompt_generic_agent.md} | 0 utils/api_models.py | 2 +- utils/file_loaded_agent_manager.py | 2 +- utils/prompt_loader.py | 10 +++++----- utils/sharded_agent_manager.py | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) rename mcp/{mcp_settings_agent.json => mcp_settings_generic_agent.json} (100%) rename prompt/{system_prompt_agent.md => system_prompt_generic_agent.md} (100%) diff --git a/fastapi_app.py b/fastapi_app.py index b58680d..05f9d1b 100644 --- a/fastapi_app.py +++ b/fastapi_app.py @@ -1091,7 +1091,7 @@ async def create_agent_and_generate_response( raise HTTPException(status_code=500, detail="No response from agent") -def create_project_directory(dataset_ids: Optional[List[str]], bot_id: str, robot_type: str = "agent") -> Optional[str]: +def create_project_directory(dataset_ids: Optional[List[str]], bot_id: str, robot_type: str = "generic_agent") -> Optional[str]: """创建项目目录的公共逻辑""" # 只有当 robot_type == "catalog_agent" 且 dataset_ids 不为空时才创建目录 if robot_type != "catalog_agent" or not dataset_ids or len(dataset_ids) == 0: @@ -1186,7 +1186,7 @@ async def chat_completions_v2(request: ChatRequestV2, authorization: Optional[st project_dir = create_project_directory( bot_config.get("dataset_ids", []), bot_id, - bot_config.get("robot_type", "agent") + bot_config.get("robot_type", "generic_agent") ) # 处理消息 @@ -1204,7 +1204,7 @@ async def chat_completions_v2(request: ChatRequestV2, authorization: Optional[st language=request.language or bot_config.get("language", "ja"), system_prompt=bot_config.get("system_prompt"), mcp_settings=bot_config.get("mcp_settings", []), - robot_type=bot_config.get("robot_type", "agent"), + robot_type=bot_config.get("robot_type", "generic_agent"), project_dir=project_dir, generate_cfg={}, # v2接口不传递额外的generate_cfg user_identifier=request.user_identifier diff --git a/mcp/mcp_settings_agent.json b/mcp/mcp_settings_generic_agent.json similarity index 100% rename from mcp/mcp_settings_agent.json rename to mcp/mcp_settings_generic_agent.json diff --git a/prompt/system_prompt_agent.md b/prompt/system_prompt_generic_agent.md similarity index 100% rename from prompt/system_prompt_agent.md rename to prompt/system_prompt_generic_agent.md diff --git a/utils/api_models.py b/utils/api_models.py index 7665ae1..025ac1f 100644 --- a/utils/api_models.py +++ b/utils/api_models.py @@ -50,7 +50,7 @@ class ChatRequest(BaseModel): tool_response: Optional[bool] = False system_prompt: Optional[str] = None mcp_settings: Optional[List[Dict]] = None - robot_type: Optional[str] = "agent" + robot_type: Optional[str] = "generic_agent" user_identifier: Optional[str] = "" diff --git a/utils/file_loaded_agent_manager.py b/utils/file_loaded_agent_manager.py index 620f272..a751af9 100644 --- a/utils/file_loaded_agent_manager.py +++ b/utils/file_loaded_agent_manager.py @@ -112,7 +112,7 @@ class FileLoadedAgentManager: language: Optional[str] = None, system_prompt: Optional[str] = None, mcp_settings: Optional[List[Dict]] = None, - robot_type: Optional[str] = "agent", + robot_type: Optional[str] = "generic_agent", user_identifier: Optional[str] = None) -> Assistant: """获取或创建文件预加载的助手实例 diff --git a/utils/prompt_loader.py b/utils/prompt_loader.py index 78801e6..4a6f32a 100644 --- a/utils/prompt_loader.py +++ b/utils/prompt_loader.py @@ -36,7 +36,7 @@ def safe_replace(text: str, placeholder: str, value: Any) -> str: return text.replace(placeholder, replacement) -async def load_system_prompt_async(project_dir: str, language: str = None, system_prompt: str=None, robot_type: str = "agent", bot_id: str="", user_identifier: str = "") -> str: +async def load_system_prompt_async(project_dir: str, language: str = None, system_prompt: str=None, robot_type: str = "generic_agent", bot_id: str="", user_identifier: str = "") -> str: """异步版本的系统prompt加载 Args: @@ -68,7 +68,7 @@ async def load_system_prompt_async(project_dir: str, language: str = None, syste prompt = safe_replace(prompt, '{bot_id}', bot_id) prompt = safe_replace(prompt, '{user_identifier}', user_identifier) return prompt or "" - elif robot_type == "agent" or robot_type == "catalog_agent": + elif robot_type == "generic_agent" or robot_type == "catalog_agent": """ 优先使用项目目录的README.md,没有才使用默认的system_prompt_{robot_type}.md """ @@ -106,7 +106,7 @@ async def load_system_prompt_async(project_dir: str, language: str = None, syste return prompt or "" -def load_system_prompt(project_dir: str, language: str = None, system_prompt: str=None, robot_type: str = "agent", bot_id: str="", user_identifier: str = "") -> str: +def load_system_prompt(project_dir: str, language: str = None, system_prompt: str=None, robot_type: str = "generic_agent", bot_id: str="", user_identifier: str = "") -> str: """同步版本的系统prompt加载,内部调用异步版本以保持向后兼容""" try: loop = asyncio.get_event_loop() @@ -154,7 +154,7 @@ def replace_mcp_placeholders(mcp_settings: List[Dict], dataset_dir: str, bot_id: return replace_placeholders_in_obj(mcp_settings) -async def load_mcp_settings_async(project_dir: str, mcp_settings: list=None, bot_id: str="", robot_type: str = "agent") -> List[Dict]: +async def load_mcp_settings_async(project_dir: str, mcp_settings: list=None, bot_id: str="", robot_type: str = "generic_agent") -> List[Dict]: """异步版本的MCP设置加载 Args: @@ -244,7 +244,7 @@ async def load_mcp_settings_async(project_dir: str, mcp_settings: list=None, bot return merged_settings -def load_mcp_settings(project_dir: str, mcp_settings: list=None, bot_id: str="", robot_type: str = "agent") -> List[Dict]: +def load_mcp_settings(project_dir: str, mcp_settings: list=None, bot_id: str="", robot_type: str = "generic_agent") -> List[Dict]: """同步版本的MCP设置加载,内部调用异步版本以保持向后兼容""" try: loop = asyncio.get_event_loop() diff --git a/utils/sharded_agent_manager.py b/utils/sharded_agent_manager.py index df41abc..0d9e1bc 100644 --- a/utils/sharded_agent_manager.py +++ b/utils/sharded_agent_manager.py @@ -128,7 +128,7 @@ class ShardedAgentManager: language: Optional[str] = None, system_prompt: Optional[str] = None, mcp_settings: Optional[List[Dict]] = None, - robot_type: Optional[str] = "agent", + robot_type: Optional[str] = "generic_agent", user_identifier: Optional[str] = None) -> Assistant: """获取或创建文件预加载的助手实例""" @@ -336,4 +336,4 @@ def init_global_sharded_agent_manager(max_cached_agents: int = 20, shard_count: """初始化全局分片助手管理器""" global _global_sharded_agent_manager _global_sharded_agent_manager = ShardedAgentManager(max_cached_agents, shard_count) - return _global_sharded_agent_manager \ No newline at end of file + return _global_sharded_agent_manager