OpenAI 실전 가이드: AI 에이전트 구축하기

OpenAI는 제품 및 엔지니어링 팀이 AI 에이전트(LLM을 활용하여 추론, 의사 결정, 도구 실행을 수행하며 다단계 작업을 독립적으로 완수할 수 있는 시스템)를 구축하기 위한 실용적인 가이드를 공개했습니다. 단순한 챗봇과 달리 에이전트는 전체 워크플로우를 관리하고, 스스로 행동을 교정하거나 실패 시 사용자에게 제어권을 다시 넘길 수 있습니다.

AI 에이전트를 배포해야 하는 시점

에이전트는 전통적인 결정론적 규칙 기반 자동화가 복잡성이나 모호함으로 인해 실패하는 시나리오에서 가장 효과적입니다. OpenAI는 에이전트 워크플로우의 세 가지 주요 사용 사례를 식별합니다.

  • 복잡한 의사 결정: 고객 서비스의 환불 승인과 같이 미묘한 판단이나 상황에 민감한 결정이 필요한 작업.
  • 유지 관리가 어려운 규칙: 공급업체 보안 검토와 같이 업데이트 비용이 많이 들거나 오류가 발생하기 쉬운 복잡한 규칙 집합을 가진 시스템.
  • 비정형 데이터에 대한 높은 의존도: 보험 청구 처리와 같이 자연어 해석이나 문서 추출을 포함하는 워크플로우.

에이전트 설계 기초

에이전트는 추론을 위한 모델, 외부 상호 작용을 위한 도구, 행동 지침을 위한 지침이라는 세 가지 핵심 구성 요소로 구성됩니다.

모델 선택 전략

OpenAI는 성능, 비용, 지연 시간을 최적화하기 위한 3단계 접근 방식을 권장합니다.

  1. 기준 설정: 가장 강력한 모델을 사용하여 최대 성능 잠재력을 파악합니다.
  2. 정확도 목표 충족: 먼저 고성능 모델을 사용하여 요구되는 정확도를 달성하는 데 집중합니다.
  3. 최적화: 성능이 허용 가능한 수준으로 유지되는 경우 더 큰 모델을 더 작고 빠른 모델로 대체합니다.

도구 통합

도구를 사용하면 에이전트가 API 또는 레거시 UI용 컴퓨터 사용 모델을 통해 외부 시스템과 상호 작용할 수 있습니다. OpenAI는 도구를 세 가지 유형으로 분류합니다.

도구 유형 설명 예시
데이터 컨텍스트 및 정보 검색 CRM 쿼리, PDF 읽기, 웹 검색
액션 상태를 변경하기 위해 시스템과 상호 작용 이메일 보내기, 레코드 업데이트, 티켓 이관
오케스트레이션 다른 에이전트를 위한 도구 역할을 하는 에이전트 전담 리서치 또는 라이팅 에이전트

지침 구성

모호성을 줄이고 안정성을 높이기 위해 지침은 다음 모범 사례를 따라야 합니다.

  • 기존 문서 활용: 루틴을 기존 운영 절차나 지원 스크립트에 매핑합니다.
  • 작업 분해: 방대한 리소스를 더 작고 명확한 단계로 세분화합니다.
  • 명시적 조치 정의: 모든 단계가 특정 출력 또는 API 호출에 해당하는지 확인합니다.
  • 엣지 케이스 예측: 불완전한 정보나 예상치 못한 사용자 쿼리에 대한 조건부 분기를 포함합니다.

오케스트레이션 패턴

OpenAI는 단일 에이전트 시스템에서 시작하여 다중 에이전트 아키텍처로 이동하는 점진적인 오케스트레이션 접근 방식을 제안합니다.

단일 에이전트 시스템

단일 에이전트는 최종 출력 도구 호출이나 사용자에 대한 직접 응답과 같은 종료 조건이 충족될 때까지 루프("실행")로 작동합니다. 에이전트를 추가하지 않고 복잡성을 관리하기 위해 개발자는 정책 변수가 있는 프롬프트 템플릿을 사용하여 단일 기본 프롬프트를 다양한 컨텍스트에 맞게 조정할 수 있습니다.

다중 에이전트 시스템

단일 에이전트가 복잡한 지침을 따르지 못하거나 "도구 과부하"(너무 많거나 중복되거나 유사한 도구)로 어려움을 겪는 경우 다중 에이전트 시스템이 권장됩니다. 두 가지 주요 패턴이 식별됩니다.

  1. 관리자 패턴(에이전트를 도구로 사용): 중앙 관리 에이전트가 도구 호출을 통해 전담 에이전트를 조정하고 결과를 통합된 사용자 경험으로 종합합니다. 이는 한 에이전트가 중앙 통제권을 유지해야 할 때 이상적입니다.
  2. 분산 패턴(핸드오프): 에이전트는 동료로 작동하며 "핸드오프" 기능을 통해 서로 실행을 이전합니다. 이는 전담 에이전트가 상호 작용을 완전히 인수하는 대화 트리아지에 최적입니다.

오케스트레이션 패턴

OpenAI는 단일 에이전트 시스템에서 시작하여 멀티 에이전트 아키텍처로 이동하는 점진적인 오케스트레이션 접근 방식을 제안합니다.

단일 에이전트 시스템

단일 에이전트는 최종 출력 도구 호출이나 사용자에 대한 직접 응답과 같은 종료 조건이 충족될 때까지 루프("실행")로 작동합니다. 에이전트를 추가하지 않고 복잡성을 관리하기 위해 개발자는 정책 변수가 있는 프롬프트 템플릿을 사용하여 다양한 컨텍스트에 맞게 단일 기본 프롬프트를 조정할 수 있습니다.

다중 에이전트 시스템

단일 에이전트가 복잡한 지침을 따르지 못하거나 "도구 과부하"(너무 많거나 중복되거나 유사한 도구)로 어려움을 겪는 경우 다중 에이전트 시스템이 권장됩니다. 두 가지 주요 패턴이 식별됩니다.

  1. 관리자 패턴(에이전트를 도구로 사용): 중앙 관리 에이전트가 도구 호출을 통해 전담 에이전트를 조정하고 결과를 통합된 사용자 경험으로 종합합니다. 이는 한 에이전트가 중앙 통제권을 유지해야 할 때 이상적입니다.
  2. 분산 패턴(핸드오프): 에이전트는 동료로 작동하며 "핸드오프" 기능을 통해 서로 실행을 이전합니다. 이는 전담 에이전트가 상호 작용을 완전히 인수하는 대화 트리아지에 최적입니다.

오케스트레이션 패턴

OpenAI는 단일 에이전트 시스템에서 시작하여 멀티 에이전트 아키텍처로 이동하는 점진적인 오케스트레이션 접근 방식을 제안합니다.

단일 에이전트 시스템

단일 에이전트는 종료 조건(예: 최종 출력 도구 호출 또는 사용자에 대한 직접 응답)이 충족될 때까지 루프("실행")로 작동합니다. 에이전트를 추가하지 않고 복잡성을 관리하기 위해 개발자는 정책 변수가 있는 프롬프트 템플릿을 사용하여 단일 기본 프롬프트를 다양한 컨텍스트에 적용할 수 있습니다.

다중 에이전트 시스템

단일 에이전트가 복잡한 지침을 따르지 못하거나 "도구 과부하"(너무 많거나 중복되거나 유사한 도구)로 어려움을 겪는 경우 다중 에이전트 시스템이 권장됩니다. 두 가지 주요 패턴이 식별됩니다.

  1. 관리자 패턴(도구로서의 에이전트): 중앙 관리 에이전트가 도구 호출을 통해 전담 에이전트를 조정하고 결과를 통합된 사용자 경험으로 종합합니다. 이는 한 에이전트가 중앙 통제권을 유지해야 할 때 이상적입니다.
  2. 분산 패턴(핸드오프): 에이전트는 동료로 작동하며 "핸드오프" 기능을 통해 서로 실행을 이전합니다. 이는 전담 에이전트가 상호 작용을 완전히 인수하는 대화 트라이어지에 최적입니다.

가드레일 및 안전

가드레일은 개인정보 및 평판 위험을 관리하기 위한 계층적 방어 메커니즘으로 구현되어야 합니다. OpenAI의 Agents SDK는 에이전트가 출력을 생성하는 동안 가드레일이 동시에 실행되어 제약 조건을 위반할 경우 예외를 트리거하는 "낙관적 실행"을 활용합니다.

가드레일 유형

  • 관련성 분류기: 에이전트를 범위 내로 유지하기 위해 주제에서 벗어난 질의를 플래그합니다.
  • 안전 분류기: 제재 우회(jailbreak) 및 프롬프트 주입을 탐지합니다.
  • PII 필터: 개인 식별 정보의 노출을 방지하기 위해 출력을 검사합니다.
  • 중재: OpenAI 중재 API를 사용하여 증오 발언이나 괴롭힘을 플래그합니다.
  • 도구 안전장치: 영향과 되돌릴 수 있는 정도에 따라 도구에 위험 등급(낮음, 중간, 높음)을 할당하고, 위험도가 높은 작업에는 인간의 개입을 유발합니다.
  • 규칙 기반 보호: 결정론적 위협에 대해 정규식, 차단 목록, 문자 제한을 사용합니다.
  • 출력 검증: 응답이 브랜드 가치와 일치하는지 확인합니다.

인간의 개입

초기 배포 및 위험도가 높은 작업에는 인간 개입 메커니즘이 중요합니다. 인간에게 에스컬레이션은 다음 조건에서 트리거되어야 합니다.

  • 실패 임계값: 에이전트가 설정된 재시도 횟수를 초과하거나 의도를 이해하지 못하는 경우.
  • 고위험 작업: 대규모 환불 승인이나 지불 실행과 같은 되돌릴 수 없거나 민감한 작업.

SUMMARY: OpenAI는 모델 선택, 도구 통합, 오케스트레이션 패턴, 계층형 안전장치에 대한 반복적인 접근 방식을 강조하며 AI 에이전트 개발을 위한 포괄적인 프레임워크를 제공합니다.

TITLE: OpenAI 실전 가이드: AI 에이전트 구축하기

Sources