AI Agents for Beginners - 6. Building Trustworthy AI Agents
How to build safe and trustworthy AI agents — system message framework, threat mitigation, and human-in-the-loop patterns for secure, reliable agentic systems.
June 9, 2026
AI Agents for Beginners - 6. Building Trustworthy AI Agents
이 글은 Microsoft의 AI Agents for Beginners 강좌 Lesson 06을 기반으로 정리한 내용입니다.
Safety: System Message Framework
안전한 에이전트 애플리케이션을 만들기 위한 첫 번째 요소는 Safety입니다.
에이전트가 설계한 대로 동작하도록 보장하는 것을 의미합니다.
에이전트가 설계한 대로 동작하도록 보장하는 것을 의미합니다.
LLM 기반 앱에서 system prompt는 항상 중요하지만, AI Agent에서는 더욱 중요합니다.
에이전트는
에이전트는
고도로 구체적인 지시사항이 있어야 설계된 태스크를 올바르게 완수할 수 있습니다.System Message Framework는 확장 가능한 시스템 프롬프트를 효율적으로 생성하는 방법입니다:
System Message FrameworkMermaidflowchart TD Step1["Step 1\nMeta System Message 작성\n(LLM에게 프롬프트 생성 방법 지시)"] --> Step2["Step 2\nBasic Prompt 작성\n(에이전트의 역할·태스크 기술)"] --> Step3["Step 3\nLLM으로 최적화\n(Meta + Basic → 완성된 System Message)"] --> Step4["Step 4\nIterate & Improve\n(작은 수정 → 비교·평가 반복)"]
Step 1: Meta System Message
LLM에게 시스템 프롬프트를 생성하는 방법을 알려주는 메타 프롬프트입니다:
meta_system_message.txtpython
Step 2: Basic Prompt
에이전트의 역할과 태스크를 간결하게 기술합니다:
basic_prompt.txtpython
Step 3: LLM으로 최적화
Meta System Message를 system으로, Basic Prompt를 user로 전달하면 구조화된 시스템 프롬프트가 생성됩니다:
generate_system_message.pypython
Step 4의 핵심은 반복과 개선입니다.
Basic Prompt를 조금씩 수정하고 결과를 비교하면서 점진적으로 최적화합니다.
Basic Prompt를 조금씩 수정하고 결과를 비교하면서 점진적으로 최적화합니다.
Understanding Threats
신뢰할 수 있는 AI 에이전트를 만들려면 잠재적 위협을 이해하고 완화해야 합니다.
| Threat | 설명 | Mitigation |
|---|---|---|
| Task & Instruction Manipulation | 공격자가 프롬프트나 입력 조작으로 에이전트의 지시사항·목표를 변경 | 입력 검증·필터링, 대화 turn 수 제한 |
| Access to Critical Systems | 에이전트가 민감한 시스템에 접근할 경우, 공격자가 통신을 탈취하거나 시스템 정보를 추출 | 최소 권한(need-only) 접근, 인증·접근 제어, 보안 통신 |
| Resource & Service Overloading | 에이전트의 tool 접근을 악용해 대량 요청으로 서비스 장애·비용 유발 | 요청 수 제한 정책, 대화 turn 및 요청 횟수 제한 |
| Knowledge Base Poisoning | 에이전트가 사용하는 knowledge base를 오염시켜 편향되거나 의도치 않은 응답 유도 | 데이터 정기 검증, 신뢰된 사람만 데이터 수정 가능하도록 접근 제어 |
| Cascading Errors | 에이전트 연결 시스템 중 하나의 오류가 다른 시스템으로 연쇄 전파 | Docker 컨테이너 등 격리된 환경에서 실행, 오류 발생 시 fallback·retry 로직 구현 |
Threat Categories & MitigationsMermaidflowchart LR Threats["AI Agent\nThreats"] Threats --> T1["Task & Instruction\nManipulation"] Threats --> T2["Critical System\nAccess"] Threats --> T3["Resource\nOverloading"] Threats --> T4["Knowledge Base\nPoisoning"] Threats --> T5["Cascading\nErrors"] T1 -->|"Mitigation"| M1["Input validation\n+ Turn limits"] T2 -->|"Mitigation"| M2["Least privilege\n+ Auth/ACL"] T3 -->|"Mitigation"| M3["Rate limiting\n+ Request caps"] T4 -->|"Mitigation"| M4["Data verification\n+ Trusted access"] T5 -->|"Mitigation"| M5["Isolation\n+ Fallback logic"]
Human-in-the-Loop
신뢰할 수 있는 AI 에이전트 시스템을 만드는 또 다른 핵심 방법은 Human-in-the-Loop입니다.
사용자가 에이전트 실행 중 피드백을 제공하고, 승인 또는 중단을 결정할 수 있는 플로우를 만듭니다.
사용자가 에이전트 실행 중 피드백을 제공하고, 승인 또는 중단을 결정할 수 있는 플로우를 만듭니다.
사용자는 멀티에이전트 시스템에서 또 다른 에이전트처럼 동작하며, 실행 프로세스를 감독합니다.
human_in_the_loop.pypython
zenuml title Human-in-the-Loop Flow User->Agent: task request Agent->LLM: process request LLM->Agent: draft response Agent->Human: present draft for review Human->Agent: APPROVE or REJECT Agent->User: deliver approved response
approval_mode="always_require" tool과 함께 사용하면 민감한 작업마다 사람의 승인을 강제할 수 있습니다.
Summary
Lesson 06 SummaryMermaidflowchart LR Root["Trustworthy\nAI Agents"] Root --> Safety["Safety"] Root --> Threats["Threats"] Root --> HITL["Human-in-the-Loop"] Safety --> S1["Meta System Message"] Safety --> S2["Basic Prompt"] Safety --> S3["Iterate & Improve"] Threats --> T1["Prompt Injection"] Threats --> T2["System Access"] Threats --> T3["Resource Overload"] Threats --> T4["KB Poisoning"] Threats --> T5["Cascading Errors"] HITL --> H1["사용자 승인·중단 권한"] HITL --> H2["approval_mode\nalways_require"]
- System Message Framework의 4단계(Meta → Basic → Optimize → Iterate)로 확장 가능하고 안전한 프롬프트를 설계합니다
- Prompt Injection, Knowledge Base Poisoning, Cascading Errors 등 5가지 위협을 이해하고 각각에 맞는 완화 전략을 적용합니다
- Human-in-the-Loop으로 사용자가 에이전트 실행을 감독하고, 민감한 작업에는
approval_mode="always_require"로 강제 승인을 요구합니다 - Safety·Security·Privacy를 지속적으로 반복하며 개선하는 것이 신뢰할 수 있는 AI Agent 구축의 핵심입니다