1. 구현 및 오케스트레이션을 위한 모범 사례
EKB 플랫폼에서 에이전트를 성공적으로 배포하려면 전략적 계획과 오케스트레이션 모범 사례를 준수해야 합니다.전략적 계획
고 가치 사용 사례 식별
EKB 에이전트가 뛰어난 산업을 대상으로 플랫폼의 기능을 활용합니다:- 금융: P&L 보고서 및 리스크 분석을 위한 SQL 쿼리 에이전트.
- 인사: PDF를 분석하고 이메일을 작성하는 이력서 스크리너 에이전트.
- 소프트웨어 개발: 코드 분석 및 문서화를 위한 PR 리뷰어 에이전트.
- 영업: Web Search와 Salesforce를 통합하는 리드 강화 에이전트.
- 고객 지원: ERP 및 Knowledge Base 접근 권한을 갖춘 1단계 지원 에이전트.
에이전트 범위 정의
| 범위 | 설명 | EKB 구성 |
|---|---|---|
| 단일 목적 | 특정 워크플로우 처리 (예: 비밀번호 재설정) | 집중된 페르소나 프롬프트, 단일 툴킷 |
| 부서 전체 | 팀 태스크 커버 (예: HR 제너럴리스트) | 여러 Knowledge Collection, Workflow Manager |
| 엔터프라이즈 어시스턴트 | 전문 에이전트에 위임 | Agent Communication Toolkit을 사용한 멀티 에이전트 위임 |
에이전트 설계 패턴
패턴 1: 단일 전문가 도메인 지식과 특정 도구를 갖춘 전용 에이전트. 예: Database Toolkit과 Python Code Execution Toolkit으로 구성된 “데이터 분석가” 에이전트. 패턴 2: 멀티 에이전트 시스템 Agent Communication Toolkit을 사용하여 복잡한 요청을 분해하고 전문 “작업자 에이전트”에게 태스크를 위임하는 “관리자 에이전트” 시스템을 만듭니다. 이를 통해 관심사의 분리와 복잡한 워크플로우에서의 높은 정확도를 보장합니다.Knowledge Base 전략
Knowledge Base Toolkit은 RAG(Retrieval Augmented Generation)를 지원합니다. 성능을 최적화하려면:- 청킹: 플랫폼이 청킹을 처리하지만 명확한 문서 구조를 보장하면 검색이 향상됩니다.
- 버전 관리: 충돌하는 답변을 방지하기 위해 오래된 문서를 제거합니다.
프롬프트 엔지니어링 (페르소나 프롬프트)
일반 설정 탭의 페르소나 프롬프트(시스템 지시라고도 함)는 EKB 플랫폼에서 사용 가능한 가장 강력한 구성 레버입니다. 이 단일 텍스트 필드는 에이전트의 정체성, 동작, 의사 결정 프레임워크, 상호작용 스타일을 제어합니다. 필드 이름이 암시하는 것과 달리 개인적인 성격 특성뿐 아니라 포괄적인 지시를 포함해야 합니다.페르소나 프롬프트가 중요한 이유
잘 만들어진 페르소나 프롬프트는 신뢰할 수 없는 챗봇과 신뢰할 수 있는 엔터프라이즈 어시스턴트의 차이입니다. 페르소나 프롬프트는:- ✅ 에이전트의 전문 분야와 책임 범위를 정의합니다
- ✅ 환각이나 부적절한 응답을 방지하는 동작 가드레일을 설정합니다
- ✅ 도구 사용 시기와 방법을 지시합니다 (Database, Web Search 등)
- ✅ 대화 전반에 걸친 일관된 응답 형식을 명시합니다
- ✅ 사람의 개입이 필요한 시나리오에 대한 에스컬레이션 트리거를 설정합니다
견고한 페르소나 프롬프트의 구조
다음 필수 구성 요소로 페르소나 프롬프트를 구성하세요:| 구성 요소 | 목적 | 예시 |
|---|---|---|
| 1. 역할 정의 | 전문성과 권위 설정 | ”10년의 백엔드 시스템 및 API 설계 경험을 갖진 시니어 Python 개발 전문가입니다.” |
| 2. 주요 미션 | 핵심 태스크/목표 정의 | ”주요 책임은 주니어 개발자가 제출한 코드 스니펫을 검토하고 성능 최적화, 보안 개선, 모범 사례를 제안하는 것입니다.” |
| 3. 사용자 컨텍스트 | 에이전트가 서빙하는 대상 설명 | ”사용자는 기본 구문은 이해하지만 고급 패턴에 대한 지침이 필요할 수 있는 주니어 엔지니어(1-3년 경력)입니다.” |
| 4. 행동 제약 조건 | 경계와 가드레일 설정 | ”처음부터 코드를 작성하지 마세요. 제출된 코드만 검토하세요. 요청이 Python 개발과 관련이 없는 경우 정중히 거절하고 적절한 팀에 연락하도록 제안하세요.” |
| 5. 도구 사용 규칙 | 툴킷 사용 시기/방법 지시 | ”응답하기 전에 항상 Python Code Execution Toolkit을 사용하여 제안을 테스트하세요. 코드를 테스트할 수 없는 경우 ‘이 권장 사항은 테스트되지 않았습니다’라고 명시하세요.” |
| 6. 출력 형식 | 일관된 응답 구조 보장 | ”모든 응답을 Markdown으로 다음 형식으로 구성하세요: 1) 문제 요약, 2) 글머리 기호로 된 구체적 권장 사항, 3) 코드 블록의 코드 예시, 4) 변경 사항이 성능/보안을 개선하는 이유 설명.” |
| 7. 에스컬레이션 트리거 | 사람의 개입 시기 정의 | ”코드에 데이터베이스 마이그레이션, 재무 계산, 또는 보안 인증이 포함된 경우 ‘이것은 시니어 엔지니어링 리뷰가 필요합니다. 아키텍처 팀에 에스컬레이션해 주세요.‘라고 응답하세요.” |
| 8. 톤 및 스타일 | 커뮤니케이션 접근 방식 설정 | ”격려하고 교육적이 되세요. 비하하는 언어를 피하세요. 좋은 관행이 보일 때 칭찬하세요. 깊은 기술적 설명이 필요한 경우가 아니면 응답을 200단어 이내로 유지하세요.” |
완전한 페르소나 프롬프트 예시: IT 지원 에이전트
모범 사례: 반복적 개선
페르소나 프롬프트는 첫날부터 완벽하지 않습니다. 배포 후:- 채팅 인터페이스에서 대화 로그를 검토합니다
- 에이전트가 실패하거나 잘못된 응답을 제공한 위치를 식별합니다
- 해당 특정 시나리오를 해결하기 위해 페르소나 프롬프트를 업데이트합니다
- 버전 기록을 사용하여 변경 사항을 추적하고 필요한 경우 롤백합니다
- 지속적인 개선을 위해 매월 반복합니다
고급 프롬프트 엔지니어링 기법
Few-Shot 예시 (컨텍스트 내 학습)
원하는 동작을 시연하기 위해 페르소나 프롬프트에 2-3개의 예시 상호작용을 직접 포함하세요:부정적 제약 조건 (하지 말아야 할 것)
환각과 오류를 줄이기 위해 금지된 동작을 명시적으로 나열하세요:- ❌ “사용자가 발견되지 않는 경우 직원 정보를 절대 만들지 마세요. ‘해당 직원 ID를 찾을 수 없습니다. 확인 후 다시 시도해 주세요.‘라고 말하세요.”
- ❌ “확인할 수 없는 계정에 대해 절대 비밀번호 재설정 지침을 제공하지 마세요.”
- ❌ “권한을 추정하지 마세요. 확실하지 않으면 에스컬레이션하세요.”
사고의 연쇄 추론 (Chain-of-Thought)
투명성을 위해 에이전트에게 추론 과정을 설명하도록 지시하세요:조건부 로직을 사용한 다중 시나리오 처리
IF-THEN 구조를 사용하여 다양한 요청 유형을 처리하세요:페르소나 프롬프트 테스트
배포 전에 채팅 인터페이스를 사용하여 이러한 시나리오를 테스트하세요:| 테스트 시나리오 | 예상 동작 | 검증 항목 |
|---|---|---|
| 정상 경로 | 사용자가 필요한 모든 정보를 제공; 에이전트가 태스크를 성공적으로 완료 | 핵심 기능 작동 |
| 누락된 정보 | 에이전트가 추정하지 않고 명확화 질문을 함 | 정보 수집 로직 |
| 범위 외 요청 | 에이전트가 정중히 거절하고 이유를 설명 | 경계 강제 |
| 모호한 쿼리 | 에이전트가 조치를 취하기 전에 명확화를 요청 | 안전 가드레일 |
| 도구 실패 | 에이전트가 문제를 설명하고 대안을 제안 | 오류 처리 |
| 에스컬레이션 트리거 | 에이전트가 사람의 개입 필요성을 올바르게 식별 | 에스컬레이션 로직 |
도구 및 툴킷 오케스트레이션
에이전트 기능을 확장하기 위해 적절한 EKB 툴킷을 선택하세요:- Knowledge Base Toolkit: 독점 문서에서의 RAG 기반 검색.
- Web Search Toolkit: 실시간 정보 접근.
- Database Toolkit: SQL 데이터베이스 및 Smart Table 쿼리.
- Python/Node.js Toolkit: 안전한 코드 실행 샌드박스.
- Document Manager Toolkit: 채팅에서 문서 생성 및 편집.
- Smart Table Manager Toolkit: NoSQL 스타일 내부 데이터 관리.
- Agent Communication Toolkit: 다른 에이전트에 태스크 위임.
- Workflow Manager Toolkit: 결정론적 자동화 워크플로우 실행.
- Image Generation Toolkit: DALL-E 3를 사용한 이미지 생성.
테스트 및 반복 워크플로우
중간 패널 채팅/캔버스를 사용하여 반복적 테스트를 수행하세요. 테스트 시나리오 체크리스트- 정상 경로: 모든 컨텍스트가 포함된 표준 쿼리.
- 누락된 정보: 에이전트가 명확화 질문을 합니까?
- 도구 트리거: 특정 툴킷이 올바르게 활성화되는지 확인.
- 엣지 케이스: 모호하거나 범위 외 요청.
- 지연: 복잡한 도구 체인에서 성능 확인.
거버넌스 및 규정 준수
EKB 보안 모범 사례를 준수하세요:- 최소 권한 원칙: 에이전트에 필요한 최소 도구만 부여합니다.
- 사람 인 루프: 고위험 조치(예: 대량 이메일, DB 쓰기)에 대한 승인 워크플로우를 구성합니다.
- 데이터 접근 제어: 역할 기반 접근 및 PII 마스킹을 사용합니다.
- 감사 로깅: 규정 준수를 위한 모든 조치에 대한 로깅을 활성화합니다.
- 프롬프트 인젝션 보호: 악의적 재정의를 방지하기 위해 입력을 검증합니다.
페르소나 프롬프트에 포함될 내용은?
모든 프로덕션 에이전트는 다음 요소를 명확하게 정의해야 합니다:- 역할 및 전문성: 이 에이전트는 누구입니까? 어떤 도메인 지식을 보유하고 있습니까?
- 미션 진술: 에이전트의 주요 목표는 무엇입니까? 어떤 문제를 해결합니까?
- 사용자 대상: 이 에이전트와 상호작용하는 사람은 누구입니까? 기술 수준은 어떠합니까?
- 범위 및 경계: 에이전트가 어떤 것을 도울 수 있습니까? 명시적으로 범위 외인 것은 무엇입니까?
- 행동 규칙: 반드시 해야 할 것과 하지 말아야 할 것
- 도구 사용 가이드라인: Database, Web Search, Python 등을 사용하는 시기와 방법
- 응답 구조: 답변은 어떻게 형식화되어야 합니까?
- 에스컬레이션 기준: 사람이나 전문 에이전트에 위임하는 시기는?
- 톤 및 스타일: 공식적? 친근한? 기술적인? 공감하는?
실제 예시: 영업 리드 강화 에이전트
페르소나 프롬프트 사용 및 주의사항
| ✅ 사용할 것 | ❌ 주의할 것 |
|---|---|
| 에이전트가 할 수 있는 것과 할 수 없는 것을 명시적으로 기술 | 에이전트가 “알아서 처리할 것”이라 추정 |
| 원하는 동작의 2-3개 구체적 예시 포함 | ”도움이 되세요”와 같은 모호한 지시 사용 |
| 정확한 도구 사용 패턴 명시 | 에이전트가 도구를 사용하는 시기를 알 것으로 기대 |
| 번호가 매겨진 섹션으로 응답 형식 정의 | 에이전트가 자체 출력 구조를 선택하도록 방치 |
| 단어 수 또는 길이 가이드라인 설정 | 장황하거나 일관되지 않은 응답 길이를 수용 |
| 프롬프트 자체에 헤더와 구조 사용 | 구성 없이 긴 단일 문단 작성 |
| 배포 전에 엣지 케이스로 테스트 | 배포하고 좋은 결과를 바라기 |
| 이력 탭을 통한 버전 관리 및 매월 반복 | 한 번 설정하고 업데이트하지 않기 |
테스트 및 문제 해결
일반적인 문제 및 솔루션
| 문제 | 증상 | 솔루션 |
|---|---|---|
| 에이전트가 도구를 사용하지 않음 | ”접근할 수 없습니다”라고 응답 | 도구가 활성화되어 있고 설명이 명확하며 프롬프트가 명시적으로 사용을 권장하는지 확인 |
| 데이터 환각 | 정보를 만들어냄 | 페르소나 프롬프트에서 정보가 없을 때 “모르겠습니다”라고 말하도록 에이전트에 지시 |
| 느린 응답 | 쿼리 >10초 | 컨텍스트 윈도우 크기 확인, Knowledge Base 최적화, 병렬 실행 사용 |
| 도구 인증 실패 | 인증되지 않음 오류 | 통합 설정에서 자격 증명 확인, 토큰 만료 및 범위 확인 |
프로덕션 준비 체크리스트
EKB 검증 프레임워크를 사용하여 에이전트가 배포 준비가 되었는지 확인하세요.- ✅ 구성 검증: 프롬프트가 구조화되어 있고 올바른 모델이 선택됨.
- ✅ 보안 검증: 최소 권한이 적용되고 고위험 조치에 대한 승인 워크플로우가 설정됨.
- ✅ 테스트 검증: 정상 경로, 엣지 케이스, 도구 트리거가 채팅에서 테스트됨.
- ✅ 문서화: 사용자 가이드 및 문제 해결 단계가 준비됨.
6. 성능 최적화
에이전트 효과를 유지하기 위한 지속적 개선 전략:- 시스템 프롬프트 엔지니어링: 사용자 상호작용 로그를 기반으로 페르소나 프롬프트를 지속적으로 개선합니다.
- Knowledge Base 최적화: KB 문서를 정기적으로 감사합니다. 파일 크기와 명명 규칙을 최적화합니다.
- 컨텍스트 및 토큰 관리: 컨텍스트 윈도우 사용을 관리하여 응답 품질과 비용의 균형을 맞춥니다.
- 도구 사용: 불필요한 호출을 최소화하고, 가능한 경우 병렬 실행을 활용합니다.