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 세트를 제공합니다.
에이전트는 기본적으로 다음을 지향해야 합니다:
  • 인간의 역량을 확장합니다 (브레인스토밍, 문제 해결, 자동화)
  • 지식 격차를 채워줍니다 (도메인 학습, 번역 등)
  • 개인이 선호하는 방식으로 협업을 지원합니다
  • 우리가 더 나은 버전의 자신이 될 수 있도록 돕습니다
Design Principles는 세 가지 차원(Space, Time, Core)으로 구성됩니다:
Agentic Design Principles
Mermaid
flowchart 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원칙설명
PastReflecting on history과거 이벤트·상태·컨텍스트를 분석해 더 관련성 높은 결과 제공. 메모리를 능동적으로 활용
NowNudging more than notifying이벤트 발생 시 단순 알림을 넘어 플로우를 단순화하거나 적절한 순간에 사용자 주의를 유도
FutureAdapting and evolving다양한 기기·플랫폼·모달리티에 적응. 사용자 행동·접근성 필요에 따라 지속적으로 진화

Agent (Core)

에이전트 설계의 핵심 요소입니다.
Embrace uncertainty but establish trust — 불확실성은 에이전트 설계의 필수 요소입니다. 하지만 신뢰와 투명성이 그 기반을 이루어야 합니다.
  • 에이전트의 불확실성은 어느 정도 예상되며 설계에서 수용해야 합니다
  • 신뢰와 투명성은 에이전트 설계의 토대입니다
  • 에이전트의 on/off는 인간이 제어하며, 상태는 항상 명확하게 표시됩니다

Implementation Guidelines

Design Principles를 실제로 구현할 때 따라야 할 세 가지 가이드라인:
Guideline설명
TransparencyAI가 관여한다는 사실, 동작 방식(과거 행동 포함), 피드백 방법을 사용자에게 알립니다
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.py
python
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 함수를 결합하면 응답 스키마를 정의하고 자동으로 검증할 수 있습니다.
pattern2_structured_output.py
python
Pattern 2: Structured Output Flow
Mermaid
flowchart 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 원칙을 에이전트에 적용한 것입니다.
pattern3_single_responsibility.py
python
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 비교:
PatternKey IdeaBenefit
Clear Instructions페르소나·책임·제약 조건을 사전에 명확히 정의일관되고 브랜드에 맞는 에이전트 동작 보장
Structured OutputPydantic model로 응답 형식 정의검증된 machine-readable 결과, 시스템 통합 용이
Single Responsibility각 에이전트에 하나의 집중된 역할만 부여테스트·유지보수·조합이 쉬운 모듈식 설계
Lesson 03 Summary
Mermaid
flowchart 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 InstructionsStructured OutputSingle Responsibility 패턴을 조합해 production-ready 시스템을 만들 수 있습니다
Jooojub
System S/W engineer
Explore Tags
Series
    Recent Post
    © 2026. jooojub. All right reserved.