하려던 것 📝
매주 화요일 인기 상품 메일을 자동으로 만들어주는 에이전트 구축 사례입니다.
veasly의 매주 화요일 "인기 상품 홍보 메일" 을 자동으로 만들어주는 에이전트를 구축하고자 함.
사람의 감이 아니라 실제로 팔린 데이터(Sales Truth)를 근거로 베스트셀러를 뽑고, AI가 메일 초안을 생성하면 사람이 검토·승인한 뒤 발송하는 파이프라인을 만들고자 함.
과거에 같은 실수(중복 발송 등)를 반복하지 않도록 실패를 학습하는 Failure Memory와, 발송 전 다중 안전장치(승인 게이트, 10개 조건 검사)를 갖추고자 함.
원본 보존 · 개인정보·대외비 익명화 · 승인 게이트 · 중복 발송 방지 · 수신동의 관리 · 미리보기 기능을 구현하고자 함.
활용한 툴 ⚒️
Claude Code (Opus 4.8) : 전 과정의 코드 작성·수정·테스트·디버깅에 활용함. 단일 세션으로 v0.1부터 v1.0까지 완성함.
Python 3.9 (표준 라이브러리만) : 작업 환경에 Node가 없어, 추가 설치 없이 어디서나 도는 의존성 0 구조로 구현함.
veasly admin '홍보 메일 쓰기' : 실제 고객 발송을 담당하는 도구로, 에이전트가 만든 메일을 여기에 붙여넣어 발송하는 구조로 연동함.
smtplib / SMTP : 직접 발송 경로 검증에 활용함. 로컬 테스트 서버로 실제 전송 트랜잭션을 확인함.
Markdown 문서 : 14개 모듈로 시스템 전체 스펙을 먼저 설계하는 데 활용함.
진행 세부 내용 🔍
1️⃣ 시스템 개요 및 파이프라인 정의
매주 화요일 메일 자동화를 "수집된 실패 학습 → 매출 진실 → 베스트셀러 선정 → 캠페인 생성 → 검증 → 화요일 발송 → 성과 학습" 의 파이프라인으로 정의함.
14개 모듈(Command Center, Failure Memory, Sales Truth, Ranking, Campaign Factory, QA Gate, Tuesday Send Engine 등)로 시스템 전체 골격을 설계함.
실패 학습 결과가 캠페인 생성과 발송 전 검증 양쪽에 되먹임되도록 구조를 잡음.
2️⃣ 과거 실패 구조화 및 Failure Memory 설계
"중복 발송 가능성", "인기 상품 기준 미정" 같은 과거 실패를 규칙으로 정제하여 적재함.
AI가 인기를 실판매가 아닌 단순 노출이나 트래픽으로 오해할 위험을 별도 규칙으로 박아둠.
실패 규칙을 캠페인 생성 단계에서 사전 회피하고, 발송 직전 검증 단계에서 다시 확인하도록 연결함.
3️⃣ v0.1 미리보기 전용 MVP 구현
주문 데이터를 업로드하거나 샘플 데이터를 로딩해 최근 7일 판매 1위 상품을 선정하도록 구현함.