핵심 용어 정리
왜 용어 정의가 중요한가?
섹션 제목: “왜 용어 정의가 중요한가?”Agent 생태계는 빠르게 성장하면서 동일한 개념에 여러 이름이 붙거나, 서로 다른 개념이 같은 이름으로 불리는 경우가 많습니다. Scaffolding과 Harness를 혼용하는 사람도 있고, Framework와 Runtime을 구분하지 않는 경우도 흔합니다.
이 챕터에서는 이후 학습 전반에 걸쳐 사용되는 핵심 용어 6가지를 명확하게 정의합니다.
핵심 용어 비교표
섹션 제목: “핵심 용어 비교표”| 용어 | 정의 | 범위 | 예시 |
|---|---|---|---|
| Agent | 자율적으로 목표를 추구하며 도구를 사용하는 LLM 기반 시스템 | 개별 실행 단위 | Claude, GPT-4o 기반 코딩 봇 |
| Harness | 에이전트 행동을 제약·정보 제공·검증·수정하는 주변 인프라 전체 | 시스템 수준 | 실행 루프 + 검증 + 피드백 |
| Scaffolding | 에이전트가 실행되는 코드 구조 (루프, 파싱, 도구 호출) | 코드 수준 | while loop + tool dispatch |
| Runtime | 에이전트가 실제로 실행되는 환경 | 인프라 수준 | Docker 컨테이너, sandbox |
| Orchestration | 여러 에이전트나 단계를 조율하는 상위 로직 | 조율 수준 | 멀티에이전트 supervisor |
| Framework | 에이전트 개발을 위한 라이브러리/도구 모음 | 도구 수준 | LangChain, AutoGen, CrewAI |
각 용어 상세 설명
섹션 제목: “각 용어 상세 설명”Agent
섹션 제목: “Agent”에이전트는 단순한 LLM 호출이 아닙니다. 다음 세 가지 조건을 만족해야 에이전트라 부를 수 있습니다:
- 자율성: 사람의 매 단계 지시 없이 목표를 향해 스스로 결정
- 도구 사용: 외부 시스템(파일, API, 터미널 등)과 상호작용
- 다단계 실행: 단일 응답이 아닌 반복적 추론-행동 사이클
# 단순 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)Harness vs Scaffolding
섹션 제목: “Harness vs Scaffolding”이 두 용어는 가장 자주 혼동됩니다.
- Scaffolding은 에이전트 루프를 구성하는 코드 구조입니다. “어떻게 실행하는가”에 해당합니다.
- Harness는 그 스캐폴딩을 포함한 모든 주변 인프라입니다. 검증, 피드백, 컨텍스트 관리, 안전장치까지 포함합니다.
스캐폴딩은 하네스의 일부입니다.
Runtime
섹션 제목: “Runtime”Runtime은 에이전트가 실행되는 격리된 환경입니다. 보안과 재현 가능성 측면에서 중요합니다.
# 런타임 예시: Docker 기반 샌드박스runtime: image: python:3.12-slim network: none # 외부 네트워크 차단 memory: 2GB timeout: 300s filesystem: ephemeral # 실행 후 초기화Orchestration
섹션 제목: “Orchestration”오케스트레이션은 여러 에이전트나 실행 단계를 조율하는 상위 로직입니다. 단일 에이전트 루프가 아닌, 멀티 에이전트 시스템에서 핵심 역할을 합니다.
| 오케스트레이션 패턴 | 설명 |
|---|---|
| Supervisor | 중앙 에이전트가 하위 에이전트에 태스크 배분 |
| Peer-to-Peer | 에이전트 간 직접 핸드오프 |
| Hierarchical | 트리 구조의 다단계 위임 |
용어를 정확히 구분하면 설계 결정을 더 명확하게 내릴 수 있습니다. “프레임워크를 바꿔야 하는가”와 “하네스를 개선해야 하는가”는 완전히 다른 질문입니다. 이후 챕터에서 각 개념을 심화 학습하며 이 용어들을 반복적으로 사용합니다.