Chapter 1

에이전트

  • 1.1 AI 에이전트의 정의
  • 1.2 사전학습이 일으킨 혁명
  • 1.3 에이전트 유형
  • 1.4 모델 선택
  • 1.5 동기에서 비동기로의 전환
  • 1.6 활용 사례
  • 1.7 워크플로와 에이전트
  • 1.8 효과적인 에이전틱 시스템 구축 원칙
  • 1.9 에이전틱 시스템 구축을 위한 조직 전략
  • 1.10 에이전틱 프레임워크

에이전트는 모델이 아니라 시스템이야. 도구(Tools) + 지식(Knowledge) + 메모리(Memory) + 학습(Learning)을 파운데이션 모델에 붙인 전체 구조가 에이전트거든. 저자 마이클 알바다는 Uber, ServiceNow, Microsoft에서 대규모 ML 시스템을 만든 엔지니어인데, 이 책 전체에서 **에이전틱 시스템(Agentic System)**이라는 용어를 계속 써. 에이전트 자체보다 그걸 둘러싼 도구, 메모리, 오케스트레이션, 인프라를 포함한 전체 지원 구조를 말하는 거지. 대부분 모델 성능에 집중하는데, 실제로 에이전트가 되고 안 되고를 결정하는 건 모델 바깥의 시스템이야. claude-3.5-sonnet이 아무리 좋아도 도구 연결 안 해주면 그냥 챗봇이거든.

왜 갑자기 에이전트가 가능해졌냐 — 사전학습(Pretraining) 때문이야. 예전 ML은 특정 태스크마다 처음부터 학습시켜야 했는데, 사전학습된 LLM은 범용 추론 능력이 있어서 도구만 붙여주면 새로운 문제를 풀 수 있게 됐거든. Generative AI는 입력 넣으면 출력 나오는 정적 매핑이고, Agentic AI는 환경을 인지하고, 추론하고, 행동해서 상태를 바꾸는 시스템이야. 이 전환이 프롬프트 엔지니어링만으로 된 게 아니고, 최신 모델들이 **추론 시간 예산(inference-time reasoning budget)**을 조절할 수 있게 되면서 가능해진 거야.

에이전트 유형은 목적 기준으로 네 가지로 나뉘어. 대화형 — 사용자랑 자연어로 주고받으면서 일하는 놈. 리서치 — 정보 수집하고 종합해서 인사이트 뽑는 놈. 분석 — 데이터 분석, 패턴 발견. 개발 — 코드 짜고 테스트하는 놈. Claude Code, Cursor가 여기 속해. 재밌는 건 시장이 통합(다 할 수 있는 범용 에이전트)과 특화(한 분야만 깊게 파는 전문 에이전트) 두 방향으로 갈라지고 있다는 거야.

어떤 모델 쓸지가 첫 번째 아키텍처 결정이야. 추론 능력 — 복잡한 계획 짜야 하면 강한 모델 필요하고, 도구 호출 — function calling 네이티브로 되는지가 중요하고, 컨텍스트 윈도 — 한 번에 얼마나 많은 정보를 볼 수 있는가, 비용/지연시간 — 실시간이면 빠르고 싼 모델, 배치면 느려도 정확한 모델.

초기 에이전트는 전부 동기식이었어 — 질문하고 기다리고 답 받는 채팅. 저자는 이게 비동기로 넘어가고 있다고 봐. "이거 해놔" → 에이전트가 백그라운드에서 작업 → 다 되면 알림. Claude Code 백그라운드 에이전트, GitHub Copilot 자동 PR 같은 게 이 흐름이야.

에이전트가 적합한 경우와 과잉인 경우를 구분해야 해. 여러 단계 추론이 필요하거나, 외부 도구/API 상호작용이 필요하거나, 상황마다 다른 판단이 필요하면 에이전트가 맞아. 반면 단순 입출력 매핑(번역, 요약)이나 규칙 기반 결정론적 작업에는 과잉이야.

워크플로는 미리 정의된 순서대로 실행하는 거고, 에이전트는 매 단계에서 스스로 다음 행동을 결정하는 거야. 이 비결정성이 에이전트의 강점이자 문제지. 같은 입력에 다른 출력이 나올 수 있고, 환각도 생기거든. 비결정성을 어떻게 관리할 것인가가 이 책 전체의 핵심 과제야.

설계 원칙은 네 가지야. 점진적 설계 — 작게 시작해서 반복. 우아한 실패 — 에이전트가 실패해도 시스템은 안 죽게. 관찰 가능성 — 추론 과정을 추적/디버깅 가능하게. 인간 개입 지점 설계 — 자율성 레벨을 조절할 수 있는 Human-in-the-loop.

프레임워크는 LangChain/LangGraph, AutoGen, CrewAI 같은 것들이 있는데, 저자가 집필 시작했을 때 LangChain이 주류였는데 쓰는 사이에 관심이 옮겨갔다고 해. 그래서 프레임워크 말고 원칙에 집중하겠다는 방향을 잡은 거야.


정리

1장 읽고 기억할 거 세 가지:

  1. 에이전트 ≠ 모델. 에이전트는 도구, 메모리, 오케스트레이션을 포함한 시스템이야
  2. 비결정성은 버그가 아니라 특성. 이걸 관리하는 게 에이전트 엔지니어링이야
  3. 프레임워크는 바뀌지만, 설계 원칙은 남는다. 1년 뒤에 LangChain 안 쓸 수도 있어. 근본을 알아야 해