
여러 도구를 자율적으로 조합하는 AI Agents 구현
요약
여러 종류의 도구를 자율적으로 조합하여 복잡한 태스크를 수행하는 AI Agents 구현 방법을 다룹니다. ReAct 패턴을 기반으로 추론, 행동, 관찰 과정을 거치며, 메모리 기능을 통해 단기 및 장기 기억을 유지하는 에이전트 설계 원칙을 설명합니다.
핵심 포인트
- ReAct(Reasoning + Acting) 패턴을 통한 자율적 계획 및 실행 구현
- 검색, 계산, 메모리 등 다양한 도구를 조합하는 멀티 툴 사용법
- Short-term 및 Long-term Memory를 활용한 에이전트 기억 유지 기법
- 계획-실행-평가 루프를 통한 고도화된 에이전트 설계
서론
지난 기사의 Tool Use에서는 LLM이 search_documents나 search_by_category를 자율적으로 호출하는 메커니즘을 구현했습니다. 하지만 사용할 수 있는 도구는 '검색' 한 종류뿐이었습니다.
이번에는 AI Agents로 나아갑니다. 검색, 계산, 메모리 등 여러 종류의 도구를 조합하여 더욱 복잡한 태스크를 자율적으로 달성하는 에이전트를 구현합니다.
【지난번 Tool Use】
도구: search_documents, search_by_category만 존재
【이번 AI Agents】
...
AI Agents란 "인간이 절차를 지시하지 않아도, LLM이 스스로 계획·실행·수정하여 태스크를 달성하는" 시스템입니다.
전제 조건
- 지난번 Tool Use 튜토리얼 완료 (
08_tool_agent.py가 동작 완료된 상태) .venv가 활성화된 상태.env가 설정된 상태
디렉토리 구성
지난번 파일에 3개를 추가합니다.
pgvector-tutorial/
├── 기존 파일 (01~08)
│
...
AI Agents의 설계 원칙
ReAct 패턴 (Reasoning + Acting)
AI Agents의 가장 기본적인 설계 패턴입니다.
Reasoning (추론/생각하기): "다음에 무엇을 해야 할지" 추론함
Acting (행동하기): 도구를 호출하여 정보를 얻음
Observation (관찰하기): 결과를 보고 다음 추론에 활용함
...
지난번에 구현한 08의 Agentic 루프가 바로 이 패턴입니다.
for step in range(max_steps):
response = llm(contents) # Reasoning: 다음에 무엇을 할지 생각함
if part.function_call:
...
Tool Use와의 차이점
| 항목 | Tool Use (08) | AI Agents (이번) |
|---|---|---|
| 도구의 종류 | 검색만 존재 | 검색·계산·메모리 등 여러 종류 |
| ... |
구현
09_agent_basic.py
- 여러 도구를 가진 에이전트 — 검색, 카테고리 취득, 통계 계산의 3종류 도구를 조합합니다.
# 09_agent_basic.py
import psycopg2
from google import genai
...
python 09_agent_basic.py
실행 결과:
태스크: 우선 DB에 어떤 카테고리가 있는지 조사해서...
============================================================
[Step 1] Reasoning...
...
포인트: LLM이 "먼저 카테고리를 조사한다 → 다음에 검색한다"라는 순서를 스스로 계획하여 실행하고 있습니다. 이 계획 능력이 AI Agents의 핵심입니다.
10_agent_memory.py
- 메모리 기능이 있는 에이전트 — 대화를 넘나들며 기억을 유지하는 에이전트를 구현합니다. Agent의 메모리는 Short-term (대화 이력)과 Long-term (외부 저장)의 두 종류가 있습니다.
# 10_agent_memory.py
import psycopg2
from google import genai
...
python 10_agent_memory.py
포인트: 첫 번째 실행에서 agent_memory.json이 생성됩니다. 두 번째 실행에서는 recall_facts를 통해 파일에서 기억을 읽어오므로, DB를 다시 검색하지 않고도 답할 수 있습니다. 이것이 Long-term Memory의 기본 패턴입니다.
11_agent_planner.py
- 계획 → 실행 → 평가 루프 — 더욱 고도화된 에이전트는 "먼저 계획을 세운 뒤 실행하는" 설계를 사용합니다.
# 11_agent_planner.py
import psycopg2
from google import genai
...
python 11_agent_planner.py
포인트: Plan→Execute→Evaluate의 3단계로 나누면 「무엇을 할지 결정하기」, 「실제로 수행하기」, 「결과를 검증하기」가 분리됩니다. 실제 운영 시스템에서는 Evaluate 결과가 불충분할 경우 재실행하는 설계로 구성됩니다.
3개의 파일로 배우는 AI Agents 패턴
| 파일 | 패턴 | 배운 점 |
|---|---|---|
09_agent_basic.py | ReAct 루프 | 여러 도구의 연계 · LLM을 통한 계획 능력 |
10_agent_memory.py | Memory-augmented | Short/Long-term Memory · 파일로의 영속화 |
11_agent_planner.py | Plan-Execute-Evaluate | 계획→실행→평가의 3단계 설계 |
AI 아키텍트로서 파악해야 할 설계 포인트
도구의 입도(Granularity) 설계
도구는 「한 가지 일만 수행하는」 단일 기능으로 만듭니다. search_and_summarize()와 같은 복합 도구보다, search()와 summarize()로 나누는 것이 LLM이 사용하기에 더 용이합니다.
max_steps 설정
무한 루프 방지를 위한 중요한 설정입니다. 태스크의 복잡도에 따라 조정합니다. 단순한 태스크는 35, 복잡한 태스크는 810 정도가 기준입니다.
시스템 프롬프트(System Prompt)의 역할
에이전트의 「역할」, 「행동 지침」, 「제약 사항」을 시스템 프롬프트로 정의합니다. 동일한 도구 세트라도 시스템 프롬프트의 차이에 따라 완전히 다른 동작을 수행하게 됩니다.
다음 단계
- MCP (Model Context Protocol) — 도구 정의를 표준화하여 외부 서비스와 쉽게 연결 -
- 멀티 에이전트 (Multi-agent) — 여러 에이전트가 협력하여 하나의 태스크를 분담하는 설계 -
- AI 시스템 설계 — Agent를 API로서 운영 환경에 공개하는 스케일링(Scaling) 설계 -
- 평가 (Evals) — Agent의 답변 품질을 자동으로 측정하는 메커니즘
참고
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기