EN

다웰서비스 이메일 에이전트
메일함 정리 특화 — MailAgent

메일함을 대신 지키는 자율 에이전트를 만들었다.
도착한 메일을 스스로 읽고 분류해, 봐야 할 것만 받은편지함에 남기고 답장 초안까지 준비한다.

작성일 2026-07-20 · 협업 파트너 및 내부 공유용 · v1.0
MAILAGENT
1 · 한 문장으로

메일함을 대신 지키는 자율 에이전트

다웰서비스 이메일 에이전트는, 받은편지함을 상시 지키며 도착한 메일을 스스로 읽고 분류해 — 봐야 할 것만 남기고, 답장 초안까지 준비하는 자율 에이전트입니다.

받은 메일을 한 줄로 요약해 주는 도구가 아닙니다. 읽지 않아도 될 메일을 스스로 읽음 처리하고, 업무 메일이면 답장 초안을 만들고, 고객사 프로젝트 폴더에 아카이브하고, 피드백을 받으면 규칙으로 학습하는 — 사람 옆에서 메일을 정리해 주는 유능한 담당자에 가깝습니다.

1 · 핵심 가치

받은편지함에 "봐야 할 것"만 남긴다

이 에이전트의 핵심 가치는 자동 읽음 처리 — 이른바 트리아지(triage)입니다.

하루에도 수십 통씩 쌓이는 뉴스레터·자동 알림·시스템 메일이 정작 중요한 메일을 파묻습니다.

에이전트는 각 메일이 직접 읽거나 조치해야 하는 메일인지를 판단해, 그렇지 않은 메일은 스스로 읽음 처리합니다. 받은편지함에는 사람이 봐야 할 메일만 남습니다. (언제든 되돌리기 가능)

"메일을 정리하는 시간"이 아니라,
정리된 메일함을 아침마다 돌려받습니다.
1 · 차별점

기존 메일 자동화와 무엇이 다른가

대부분의 도구는 "발신자/키워드 → 라벨/필터"의 고정 규칙 — MailAgent는 에이전트이기에 다릅니다.

🧹

내용으로 판단한다

키워드 매칭이 아니라, 메일 본문 전체를 LLM이 읽고 "읽을 필요가 있는지"를 판단합니다.

→ 자동 읽음 처리 (3장)
✍️

답장까지 준비한다

업무 메일이면 내 문체를 학습해 답장 초안을 임시보관함에 넣어 둡니다. (발송은 사람이)

→ 답장 초안 (7장)
🧠

말로 학습한다

"이런 메일은 무시해줘" 한마디가 영속 규칙이 되어 다음 폴링부터 반영됩니다.

→ 피드백 학습 (9장)
2 · 핵심 아키텍처

상시 폴링 → 분류 → 조치, 사람 감독하의 자율 파이프라인

cron이 몇 분마다 받은편지함을 폴링하고, 각 스레드를 LLM이 한 번에 분류·조치합니다.

1 · 폴링

새 스레드 수집

cron이 받은편지함을 주기적으로 확인 (멱등성 커서로 중복 방지)

2 · 분류

LLM 1회 호출

카테고리·읽을 필요·답장 필요·초안을 JSON으로 한 번에 판단

3 · 조치

읽음·초안·아카이브

불필요 메일 읽음 처리 · 업무 메일 답장 초안 · 프로젝트 Drive 저장

4 · 감독

사람이 검토

웹 대시보드·채팅에서 결과를 보고, 발송은 사람이 Gmail에서

모든 상태(스레드·초안·규칙·읽음/복원)는 로컬 DB와 AuditLog에 영속 기록 — 되돌리기와 추적이 가능합니다.

2 · 분류

4개 카테고리 — 무엇을 어떻게 다룰지 결정

카테고리는 "이 메일을 어떻게 처리할지"의 출발점 — 카테고리에 얽매이지 않고 내용으로 읽을 필요를 판단합니다.

카테고리어떤 메일처리
onboarding도입 신청·셋업 등 신규 고객 진입 메일답장 초안 + Drive 아카이브
dev고객↔개발 왕래 (버그·요청·QA)답장 초안 + Drive 아카이브
internal내부 알림·요약 대상일일 요약에 포함 (초안 없음)
ignore스팸·뉴스레터·자동 메일무시 (읽음 처리 후보)
3 · 답장 초안

초안까지만 만든다 — 발송은 사람이

  • 업무 메일(onboarding·dev)이면 답장 초안을 Gmail 임시보관함에 넣어 둡니다
  • 최근 보낸편지함 메일 몇 개를 문체 예시로 제공 — 내 어투로 씁니다
  • 절대 자동 발송하지 않습니다 — 사람이 검토·수정 후 Gmail에서 발송
  • 학습된 초안 규칙(draft_rule)·문체 규칙(tone_rule)이 프롬프트에 반영
오발송 리스크 0.
"쓰는 시간"을 없애되, 보내는 결정은 사람이 — 신뢰가 쌓이면 카테고리별 자동 발송으로 승격 예정.
4 · Drive 아카이브

업무 메일을 프로젝트 폴더에 자동 보관

고객사별 대화가 흩어지지 않도록, 업무 메일을 프로젝트 Drive 폴더에 Google Doc으로 저장합니다.

  • 공유드라이브 FDE Build Projects 아래 고객사 폴더를 LLM이 매칭
  • 매칭된 폴더의 이메일 하위폴더에 Google Doc으로 저장 (제목·발신자·날짜·본문)
  • 보낸편지함까지 스윕해 스레드 전체 대화를 한 문서로 (archive_backlog)
  • 확신이 없으면 저장하지 않고 pending — 사람이 검토 채팅에서 프로젝트 지정
억지로 분류하지 않습니다.
확신할 때만 저장하고, 애매하면 사람에게 넘깁니다. (중복 저장 방지·키워드 매칭 없음)
5 · 피드백 학습

별도 설정이 아니라 "대화 안에서" 학습

웹 검토 채팅이 학습의 창구 — 자연어 피드백이 영속 규칙이 되어 다음 배치 분류에 주입됩니다.

"이 발신자는 항상 무시해줘"write_rulesender_rule 저장
"이런 뉴스레터는 안 읽어도 돼"write_ruleread_rule 저장
"이 메일은 dev로 바꿔줘"set_thread_category개별 교정 (일반화 X)
다음 폴링부터 규칙이 분류 프롬프트에 주입폐루프학습은 채팅, 적용은 배치

검토 에이전트는 LangGraph tool-loop — 규칙은 DB 구조화 메모리로 저장되고 LLM이 해석·적용합니다 (키워드 매칭 없음).

5 · 조직 메모리

학습되는 규칙 — 5가지 종류

한 번 알려준 기준이 규칙으로 축적되어, 같은 판단을 다시 묻지 않습니다.

규칙 종류학습하는 것
sender_rule특정 발신자·도메인 처리 (카테고리 고정, 무시 등)
category_rule분류 기준 보정
read_rule안 읽어도 되는(자동 읽음 처리) 메일 조건 — 트리아지의 핵심
draft_rule초안 작성 여부·포함할 내용
tone_rule답장 문체·어투

규칙은 공유 메모리(SoT)로 저장되고, 모든 변경은 AuditLog에 출처와 함께 추적됩니다.

5 · 검토 에이전트

검토 채팅의 도구 — 조회 · 학습 · 교정 · 아카이브

능력도구하는 일
👁 조회list_recent_classifications · get_thread_detail최근 분류 결과·읽음 상태 확인
🧠 학습write_rule / update_rule / delete_rule규칙 저장·갱신·비활성화 (upsert·soft-delete)
✂ 교정set_thread_category특정 스레드 한 건만 일회성 교정 (일반화 금지)
📥 읽음mark_thread_read / mark_thread_unread개별 스레드 읽음 처리 / 안읽음 복원
🗂 아카이브list_projects · list_pending_archive · archive_thread_to_project보류된 메일을 사람이 프로젝트 지정해 저장
6 · 안전장치

자율 에이전트를 신뢰할 수 있게 — 4중 안전망

① 발송하지 않는다

초안까지만 만들고 실제 발송·최종 판단은 사람이. 오발송 리스크 0. 읽기+초안 스코프만 사용(발송 스코프 미사용).

② 되돌릴 수 있다

자동 읽음 처리는 안읽음 복원이 가능하고, 모든 읽음/복원·규칙 변경은 AuditLog에 남습니다.

③ 중복·폭주 방지

멱등성 커서로 이미 본 스레드는 skip, 초안 상한(--max-drafts)으로 첫 실행의 대량 생성을 차단(초과분은 다음 실행에서).

④ 확신 없으면 사람에게

프로젝트 매칭이 불확실하면 억지로 저장하지 않고 pending으로, 읽을 필요가 불확실하면 보수적으로 "읽어야 함" 처리.

7 · 도입 효과

정량 효과 — 메일에 쓰던 시간을 돌려준다

하루 수십~수백 통의 받은편지함 기준, 수동 처리 대비 절감 효과 (메일량에 따라 변동).

업무 항목이전 (수동)이후 (MailAgent)절감
불필요 메일 훑기·정리매일 20~40분자동 읽음 처리대부분 자동화
답장 초안 작성5~15분/건검토·수정 2~3분약 70%
고객 메일 아카이브3~5분/건자동 저장100% 자동화
중요 메일 놓침파묻혀 지연받은편지함에 상시 노출누락 위험 ↓
8 · 기술 스택

가장 가벼운 구조 위에 단일 LLM 백엔드

주기 실행

cron + Django management command (poll_inbox) — 브로커 없는 최경량 배치

LLM 백엔드

OpenRouter (OpenAI 호환) · anthropic/claude-sonnet-4 — 키 하나로 모델 교체

검토 에이전트

LangGraph tool-loop (StateGraph · 도구 바인딩) · LangChain · LangSmith 추적

웹·백엔드

Django · Django admin 감독 콘솔 · 웹 검토 채팅 UI

데이터

PostgreSQL — 스레드·초안·규칙·감사로그 영속 (로컬 DB = SoT)

Google · 공통

Gmail·Drive·Docs (standarda-core 클라이언트) · OAuth gmail.modify

설계 원칙 — "발송하지 않는 자율성": 사람의 최종 판단을 남긴 채, 그 앞단의 반복 노동을 걷어낸다

향후 방향

카테고리별 자동 발송

신뢰가 쌓인 카테고리부터 초안을 넘어 자동 발송으로 승격.

규칙 관련성 필터

규칙이 늘어나면 관련 규칙만 선별해 프롬프트에 주입.

메일이 쌓일수록 더 잘 걸러 주는 에이전트

감사합니다 · chris@popupstudio.ai
슬라이드 이동 · F 전체화면 · Home/End 처음·끝