한국GPT협회 표준교재

911. 증권상담 직원을 위한 AI 에이전트 구축 사례

리서치 보고서와 고객 DB를 한 묶음으로 묶어, 상담 직원이 챗봇 한 번의 질의로
"고객 확인 → 자료 탐색 → 맞춤 브리핑"을 즉시 받을 수 있도록 만든 사내 에이전트입니다.
대상 산업 증권 · 자산관리
대상 직무 상담사 · PB · 영업
구현 방식 VS Code + Claude · 바이브코딩
데이터 리서치 보고서 + 고객 DB

기존의 업무 범위와 방법

증권사 상담 직원은 고객 문의를 받는 짧은 시간 안에 고객 파악 · 관심 이슈 확인 · 사내 리서치 탐색 · 전문적 설명 준비를 동시에 해내야 합니다. 그러나 실제 현장에서는 다음과 같은 한계에 부딪힙니다.

PROBLEM 1흩어진 고객 정보

고객 성향·보유 종목·최근 관심사가 여러 시스템과 개인 메모에 흩어져 있어, 상담 직전에 한눈에 파악하기 어렵습니다.

PROBLEM 2활용되지 못하는 리서치

리서치센터가 매일 양질의 보고서를 발행하지만, PDF로 자료실에 쌓일 뿐 상담·영업 직원이 즉시 검색·인용하기 어렵습니다.

PROBLEM 3속도와 품질의 편차

상담 시점에 핵심을 빠르게 정리하기 어려워, 응답 품질이 개인 역량과 경험에 따라 크게 달라집니다.

문제의 본질. 현장의 문제는 "정보가 없어서"가 아니라 "있는 정보를 상담 시점에 꺼내 쓸 수 있는 형태가 아니어서" 발생합니다. 본 사례는 이미 존재하는 사내 자료와 고객 데이터를 상담 흐름에 맞는 구조로 다시 배치하고, 그 사이를 AI가 연결하도록 만든 시도입니다.

AI 활용 방법

기존의 "흩어진 정보 + 사람이 연결"을 "DB화된 정보 + AI가 연결"로 바꿉니다. 핵심은 세 단계입니다.

① 리서치 DB화
PDF로 발행되던 종목분석·섹터리포트·매크로분석을 마크다운으로 변환하고, 제목·애널리스트·날짜·종목코드·요약을 메타데이터로 구조화하여 LLM이 즉시 검색·인용 가능한 자료실로 만듭니다.
② 고객 DB화
고객의 세그먼트(WM Premier · VIP · 일반), 투자 성향, 보유 종목 요약, 최근 상담 이력을 JSON으로 정리해 챗봇이 호출할 수 있는 형태로 적재합니다. 고객이 확정되면 오직 해당 고객의 데이터만 참고하도록 통제합니다.
③ 상담 챗봇
상담 직원이 챗봇에 고객 이름·고유번호를 입력 → 고객 확정 → 질문 입력 시, 챗봇이 관련 리서치를 검색하여 고객 성향에 맞는 브리핑을 생성합니다. 출처(보고서 제목·애널리스트·날짜)를 항상 함께 제시합니다.
INPUT
고객 식별
이름·고유번호 입력
LOCK
고객 확정
해당 고객 데이터만 참고
SEARCH
리서치 매칭
가중치 점수 상위 보고서
LLM
맞춤 브리핑
성향 반영 + 출처 명시
설계 원칙. 근거 없는 답변은 하지 않습니다. 자료가 없으면 "관련 리서치를 찾지 못했습니다"라고 명시하고, 단정적인 투자 권유 표현은 사용하지 않습니다. 상담사가 신뢰하고 그대로 활용할 수 있는 참고용 브리핑을 만드는 것이 목표입니다.

AI 활용 결과물

증권사 HTS 느낌의 다크 테마, 폰트 크기 조절, 대화 초기화 기능을 제공합니다. 좌측 사이드바 없이 "챗 안에서 고객 조회 → 챗 안에서 투자 질문"이 모두 이루어지는 단순한 구조입니다.

증권상담 AI 어시스턴트 — 실제 대화 흐름
김민준 고객 찾아줘
고유번호 001, 김민준 고객님 (WM Premier, 위험중립형)이 맞으신가요?
맞아. 삼성전자 추가 매수 괜찮은지 물어봤어
✓ 김민준 고객 확정
세그먼트 WM Premier · 성향 위험중립형
주요 보유 국내 대형주 · 반도체 ETF · 최근 문의 반도체 업황 리포트 (3/10)

📊 삼성전자 상담 브리핑
• HBM3E 양산 본격화, AI 서버향 매출 확대 지속
• 메모리 업황 회복 신호, 다만 단기 변동성 존재
• 고객님 성향(위험중립형) 고려 시 분할 매수 접근 권장
[참고 리서치] 「삼성전자 — 반도체 슈퍼사이클 재진입」 (2026.03.10, 김철수 애널리스트) · 투자의견 매수 / 목표가 95,000원
※ 본 내용은 사내 리서치 기반 참고 브리핑입니다.
핵심 동작 흐름. ① 챗에서 고객 식별 → ② 직원이 확정 응답 → ③ 이후 모든 답변은 해당 고객 데이터만 참고 → ④ 질문 입력 시 리서치 DB에서 가중치 점수 기반 상위 보고서 자동 매칭 → ⑤ 고객 성향을 반영한 맞춤 브리핑 생성과 출처 명시. 다섯 단계 모두 채팅 한 화면 안에서 자연스럽게 이어집니다.

업무자동화 효과

EFFECT 1상담 리드타임 절반으로 단축

고객 조회·자료 탐색·요약 정리 작업이 챗봇 한 번의 질의로 처리되어, 상담 응답까지의 시간이 크게 줄어듭니다.

EFFECT 2당사 리서치 기반 제안 품질 향상

리서치센터의 보고서가 상담 현장에서 실제로 활용되며, 고객의 투자 성향과 보유 종목에 맞춰 자동 브리핑이 생성됩니다.

EFFECT 3맞춤형 영업·마케팅 확장 가능성

같은 구조로 고객별 영업 DM, 정기 투자 뉴스레터, 개인화 알림 등의 서비스로 자연스럽게 확장할 수 있습니다.

확장성. 챗봇이 사용하는 리서치 DB와 고객 DB는 그대로 보존되는 자산입니다. 한 번 만든 데이터 구조를 상담뿐 아니라 DM 발송기, 정기 뉴스레터 생성기, 고객 알림 자동화 등 다양한 업무 흐름에 재사용할 수 있습니다.

자동화 과정

본 사례는 VS Code + Claude 확장 환경에서 비개발자가 AI와 대화하며 직접 만들어본 프로토타입입니다. 복잡한 인프라(DB 서버 · 벡터 DB · Docker) 없이 로컬 파일 기반 구조로 진행했습니다.

STEP 1 — 바이브코딩 환경 준비 (CLAUDE.md · DESIGN.md)

VS Code에 Claude 확장을 설치하고, 프로젝트 루트에 CLAUDE.md(작업 방식 규칙)와 DESIGN.md(설계서)를 먼저 작성합니다. 두 파일이 있으면 AI 에이전트가 매 세션 시작 시 이 문서를 읽고 일관된 방식으로 작업합니다.

프로젝트 폴더 구조
agent-증권상담보조Chatbot/
├─ CLAUDE.md            # 작업 방식 규칙 (탐색→타입→계획→구현→검증)
├─ DESIGN.md            # 설계서 (목적·범위·데이터·UI·완료기준)
├─ .env                 # ANTHROPIC_API_KEY
├─ package.json
├─ data/                # 고객 DB · 리서치 DB
└─ src/                 # 챗봇 코드 · UI
설계서에 도메인 규칙을 명시합니다. "고객이 확정되면 해당 고객 데이터만 참고한다", "리서치 근거 없는 답변은 하지 않는다" — 이렇게 정의해 두면 이후 AI가 코드를 짤 때도 같은 원칙을 자동으로 지킵니다.

STEP 2 — 고객 DB · 리서치 DB 파일 생성

고객 정보는 JSON 파일로, 리서치 보고서는 마크다운 파일로 만듭니다. 별도의 DB 서버 없이 폴더 안의 파일을 서버 시작 시 한 번에 읽어 메모리 캐시로 활용합니다.

data/customers/customer_001.json — 고객 1명 = 파일 1개
{
  "customerId": "001",
  "name": "김민준",
  "segment": "WM Premier",
  "riskProfile": "위험중립형",
  "holdingsSummary": [
    "삼성전자 보통주 1,200주",
    "SK하이닉스 500주",
    "KODEX 200 ETF 2,000좌"
  ],
  "recentInteractions": [
    { "date": "2026-03-10", "topic": "반도체 업종 비중 확대 상담" }
  ]
}
data/research/삼성전자_20260310.md — 보고서 1건 = 파일 1개
---
title: "삼성전자 - 반도체 슈퍼사이클 재진입"
analyst: "김철수"
date: "2026-03-10"
sector: "반도체"
stocks: ["삼성전자"]
targetPrice: 95000
rating: "매수"
tags: ["HBM", "AI반도체", "파운드리"]
---

# 핵심 포인트
- HBM3E 양산 본격화, 엔비디아向 공급 계약 확보
- DRAM 가격 반등, 서버용 수요 전년 대비 35% 성장
...
frontmatter가 검색 키. 마크다운 상단의 메타데이터(제목·애널리스트·날짜·종목·태그)가 검색 키 역할을 하기 때문에, 챗봇이 키워드 기반으로 빠르게 관련 보고서를 찾아낼 수 있습니다.

STEP 3 — API로 LLM 연결 (시스템 프롬프트 빌더)

Next.js의 API 라우트에서 Claude API를 호출합니다. 핵심은 시스템 프롬프트에 "확정된 고객 정보"와 "검색된 리서치"만 주입하는 것입니다. 다른 고객 데이터는 절대 프롬프트에 포함시키지 않습니다.

src/lib/promptBuilder.ts — 시스템 프롬프트 구성
const systemPrompt = `
당신은 증권사 투자 상담 보조 AI입니다.

[현재 확정 고객 정보]
${customer.name} (${customer.segment})
투자 성향: ${customer.riskProfile}
보유: ${customer.holdingsSummary.join(", ")}

[관련 리서치 보고서]
${matchedReports.map(toBrief).join("\n")}

답변 규칙:
- 사내 리서치 보고서를 근거로만 답변
- 다른 고객 정보 절대 참조 금지
- 출처(보고서 제목·애널리스트·날짜) 명시
`;

const stream = await anthropic.messages.stream({
  model: "claude-sonnet-4-6",
  system: systemPrompt,
  messages: chatHistory,
});
벡터 DB 없이도 충분합니다. 제목 일치 +5점, 태그 일치 +4점, 종목명 일치 +5점, 본문 일치 +1점 같은 가중치 점수로 상위 3건을 뽑아 프롬프트에 넣습니다. 단순하지만 사내 자료 규모에서는 설명 가능하고 충분히 정확합니다.

STEP 4 — 챗봇 UI 개발 (스트리밍 응답)

UI는 Next.js + Tailwind로 만듭니다. 채팅 안에서 고객 조회와 투자 질문이 모두 이루어지도록 단순화했고, 응답은 스트리밍으로 한 글자씩 출력해 체감 속도를 높였습니다. 증권사 HTS 느낌의 다크 테마(상승 빨강·하락 파랑), 폰트 크기 조절(14~22px), 대화 초기화 버튼을 제공합니다.

한 줄 요약. "로컬 파일 기반의 고객 DB와 리서치 DB를 LLM이 읽고 상담 브리핑을 생성하는 구조"입니다. 복잡한 인프라 없이 폴더와 파일, 그리고 API 호출 한 번이면 동작하기 때문에, 비개발자가 AI와 대화하며 며칠 안에 직접 만들어볼 수 있는 형태입니다. 같은 구축 방식은 Ch8(바이브코딩과 AI 에이전트)에서 학습합니다.