ai-agents-for-beginners

신뢰할 수 있는 AI 에이전트

(위 이미지를 클릭하여 이 수업의 비디오를 시청하세요)

신뢰할 수 있는 AI 에이전트 구축

소개

이 수업에서는 다음 내용을 다룹니다:

학습 목표

이 수업을 완료하면 다음 사항을 알게 됩니다:

안전성

먼저 안전한 에이전트 애플리케이션 구축에 대해 살펴봅시다. 안전성은 AI 에이전트가 설계된 대로 작동함을 의미합니다. 에이전트 애플리케이션 개발자로서 우리는 안전성을 극대화할 방법과 도구를 가지고 있습니다:

시스템 메시지 프레임워크 구축

큰 언어 모델(LLM)을 사용해 AI 애플리케이션을 만든 적이 있다면, 견고한 시스템 프롬프트 또는 시스템 메시지 설계의 중요성을 알고 있을 것입니다. 이 프롬프트들은 LLM이 사용자 및 데이터와 어떻게 상호작용할지에 대한 메타 규칙, 지침 및 가이드라인을 설정합니다.

AI 에이전트의 경우, AI 에이전트가 우리가 설계한 작업을 완료하려면 매우 구체적인 지침이 필요하기 때문에 시스템 프롬프트가 더욱 중요합니다.

확장 가능한 시스템 프롬프트를 생성하려면, 애플리케이션에서 하나 이상의 에이전트를 구축하기 위한 시스템 메시지 프레임워크를 사용할 수 있습니다:

시스템 메시지 프레임워크 구축

1단계: 메타 시스템 메시지 생성

메타 프롬프트는 LLM이 우리가 생성하는 에이전트들을 위한 시스템 프롬프트를 생성하는 데 사용됩니다. 여러 에이전트를 효율적으로 만들 수 있도록 템플릿으로 설계합니다.

LLM에 줄 수 있는 메타 시스템 메시지의 예는 다음과 같습니다:

You are an expert at creating AI agent assistants. 
You will be provided a company name, role, responsibilities and other
information that you will use to provide a system prompt for.
To create the system prompt, be descriptive as possible and provide a structure that a system using an LLM can better understand the role and responsibilities of the AI assistant. 

2단계: 기본 프롬프트 생성

다음 단계는 AI 에이전트를 설명하는 기본 프롬프트를 만드는 것입니다. 에이전트의 역할, 에이전트가 수행할 작업, 및 기타 책임을 포함해야 합니다.

예시는 다음과 같습니다:

You are a travel agent for Contoso Travel that is great at booking flights for customers. To help customers you can perform the following tasks: lookup available flights, book flights, ask for preferences in seating and times for flights, cancel any previously booked flights and alert customers on any delays or cancellations of flights.  

3단계: 기본 시스템 메시지를 LLM에 제공

이제 메타 시스템 메시지를 시스템 메시지로 제공하고 우리는 기본 시스템 메시지를 제공하여 이 시스템 메시지를 최적화할 수 있습니다.

이로써 AI 에이전트를 안내하는 데 더 잘 설계된 시스템 메시지가 생성됩니다:

**Company Name:** Contoso Travel  
**Role:** Travel Agent Assistant

**Objective:**  
You are an AI-powered travel agent assistant for Contoso Travel, specializing in booking flights and providing exceptional customer service. Your main goal is to assist customers in finding, booking, and managing their flights, all while ensuring that their preferences and needs are met efficiently.

**Key Responsibilities:**

1. **Flight Lookup:**
    
    - Assist customers in searching for available flights based on their specified destination, dates, and any other relevant preferences.
    - Provide a list of options, including flight times, airlines, layovers, and pricing.
2. **Flight Booking:**
    
    - Facilitate the booking of flights for customers, ensuring that all details are correctly entered into the system.
    - Confirm bookings and provide customers with their itinerary, including confirmation numbers and any other pertinent information.
3. **Customer Preference Inquiry:**
    
    - Actively ask customers for their preferences regarding seating (e.g., aisle, window, extra legroom) and preferred times for flights (e.g., morning, afternoon, evening).
    - Record these preferences for future reference and tailor suggestions accordingly.
4. **Flight Cancellation:**
    
    - Assist customers in canceling previously booked flights if needed, following company policies and procedures.
    - Notify customers of any necessary refunds or additional steps that may be required for cancellations.
5. **Flight Monitoring:**
    
    - Monitor the status of booked flights and alert customers in real-time about any delays, cancellations, or changes to their flight schedule.
    - Provide updates through preferred communication channels (e.g., email, SMS) as needed.

**Tone and Style:**

- Maintain a friendly, professional, and approachable demeanor in all interactions with customers.
- Ensure that all communication is clear, informative, and tailored to the customer's specific needs and inquiries.

**User Interaction Instructions:**

- Respond to customer queries promptly and accurately.
- Use a conversational style while ensuring professionalism.
- Prioritize customer satisfaction by being attentive, empathetic, and proactive in all assistance provided.

**Additional Notes:**

- Stay updated on any changes to airline policies, travel restrictions, and other relevant information that could impact flight bookings and customer experience.
- Use clear and concise language to explain options and processes, avoiding jargon where possible for better customer understanding.

This AI assistant is designed to streamline the flight booking process for customers of Contoso Travel, ensuring that all their travel needs are met efficiently and effectively.

4단계: 반복 및 개선

이 시스템 메시지 프레임워크의 가치는 여러 에이전트로부터 시스템 메시지를 확장하여 쉽게 만들 수 있고, 또한 시스템 메시지를 시간이 지나면서 개선할 수 있다는 것입니다. 처음부터 완벽하게 작동하는 시스템 메시지는 드물기에, 기본 시스템 메시지를 변경하고 시스템을 통해 실행하여 결과를 비교 평가하면서 작은 조정과 개선이 가능해야 합니다.

위협 이해

신뢰할 수 있는 AI 에이전트를 구축하려면, AI 에이전트에 대한 위험과 위협을 이해하고 완화하는 것이 중요합니다. 여기서는 AI 에이전트에 대한 다양한 위협 중 일부만 살펴보고, 이를 계획하고 대비하는 방법을 알아봅니다.

위협 이해

작업 및 지침

설명: 공격자는 프롬프트 조작이나 입력 변조를 통해 AI 에이전트의 지침이나 목표를 변경하려 시도합니다.

완화책: AI 에이전트가 처리하기 전에 잠재적으로 위험한 프롬프트를 감지하기 위해 검증 검사 및 입력 필터를 실행하세요. 이러한 공격은 일반적으로 에이전트와의 빈번한 상호 작용이 필요하므로, 대화 턴 수를 제한하는 것도 이러한 공격을 방지하는 한 방법입니다.

중요 시스템 접근

설명: AI 에이전트가 민감한 데이터를 저장하는 시스템 및 서비스에 접근할 경우, 공격자는 에이전트와 해당 시스템 간의 통신을 침해할 수 있습니다. 이는 직접적인 공격 또는 에이전트를 통한 간접적인 정보 획득 시도일 수 있습니다.

완화책: AI 에이전트는 필요할 때만 시스템에 접근하도록 제한해야 합니다. 에이전트와 시스템 간 통신 역시 안전해야 합니다. 인증 및 접근 제어를 구현하는 것이 이 정보를 보호하는 또 다른 방법입니다.

자원 및 서비스 과부하

설명: AI 에이전트는 작업을 완료하기 위해 다양한 도구와 서비스에 접근할 수 있습니다. 공격자는 이 능력을 이용해 AI 에이전트를 통해 대량의 요청을 보내 서비스에 공격을 가할 수 있으며, 이로 인해 시스템 고장이나 높은 비용이 발생할 수 있습니다.

완화책: AI 에이전트가 서비스에 보낼 수 있는 요청 수를 제한하는 정책을 시행하세요. 대화 턴 수와 AI 에이전트에 보내는 요청 수를 제한하는 것도 이러한 공격을 방지하는 방법입니다.

지식 기반 오염

설명: 이 공격 유형은 AI 에이전트를 직접 겨냥하지 않고, AI 에이전트가 작업을 수행하는 데 사용할 지식 기반 및 기타 서비스들을 겨냥합니다. 데이터나 정보를 손상시켜 사용자가 편향되거나 의도치 않은 응답을 받게 만듭니다.

완화책: AI 에이전트가 워크플로우에서 사용할 데이터를 정기적으로 검증하세요. 이 데이터에 대한 접근은 안전해야 하며 신뢰할 수 있는 사람만 변경하도록 하여 이런 공격을 방지해야 합니다.

연쇄 오류

설명: AI 에이전트는 다양한 도구와 서비스에 접근해 작업을 수행합니다. 공격자로 인한 오류가 AI 에이전트와 연결된 다른 시스템의 실패를 유발해 공격이 더욱 광범위해지고 문제 해결이 어려워질 수 있습니다.

완화책: 이를 방지하는 한 가지 방법은 AI 에이전트가 Docker 컨테이너 같은 제한된 환경에서 작업을 수행하게 하여 직접적인 시스템 공격을 막는 것입니다. 특정 시스템이 오류를 응답할 때 대비책과 재시도 로직을 구축하는 것도 큰 시스템 실패를 방지하는 방법입니다.

휴먼 인 더 루프 (Human-in-the-Loop)

신뢰할 수 있는 AI 에이전트 시스템을 구축하는 또 다른 효과적인 방법은 휴먼 인 더 루프를 사용하는 것입니다. 이것은 사용자가 실행 중 에이전트에게 피드백을 제공할 수 있는 흐름을 만듭니다. 사용자는 다중 에이전트 시스템 내에서 에이전트 역할을 하며 실행 프로세스의 승인 또는 종료를 제공할 수 있습니다.

휴먼 인 더 루프

다음은 Microsoft Agent Framework를 사용하여 이 개념이 구현된 예제 코드입니다:

import os
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

# 인간 승인 절차와 함께 제공자 생성
provider = FoundryChatClient(
    project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
    model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
    credential=AzureCliCredential(),
)

# 인간 승인 단계를 포함하여 에이전트 생성
response = provider.create_response(
    input="Write a 4-line poem about the ocean.",
    instructions="You are a helpful assistant. Ask for user approval before finalizing.",
)

# 사용자가 응답을 검토하고 승인할 수 있음
print(response.output_text)
user_input = input("Do you approve? (APPROVE/REJECT): ")
if user_input == "APPROVE":
    print("Response approved.")
else:
    print("Response rejected. Revising...")

결론

신뢰할 수 있는 AI 에이전트를 구축하려면 신중한 설계, 견고한 보안 조치, 지속적인 반복이 필요합니다. 구조화된 메타 프롬프트 시스템을 구현하고 잠재적 위협을 이해하며 완화 전략을 적용함으로써 개발자는 안전하고 효과적인 AI 에이전트를 만들 수 있습니다. 또한 휴먼 인 더 루프 방식을 도입하면 AI 에이전트가 사용자 요구에 부합하면서 위험을 최소화할 수 있습니다. AI가 계속해서 발전함에 따라 보안, 개인정보 보호 및 윤리적 고려 사항에 대한 능동적인 태도를 유지하는 것이 AI 기반 시스템에서 신뢰와 신뢰성을 증진하는 핵심이 될 것입니다.

코드 샘플

신뢰할 수 있는 AI 에이전트 구축에 관해 추가 질문이 있나요?

Microsoft Foundry Discord에 참여하여 다른 학습자들과 만나고, 오피스 아워에 참석하며 AI 에이전트 관련 질문에 답변을 받아보세요.

추가 자료

이전 수업

Agentic RAG

다음 수업

계획 설계 패턴


면책 조항: 이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역은 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원본 문서의 원어본이 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우, 전문가의 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.