---
tags: [AI-Agent, 개요, 설계]
last-reviewed: 2026-07-27
---

# Agent 설계 원칙

> 한 줄 정의
> 신뢰할 수 있는 AI Agent를 만들기 위한 핵심 설계 원칙들. 가장 단순한 구조에서 출발해 필요할 때만 복잡도를 더하고, 자율성에는 가드레일·관측성·평가를 함께 설계해야 한다는 것이 공통된 출발점이다.

## 핵심 원칙

### 1. 단순함에서 시작한다 (Start simple)
- LLM 한 번 호출로 풀린다면 Agent를 만들지 않는다.
- 워크플로우로 충분하면 동적 Agent를 도입하지 않는다.
- 복잡도는 측정 가능한 성능 개선이 있을 때만 추가한다.

### 2. 투명성 (Transparency)
- Agent의 결정·행동·도구 trajectory와 종료 사유를 구조화해 디버깅·감사의 근거로 남긴다.
- 비공개 추론 원문(chain-of-thought)은 저장·노출하지 않는다. "왜 이 행동을 했는가"는 근거 ID·정책·결정 요약으로 추적한다. → [[Tracing]]

### 3. 명확한 역할과 책임 분리 (Role separation)
- 단일 Agent에 모든 책임을 몰지 않는다. 역할별로 프롬프트·도구·컨텍스트를 분리한다.
- 멀티에이전트에서는 각 에이전트의 책임 경계를 명시한다.

### 4. 도구 계층화와 ACI 설계 (Tool / Agent-Computer Interface)
- 도구 설명·인자·반환 포맷을 사람이 쓰는 API처럼 명료하게 작성한다.
- 도구는 적게, 직교적으로. 비슷한 도구가 많으면 모델이 혼동한다.
- 입력 검증과 권한 최소화를 도구 단에서 강제한다.

### 5. 컨텍스트 엔지니어링 (Context engineering)
- 컨텍스트 윈도우는 한정 자원이다. 필요한 정보만 적시에(JIT) 주입한다.
- 무관한 히스토리·중복 결과는 잘라내고 요약·압축한다. → [[Context Engineering]]

### 6. 가드레일과 안전성 (Guardrails)
- 입력/출력 검증, 행동 화이트리스트, 최대 스텝·예산 한도를 둔다.
- 비가역적·고위험 행동(결제, 삭제)은 사람 승인 게이트를 건다. → [[Human In the Loop]]

### 7. 관측 가능성 (Observability)
- 로깅·트레이싱·비용 모니터링·성능 지표를 처음부터 설계에 포함한다.
- 운영 중 회귀를 감지할 수 있어야 한다. → [[Logging]] · [[Cost Monitoring]]

### 8. 평가 가능성 (Evaluability)
- 성공 기준을 정량적으로 정의하고 회귀 테스트셋(Ground Truth)을 갖춘다.
- 환각·정확도·태스크 성공률을 지속 측정한다. → [[Agent Evaluation]]

### 9. 자기교정 루프 (Self-correction)
- 출력을 스스로 검토(Critic)하고 개선하는 Reflection 루프로 품질을 높인다.
- 단, 무한 루프 방지를 위한 종료 조건을 둔다.

## 안티패턴

- 필요 없는데 멀티에이전트로 과설계하는 것.
- 종료 조건 없는 루프, 도구 과다, 컨텍스트 무한 누적.
- 가드레일·로깅을 "나중에" 미루는 것.

## 설계 체크리스트

- [ ] 더 단순한 해법(단발 호출/워크플로우)으로 안 되는가?
- [ ] 각 도구의 인터페이스가 명확하고 검증되는가?
- [ ] 컨텍스트에 불필요한 정보가 쌓이지 않는가?
- [ ] 고위험 행동에 사람 승인 또는 가드레일이 있는가?
- [ ] 결정·행동·도구 trajectory가 추적되고 비공개 추론 원문은 저장되지 않는가?
- [ ] 성공 기준과 평가셋이 있는가?

## 관련 노트

- [[AI Agent란]]
- [[Agentic AI]]
- [[Single Agent vs Multi Agent]]
- [[Context Engineering]]
- [[Human In the Loop]]
- [[Tool Calling]]
- [[Agent Evaluation]]
- [[Reflection]]
