차세대 은행은 어떤 모습 일까? - 2편 (Agentic AI)

2025. 9. 7.Tech

 

안녕하세요.

케이뱅크 데이터인텔리전스팀에서 Data Scientist로 일하고 있는 조용걸입니다.

 

1편에 이어서 Agentic AI 도입을 위한 사이드 프로젝트들을 진행하고 있는데요.

바닐라 코드를 통해 개념에 대한 이해와 함께 프로젝트에 대해 간략히 소개하고자 합니다.

 

프로젝트 이름은 A.P.B (AI Powered Bank)로 다양한 팀원 분들과 함께 진행하고 있습니다.

 

이 지면을 빌어서 감사함을 전합니다.

(사이드 프로젝트 제안에도 물심양면으로 도와주시는 훌륭하신 동료분들이 케이뱅크에 많이 있습니다!)

 

데이터인텔리전스팀 - 조용걸님

데이터AI서비스팀 - 임태훈, 하진관님

플랫폼아키텍쳐팀 - 김원익님

뱅킹서비스개발팀 - 도승훈님

여신플랫폼개발팀 - 진소희님

정보보호팀 - 김원경, 김남석님

IT인프라팀 - 이관우님

 

+ 재미있는 과제 같다며 열심히 해 보라고 격려주신 홍종님, 원영님, 진식님, 기환님도 감사드려요.

 

 

A.P.B (AI Powered Bank)

 

A.P.B 프로젝트는 Agentic AI가 태동 단계이므로 A2A / MCP에 대한 개념 이해와 실제 적용이 가능한가(?)에 대한 Feasibility를 보기 위함이 목적으로 최소한도의 기능 구현과 실제 실용적인 시나리오 발굴을 목표로 하고 있습니다.

 

Agentic AI씬은 크게 대고객 시나리오, 내부 업무 시나리오 2개로 크게 나뉠 수 있을 것 같습니다.

이 중 몇 시나리오만 로컬 PC에서 Gpt-4o모델을 이용하여 PoC를 진행하였고 현재 이 코드 베이스를 바탕으로 행 내부에 구현을 목표로 하고 있습니다.

 

대고객 시나리오

  • 이체 (사용자 간 이체, 수신상품 입금 등)
  • 거래 내역을 기반으로 소비 조언
  • 고객 상담 Q&A
  • ...

 

내부 업무 시나리오

  • 사업(마케팅) 실적 조회
  • 데이터 분석 (인사이트 제공)
  • 내부 정보 요약 (Jira, Confluence)
  • 사내 Q&A
  • ...

 

데모 시연

 

 

프로젝트 구조 및 구성

 

바닐라 프로젝트의 구조 및 시나리오 구성은 아래와 같습니다.

 

1편의 A2A, MCP개념들을 참고하여 프로젝트를 개발하였으며 개념 이해와 Feasibility가 목적이기 때문에 Agent들을 별도의 어플리케이션으로 배포하진 않았습니다. 인터페이스는 Streamlit을 이용한 챗봇 그리고 MCP는 FastAPI로 배포하였습니다.

 

바닐라 프로젝트 구성도

 

프로젝트 구조도

 

 

card.json (Agent card)

 

 

menifest.json (MCP-tool)

 

 

 

개발 구성

 

바닐라 프로젝트에서 구현된 여러 시나리오 중에 마케팅실적 조회를 예시로 들어보겠습니다.

 

사업부서에 많은 마케터들은 본인이 관리하는 상품과 서비스에 대해서 마케팅 캠페인(배너, 푸쉬, LMS 등)을 진행하고 이 캠페인 실적에 대해 모니터링하는데요. 실적을 보기 위해서 데이터를 볼 수 있는 환경에 접속하여 매번 쿼리를 작성하고 그 결과를 다운로드 받아야 합니다.

 

쿼리가 익숙지 않거나 데이터 조회를 위해서 어떤 테이블을 조회해야 하는지 모르는 직원의 경우 위 프로세스에 적응하기까지 데이터 분석팀에 도움을 요청하거나 어려움을 겪는 경우가 종종 발생하는데요. Agent와 MCP로 구성한다면 어떻게 전개가 되는지 배너 실적 조회 시나리오를 통해 Step by Step으로 살펴보겠습니다.

 

프로세스는 다음과 같습니다.

  1. 사용자 질의 요청을 받음 (Streamlit 챗봇 인터페이스)
  2. A2A client가 Agent 라우팅 역할을 하여 어떤 Agent가 사용자 요청을 수행하기 적합한지 판단
  3. Agent에게 사용자 요청을 전달
  4. Agent는 사용자 요청을 처리하기 위해 본인이 가지고 있는 도구를 사용할지 판단
  5. 도구를 사용하였다면 그 결과를 활용하여 사용자 질의를 처리하여 전달함

1. 사용자 질의 요청을 받음

-> 1232번 배너 2025.08.08일 실적 알려줄래?

 

2. A2A client가 Agent 라우팅 역할을 하여 어떤 Agent가 사용자 요청을 수행하기 적합한지 판단함

-> A2A client가 Agent들의 card.json을 읽어서 사용자 질의를 처리하기 위한 Agent를 선택합니다.

 

- 라우팅 프롬프트 (A2A → LLM)

 

 

- 라우팅 결과 (LLM JSON)

 

 

3 & 4. Agent에게 사용자 요청을 전달 & Agent는 사용자 요청을 처리하기 위해 본인이 가지고 있는 도구를 사용할지 판단

-> Agent가 사용자 질의를 처리하기 위해 도구가 필요한지 판단하고 필요하다면 도구에 인풋 파라미터를 추출하여 호출합니다.

 

- Tool 선택 프롬프트

 

 

Tool 선택 결과 (LLM JSON)

 

 

Agent  코드 예시

 

여러 Agent에서 사용되는 공통  유틸리티성 함수(로깅, Tool 선택 프롬프트 등)들을 agent_base.py에 MCPAgentBase 클래스로 정의하였고 핵심 로직은 이 클래스를 상속받아 Agent들이 만들어지게 설계하였습니다.

 

 

agent_base.py

 

marketing_agent.py

 

MCP 코드 예시

 

Feasibility Test가 목적이었기 때문에 FastAPI 형태로 MCP 서버를 배포하되 데이터는 미리 정의된 데이터를 요청에 맞게 사전에 정의된 dataframe에서 조회하여 가져오는 방향으로 개발하였습니다.

 

 

마치며

 

클로드, 커서 AI, ChatGPT에서 MCP 기능을 사용자들에게 손쉽게 제공함에 따라 주요 어플리케이션들(Slack, Figma, Notion 등)도 MCP에 맞춰 API형태로 서비스를 제공하고 있습니다. 이에 따라서 점점 우리가 업무를 하는 행태도 빠르게 변화하고 있고 이미 AI 없이 프로그래밍을 할 수 있을까?라는 생각이 드는 요즘입니다.

 

이러한 일련의 프로젝트를 통해 행에 도움 될 수 있는 시나리오들을 사전에 준비하고 그에 맞춰서 사내 시스템을 손쉽게 연동할 수 있는 상태로 준비한다면, 추후에 매니지드 시스템 또는 상용 솔루션이 도입되었을 때 케이뱅크가 AI로 인터넷 은행을 선도하는 AI Powered Bank가 되는 모습을 상상하며 글을 마무리하고자 합니다.

 

긴 글 읽어주셔서 감사합니다.