AI Agents for Beginners - 3. Agentic Design Patterns
A guide to Agentic Design Principles (Space, Time, Core) and three practical patterns — Clear Instructions, Structured Output, and Single Responsibility — for building effective AI agents.
June 8, 2026
AI Agents for Beginners - 3. Agentic Design Patterns
이 글은 Microsoft의 AI Agents for Beginners 강좌 Lesson 03을 기반으로 정리한 내용입니다.
Agentic Design Principles
AI Agentic System을 구축할 때 어디서부터 시작해야 할지 막막한 경우가 많습니다.
Generative AI 설계에서 모호함은 버그가 아니라 특성입니다.
Microsoft는 개발자가 고객 중심의 에이전트 시스템을 만들 수 있도록 인간 중심 UX Design Principles 세트를 제공합니다.
Generative AI 설계에서 모호함은 버그가 아니라 특성입니다.
Microsoft는 개발자가 고객 중심의 에이전트 시스템을 만들 수 있도록 인간 중심 UX Design Principles 세트를 제공합니다.
에이전트는 기본적으로 다음을 지향해야 합니다:
- 인간의 역량을 확장합니다 (브레인스토밍, 문제 해결, 자동화)
- 지식 격차를 채워줍니다 (도메인 학습, 번역 등)
- 개인이 선호하는 방식으로 협업을 지원합니다
- 우리가 더 나은 버전의 자신이 될 수 있도록 돕습니다
Design Principles는 세 가지 차원(Space, Time, Core)으로 구성됩니다:
Agentic Design PrinciplesMermaidflowchart TD AP["Agentic Design Principles"] AP --> Space["Agent (Space)\n물리·디지털 환경에서의 설계"] AP --> Time["Agent (Time)\n시간 축에 따른 동작 설계"] AP --> Core["Agent (Core)\n에이전트 핵심 요소"] Space --> S1["Connecting, not collapsing\n사람·이벤트·지식을 연결"] Space --> S2["Accessible yet invisible\n필요할 때만 nudge"] Time --> T1["Past\n이력 반영·메모리 활용"] Time --> T2["Now\n알림을 넘어 nudging"] Time --> T3["Future\n지속적 적응·진화"] Core --> C1["Embrace uncertainty\n불확실성은 설계의 핵심 요소"] Core --> C2["Establish trust\n투명성·사용자 제어 보장"]
Agent (Space)
에이전트가 동작하는 환경에 대한 원칙입니다. 물리적·디지털 세계에서 사람들과 어떻게 상호작용할지를 정의합니다.
Connecting, not collapsing — 에이전트는 사람들을 서로, 이벤트와, 실행 가능한 지식과 연결해 협업을 가능하게 합니다.
에이전트는 사람을 대체하거나 무시하는 것이 아니라, 사람들이 더 가까워지도록 설계됩니다.
에이전트는 사람을 대체하거나 무시하는 것이 아니라, 사람들이 더 가까워지도록 설계됩니다.
Easily accessible yet occasionally invisible — 에이전트는 주로 백그라운드에서 동작하며, 관련성이 있고 적절할 때만 nudge를 줍니다.
- 인가된 사용자가 어떤 기기·플랫폼에서도 쉽게 접근 가능
- 음성·텍스트 등 멀티모달 입출력 지원
- 사용자 필요에 따라 foreground/background, proactive/reactive를 유연하게 전환
- 백그라운드 처리 경로와 다른 에이전트와의 협업은 사용자가 투명하게 확인·제어 가능
Agent (Time)
에이전트가 시간에 걸쳐 어떻게 동작하는지에 대한 원칙입니다.
| Dimension | 원칙 | 설명 |
|---|---|---|
| Past | Reflecting on history | 과거 이벤트·상태·컨텍스트를 분석해 더 관련성 높은 결과 제공. 메모리를 능동적으로 활용 |
| Now | Nudging more than notifying | 이벤트 발생 시 단순 알림을 넘어 플로우를 단순화하거나 적절한 순간에 사용자 주의를 유도 |
| Future | Adapting and evolving | 다양한 기기·플랫폼·모달리티에 적응. 사용자 행동·접근성 필요에 따라 지속적으로 진화 |
Agent (Core)
에이전트 설계의 핵심 요소입니다.
Embrace uncertainty but establish trust — 불확실성은 에이전트 설계의 필수 요소입니다. 하지만 신뢰와 투명성이 그 기반을 이루어야 합니다.
- 에이전트의 불확실성은 어느 정도 예상되며 설계에서 수용해야 합니다
- 신뢰와 투명성은 에이전트 설계의 토대입니다
- 에이전트의 on/off는 인간이 제어하며, 상태는 항상 명확하게 표시됩니다
Implementation Guidelines
Design Principles를 실제로 구현할 때 따라야 할 세 가지 가이드라인:
| Guideline | 설명 |
|---|---|
| Transparency | AI가 관여한다는 사실, 동작 방식(과거 행동 포함), 피드백 방법을 사용자에게 알립니다 |
| Control | 사용자가 시스템을 커스터마이즈하고, 선호도를 지정하며, 데이터를 삭제할 수 있어야 합니다 |
| Consistency | 기기·엔드포인트 전반에서 일관된 멀티모달 경험을 제공하고, 인지 부하를 줄입니다 |
Travel Agent 설계에 적용하면:
- Transparency — AI Agent임을 명확히 알리고, 사용 제한을 문서화하며, thumbs up/down 피드백을 제공
- Control — System Prompt 수정 방법을 명확히 하고, 대화 기록·파일 삭제를 허용
- Consistency — 파일 업로드는 paperclip 아이콘, 이미지 업로드는 image 아이콘 등 표준 UI 요소 사용
Design Patterns in Practice
설계 원칙을 바탕으로 Travel Destination Recommender를 단계별로 구현합니다.
Pattern 1: Clear Agent Instructions
가장 효과적이고 단순한 패턴입니다. 에이전트에게 명확하고 상세한 지시사항을 작성합니다.
좋은 instructions은 다음을 정의합니다:
- Who — 에이전트의 페르소나와 톤
- What — 단계별 책임
- How — 제약 조건과 스타일
pattern1_clear_instructions.pypython
zenuml title Pattern 1: Clear Instructions Flow User->TravelConcierge: great food and history trip, budget $2500 TravelConcierge->LLM: process with persona and constraints LLM->TravelConcierge: understand preferences and plan response TravelConcierge->User: personalized suggestion with visa and best season
명확한 지시사항은 에이전트가 일관되고 브랜드에 맞는 동작을 하도록 보장합니다.
Pattern 2: Structured Output with Pydantic Models
자유 형식 텍스트는 대화에 유용하지만, 다운스트림 시스템은 구조화된 데이터가 필요합니다.
Pydantic model과 tool 함수를 결합하면 응답 스키마를 정의하고 자동으로 검증할 수 있습니다.
Pydantic model과 tool 함수를 결합하면 응답 스키마를 정의하고 자동으로 검증할 수 있습니다.
pattern2_structured_output.pypython
Pattern 2: Structured Output FlowMermaidflowchart TD User["User\n'3 culture destinations under $2500'"] --> Agent["StructuredTravelExpert\ntool: get_destination_details"] Agent --> LLM["LLM\n목적지 후보 결정"] LLM --> T1["get_destination_details('Barcelona')"] LLM --> T2["get_destination_details('Tokyo')"] LLM --> T3["get_destination_details('Cape Town')"] T1 & T2 & T3 --> Validate["Pydantic 검증\nDestinationRecommendation schema"] Validate --> Output["TravelRecommendations\n(구조화된 JSON 응답)"]
Pattern 3: Single Responsibility Agents
복잡한 태스크는 단일 책임을 가진 여러 에이전트로 분담하면 더 효과적입니다.
소프트웨어 엔지니어링의 separation of concerns 원칙을 에이전트에 적용한 것입니다.
소프트웨어 엔지니어링의 separation of concerns 원칙을 에이전트에 적용한 것입니다.
pattern3_single_responsibility.pypython
zenuml title Single Responsibility Agents Flow User->DestinationExpert: culture and food trip under $2500 DestinationExpert->Tool: get_destination_details(destination) Tool->DestinationExpert: destination info DestinationExpert->User: ranked destination list with pros/cons User->LogisticsPlanner: plan based on recommendations LogisticsPlanner->User: day-by-day itinerary and logistics
각 에이전트가 하나의 명확한 역할만 가지면 테스트·유지보수·조합이 훨씬 쉬워집니다.
Summary
세 가지 Design Pattern 비교:
| Pattern | Key Idea | Benefit |
|---|---|---|
| Clear Instructions | 페르소나·책임·제약 조건을 사전에 명확히 정의 | 일관되고 브랜드에 맞는 에이전트 동작 보장 |
| Structured Output | Pydantic model로 응답 형식 정의 | 검증된 machine-readable 결과, 시스템 통합 용이 |
| Single Responsibility | 각 에이전트에 하나의 집중된 역할만 부여 | 테스트·유지보수·조합이 쉬운 모듈식 설계 |
Lesson 03 SummaryMermaidflowchart LR Root["Agentic Design"] Root --> Principles["Design Principles"] Root --> Guidelines["Guidelines"] Root --> Patterns["Design Patterns"] Principles --> PR1["Space\nConnecting/Accessible"] Principles --> PR2["Time\nPast/Now/Future"] Principles --> PR3["Core\nTrust/Uncertainty"] Guidelines --> G1["Transparency"] Guidelines --> G2["Control"] Guidelines --> G3["Consistency"] Patterns --> P1["Clear Instructions"] Patterns --> P2["Structured Output"] Patterns --> P3["Single Responsibility"]
- Agentic Design Principles는 Space·Time·Core 세 차원으로 에이전트 설계 방향을 제시합니다
- Transparency·Control·Consistency 가이드라인으로 사용자 신뢰를 구축합니다
- Clear Instructions → Structured Output → Single Responsibility 패턴을 조합해 production-ready 시스템을 만들 수 있습니다