테니스 동호회 서비스를 만들면서 자연어로 일정 생성 / 조회가 되는 챗봇을 붙였다.

예시

"다음주 토요일 2시에 번개 만들어줘"
"이번달 일정 뭐 있어?"
"코트 목록 보여줘"

Claude의 Tool Use 기능을 사용하면

이런 자연어 요청을 실제 서버 로직(DB 작업)으로 연결할 수 있다.

구조는 단순하다.

flowchart LR
    A[User Message]
    B[Claude]
    C[Tool Call]
    D[Server Logic - DB]
    E[Tool Result]
    F[Claude Final Response]
    A --> B
    B --> C
    C --> D
    D --> E
    E --> B
    B --> F

Tool 정의

Claude가 사용할 수 있는 기능을 JSON schema로 정의한다.

예: 일정 생성

export const chatTools:Anthropic.Tool[]= [
  {
    name:'create_event',
    description:'테니스 일정 생성',
    input_schema: {
      type:'object',
      properties: {
        title: { type:'string' },
        start_datetime: { type:'string' },
        end_datetime: { type:'string' },
        location_name: { type:'string' },
        location_url: { type:'string' },
        max_participants: { type:'number' },
        description: { type:'string' },
      },
      required: ['title','start_datetime','end_datetime','max_participants'],
    },
  },
]

핵심 포인트


System Prompt

챗봇의 역할과 규칙 정의