소개
Openai Agent Builder 로 19기 탐험을 하고 있습니다.
지난번에 상품리스트를 Agent의 File system에 넣고, Vector Store에서 검색하는 것을 해보았습니다.
❓ 고민 1. 과연 RDB의 정보를 Vectore Store에 넣는 것이 과연 효과적일까?
RDB의 정보는 관계성이 뚜렸해서, 관련 정보를 찾기위해 Vector store의 simulality에 의존할 필요가 없고, 정보의 수정이나 삭제가 빈번할 수 있는 정보이기에 RDBMS를 직접 연동해서 붙여보기로 했습니다.
✅ AI Agent Workflow: Vector DB vs RDB 비교 표
구분
Vector DB
RDB (PostgreSQL / Supabase)
핵심 목적
의미 기반 검색(semantic search), 지식 참조
상태 데이터 관리, 트랜잭션 처리
데이터 성격
문서, 설명, 후기, FAQ, 정책 등 언어적 지식
상품, 장바구니, 주문, 재고 등 비즈니스 핵심 데이터
데이터 형태
비정형 텍스트 기반(embedding)
정형 데이터(테이블, 스키마)
주 기능
유사도 검색(top-k), 컨텍스트 제공(RAG)
정확한 조회(WHERE), JOIN, INSERT, UPDATE, DELETE
변경 빈도
거의 없음 또는 낮음
매우 높음(장바구니·결제·주문 상태 등 지속 변경)
일관성(ACID)
제공 안 함
필수, 강함
조회 방식
“의미적으로 비슷한 정보”
“조건에 맞는 정확한 데이터”
적합한 질문 유형
“어떤 꽃차가 선물로 어울릴까?”“스트레스 완화 티 추천해줘”“환불 정책 찾아줘”
“장바구니에 뭐 들어있어?”“이 주문의 상태 업데이트해줘”“재고를 1 감소시켜줘”
에이전트 역할
판단 참고용 컨텍스트 제공
실제 비즈니스 상태 변경 및 결과 반환
특징
후보군을 넓게 잡음(Recall 중심)
정확성과 통제력 집중(Precision 중심)
장점
자연어 검색 강함문맥 기반 추천 가능대규모 문서 처리 용이
정확하고 안정적금융/결제/주문 등에 필수조인·조건 검색 최적화
약점
최신 상태 유지 어려움숫자·수량·상태 검사 불가
언어적 의미 검색 불가긴 문서 검색 비효율
MCP에서의 사용
semantic_search_tool, faq_search_tool
cart_db_tool, order_db_tool, product_db_tool
대표 적용 영역
상품 설명 기반 추천리뷰 요약/인사이트CS FAQ 검색업무 매뉴얼·문서 RAG
상품/사용자/장바구니/주문/결제/재고 관리포인트/쿠폰/배송 상태 등 트랜잭션
사용 예시
“선물 상황에 맞는 티를 의미 기반으로 검색”
“유저 123의 장바구니 상품 목록 가져오기”
🎯 결론 요약
Vector DB = 의미 기반 검색 + 지식 레이어
→ 문서, 설명, 리뷰, FAQ, 정책 같은 “언어적 데이터”에 강함
→ 에이전트가 판단할 때 참고하는 지식 뇌(Brain) 역할RDB = 정확한 상태 관리 + 트랜잭션 처리
→ 사용자, 장바구니, 주문, 결제, 재고 등 비즈니스 원장(System of Record)
→ 에이전트가 직접 데이터를 변경해야 할 때 필수
❓고민 2. ai agent workflow 개발은 기존의 웹서비스 개발과 어떻게 다를까?
막상 openai agent builder를 가지고 뭔가 만들어 보려고 해도, workflow가 팍팍 떠오르지 않습니다.
내가 뭔가 agent 기반으로 사고하는 방법을 모르는게 아닌가 싶습니다.
그러다 아래 동영상을 발견하고, 작지만 실마리를 얻었습니다.
https://www.youtube.com/watch?v=MRrS1a7NYJY
여기 내용에서 인상 적인 부분은
AI Agent 개발 방법
을 알게 되었다.
진행 방법
1. backend 만들기 (supabase 데이타)
1-1 supabase에 테이블 만들기
chatGPT에 데이타 스키마를 넣고, 테이블 생성을 위한 SQL을 작성해달라고 합니다
1) user
supabase에서 user 추가로 수동 입력
2) product
create table public.products (
id text primary key,
title text not null,
sub_title text,
cover text,
link text,
created_at timestamp with time zone default now()
);
3) cart
create table public.cart (
id bigint generated always as identity primary key,
user_id uuid not null references auth.users(id) on delete cascade,
product_id text not null references public.products(id) on delete cascade,
quantity integer not null default 1,
created_at timestamp with time zone default now(),
updated_at timestamp with time zone default now()
);
4) Product 데이타 insert
insert into public.products (id, title, sub_title, cover, link) values
('419', '소중한 너에게 꽃차', '나비티백 3종 세트', 'https://iloveflowertea.com/web/product/small/202504/ce025488dedf66179cb66e49bbbec547.jpg', 'https://iloveflowertea.com/product/detail.html?product_no=419'),
('604', '무드 포 러브', '알디프 시그니처 블렌딩 티 8입', 'https://iloveflowertea.com/web/product/small/202511/dfcb96962b607041367332eb05400f11.jpg', 'https://iloveflowertea.com/product/detail.html?product_no=604'),
('601', '낮의 차', '알디프 라이프 블렌딩 티 8입', 'https://iloveflowertea.com/web/product/small/202511/c83fb2875c4fb8e46d3915a417e9d057.jpg', 'https://iloveflowertea.com/product/detail.html?product_no=601'),
('612', '러블리 티 컬렉션 10종', '티 집게 선물세트 + 쇼핑백(대)', 'https://iloveflowertea.com/web/product/small/202509/07a8b952ee50a5e5f016eed53656604c.jpg', 'https://iloveflowertea.com/product/detail.html?product_no=612');
Agent Builder Workflow 만들기
각 상세 설정
mcp 설정 상세 정보
실행
stripe 호출
stripe test 페이지까지 호출해서 test결제가지는 완료 했습니다.
완료 메세지를 받는 부분에 더 이상 진행 안됨
3. web UI
리턴되는 결과 데이타의 json을 넣고,
결과와 배운 점
고민1 RDB를 vectore store에 넣는 것이 과연 효과적일까?
RDB는 RDB 그대로 쓰면된다. 용도에 맞게 쓰자.고민 2 Agent workflow의 개발 방식
1. backend 2,agent workflow 3. UIAgent로 개발하는 방식에서 기존 개발과 다른 점
Database에 대한 CRUD( Create, Read, Update, Delete)를 만들어줄 필요가 없다.
그냥 도구만 쥐어주면 된다.시행착오
product widget을 명시 했는데, agent 가 맘대로 이미지 URL을 바꿈
한달동안 openai agent builder로 여러가지 해보았습니다.
스터디가 아니면, 사례글을 쓰려고 하지 않으면 못했을 모험이었습니다.
여러가지 openai의 가능성과 Agent workflow 개발에서의 다양한 방향을 엿볼 수 있는 기회였습니다.