from __future__ import annotations from typing import Any from app.agents.skills.registry import SkillRegistry from app.agents.tools.types import RegisteredTool, ToolResult def create_skill_tool() -> RegisteredTool: """use_skill 도구를 생성하여 반환.""" async def execute(args: dict[str, Any]) -> ToolResult: skill_name: str = args["skill_name"] skill = SkillRegistry.get(skill_name) if skill is None: available = SkillRegistry.list_skills() names = [s.name for s in available] return ToolResult( data=( f"스킬 '{skill_name}'을(를) 찾을 수 없습니다. " f"사용 가능한 스킬: {', '.join(names) or '없음'}" ), ) return ToolResult(data=skill.instructions) return RegisteredTool( name="use_skill", description=( "스킬을 로드하여 전문 분석 워크플로우를 실행합니다. " "사용 가능한 스킬 목록에서 선택하세요." ), compact_description="스킬 실행", execute=execute, concurrency_safe=True, )