본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
Vercel 엔터프라이즈 AI 플랫폼

플랫폼 기초

플랫폼 아키텍처AI SDK 런타임AI Gateway 제어면

실행 런타임

Workflow 장기 실행Sandbox 실행 격리MCP 데이터 계층Queues & 비동기 작업 관리

프롬프트 & 품질

프롬프트 엔지니어링 & 가드레일RAG & 검색 증강 생성관측성·평가

운영 체계

보안·거버넌스비용·안정성배포 전략 & AI CI/CD

실전 시나리오

고객지원 에이전트 아키텍처내부 리서치 에이전트 아키텍처승인형 백오피스 자동화코딩 오케스트레이션

오케스트레이션 패턴

그래프 중심 오케스트레이션실무 오케스트레이션 플레이북멀티 에이전트 아키텍처

부록

마이그레이션 가이드레퍼런스검증 리포트업데이트 내역
핸드북›Vercel 엔터프라이즈 AI›프롬프트 엔지니어링 & 가드레일
한국어English

프롬프트 엔지니어링 & 가드레일

엔터프라이즈 AI 제품의 프롬프트 설계, 버전 관리, 입출력 가드레일, 안전성 통제를 정리합니다.

핵심 요약

  • 프롬프트는 코드 자산으로 관리하고 가드레일은 입력-모델-출력-실행 전 구간에 체인으로 배치합니다.
  • 프롬프트는 System/Context/User/Tool schema 계층으로 나누고 변경 빈도와 관리 주체를 구분합니다.
  • 입력 가드레일은 길이 제한·PII 감지·injection 탐지를 App layer에 두고, 출력은 schema validation·content filter·confidence threshold로 막습니다.
  • structured output 계약(Zod)과 confidence threshold(예: 0.7 미만 escalation)를 기본값으로 깔아 두면 자유 텍스트 응답의 위험이 줄어듭니다.
  • 프롬프트 변경은 모델 변경만큼 영향이 크므로 DB/CMS 실시간 변경보다 코드 리뷰 수준의 검토를 거칩니다.

엔터프라이즈 AI 품질은 모델을 잘 고르는 것보다 프롬프트를 어떻게 관리하느냐에서 더 크게 갈립니다. 프롬프트는 코드의 일부이고, 가드레일은 그 프롬프트가 실패했을 때의 안전망입니다.

프롬프트 계층 구조

계층역할변경 빈도관리 주체
System prompt서비스 정체성, 행동 규칙, 제약낮음플랫폼 팀
Context prompt사용자/테넌트별 문맥, 정책중간앱 로직
User prompt실제 사용자 입력높음사용자
Tool schema도구 설명, 입출력 계약낮음개발 팀

System Prompt 설계 원칙

원칙설명예시
역할 명시모델의 역할과 경계를 선언"당신은 고객지원 상담사입니다. 의료 조언은 하지 않습니다."
행동 제약하면 안 되는 것을 명시적으로 나열"가격을 임의로 약속하지 않습니다."
출력 형식 지정응답 구조를 사전에 합의"JSON으로 응답합니다. 자유 텍스트를 섞지 않습니다."
에스컬레이션 규칙모르거나 확실하지 않을 때의 행동 정의"확실하지 않으면 상담원 연결을 안내합니다."
데이터 경계접근 가능한 정보 범위를 선언"제공된 context 밖의 정보를 추측하지 않습니다."
const systemPrompt = `
당신은 ${companyName}의 고객지원 상담사입니다.

## 규칙
- 제공된 정책 문서와 FAQ만 근거로 답변합니다.
- 가격, 환불, 법적 판단을 임의로 약속하지 않습니다.
- 확실하지 않으면 "상담원 연결을 도와드리겠습니다"로 안내합니다.
- 개인정보를 요청하거나 반복하지 않습니다.

## 출력 형식
- 한국어로 답변합니다.
- 마크다운 형식을 사용합니다.
- 3문장 이내로 핵심을 먼저 전달합니다.
`

입력 가드레일

가드레일목적구현 위치
길이 제한토큰 비용 제어App layer
PII 감지개인정보 유출 방지App layer
Injection 탐지prompt injection 차단App layer
Rate limiting남용 방지WAF / App layer
Content moderation유해 입력 차단모델 또는 App
function validateInput(input: string): { valid: boolean; reason?: string } {
  if (input.length > 4000) {
    return { valid: false, reason: 'input_too_long' }
  }
  if (detectPII(input)) {
    return { valid: false, reason: 'pii_detected' }
  }
  if (detectInjectionPattern(input)) {
    return { valid: false, reason: 'injection_suspected' }
  }
  return { valid: true }
}

출력 가드레일

가드레일목적구현 방식
Schema validation구조화된 출력 보장AI SDK structured output
Content filtering유해/부적절 출력 차단후처리 필터
Factuality checkhallucination 감소source attribution 강제
Action boundary허용되지 않은 action 차단tool allowlist
Confidence threshold불확실한 응답 차단escalation trigger

Structured Output으로 출력 계약 강제

엔터프라이즈에서는 자유 텍스트 응답보다 구조화된 출력 계약을 쓰는 편이 안전합니다.

import { generateText, Output } from 'ai'
import { z } from 'zod'

const ticketClassification = z.object({
  category: z.enum(['billing', 'technical', 'account', 'other']),
  severity: z.enum(['low', 'medium', 'high', 'critical']),
  summary: z.string().max(200),
  suggestedAction: z.enum(['auto-resolve', 'assign-agent', 'escalate']),
  confidence: z.number().min(0).max(1),
})

const result = await generateText({
  model: 'openai/gpt-5-mini',
  output: Output.object({ schema: ticketClassification }),
  prompt: `다음 고객 문의를 분류하세요: ${ticketText}`,
})

if (result.output.confidence < 0.7) {
  await escalateToHuman(result.output)
}

프롬프트 버전 관리

전략장점적합한 상황
코드 내 상수배포와 함께 버전소수 프롬프트
별도 파일/모듈리뷰 가능팀 단위 관리
환경 변수/설정 서비스배포 없이 변경빈번한 조정
A/B 테스트 프레임워크효과 측정 가능성숙한 운영 단계

실무 해석

프롬프트를 DB나 CMS에 넣어 실시간으로 바꾸면 편하지만 그만큼 위험합니다. 프롬프트 변경은 모델 교체만큼 영향이 크니, 코드 리뷰와 같은 수준의 검토를 거치는 편이 안전합니다.

가드레일 체인

입력부터 출력까지 가드레일을 체인으로 연결합니다.

MCP prompts를 활용한 재사용 가능한 프롬프트

MCP의 prompts primitive를 쓰면 반복적인 작업 템플릿을 서버에서 관리할 수 있습니다.

용도예시관리 주체
분석 보고서 형식"이 데이터를 주간 보고서로 요약해줘"운영 팀
고객 응대 템플릿"환불 안내 메시지를 작성해줘"CS 팀
코드 리뷰 지침"이 PR을 보안 관점에서 검토해줘"개발 팀

안전성 계층

계층통제실패 시 영향
네트워크WAF / BotID로 악성 요청 차단서비스 남용
입력PII, injection, length 필터데이터 유출, 조작
모델system prompt 제약, tool allowlist의도치 않은 행동
출력schema validation, content filter부적절한 응답
실행Sandbox 격리, approval gate시스템 침해

ADR 스타일 결론

Decision

프롬프트는 코드 자산으로 관리하고, 가드레일은 입력-모델-출력-실행 전 구간에 배치합니다. 구조화된 출력 계약과 confidence threshold를 기본값으로 깔아 두면 자유 텍스트 응답의 위험이 줄어듭니다.

실무 체크리스트

  • system prompt에 역할, 제약, 에스컬레이션 규칙이 명시돼 있는가
  • 입력 가드레일(길이, PII, injection)이 App layer에 있는가
  • 구조화된 출력이 필요한 경로에 schema contract가 있는가
  • 프롬프트 변경이 코드 리뷰 프로세스를 거치는가
  • confidence threshold 아래 응답에 fallback 경로가 있는가

관련 문서

  • AI SDK Agents Overview
  • AI SDK Tools
  • AI SDK Structured Output
  • AI SDK MCP

관련 문서

Ch4. 온라인 가드레일

LLMOps·AgentOps 프로덕션 · Input·Intent·Tool·Output 4계층 가드, fail-open 금지, 재개 가능한 인간 승인 루프, MCP·Skill 공급망 통제로 실시간 사업 리스크를 제한하는 설계

AI SDK 런타임

AI SDK 6를 애플리케이션 계층 표준으로 사용해 agent, tool, MCP, telemetry를 구성하는 방법을 정리합니다.

프롬프트는 설계 언어다

개발자 언러닝 · 프롬프트를 귀찮은 입력이 아니라 새로운 형태의 설계 문서로 바라보는 관점

프로덕션 운영 패턴

AI 에이전트 오케스트레이션 패턴 · 모델 라우팅, 캐싱, 관측성(트레이스/스팬), 비용 추적, SLO 정의, 보안/거버넌스, 가드레일, 스케일링

품질·보안·신뢰

Agentic MVP · 빠르게 만들되 신뢰를 잃지 않는 최소 가드레일. 통제된 자율성 6원칙, 정상 3~5·실패 10개 QA, PII 점검, MCP allowlist·Hooks 차단, AI 결과물 면책 문구를 다룹니다.

Queues & 비동기 작업 관리

Vercel Queues를 활용해 AI 작업의 fan-out, 배치 처리, 재시도·poison message 운영을 설계하는 방법을 정리합니다.

RAG & 검색 증강 생성

Vercel 환경에서 RAG 파이프라인을 설계하고 운영하는 방법을 정리합니다.

On this page

프롬프트 계층 구조System Prompt 설계 원칙입력 가드레일출력 가드레일Structured Output으로 출력 계약 강제프롬프트 버전 관리가드레일 체인MCP prompts를 활용한 재사용 가능한 프롬프트안전성 계층ADR 스타일 결론실무 체크리스트관련 문서