7편에서 AI 도구의 3층 구조까지 봤다. 1층 LLM, 2층 에이전트, 3층 서드파티. 오늘은 2층으로 한발 더 들어가보자.
에이전트의 손발이 정확히 뭐냐? = Tool
Tool과 Skill, 두 단어만 알아도 된다. (오늘까지는 일단! 그러하다 앞으로 또 바뀔수도 있으니까!)
LLM은 머리, 에이전트는 머리 + 손발이 되어 일을 한다. 그 손발이 바로 Tool이다.
Tool은 외부 기능을 호출할 수 있게 만들어진 것이다. 모델은 직접 못 하지만, 버튼을 누르면 된다고 알고 있는 도구 목록 같은 것. 이건 캘린더 도구를 써야해하고 판단하면, 그 도구를 호출하고, 결과를 받아서, 답을 이어 만든다.
종류는 다양하다. 캘린더에 일정 잡기, 메일 보내기, 파일 읽고 쓰기, 웹 검색, 코드 실행, 데이터베이스 조회. 결국 모델 바깥에서 무엇인가를 직접 하는 것, Tool이다.
그럼 Skill은 뭐야?
Tool 하나하나는 그냥 부품이다. 캘린더 도구만 달랑 있다고 해서 내 일정을 알고 다음에 해야하는 일을 알려주는 비서가 되는 건 아니다. Skill은 여러 Tool에 매뉴얼이 들어있다. 어떤 도구를 언제 어떤 순서로 쓸지, 어떤 톤으로 답할지, 어떤 상황에서 사람한테 확인받을지 쉽게 말해 AI에게 직업을 주는 방식이다. 스케줄 비서라는 직업을 만들고 싶다면, 캘린더 Tool + 메일 Tool + 이런 식으로 일정 잡고, 어떻게 판단해서 사용자에게 어떻게 안내해. 라는 내용이 들어있다.
그럼 Skill, 시스템 프롬프트랑 뭐가 다른가?
여기서 1편이 떠오를 수 있다. 시스템 프롬프트도 AI에게 역할 주는 거 아니었나?
시스템 프롬프트 = 글로 된 지시. 너는 친절한 스케줄 비서야. 한국어로 답해.
Skill = 그 지시 + 매뉴얼 + 도구 묶음까지 한 패키지.
비유하자면, 시스템 프롬프트는 너는 오늘부터 정비공이다라고 말해주는 거고, Skill은 거기에 공구함과 작업 매뉴얼까지 같이 쥐여주는 것 이다. 근데 어떻게 쓰면 뭐 어떤가? 간단한 대부분의 작업은 시스템 프롬프트, skill 그 어디에 내용을 넣어도 크게 문제가 되지는 않는다.
심지어 이름도 다르다.
업계(?)마다 부르는 이름이 다르다.
Anthropic = Skills
OpenAI = Custom GPTs
Google = Gems
나는 복잡한 작업은 클코로만 사용해서 몰랐는데 이번에 공부하면서 알게되었다.
그래서 마무리!
Tool은 부품, Skill은 그 부품을 묶은 패키지.
에이전트는 이 둘을 가지고 일한다. 그런데 한 가지가 남았다.
Tool은 어떻게 모델에 연결되나? 그 연결을 표준화하여 만들어놓은게 있다.
바로 MCP (Model Context Protocol) 에이전트와 외부 시스템을 이어주는 공용 콘센트.(마치 usb같다고도 이야기할 수 있어요)