본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 08. 01:30

【요약·번역】 Zero to One: Agentic Patterns 입문 - 앞으로 AI 프로덕트를 만들 사람들에게

요약

AI 프로덕트 개발 시 고려해야 할 워크플로우와 에이전트의 차이점 및 7가지 핵심 패턴을 소개합니다. 효율적인 시스템 구축을 위해 결정론적인 워크플로우를 우선 고려하고, 동적 의사결정이 필요한 경우에만 에이전트 패턴을 도입할 것을 권장합니다.

핵심 포인트

  • 워크플로우는 고정된 절차로 비용이 저렴하며, 에이전트는 동적 의사결정이 가능함
  • 시스템 설계 시 스크립트 > 워크플로우 > 에이전트 순으로 검토 권장
  • 에이전트 도입 시 로깅, 예외 처리, 재시도 메커니즘 구축이 필수적임
  • Prompt Chaining, Routing, Reflection 등 7가지 패턴의 조합 활용 가능

AI를 사용한 프로덕트 개발에 대해 공부하기 시작했을 때, "개발에 들어가기 전에 다음 내용을 읽어두면 좋아"라는 것을 배웠습니다.

이하는 기사를 읽고 저 나름대로 번역하거나 다시 정리한 내용입니다.

AI 프로덕트를 만들고 싶은 분들을 위한 내용입니다.

어떤 아키텍처(Architecture)로 할지 모르는 분들에게 좋은 기사라고 생각합니다.

기사 자체는 2025년 5월의 것이라 약 1년 전의 것이지만, 개념적인 이야기이므로 지금도, 앞으로도 여전히 유효한 개념이라고 생각합니다.

AI 에이전트(Agent)를 구축할 때의 대표적인 패턴을 정리한 기사의 요약입니다.

  • 미리 정해진 절차를 밟는 것을 워크플로우(Workflow), LLM이 판단하여 동적으로 실행 내용이 변하는 것을 에이전트(Agent)로 구분합니다.
  • 만약 에이전트가 아니라 워크플로우로 해결할 수 있다면, 워크플로우를 선택해야 합니다. 그 편이 비용이 저렴하고 처리도 빠르기 때문입니다.

7가지 패턴

  • 워크플로우 계열 (구조적·절차가 고정됨)

    • Prompt Chaining: 순서가 항상 정해져 있는 것
    • Routing: 실행할 수 있는 태스크(Task)를 사전에 정해두고, LLM이 어떤 태스크를 실행할지 결정하는 것
    • Parallelization: 여러 개의 태스크를 여러 개의 LLM을 기동하여 실행하는 것
  • 에이전트 계열 (동적·자율적)

    • Reflection: 루프(Loop)를 사용하여 반복 실행함으로써 출력을 개선(Brush up)하는 것
    • Tool Use: 외부 도구(External Tool)를 사용하여 LLM이 학습한 데이터 이상의 것을 실행하거나 취득하는 것
    • Planning (Orchestrator-Workers): LLM이 계획(태스크 리스트)을 작성하고, 각각의 태스크를 여러 LLM이 실행하며, 마지막에 정리용 LLM이 출력을 생성하는 것
    • Multi-Agent: 역할이 다른 LLM들이 상호 작용하는 것

기사에서는 AI를 사용한 7가지 시스템 패턴을 소개하고 있습니다.

이러한 시스템은 에이전트와 워크플로우 두 종류로 나눌 수 있습니다.

  • 에이전트: AI 접근 방식을 결정함. 동적이며 가변적임. AI에 의한 의사결정이 필요한 것. 외부 도구나 메모리(Memory)를 사용함. 시간과 비용이 많이 드는 경우가 많음.
  • 워크플로우: 미리 정해진 실행 경로를 따름. 절차가 고정되어 있음. 일관성이 요구되는 것. 에이전트보다 심플하고 비용이 저렴함.

시스템을 구축할 때는 에이전트를 마지막 선택지로 두고,

  • 우선, "(애초에 AI가 필요하지 않은) 스크립트(Script)"로 해결할 수 있는가
  • AI가 필요하지만 절차가 명확한 케이스는 "워크플로우"로 해결할 수 있는가
  • 워크플로우로도 해결할 수 없는 복잡하고 동적인 의사결정이 필요한 문제는 "에이전트"

의 순서로 선택합니다.

만약 에이전트를 선택할 경우, 에이전트는 AI에게 의사결정을 맡기기 때문에 예상치 못한 에러를 낼 수 있습니다.

따라서 로깅(Logging), 예외 처리(Exception Handling), 재시도(Retry) 등을 준비하여 시스템 내에서 자동으로 에러를 수정할 수 있는 메커니즘이 필수적입니다.

또한, 실제 AI 프로덕트 개발에 있어서는 "평가(Evaluation)"를 정의하고 유연하게 설계를 변경하는 것이 중요합니다.

이하에서 여러 워크플로우·에이전트 패턴 7가지를 들지만, 이것들은 단독으로 사용하기보다는 조합해서 사용하는 경우가 많습니다.

예를 들어,

  • Planning 에이전트가 내부에서 도구를 사용함
  • 그 워커(Worker)가 Reflection을 사용함
  • Multi-Agent가 내부에서 Routing을 사용하여 태스크를 할당함

prompt-chaining.png

"출처: Zero to One: Learning Agentic Patterns"

하나의 LLM 호출 출력을 다음 LLM 호출의 입력으로 순차적으로 전달하는 패턴입니다.

태스크를 정해진 단계(Step)로 분해합니다.

단계별로 나눌 수 있는 처리에 적합합니다.

  • 문서 작성
    • 예: LLM 1: 초안 작성 → LLM 2: 검증(Validation) → LLM 3: 본문 집필
  • 다단계 데이터 처리
    • 예: LLM 1: 데이터 추출 → LLM 2: 데이터 정형화 → LLM 3: 데이터 요약
  • 뉴스레터 생성

사용자의 입력을 프랑스어로 번역하는 시스템

import os
from google import genai
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
...

출처: Zero to One: Learning Agentic Patterns

첫 번째 LLM이 입력을 **라우터(Router)**로 분류하는 패턴입니다.

라우터 LLM이 최적의 전문 태스크/LLM으로 분배합니다.

  • 사전에 패턴(라우팅)을 결정해 둡니다.

  • 첫 번째 LLM이 '이 입력값이 어떤 패턴에 할당되어야 하는가'라는 의사결정을 합니다.

  • 패턴에 따라 태스크나 다른 LLM이 호출됩니다.

  • 각 단계에서 '관심의 분리(Separation of Concerns)'가 가능합니다.

  • 각 하위 태스크를 개별적으로 최적화할 수 있습니다. 각각 전용 프롬프트를 사용하거나, 다른 모델이나 툴을 지정할 수 있습니다.

  • 개별적으로 최적화함으로써 비용을 절감할 수 있는 경우가 있습니다.

  • 고객 지원: 문의 내용에 따라 청구/기술 지원/제품 정보 에이전트로 분배

  • 계층적 LLM 활용: 간단한 질문/자주 묻는 질문은 저가 모델, 복잡하거나 특수한 것은 고성능 모델로 분배합니다.

  • 콘텐츠 생성: 블로그용, SNS용, 광고용 프롬프트나 모델로 분배합니다.

사용자의 질문을 날씨/과학/기타 질문으로 나누어 답변하는 시스템

import os
import json
from google import genai
...

출처: Zero to One: Learning Agentic Patterns

태스크를 '독립적인 여러 하위 태스크'로 분할하고, 여러 LLM으로 동시 처리한 후, 결과를 집계하는 LLM(Aggregator LLM)이 출력을 생성합니다.

  • 여러 실행 담당 LLM에 서로 다른 프롬프트를 보냅니다.

  • 각각의 실행 담당 LLM의 응답을 마지막 정리 LLM(Aggregator)이 취합합니다.

  • 동시에 처리하므로 레이턴시가 개선될 수 있습니다.

  • 하위 태스크는 각자 관심의 분리가 가능합니다.

  • 서로 다른 시점의 의견을 모아 품질 향상 등에 활용할 수 있습니다.

  • 실행하는 LLM과 정리하는 LLM(Aggregator LLM) 두 종류의 LLM을 사용합니다.

  • 쿼리 분해 RAG: 복잡한 쿼리를 여러 하위 쿼리로 변환하여 병렬로 실행한 후, 출력을 취합합니다.

  • 예시: 'iPhone15와 Pixel8의 카메라 성능과 배터리 지속 시간, 가격을 비교해줘' -> 각각 카메라 성능과 배터리 가격을 개별적으로 조사 -> 정보를 요약하여 비교표를 만듭니다.

  • Map-Reduce 형태의 처리

  • 긴 문서 분할 요약: 문서를 장으로 나누기 -> 각 장을 요약하기 -> 모든 장의 요약을 취합합니다.

  • 다각적인 시점에서의 답변: 여러 LLM에 전제나 입장을 부여하는 프롬프트로 같은 질문을 합니다 -> 정리합니다.

  • LLM A: '당신은 비용 절감을 중시하는 CFO입니다.'

  • LLM B: '당신은 현장의 엔지니어입니다.'

  • LLM C: '당신은 인사 매니저입니다.'

사용자가 입력한 토픽을 기반으로 다각적인 시점에서 내용을 결정하는 시스템(블로그 등)

import os
import asyncio
import time
...

reflection.png

출처: Zero to One: Learning Agentic Patterns

에이전트가 자신의 출력을 평가하고, 그 평가를 사용해 **반복적(Iterative)**으로 개선합니다.

'평가자 - 최적화자', '자기 수정 루프(Self-Correction Loop)'라고 불립니다.

생성 -> 평가(critique) -> 개선을, 요구사항을 충족할 때(또는 최대 횟수)까지 반복합니다.

  • 정확도가 요구되는 것에 적합합니다.

  • 평가할 포인트를 결정해야 합니다.

  • LLM 1: 출력을 생성하거나, 태스크를 완료합니다.

  • LLM 2 (혹은 LLM 1이지만 1과는 다른 프롬프트): 평가자로서 첫 번째 출력이 요구사항에 맞는지/질이 높은지 등을 평가합니다.

  • LLM 1: ↑을 피드백으로 받아 출력을 개선합니다.

  • LLM 2가 승인할 때(또는 최대 횟수)까지 이러한 처리를 반복합니다.

  • 코드 생성: 코드를 작성 -> 실행하기 -> 에러 메시지나 테스트 결과를 받기 -> 수정하기

  • 글 다듬기: 초안을 만들고, 명확성/톤을 평가하기 -> 수정하기

  • 계획의 실현 가능성 평가: 플랜을 만들기 -> 실현 가능성을 평가하기 -> 수정하기

  • 정보 검색의 포괄성 체크: 조사하기 -> 필요한 정보가 갖춰졌는지 조사하기 -> 더 조사하기

사용자가 지정한 토픽을 기반으로 시를 만드는 시스템

import os
import json
from google import genai
...

「출처: Zero to One: Learning Agentic Patterns」

LLM이 「외부 도구를 실행할 수 있다」는 특징을 사용하여, 액션(Action)을 취하거나 정보를 수집하는 방식

  • 가장 흔한 에이전트 패턴

  • LLM은 학습한 내용 이상의 것을 할 수 있게 된다

  • 미리 LLM에게 부여할 도구 정의(이름·설명·입력 스키마)를 결정해 둔다

  • LLM이 입력값에 따라 어떤 도구(복수 가능)를 선택할지 결정한다. 도구에 정의된 스키마를 반환한다

  • ↑를 사용하여 도구를 실행한다. LLM에 결과를 반환한다

  • ↑를 사용하여 LLM이 사용자에게 응답을 반환한다

  • 캘린더 API를 사용하여 일정 예약

  • 파이낸스 API를 사용하여 실시간 주가 취득

  • RAG: 문서의 벡터 DB 검색

  • 스마트 홈 제어

  • 코드 실행

현재 특정 도시의 기온을 조사하여 답변하는 시스템

import os
from google import genai
from google.genai import types
...

「출처: Zero to One: Learning Agentic Patterns」

중심이 되는 LLM인 **플래너 LLM (Planner LLM)**이 복잡한 태스크를 동적인 서브 태스크(Sub-task)로 분해하고, 각각의 태스크를 전문 에이전트에게 실행시키는 패턴.

나아가 그 결과를 Orchestrator/Synthesizer LLM이 집약하여, 목표 달성 여부를 판단하고 출력하거나 재계획(Re-planning)을 플래너 LLM에 요청한다.

  • 여러 단계의 처리가 필요할 경우, 처음에 「계획」을 세움으로써 해결하는 패턴

  • 1개의 Planner (플래너) · 여러 개의 Worker (워커) · 1개의 Orchestrator/Synthesizer (오케스트레이터/신세사이저)라는 3종류의 LLM을 사용한다

  • 「계획」은 사용자의 입력값에 따라 동적으로 변화한다

  • 플래너 LLM이 어떤 태스크를 실행할지에 대한 계획을 세운다

  • 각각의 워커 LLM이 각각의 태스크를 실행한다

  • 오케스트레이터/신세사이저 LLM이 워커의 실행 결과를 취합하여, 종료할 것인지 아니면 다시 계획부터 시작할 것인지를 결정한다

라우터(Router)는 「단일한 다음 단계」를 선택하는 반면, 플래너는 「여러 단계」의 계획을 생성한다

  • 복잡한 소프트웨어 개발: 「XX라는 기능을 만들어줘」 -> 계획 -> 구현 -> 테스트·문서화
  • 리서치 & 리포트 생성: 조사 -> 데이터 추출 -> 분석 -> 집필
  • 멀티모달(Multimodal) 태스크: 이미지 생성 · 텍스트 분석 · 데이터 통합
  • 복합적인 사용자 요청: 「3일간의 파리 여행 계획을 세워줘」 -> 예산에 맞춰 비행기·호텔 예약

태스크를 다음과 같이 정의한다

import os
from google import genai
from pydantic import BaseModel, Field
...

multi-agent.png

「출처: Zero to One: Learning Agentic Patterns」

「출처: Zero to One: Learning Agentic Patterns」

여러 가지 서로 다른 「역할」을 가진 에이전트를 조합하여, 이들이 상호 작용하거나 공동으로 작업하는 패턴.

  • 각각의 에이전트가 서로 다른 역할·지식·도구를 가진다

두 가지 패턴이 있다

  • Coordinator / Manager 접근 방식: 코디네이터 역할을 하는 에이전트(예: PM)를 두어, 해당 에이전트를 기점으로 다른 에이전트와 정보를 주고받는 패턴

  • Swarm (군집) 접근 방식: 에이전트(예: 리서처)가 다른 에이전트에게 연계·인수인계(예: 라이터)를 하는 패턴

  • AI 페르소나를 통한 토론·브레인스토밍

  • 「앱의 신기능을 생각해 봐」

  • 디자이너

  • 엔지니어

  • 마케터

  • 복잡한 소프트웨어 개발

  • 계획

  • 구현

  • 테스트

  • 배포

  • 가상 실험·시뮬레이션

  • 「구매자」 에이전트와 「판매자」 에이전트를 다수 설정 -> 시장 가격이 어떻게 안정되는지 관찰

  • 공동 집필

  • 리서처

  • 라이터

  • 편집자

  • 교정 담당자

호텔·레스토랑 예약 시스템. 사용자가 레스토랑 예약을 요청했을 때, 레스토랑을 예약함

from google import genai
from pydantic import BaseModel, Field
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
...

체계적으로 정리되어 있어서 비교적 읽기 쉬웠습니다.

실제 프로덕트 (Product)를 생각해 보아도, 하나의 패턴을 사용한다기보다는 여러 개의 패턴을 사용하고 있다는 생각이 들었습니다.

또한 구현 (Implementation)에 고민이 생기면 다시 돌아오고 싶을 만한 글이었습니다.

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0