2025년 8월 24일 작성

Amazon Bedrock Agent Advanced Prompts

Advanced Prompts는 사용자 요청 처리를 Pre-processing(전처리), Orchestration(실행 조율), Post-processing(후처리)의 3단계로 구조화하여 agent의 동작을 세밀하게 제어하는 체계입니다.

AWS Bedrock Agent의 Advanced Prompt 체계

  • AWS Bedrock Agent는 사용자 요청을 처리하는 과정을 Pre-processing, Orchestration, Post-processing의 3단계로 구조화하여 체계적인 AI agent workflow를 구현합니다.
  • 각 단계는 독립적인 prompt를 가지며, agent의 동작을 세밀하게 제어할 수 있도록 설계되었습니다.
  • 3단계 prompt 체계를 통해 복잡한 business logic과 다양한 use case에 대응할 수 있는 유연성을 제공합니다.

Pre-processing (전처리 단계)

  • Pre-processing은 사용자의 원시 입력을 받아 agent가 이해하고 처리할 수 있는 형태로 변환하는 첫 번째 단계입니다.
  • 사용자 의도를 분석하고 요청을 분류하여 다음 단계의 처리를 준비합니다.
  • input validation과 보안 검증을 수행하여 안전한 처리를 보장합니다.

주요 기능과 역할

  • 입력 정제 : 사용자 입력에서 불필요한 요소를 제거하고 핵심 내용만 추출합니다.
    • 오타 교정이나 약어 확장 등의 text normalization을 수행합니다.
    • 다국어 입력을 처리하여 agent가 이해할 수 있는 형식으로 변환합니다.
  • 의도 파악 : 사용자가 무엇을 원하는지 명확히 식별합니다.
    • 질문, 명령, 정보 요청 등 요청의 type을 분류합니다.
    • 여러 의도가 섞인 복합 요청을 개별 task로 분해합니다.
  • context 수집 : 요청 처리에 필요한 추가 정보를 수집합니다.
    • session history에서 관련 정보를 추출합니다.
    • user profile이나 권한 정보를 확인합니다.
  • 보안 검증 : 악의적인 입력이나 부적절한 요청을 filtering합니다.
    • prompt injection 공격을 방지합니다.
    • 민감한 정보 노출을 차단합니다.

Prompt 작성 예시

당신은 입력 전처리 담당자입니다.
사용자의 요청을 분석하여 다음 정보를 추출하세요:
1. 주요 의도 (질문/명령/정보요청)
2. 필요한 entity들 (날짜, 이름, 제품명 등)
3. 처리 우선순위
4. 보안 위험 여부

부적절한 요청은 즉시 차단하고, 
정상 요청은 구조화된 형식으로 변환하세요.

Orchestration (실행 조율 단계)

  • Orchestration은 전처리된 요청을 바탕으로 실제 작업을 수행하는 핵심 단계입니다.
  • 여러 tool이나 knowledge base를 조율하여 요청을 처리하고 결과를 생성합니다.
  • agent의 reasoning과 decision making이 이루어지는 중심 단계입니다.

핵심 처리 과정

  • 작업 계획 수립 : 요청을 처리하기 위한 step-by-step 계획을 생성합니다.
    • 필요한 tool과 resource를 식별합니다.
    • 작업 순서와 dependency를 결정합니다.
    • 각 step의 성공 조건을 정의합니다.
  • Tool 선택과 실행 : 적절한 tool을 선택하여 작업을 수행합니다.
    • API 호출, database query, 계산 등의 action을 실행합니다.
    • 여러 tool의 결과를 조합하여 복합적인 답변을 생성합니다.
    • tool 실행 실패 시 대체 방안을 모색합니다.
  • Knowledge Base 활용 : 저장된 지식을 검색하고 활용합니다.
    • RAG(Retrieval-Augmented Generation) pattern을 구현합니다.
    • 관련 문서나 data를 검색하여 context를 보강합니다.
    • 검색 결과의 relevance를 평가하고 filtering합니다.
  • 반복적 처리 : 복잡한 요청을 여러 차례 반복하여 처리합니다.
    • 중간 결과를 평가하고 다음 action을 결정합니다.
    • 필요시 추가 정보를 요청하거나 clarification을 수행합니다.

Chain of Thought 구현

  • Orchestration prompt에서 Chain of Thought(CoT) reasoning을 구현하여 복잡한 문제를 단계적으로 해결합니다.
    • 각 단계의 reasoning을 명시적으로 기록합니다.
    • 중간 결과를 검증하고 오류를 수정합니다.
    • 최종 답변에 도달하기까지의 logic flow를 추적합니다.

Prompt 작성 예시

당신은 작업 조율자입니다.
주어진 요청을 처리하기 위해:

1. 먼저 필요한 정보를 knowledge base에서 검색하세요
2. 검색 결과가 불충분하면 외부 API를 호출하세요
3. 각 단계의 결과를 검증하고 다음 action을 결정하세요
4. 모든 정보를 종합하여 완전한 답변을 구성하세요

사용 가능한 도구:
- search_knowledge_base()
- call_external_api()
- calculate()
- validate_result()

각 단계마다 reasoning을 명확히 기록하세요.

Post-processing (후처리 단계)

  • Post-processing은 orchestration 결과를 사용자에게 전달하기 적합한 형태로 가공하는 마지막 단계입니다.
  • 응답의 품질을 향상시키고 사용자 경험을 최적화합니다.
  • 최종 검증과 formatting을 수행하여 일관성 있는 응답을 보장합니다.

응답 최적화 작업

  • 형식 변환 : 원시 결과를 사용자 친화적인 형식으로 변환합니다.
    • JSON data를 자연어로 변환합니다.
    • table이나 list 형태로 구조화합니다.
    • markdown이나 HTML formatting을 적용합니다.
  • 품질 개선 : 응답의 가독성과 유용성을 향상시킵니다.
    • 문법과 맞춤법을 교정합니다.
    • 전문 용어를 쉬운 표현으로 설명합니다.
    • 응답 길이를 적절히 조절합니다.
  • 개인화 : 사용자별 맞춤 응답을 생성합니다.
    • 사용자의 전문성 수준에 맞춰 설명을 조정합니다.
    • 선호하는 언어나 tone으로 응답을 작성합니다.
    • 이전 대화 context를 반영하여 일관성을 유지합니다.
  • 추가 정보 제공 : 응답을 보강하는 부가 정보를 추가합니다.
    • 관련 link나 참고 자료를 첨부합니다.
    • 다음 단계 action을 제안합니다.
    • FAQ나 도움말 정보를 포함합니다.

최종 검증 Process

  • 정확성 검증 : 응답 내용의 factual accuracy를 확인합니다.
    • 숫자나 날짜 정보의 정확성을 검증합니다.
    • 모순되는 내용이 없는지 확인합니다.
  • 완전성 확인 : 사용자 요청이 모두 처리되었는지 검증합니다.
    • 누락된 정보가 없는지 확인합니다.
    • 부분 응답인 경우 명시적으로 표시합니다.
  • compliance 검사 : 정책과 규정을 준수하는지 확인합니다.
    • 민감한 정보가 포함되지 않았는지 검증합니다.
    • 법적, 윤리적 기준을 충족하는지 확인합니다.

Prompt 작성 예시

당신은 응답 최적화 담당자입니다.
주어진 원시 결과를 다음과 같이 처리하세요:

1. 전문 용어를 일반 사용자가 이해할 수 있게 설명
2. 응답을 논리적인 순서로 재구성
3. 핵심 내용을 먼저 제시하고 세부사항은 뒤에 배치
4. 마지막에 요약과 다음 단계 제안 추가

형식 요구사항:
- 명확한 제목과 소제목 사용
- 중요 정보는 bold 처리
- 관련 링크는 하단에 정리

톤과 스타일:
- 친근하고 전문적인 어조 유지
- 간결하면서도 충분한 설명 제공

3단계 Prompt 체계의 장점

  • 모듈화된 설계 : 각 단계를 독립적으로 개발하고 유지 보수할 수 있습니다.
    • 특정 단계만 수정해도 전체 system에 영향을 최소화합니다.
    • 단계별로 다른 model이나 logic을 적용할 수 있습니다.
  • 세밀한 제어 : agent의 동작을 정밀하게 control할 수 있습니다.
    • 각 단계에서 발생할 수 있는 오류를 개별적으로 처리합니다.
    • business rule을 적절한 단계에 적용하여 효율성을 높입니다.
  • 성능 최적화 : 각 단계를 목적에 맞게 최적화할 수 있습니다.
    • Pre-processing에서 불필요한 요청을 early rejection합니다.
    • Orchestration에서 병렬 처리를 통해 응답 시간을 단축합니다.
    • Post-processing에서 caching을 활용하여 반복 작업을 줄입니다.
  • 확장성 : 새로운 기능을 쉽게 추가할 수 있습니다.
    • 새로운 tool이나 knowledge base를 orchestration에 통합합니다.
    • 다양한 output format을 post-processing에 추가합니다.

실제 구현 시 고려 사항

  • Prompt 길이 관리 : 각 단계의 prompt가 token limit을 초과하지 않도록 관리합니다.
    • 핵심 instruction만 포함하고 예시는 최소화합니다.
    • 반복적인 내용은 template으로 관리합니다.
  • Error Handling : 각 단계에서 발생할 수 있는 오류를 체계적으로 처리합니다.
    • fallback mechanism을 구현하여 service 중단을 방지합니다.
    • 오류 발생 시 사용자에게 명확한 안내를 제공합니다.
  • Monitoring과 Logging : 각 단계의 성능과 품질을 지속적으로 monitoring합니다.
    • 처리 시간, 성공률, 오류율 등의 metric을 추적합니다.
    • 문제 발생 시 빠른 debugging을 위한 상세 log를 기록합니다.
  • Version 관리 : prompt의 version을 체계적으로 관리합니다.
    • A/B testing을 통해 prompt 개선 효과를 측정합니다.
    • rollback 가능한 deployment strategy를 수립합니다.

Reference


목차