Elasticsearch는 업계 최고 수준의 생성형 AI 도구 및 다양한 공급업체와 기본적으로 연동됩니다. Elastic 벡터 데이터베이스를 활용해 진행 중인 RAG 기본 넘어서기 또는 프로덕션 수준 앱 구축 웨비나를 확인해 보세요.
사용 사례에 가장 적합한 검색 솔루션을 구축하려면 무료 클라우드 체험판을 시작하거나 로컬 기기에서 Elastic을 지금 사용해 보세요.
Elastic의 새로운 에이전트 빌더를 사용하면 특정 비즈니스 도메인의 전문가 역할을 하는 전문화된 AI 에이전트를 생성할 수 있습니다. 이 기능은 단순한 대시보드와 검색창을 넘어 데이터를 수동적인 리소스에서 능동적인 대화 파트너로 탈바꿈시킵니다.
고객과의 미팅 전에 정보를 빠르게 파악해야 하는 재무 관리자가 있다고 상상해 보세요. 이제 수동으로 뉴스 피드를 검색하고 포트폴리오 대시보드를 상호 참조하는 대신 맞춤형 상담원에게 직접 질문할 수 있습니다. 이것이 바로 "채팅 우선" 접근 방식의 장점입니다. 관리자는 데이터에 직접 대화할 수 있는 라인을 통해 "ACME Corp의 최신 뉴스는 무엇이며 고객의 보유 자산에 어떤 영향을 미칩니까?" 같은 질문을 할 수 있습니다. 검색하면 몇 초 만에 종합적인 전문가 답변을 얻을 수 있습니다.
오늘날 금융 전문가를 구축하는 과정에서 데이터만큼이나 응용 분야도 다양합니다. 동일한 권한으로 위협을 찾아내는 사이버 보안 분석가, 장애를 진단하는 사이트 안정성 엔지니어, 캠페인을 최적화하는 마케팅 관리자를 만들 수 있습니다. 도메인에 관계없이 핵심 미션은 동일합니다. 데이터를 전문가와 대화할 수 있는 데이터로 전환하는 것입니다.
0단계: 데이터 세트
현재 저희 데이터 세트는 금융 계좌, 자산 포지션, 뉴스 및 재무 보고서로 구성된 합성(가짜) 금융 기반 데이터 세트입니다. 합성 데이터이지만 실제 재무 데이터 세트의 단순화된 버전을 복제합니다.
저희 데이터 세트는 금융 계좌, 자산 포지션, 뉴스 및 재무 보고서를 포함하는 종합 금융 데이터 세트입니다. 가상의 데이터이지만 실제 금융 데이터 집합의 단순화된 복제본입니다.
financial_accounts: 위험 프로필이 있는 고객 포트폴리오
financial_holdings: 매수 내역이 있는 주식/ETF/채권 포지션
financial_asset_details: 주식/ETF/채권에 대한 세부 정보
financial_news: 감정 분석을 통해 AI가 생성한 시장 기사
financial_reports: 기업 실적 및 애널리스트 노트
이 데이터 세트는 여기에 있는 첨부된 노트북을 따라 직접 로드할 수 있습니다.
1단계: 기초 - ES|QL로서의 비즈니스 로직
모든 AI 기술은 탄탄한 로직에서 시작됩니다. 재무 관리자 상담원에게 일반적인 질문에 답하는 방법을 가르쳐야 합니다: "시장 심리가 걱정됩니다. 어떤 고객이 나쁜 소식으로 가장 위험에 처해 있는지 보여 주시겠습니까?" 이 질문은 단순한 검색을 넘어서는 질문입니다. 이를 위해서는 시장 심리와 고객 포트폴리오의 상관관계를 파악해야 합니다.
부정적인 기사에 언급된 자산을 찾고, 해당 자산을 보유한 모든 고객을 식별하고, 해당 자산의 현재 시장 가치를 계산한 다음, 그 결과를 순위화하여 위험도가 가장 높은 자산의 우선순위를 정해야 합니다. 이러한 복잡한 다중 조인 분석은 고급 ES|QL 도구에 완벽한 작업입니다.
다음은 우리가 사용할 전체 쿼리입니다. 인상적으로 보이지만 개념은 간단합니다.
분석: 조인 및 가드레일
이 쿼리에는 상담원 빌더를 만드는 두 가지 중요한 개념이 작용하고 있습니다.
1. 조회 조인
수년 동안 Elasticsearch에서 가장 많이 요청된 기능 중 하나는 공통 키를 기반으로 서로 다른 인덱스의 데이터를 조인하는 기능이었습니다. 이제 ES|QL을 사용하면 LOOKUP JOIN 에서 가능합니다.
새 쿼리에서는 먼저 부정적인 뉴스를 자산 세부 정보에 연결한 다음, 해당 자산을 고객 보유 자산에 연결하고 마지막으로 고객의 계정 정보에 연결하는 세 개의 LOOKUP JOIN 연쇄를 수행합니다. 이렇게 하면 하나의 효율적인 쿼리에서 4개의 서로 다른 인덱스로부터 놀랍도록 풍부한 결과를 얻을 수 있습니다. 즉, 모든 데이터를 미리 하나의 거대한 인덱스로 비정규화할 필요 없이 서로 다른 데이터 집합을 결합하여 통찰력 있는 단일 답변을 만들 수 있습니다.
2. LLM 가드레일로서의 매개변수
쿼리가 ?time_duration 을 사용하는 것을 알 수 있습니다. 이는 단순한 변수가 아니라 AI를 위한 보호 장치입니다. LLM(대규모 언어 모델)은 쿼리 생성에 탁월하지만, 데이터를 자유롭게 사용할 수 있도록 허용하면 비효율적이거나 심지어 잘못된 쿼리가 발생할 수도 있습니다.
매개변수화된 쿼리를 생성하여 전문가가 이미 정의한 테스트되고 효율적이며 올바른 비즈니스 로직 내에서 LLM이 작동하도록 강제합니다. 이는 개발자들이 수년 동안 검색 템플릿을 사용하여 애플리케이션에 쿼리 기능을 안전하게 노출해 온 방식과 유사합니다. 에이전트는 이번 주 "이번 주" 같은 사용자의 요청을 해석하여 time_duration 매개 변수를 채울 수 있지만, 반드시 쿼리 구조를 사용하여 답변을 얻어야 합니다. 이를 통해 유연성과 제어의 완벽한 균형을 이룰 수 있습니다.
궁극적으로 이 쿼리를 통해 데이터를 이해하는 전문가가 자신의 지식을 도구로 캡슐화할 수 있습니다. 그러면 다른 사람, 즉 AI 에이전트는 이 도구를 사용하여 근본적인 복잡성에 대해 아무것도 모른 채 단일 매개변수만 제공하면 상관관계가 있는 결과를 얻을 수 있습니다.
2단계: 기술 - 쿼리를 재사용 가능한 도구로 전환하기
ES|QL 쿼리는 도구로 등록하기 전까지는 텍스트에 불과합니다. 상담원 빌더에서 도구는 단순히 저장된 쿼리 그 이상의 의미로, AI 상담원이 이해하고 사용할 수 있는 "스킬(" )을 의미합니다. 마법 같은 것은 저희가 제공하는 자연어 설명에 있습니다. 이 설명은 사용자의 질문을 기본 쿼리 로직에 연결하는 다리 역할을 합니다. 방금 작성한 쿼리를 등록해 보겠습니다.
UI 경로
Kibana에서 도구를 만드는 것은 간단한 과정입니다.

1. 상담원으로이동합니다.
- 도구 또는 도구 관리를 클릭하고 새 도구 버튼을 클릭합니다.
2. 다음 세부 정보를 입력하여 양식을 작성합니다:
- 도구 ID:
find_client_exposure_to_negative_news
i. 도구의 고유 ID입니다.
- 설명: "부정적인 뉴스에 노출된 고객 포트폴리오를 찾습니다. 이 도구는 최근 뉴스와 보고서에서 부정적인 감정을 검색하고 관련 자산을 식별한 후 해당 자산을 보유한 모든 고객을 찾아냅니다. 포지션의 현재 시장가 기준으로 정렬된 목록을 반환하여 잠재적 위험이 가장 높은 포지션을 강조 표시합니다."
i. LLM은 이를 읽고 이 도구가 작업에 적합한지 여부를 결정합니다.
- 레이블:
retrieval및risk-analysis
레이블은 여러 도구를 그룹화하는 데 사용됩니다.
- 구성으로 이동합니다: 1단계의 전체 ES|QL 쿼리 붙여넣기
i. 상담원이 사용할 검색은 다음과 같습니다.
3. 쿼리에서 매개변수 유추를 클릭합니다. UI에서 ?time_duration 을 자동으로 찾을 수 있습니다. 상담원(및 다른 사용자)이 목적을 이해하는 데 도움이 되도록 각각에 대한 간단한 설명을 추가하세요.
time_duration: 부정적인 뉴스를 다시 검색할 수 있는 기간입니다. 형식은 "X 시간" 기본값은 8760시간입니다.

4. 테스트해 보세요!
- 저장 & 테스트를 클릭합니다.

- 쿼리가 예상대로 작동하는지 테스트할 수 있는 새로운 플라이아웃이 표시됩니다.
i. time_duration 에서 원하는 범위를 입력합니다. 여기서는 "8760 시간"을 사용하고 있습니다.
- '제출'을 클릭하고 모든 것이 정상적으로 진행되면 JSON 응답이 표시됩니다. 예상대로 작동하는지 확인하려면 아래로 스크롤하여
values개체를 확인합니다. 여기에서 실제 일치하는 문서가 반환됩니다.

5. 오른쪽 상단의 'X'를 클릭하여 테스트 플라이아웃을 닫습니다. 이제 새 도구가 목록에 표시되며 상담원에게 배정할 준비가 되었습니다.
API 경로
자동화를 선호하거나 프로그래밍 방식으로 도구를 관리해야 하는 개발자의 경우, 한 번의 API 호출로 동일한 결과를 얻을 수 있습니다. POST 요청을 /api/agent_builder/tools 엔드포인트에 도구의 정의와 함께 보내면 됩니다.
3단계: 두뇌 - 사용자 지정 상담원 만들기
재사용 가능한 스킬(도구)을 만들었습니다. 이제 실제로 사용할 페르소나, 즉 에이전트를 만들어야 합니다. 에이전트는 LLM, 액세스 권한을 부여한 특정 도구 세트, 그리고 가장 중요한 것은 에이전트의 성격, 규칙 및 목적을 정의하는 구성 요소 역할을 하는 사용자 지정 지침 세트의 조합입니다.
프롬프트의 기술
신뢰할 수 있는 전문 상담원을 만드는 데 있어 가장 중요한 부분은 바로 프롬프트입니다. 잘 만들어진 지침 세트는 일반 챗봇과 집중력 있는 전문 비서의 차이점입니다. 여기에서 가드레일을 설정하고, 출력을 정의하고, 에이전트에게 임무를 부여할 수 있습니다.
Financial Manager 에이전트의 경우 다음 프롬프트를 사용합니다.
이 프롬프트가 효과적인 이유를 자세히 알아보세요:
- 이는 정교한 페르소나를 정의합니다: 첫 번째 줄은 상담원을 "전문 데이터 인텔리전스 어시스턴트(" )로 즉시 설정하여 전문적이고 유능한 분위기를 조성합니다.
- 추론 프레임워크를 제공합니다: 상담원에게 "이해, 계획, 실행 및 종합," 표준 운영 절차를 제공하도록 지시합니다. 이를 통해 복잡한 다단계 질문을 처리하는 능력이 향상됩니다.
- 대화형 대화를 촉진합니다: " 명확한 질문을" 하라는 지시는 상담원을 더욱 강력하게 만듭니다. 모호한 요청에 대한 잘못된 가정을 최소화하여 보다 정확한 답변으로 이어질 수 있습니다.
UI 경로
1. 상담원으로 이동합니다.
- 도구 또는 도구 관리를 클릭하고 새 도구 버튼을 클릭합니다.
2. 기본 세부 정보를 입력합니다:
- 상담원 ID:
financial_assistant. - 지침을 따르세요: 위의 프롬프트를 복사합니다.
- 레이블:
Finance. - 표시 이름:
Financial Assistant. - 디스플레이 설명:
An assistant for analyzing and understanding your financial data.

3. 3. 상단으로 돌아가서 도구를 클릭합니다.
find_client_exposure_to_negative_news도구 옆의 확인란을 선택합니다.

Kibana에서 AI 에이전트를 생성할 때 새 토일로 이동하는 방법.
4. 저장을 클릭합니다.
API 경로
/api/agent_builder/agents 엔드포인트에 POST 요청을 통해 똑같은 에이전트를 만들 수 있습니다. 요청 본문에는 ID, 이름, 설명, 전체 지침, 상담원이 사용할 수 있는 도구 목록 등 모든 동일한 정보가 포함됩니다.
4단계: 보상 - 대화 나누기
저희는 비즈니스 로직을 도구에 캡슐화하고 에이전트에서 사용할 수 있는 "브레인" 을 준비했습니다. 이제 이 모든 것이 한데 어우러질 때입니다. 이제 전문 상담원을 통해 데이터와 채팅을 시작할 수 있습니다.

UI 경로
- Kibana에서 에이전트로 이동합니다.
- 채팅 창의 오른쪽 하단에 있는 드롭다운을 사용하여 기본 Elastic AI 에이전트에서 새로 생성된 재무 지원 에이전트로 전환하세요.
- 상담원이 전문 도구를 사용할 수 있는 질문을 하세요:
- 시장 심리가 걱정됩니다. 어떤 고객이 나쁜 소식으로 인해 가장 위험에 처해 있는지 보여주시겠어요?
잠시 후 상담원이 완벽한 형식의 완전한 답변을 반환합니다. LLM의 특성상 답변의 형식이 약간 다를 수 있지만 이번 실행에서는 상담원이 반환했습니다:

방금 무슨 일이 있었나요? 에이전트의 추론
상담원은 "" 답을 알고 있었습니다. 작업에 가장 적합한 도구를 선택하는 데 중점을 둔 다단계 계획을 실행했습니다. 그 사고 과정을 살펴보세요:
- 의도를 확인했습니다: " 위험" 및 "부정적인 뉴스," 같은 질문의 키워드와
find_client_exposure_to_negative_news도구의 설명이 일치했습니다. - 계획을 실행했습니다: 요청에서 기간을 추출하여 해당 전문 도구로 한 번만 호출합니다.
- 작업 위임: 그런 다음 도구가 연쇄 조인, 값 계산 및 정렬과 같은 무거운 작업을 모두 수행했습니다.
- 결과 종합: 마지막으로 에이전트는 프롬프트의 규칙에 따라 도구의 원시 데이터를 명확하고 사람이 읽을 수 있는 요약으로 포맷했습니다.
생각을 확장하여 더 자세히 살펴보면 추측만 할 필요는 없습니다.

API 경로
동일한 대화를 프로그래밍 방식으로 시작할 수 있습니다. 입력 질문을 converse API 엔드포인트로 보내면 되며, financial_manager 의 agent_id 을 지정해야 합니다.
개발자용 API와 통합하기
Kibana UI는 에이전트 구축과 관리를 위한 환상적이고 직관적인 환경을 제공하지만, 오늘 보신 모든 것을 프로그래밍 방식으로도 수행할 수 있습니다. 에이전트 빌더는 일련의 API를 기반으로 구축되었으므로 이 기능을 자체 애플리케이션, CI/CD 파이프라인 또는 자동화 스크립트에 직접 통합할 수 있습니다.
작업하게 될 세 가지 핵심 엔드포인트는 다음과 같습니다:
/api/agent_builder/tools: 상담원이 사용할 수 있는 재사용 가능한 스킬을 만들고, 나열하고, 관리하기 위한 엔드포인트입니다./api/agent_builder/agents: 중요한 지침 및 도구 할당을 포함하여 상담원 페르소나를 정의하기 위한 엔드포인트입니다./api/agent_builder/converse: 상담원과 상호작용하고, 대화를 시작하고, 답변을 얻기 위한 엔드포인트입니다.
이 튜토리얼의 모든 단계를 수행하기 위해 이러한 API를 사용하는 방법에 대한 완전한 실습 과정을 보려면 여기 GitHub 리포지토리에서 함께 제공되는 Jupyter Notebook을 확인하세요.
결론: 빌드할 차례
먼저 ES|QL 쿼리를 가져와 재사용 가능한 스킬로 변환하는 것으로 시작했습니다. 그런 다음 전문화된 AI 에이전트를 구축하여 명확한 미션과 규칙을 부여하고 해당 기술을 강화했습니다. 그 결과 복잡한 질문을 이해하고 다단계 분석을 실행하여 정확한 데이터 기반 답변을 제공할 수 있는 정교한 어시스턴트가 탄생했습니다.
이 워크플로는 Elastic의 새로운 에이전트 빌더의 핵심입니다. 기술 전문가가 아닌 사용자도 UI를 통해 에이전트를 만들 수 있을 만큼 간단하면서도 개발자가 API를 기반으로 맞춤형 AI 기반 애플리케이션을 구축할 수 있을 만큼 미묘한 차이가 있도록 설계되었습니다. 가장 중요한 것은 사용자가 정의한 전문 로직에 따라 LLM을 자신의 데이터에 안전하게 연결하고 데이터와 채팅할 수 있다는 점입니다.
에이전트를 사용하여 데이터와 채팅할 준비가 되셨나요?
배운 내용을 확고히 하는 가장 좋은 방법은 직접 손을 더럽히는 것입니다. 무료 대화형 실습 워크숍에서 오늘 논의한 모든 내용을 직접 체험해 보세요. 전용 샌드박스 환경에서 이 전체 흐름과 그 이상을 체험할 수 있습니다.
향후 블로그에서는 Financial Assistant 에이전트와 상호 작용하는 독립형 애플리케이션을 사용하는 방법과 이 모든 것을 가능하게 하는 모델 컨텍스트 프로토콜(MCP) 에 대해 자세히 살펴보겠습니다. 그리고 별도의 블로그에서 에이전트 빌더의 에이전트2에이전트 또는 A2A 프로토콜 개발에 대한 지원에 대해 설명할 예정입니다.
앞으로도 계속 지켜봐 주시고, 행복한 구축이 되시길 바랍니다!




