
Function Calling (도구 호출)을 수행하는 대화형 에이전트 구축 입문
요약
OpenAI의 Function Calling을 활용하여 도구 호출 메커니즘을 수행하는 대화형 에이전트 구축 과정을 다룹니다. LLM의 한계를 이해하고, 에이전트 설계 시 도구 호출과 상태 관리(State Management)의 중요성을 강조합니다.
핵심 포인트
- Function Calling을 통한 LLM과 외부 도구 간의 상호작용 구현
- LLM은 대화 이력은 유지하지만 애플리케이션 상태는 별도로 관리해야 함
- 에이전트 설계의 핵심 흐름: 도구 호출 → 상태 관리 → 에이전트
- gpt-4o-mini 모델을 활용한 효율적인 에이전트 테스트 방법
국립대학교 정보공학과 4학년입니다. AI 연구실에 소속되어 있으며, 졸업 연구로 사회적 과제에 대해 AI, LLM, 멀티 에이전트(Multi-Agent) 등을 사용하여 해결 기법을 실험·검증하고, Web 애플리케이션까지 완성하고자 합니다. 지금까지 주제 선정을 위해 논문을 읽어왔으나, 이번에는 실제로 그것을 구현하는 측면에 초점을 맞춘 학습 과정을 게시하겠습니다. 『LLM의 프롬프트 엔지니어링 GitHub Copilot을 만든 개발자가 알려주는 생성 AI 애플리케이션 개발』 (O'Reilly Japan)을 읽고, 그 내용을 바탕으로 체득한 이해와 구현을 기술하고 있습니다.
Python3 가상 환경 구축
python3 -m venv venv
Python3 가상 환경 활성화
source venv/bin/activate
라이브러리 설치
pip install openai
OpenAI Platform에서 취득한 API 키 설정
export OPENAI_API_KEY="sk-〇〇〇〇〇〇〇〇〇〇〇〇"
프로그램 실행
python3 conversational_agent.py
import random,json
from openai import OpenAI
from openai.types.chat import ChatCompletionMessage
...
사용자: "방 온도를 알려줘"라고 메시지를 애플리케이션에 보냄
→ 애플리케이션: 사용자 메시지를 추가하고, 프롬프트(Prompt)를 작성. LLM에 보냄.
→ LLM: get_room_temp()를 보완. 애플리케이션에 보냄.
→ 애플리케이션: 도구 호출(Tool Calling)을 해석. LLM이 출력한 함수를 호출하여 도구를 호출함 (도구 평가 요청).
→ 도구: 요청된 처리를 실행 (도구 평가 응답). 수치(온도)를 애플리케이션에 반환.
→ 애플리케이션: 프롬프트에 도구 호출을 추가. LLM에 보냄.
→ LLM: 어시스턴트 메시지("방 온도는 71°F입니다.")를 보완. 애플리케이션에 보냄.
→ 애플리케이션: 스레드(Thread)에 어시스턴트 메시지를 추가. 사용자에게 어시스턴트 메시지("방 온도는 71°F입니다.")를 보냄.
도구를 호출하지 않고, 일반적인 LLM 답변이 됨.
LLM이 올바르게 판단할 수 있는지 테스트
방금 방 온도를 68도로 변경했는데, 방 온도가 71도가 되어버렸다. 원인은 get_room_temp() 함수에서 난수를 반환하고 있기 때문이다.
def get_room_temp():
return str(random.randint(60,80))
여기서 배운 점은 "LLM ≠ 기억"이라는 것이다. LLM은 대화 이력은 가질 수 있다. 하지만, "애플리케이션의 상태(State)"는 별도로 관리할 필요가 있다.
자신의 연구에서의 멀티 에이전트(Multi-Agent)에서도
- 과거의 논의
- 신뢰도
- 참조 데이터
를 어딘가에 저장할 필요가 있다.
즉,
도구 호출 (Tool Calling)
↓
상태 관리 (State Management)
↓
에이전트 (Agent)
라는 흐름이 된다. 조사한 결과, AI 에이전트 설계에서의 중요한 사고방식이라는 것을 알게 되었다.
애플리케이션에서 온도를 저장하기 위해, 도구 정의 부분을 변경
room_temp = 72
def get_room_temp():
return str(room_temp)
...
이것으로 다시 확인.
온도가 애플리케이션에서 유지되고 있음을 확인!
import random,json
from openai import OpenAI
from openai.types.chat import ChatCompletionMessage
...
OpenAI 플랫폼의 토큰 소비는 4.99 Credit balance 그대로이다. 모델 "gpt-4o-mini"는 비용이 낮다고 한다. 이번 대화형 에이전트의 메커니즘을 배우기 위한 프로그램 정도라면 충분하다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기