머니페니 76e3220e77
All checks were successful
Deploy to Production / deploy (push) Successful in 3m10s
feat: 에이전트 기능 추가 (LLM 서비스, 에이전트 API, 테스트)
2026-05-06 20:56:45 +09:00

36 lines
1.2 KiB
Python

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,
)