feat(robot): add default rag-retrieve skill for catalog/deep agents

When skills parameter is empty or None and robot_type is
catalog_agent or deep_agent, automatically load rag-retrieve skill.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
朱潮 2025-12-31 13:42:24 +08:00
parent 766b9becda
commit 78c413f4ea
2 changed files with 9 additions and 3 deletions

View File

@ -374,7 +374,7 @@ def create_project_directory(dataset_ids: Optional[List[str]], bot_id: str, robo
try: try:
from utils.multi_project_manager import create_robot_project from utils.multi_project_manager import create_robot_project
from pathlib import Path from pathlib import Path
return create_robot_project(dataset_ids, bot_id, project_path=Path("~", ".deepagents"), skills=skills) return create_robot_project(dataset_ids, bot_id, project_path=Path("~", ".deepagents"), skills=skills, robot_type=robot_type)
except Exception as e: except Exception as e:
logger.error(f"Error creating project directory: {e}") logger.error(f"Error creating project directory: {e}")
return None return None

View File

@ -396,7 +396,7 @@ def should_rebuild_robot_project(dataset_ids: List[str], bot_id: str, project_pa
return False return False
def create_robot_project(dataset_ids: List[str], bot_id: str, force_rebuild: bool = False, project_path: Path = Path("projects"), skills: Optional[List[str]] = None) -> str: def create_robot_project(dataset_ids: List[str], bot_id: str, force_rebuild: bool = False, project_path: Path = Path("projects"), skills: Optional[List[str]] = None, robot_type: str = "catalog_agent") -> str:
""" """
创建机器人项目合并多个源项目的dataset文件夹 创建机器人项目合并多个源项目的dataset文件夹
@ -405,10 +405,16 @@ def create_robot_project(dataset_ids: List[str], bot_id: str, force_rebuild: boo
bot_id: 机器人ID bot_id: 机器人ID
force_rebuild: 是否强制重建 force_rebuild: 是否强制重建
skills: 技能文件名列表 ["rag-retrieve", "device_controller.zip"] skills: 技能文件名列表 ["rag-retrieve", "device_controller.zip"]
robot_type: 机器人类型 (catalog_agent, deep_agent )
Returns: Returns:
str: 机器人项目目录路径 str: 机器人项目目录路径
""" """
# 如果 skills 为空或 None且 robot_type 是 catalog_agent 或 deep_agent默认加载 rag-retrieve
if not skills and robot_type in ("catalog_agent", "deep_agent"):
skills = ["rag-retrieve"]
logger.info(f"No skills provided, using default skill 'rag-retrieve' for {robot_type}")
logger.info(f"Creating robot project: {bot_id} from sources: {dataset_ids}, skills: {skills}") logger.info(f"Creating robot project: {bot_id} from sources: {dataset_ids}, skills: {skills}")
# 检查是否需要重建 # 检查是否需要重建
@ -497,7 +503,7 @@ if __name__ == "__main__":
test_dataset_ids = ["test-project-1", "test-project-2"] test_dataset_ids = ["test-project-1", "test-project-2"]
test_bot_id = "test-robot-001" test_bot_id = "test-robot-001"
robot_dir = create_robot_project(test_dataset_ids, test_bot_id) robot_dir = create_robot_project(test_dataset_ids, test_bot_id, robot_type="catalog_agent")
logger.info(f"Created robot project at: {robot_dir}") logger.info(f"Created robot project at: {robot_dir}")