콘텐츠로 이동

핵심 용어 정리

Agent 생태계는 빠르게 성장하면서 동일한 개념에 여러 이름이 붙거나, 서로 다른 개념이 같은 이름으로 불리는 경우가 많습니다. ScaffoldingHarness를 혼용하는 사람도 있고, FrameworkRuntime을 구분하지 않는 경우도 흔합니다.

이 챕터에서는 이후 학습 전반에 걸쳐 사용되는 핵심 용어 6가지를 명확하게 정의합니다.

용어정의범위예시
Agent자율적으로 목표를 추구하며 도구를 사용하는 LLM 기반 시스템개별 실행 단위Claude, GPT-4o 기반 코딩 봇
Harness에이전트 행동을 제약·정보 제공·검증·수정하는 주변 인프라 전체시스템 수준실행 루프 + 검증 + 피드백
Scaffolding에이전트가 실행되는 코드 구조 (루프, 파싱, 도구 호출)코드 수준while loop + tool dispatch
Runtime에이전트가 실제로 실행되는 환경인프라 수준Docker 컨테이너, sandbox
Orchestration여러 에이전트나 단계를 조율하는 상위 로직조율 수준멀티에이전트 supervisor
Framework에이전트 개발을 위한 라이브러리/도구 모음도구 수준LangChain, AutoGen, CrewAI

에이전트는 단순한 LLM 호출이 아닙니다. 다음 세 가지 조건을 만족해야 에이전트라 부를 수 있습니다:

  1. 자율성: 사람의 매 단계 지시 없이 목표를 향해 스스로 결정
  2. 도구 사용: 외부 시스템(파일, API, 터미널 등)과 상호작용
  3. 다단계 실행: 단일 응답이 아닌 반복적 추론-행동 사이클
# 단순 LLM 호출 (에이전트 아님)
response = llm.complete("파일을 읽어줘")
# 에이전트 (도구 사용 + 반복 실행)
while not goal_achieved:
thought = llm.reason(state)
action = llm.choose_tool(thought)
result = execute_tool(action)
state = update_state(result)

이 두 용어는 가장 자주 혼동됩니다.

  • Scaffolding은 에이전트 루프를 구성하는 코드 구조입니다. “어떻게 실행하는가”에 해당합니다.
  • Harness는 그 스캐폴딩을 포함한 모든 주변 인프라입니다. 검증, 피드백, 컨텍스트 관리, 안전장치까지 포함합니다.

스캐폴딩은 하네스의 일부입니다.

Runtime은 에이전트가 실행되는 격리된 환경입니다. 보안과 재현 가능성 측면에서 중요합니다.

# 런타임 예시: Docker 기반 샌드박스
runtime:
image: python:3.12-slim
network: none # 외부 네트워크 차단
memory: 2GB
timeout: 300s
filesystem: ephemeral # 실행 후 초기화

오케스트레이션은 여러 에이전트나 실행 단계를 조율하는 상위 로직입니다. 단일 에이전트 루프가 아닌, 멀티 에이전트 시스템에서 핵심 역할을 합니다.

오케스트레이션 패턴설명
Supervisor중앙 에이전트가 하위 에이전트에 태스크 배분
Peer-to-Peer에이전트 간 직접 핸드오프
Hierarchical트리 구조의 다단계 위임

용어를 정확히 구분하면 설계 결정을 더 명확하게 내릴 수 있습니다. “프레임워크를 바꿔야 하는가”와 “하네스를 개선해야 하는가”는 완전히 다른 질문입니다. 이후 챕터에서 각 개념을 심화 학습하며 이 용어들을 반복적으로 사용합니다.