Home Tool 구조 만들기 — AI Agent에서 외부 기능을 사용하는 방법
Post
Cancel

Tool 구조 만들기 — AI Agent에서 외부 기능을 사용하는 방법

1. AI Agent에서 Tool이 필요한 이유

이전 글에서는 LLMPort / Adapter 구조로 연결했다.

현재 구조에서는 LLM문자열을 입력 받고 문자열을 생성하는 것만 가능하다. 하지만 우리가 AI Agent로 하려는 것들은 단순한 챗봇이 아닌 외부 기능을 사용할 수 있는 AI Agent이다.

예를 들어 내가 구현하려는 서비스는 다음과 같은 동작이 가능해야 한다.

  • 블로그 글 검색
  • 특정 글 읽기
  • 글 목록 조회
  • 글 요약
  • 글 비교
  • 키워드 찾기

이런 기능은 LLM이 직접 할 수 없다. LLM자체는 머리만 있고 기능을 수행할 팔과 다리는 없는 상태이기 때문이다.

그래서 Agent에서는 팔과 다리의 기능을할 Tool이 필요하다. 즉,

1
LLM -> Tool 선택 -> Tool 실행 -> 결과 반환 -> LLM

이런 구조가 필요하다.

이때 외부 기능을 Tool이라고 한다.

2. Tool 이란 무엇인가?

ToolLLM이 사용할 수 있는 외부 기능이다. 예를 들어

  • 검색 함수
  • DB조회 함수
  • 파일 읽기 함수
  • API 호출 함수
  • 계산 함수

와 같은 것들이 Tool 이다.

Agent구조에서는 보통 다음 흐름으로 동작한다.

1
2
3
4
5
6
7
8
9
10
11
사용자 질문
↓
LLM 판단
↓
Tool 선택
↓
Tool 실행
↓
결과 반환
↓
LLM 최종 답변 생성

즉, ToolLLM이 직접 못 하는 일을 대신 해주는 기능 이다.

3. Hexagonal Architecture에서 Tool의 위치

Tool도 결국 외부 시스템이기 때문에 도메인 로직을 보호하기 위하여 Port / Adapter 구조로 구현해야 한다.

4. Tool 구조 설계

Tool은 다음 구성으로 나눌 수 있다.

1
2
3
4
Tool Port
Tool Adapter
Tool Registry
Tool Excutor

역할

구성역할
Port인터페이스
Adapter실제 구현
RegistryTool 목록
Executor실행 담당

이번 글에서는 Tool Port와 서비스에 필요한 Tool목록 정리까지만 하고 구현은 다음 글에서 한다.

5. 블로그 QA Agent에서 필요한 Tool

이번 프로젝트의 1차 목표는 내 기술 블로그를 이해하는 AI Agent 서비스 개발이다. 때문에, 다음 기능이 필요하다.

5. 블로그 QA Agent에서 필요한 Tool

이번 프로젝트의 1차 목표는 내 기술 블로그를 이해하는 AI Agent 서비스 개발이다. 때문에, 다음 기능이 필요하다.

  • 블로그 글 목록 조회
    • 글 전체 목록 가져오기 : 예 ) DDD에 관한 글 뭐 있어?
  • 블로그 글 읽기
    • 특정 글 가져오기 : DDD에 관한 글 설명해줘
  • 블로그 검색
    • 키워드 기반 검색 : Tool Calling 관련 글 찾아줘.
  • 글 요약
    • 글 내용 요약 : 이 글 요약해줘
  • 글 비교
    • 두 글 비교 : DDDHexagonal Architecture 차이 설명해줘
  • 키워드 추출
    • 글에서 핵심 키워드 찾기 : 이 글 핵심 키워드 뭐야?

6. Tool 목록 정리

이번 프로젝트에서 사용할 Tool아래의 Tool들을 Port / Adapter 구조로 구현하고 AI Agent에서 사용할 수 있도록 만들 예정이다.

1
2
3
4
5
6
list_posts
read_post
search_posts
summarize_post
compare_posts
extract_keywords

7. 다음 단계

이제 Tool의 종류를 정의했지만, 현재는 실제로 조회할 데이터가 없는 상태이다. 매 호출마다 블로그의 글들을 서칭해서 동작할 순 있겠지만 OpenLLM 특성상 안그래도 늦은 응답 시간에 더해져 사용하기 불편할수도 있기 때문이다.

그렇기 때문에 먼저 블로그 글을 수집하고, AI Agent가 사용할 수 있도록 저장하는 과정이 필요하다 생각했다.

따라서 다음 단계에서는

  • 블로그 글 수집
  • 글 메타데이터 파싱
  • 요약 / 키워드 생성
  • 저장 구조 설계

를 먼저 구현해보고, 그 이후에 Tool PortAdapter를 만들어 Agent가 해당 데이터를 조회할 수 있도록 구성해볼 예정이다.

This post is licensed under CC BY 4.0 by the author.

Ollama LLM 연결하기 — Hexagonal Architecture로 LLM Adapter 구현

PostgreSQL + pgvector 환경 구성 — AI Agent를 위한 Vector DB 준비