AI 에이전트 소개: 개발자를 위한 기술 개요
Source: Dev.to
인공지능은 정적인 프롬프트‑응답 패턴에서 구조화된 행동을 수행할 수 있는 시스템으로 전환되었습니다. 이러한 시스템을 AI 에이전트라고 합니다. 마케팅에서 용어가 과도하게 사용되기도 하지만, 그 근본적인 아키텍처는 실용적이며 잘 이해된 소프트웨어 원칙에 기반합니다.
나는 Google과 Kaggle이 제공하는 5일짜리 AI 에이전트 집중 과정을 수강했고, 매일 배운 내용을 기록하기로 스스로 약속했습니다.
이 글은 AI 에이전트를 구축하는 데 필요한 기본 개념을 정리한 5부 시리즈의 첫 번째 글이며, 이후 글에서는 구현 세부 사항, 도구 통합, 오케스트레이션, 거버넌스 및 평가를 다룰 예정입니다.
AI 에이전트란 무엇인가?
기술적으로 AI 에이전트는 언어 모델, 도구, 상태 관리를 활용해 정의된 목표를 완수하는 소프트웨어 시스템입니다. 단순히 텍스트를 생성하는 수동적인 존재가 아니라, 추론과 행동의 제어된 사이클을 통해 작동합니다.
일반적인 AI 에이전트는 다음 요소를 포함합니다:
- Model – 추론을 위해
- Set of tools – 정보를 검색하거나 작업을 실행하기 위해
- Orchestrator – 모델과 도구 간 상호작용을 관리
- Deployment layer – 시스템을 대규모로 실행하기 위해
이 구조는 모델을 텍스트 인터페이스에서 비즈니스 프로세스나 기술 워크플로우를 지원할 수 있는 운영 컴포넌트로 전환합니다.
AI 에이전트 워크플로우: Think–Act–Observe 사이클
모든 에이전트 시스템은 예측 가능한 제어 루프를 따릅니다. 이 루프는 정확성, 안전성 및 자원 사용을 관리하기 때문에 필수적입니다.
-
Mission Acquisition
시스템은 사용자 요청이나 자동 트리거를 통해 작업을 받습니다.
예시: “주문 #12345의 상태를 조회해 주세요.” -
Context Assessment
에이전트는 이전 메시지, 저장된 상태, 도구 정의, 정책 규칙 등 사용 가능한 정보를 평가합니다. -
Reasoning Step
모델이 계획을 생성합니다.
예시:- 주문 조회에 적합한 도구 식별
- 배송 데이터 조회 도구 식별
- 응답 구조 결정
-
Action Execution
오케스트레이터가 검증된 매개변수와 함께 선택된 도구를 호출합니다. -
Observation and Iteration
에이전트는 도구 출력물을 컨텍스트에 다시 반영하고 작업을 재평가하며, 완료되거나 종료될 때까지 반복합니다.
이 제어된 루프는 통제되지 않은 행동을 방지하고 프로덕션 시스템에서 예측 가능한 결과를 지원합니다.
AI 에이전트 시스템의 핵심 아키텍처
1. Model Layer
모델은 모든 추론을 수행합니다. 선택은 지연 요구사항, 비용 한계, 작업 복잡도, 입출력 형식 등에 따라 달라집니다. 라우팅, 분류, 단계별 작업 등에 여러 모델을 사용할 수 있지만, 초기 구현에서는 보통 단일 모델을 사용해 단순성을 유지합니다.
2. Tool Layer
도구는 운영 능력을 제공합니다. 도구는 엄격한 입출력 스키마와 명확한 문서를 갖춘 함수입니다. 주요 카테고리는 다음과 같습니다:
- 데이터 검색 (API, 검색 함수, 데이터베이스 작업)
- 데이터 조작 (포맷팅, 필터링, 변환)
- 운영 액션 (티켓 생성, 알림, 계산)
효과적인 도구 설계는 동작을 좁고 예측 가능하게 유지하며, 잘 문서화되어야 합니다. 도구는 에이전트의 “액션 서피스”를 형성하고, 시스템이 목표를 얼마나 신뢰성 있게 완수할 수 있는지를 결정합니다.
3. Orchestration Layer
이 레이어는 시스템을 감독하며 다음을 담당합니다:
- 추론 루프 실행
- 시스템 규칙 적용
- 상태 추적
- 도구 호출 관리
- 오류 처리
- 비용 및 단계 제한 조절
개발자는 여기서 에이전트의 운영 범위와 경계를 정의합니다.
4. Deployment Layer
에이전트는 서비스 형태로 배포될 때 비로소 유용합니다. 일반적인 배포 구성 요소는 다음과 같습니다:
- API 인터페이스
- 로깅 및 가시성
- 접근 제어
- 세션 데이터 또는 장기 기록을 위한 스토리지
- 지속적 통합 워크플로우
이 레이어는 에이전트가 프로토타입이 아니라 신뢰할 수 있는 소프트웨어 컴포넌트로 동작하도록 보장합니다.
AI 에이전트의 역량 단계
에이전트 역량 단계를 이해하면 현실적인 기대치를 설정할 수 있습니다.
| Level | Description |
|---|---|
| 0: Model‑Only Systems | 모델이 도구나 메모리 없이 질의에 답합니다. 텍스트 생성이나 설명 작업에 적합합니다. |
| 1: Tool‑Connected Systems | 모델이 소수의 도구를 사용해 직접적인 작업을 수행합니다(예: 외부 API를 조회해 사실 정보를 얻음). |
| 2: Multi‑Step Systems | 에이전트가 계획을 세우고 일련의 도구 호출을 실행해 중간 의사결정이 필요한 작업을 지원합니다. |
| 3: Multi‑Agent Systems | 두 개 이상의 에이전트가 협업합니다; 코디네이터가 역량이나 도메인에 따라 작업을 전문 에이전트에 라우팅합니다. |
| 4: Self‑Improving Systems | 에이전트가 새로운 도구를 만들거나 관찰된 격차에 따라 워크플로우를 재구성합니다. 현재는 주로 연구 단계입니다. |
실용적인 첫 번째 에이전트 만들기
개발자는 복잡한 시스템 없이도 간단한 에이전트를 실행할 수 있습니다. 작고 명확하게 정의된 프로젝트만으로도 아키텍처를 이해하기에 충분합니다. 아래 단계들은 Google Gemini 모델을 사용해 Kaggle Notebook에서 수행되었습니다.
Step 1. Configure Your Gemini API Key
import os
# Replace with your actual key or load it from your environment manager
os.environ["GOOGLE_API_KEY"] = "YOUR_API_KEY_HERE"
print("API key configured.")

Step 2. Import ADK Core Components
from google.adk.agents import Agent
from google.adk.models.google_llm import Gemini
from google.adk.runners import InMemoryRunner
from google.adk.tools import google_search
from google.genai import types
Step 3. Optional: Retry Settings
retry_config = types.HttpRetryOptions(
attempts=5,
exp_base=7,
initial_delay=1,
http_status_codes=[429, 500, 503, 504],
)
Step 4. Define Your First Agent
root_agent = Agent(
name="helpful_assistant",
description="A simple agent that can answer general questions.",
model=Gemini(
model="gemini-2.5-flash-lite",
retry_opt=retry_config,
),
tools=[google_search],
)
이제 InMemoryRunner와 같은 러너를 인스턴스화하고 root_agent에 쿼리를 전송하면 됩니다. 이 최소 설정은 모델, 도구, 오케스트레이터, 배포라는 핵심 요소가 어떻게 결합되어 기능적인 AI 에이전트를 구성하는지를 보여줍니다.