← 返回列表

AI 시리즈 면접 7: Skill을 규범적으로 정의하는 방법

1. Skill의 핵심 개념

Skill은 Agent(지능체) 또는 AI 시스템에 캡슐화된 실행 가능한 능력 단위입니다. 일반적으로 다음을 포함합니다:

  • 트리거 조건: 언제 호출되는지 (예: 사용자 명령, 시스템 이벤트).
  • 입력 매개변수: 수신해야 하는 데이터 또는 컨텍스트.
  • 실행 로직: 구체적인 처리 단계 (예: API 호출, 코드 실행, 지식 베이스 조회).
  • 출력 결과: 호출자에게 반환되는 응답 또는 동작.

2. Skill을 규범적으로 정의하는 단계

1. Skill의 이름과 설명 명확히 하기

  • 이름: 짧고, 고유하며, 의미론적 (예: search_web, send_email).
  • 설명: 한 문장으로 Skill의 기능을 설명하여 Agent가 자동으로 매칭할 수 있도록 함.

2. 입력 스키마 정의 (Input Schema)

JSON Schema 또는 유사한 형식을 사용하여 각 매개변수의 유형, 필수 여부, 기본값 및 제약 조건을 명확히 합니다.

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "검색 키워드",
      "required": true
    },
    "max_results": {
      "type": "integer",
      "description": "최대 반환 결과 수",
      "default": 10
    }
  }
}

3. 실행 로직 작성 (Execution Logic)

  • 결정적 로직: 함수, API 또는 데이터베이스를 직접 호출.
  • 비결정적 로직: LLM을 사용하여 응답 생성 (프롬프트 템플릿 제공 필요).
  • 오류 처리: 타임아웃, 재시도, 폴백 전략 정의.

4. 출력 형식 정의 (Output Schema)

마찬가지로 JSON Schema를 사용하여 반환되는 데이터 구조를 설명합니다.

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": { "type": "string" },
          "url": { "type": "string", "format": "uri" }
        }
      }
    }
  }
}

5. 추가 메타데이터 (Metadata)

  • 버전 번호: 반복 관리 용이.
  • 작성자/관리자: 책임 소재.
  • 의존성: 필요한 외부 서비스 또는 라이브러리.
  • 사용 제한: 빈도 제한, 권한 요구 사항 등.

3. 예시: 완전한 Skill 정의

name: "weather_query"
description: "도시 이름으로 현재 날씨 조회"
version: "1.0.0"
author: "AI Team"

input:
  type: object
  properties:
    city:
      type: string
      description: "도시 이름, 예: '서울'"
      required: true
    unit:
      type: string
      enum: ["celsius", "fahrenheit"]
      default: "celsius"

execute:
  - step: "날씨 API 호출"
    api: "https://api.weather.com/v1/current"
    method: "GET"
    params:
      city: "{input.city}"
      unit: "{input.unit}"
  - step: "결과 포맷팅"
    format: "현재 {city}의 온도는 {temperature}°{unit}입니다."

output:
  type: object
  properties:
    temperature:
      type: number
    condition:
      type: string
    humidity:
      type: number

4. 모범 사례

  • 단일 책임: 각 Skill은 한 가지 작업만 수행하며, 과도한 결합을 피합니다.
  • 자체 포함: 가능한 외부 전역 상태에 의존하지 않고, 입력이 곧 출력입니다.
  • 테스트 가능: 모의 데이터 또는 샌드박스 환경을 제공하여 단위 테스트를 수행합니다.
  • 문서화: 각 Skill에 대한 사용 설명서와 예제를 작성합니다.

위 방법으로 정의된 Skill은 AI Agent가 동적으로 스케줄링할 수 있을 뿐만 아니라 개발자가 시스템에 직접 통합하여 "한 번 작성, 어디서나 사용" 의 재사용 효과를 얻을 수 있습니다.

评论

暂无已展示的评论。

发表评论(匿名)