이 글은 JudyAI Lab의 AI 엔지니어링 시리즈 중 하나입니다 — 100편 이상 발행된 가이드, 60개국 5,000명 이상의 주간 독자가 읽는 콘텐츠로, AI 에이전트·트레이딩 시스템·콘텐츠 파이프라인의 실전 운영에 초점을 둡니다.

이번 해커톤(lablab Band of Agents Hackathon, 6/12-19)의 주제는 multi-agent enterprise workflows입니다. 즉, 에이전트가 서로 조율하고 컨텍스트를 전달하며 분업해 하나의 일을 완성하는 다중 에이전트 시스템을 만들어야 한다는 뜻입니다.

사실 처음에 제가 만들고 싶었던 건 1인 기업 아키텍처였습니다 — “혼자서도 회사를 운영할 수 있는” 만능 어시스턴트 같은 것. Slack 메시지가 오면 자동으로 분류하고, 회의는 자동으로 요약하고, 할 일은 자동으로 일정이 잡히고, 고객 답장도 대신 초안을 잡아주는 그런 것.

꽤 멋있어 보이죠?

하지만 한 번 시장 조사를 해보니, 이미 레드오션이더라고요. Notion, Lindy, Relevance AI, 각종 GPT 기반 1인 회사 어시스턴트 — 제가 아는 솔로 파운더마다 책상 위에 이미 2~3개씩은 갖고 있더라고요. 거기에 하나 더 얹어봤자 귀찮다는 소리만 듣겠죠 TT

그래서 다시 돌아가 주제를 새로 찾기 시작했습니다…


집안 배경에서 찾아낸 틈새

엄마는 평생 재무 회계를 했습니다. 이모도 그렇고요. 저도 예전에 한국에서 작은 무역 회사를 운영하면서 국제 조달을 했었죠.

그래서 우리 가족은 “돈을 못 받는다"는 것에 대해 공통의 언어가 있습니다~

무역을 할 때 가장 힘들었던 건 수주도 아니고 출하도 아니었습니다. 바로 수금이었죠.

시차가 첫 번째 적이었습니다 — 고객이 유럽에 있고 내가 아시아에 있으면, 내가 일어날 때 그 사람은 퇴근 중이고, 그 사람이 출근할 때 나는 자고 있는 상태. 이메일 한 번 주고받는 데만 48시간 이상이 걸립니다. 두 번째는 전화 독촉 — 상대 회사의 담당 창구가 언제 전화를 받을지 모르고, 이번에는 친절하게 받을지 짜증나게 받을지 모르고, 어떤 말은 해도 되고 어떤 말을 하면 상대가 바로 화를 낼지 모릅니다… 심리적 압박이 꽤 큽니다. 세 번째는 법률 문제 — 국제 인보이스에 문제가 생기면 구매자 소재지 법률을 따라야 할지, 판매자 소재지 법률을 따라야 할지, 아니면 계약서에 적힌 중재(arbitration) 조항을 따라야 할지 — 이것만 파악하는 데도 일주일이 그냥 날아갑니다.

이래저래 정말 번거롭습니다.

그리고 결말은 대부분 이렇습니다: 억지로 직접 편지 쓰고, 직접 전화하고, 직접 화내고, 혼자 삭히고, 그냥 포기할지 말지 스스로 결정합니다.

그래서 엄마랑 이모를 인터뷰해서, 지금 회사에서 연체 채권이 생기면 어떻게 처리하는지 물어봤습니다.

대답은 한결같았습니다: 쓸만한 도구가 없다. Excel로 수동으로 추적하거나, 케이스를 변호사에게 넘기거나, 아니면 그냥 손해 보고 인정하거나. 그 중간이 없다는 거죠.


중간이 없다

Reddit의 r/smallbusiness와 r/sweatystartup에서 “customer won’t pay” 관련 게시물을 찾아봤습니다. 일주일에 몇 백 개씩 올라오더라고요.

“고객이 현금 흐름 문제라고 하면서 두 달째 미루고 있어요, 독촉할 때마다 ‘다음 주에 드릴게요’라고 하고, 다음 주가 되면 또 다음 주”

“4만 달러짜리 인보이스인데, 검수 서명까지 다 받은 고객이 갑자기 품질 문제를 제기하네요”

“사이 나빠지기 싫은데, 이 돈이 다음 달 집세거든요”

이 이야기들의 공통점은: 금액은 크지 않지만, 당사자에게는 생존이 걸린 돈이라는 겁니다.

변호사는 어떨까요? 변호사 성공보수(contingency)는 일반적으로 30~40%부터 시작하고, 변호사들이 기꺼이 맡는 사건은 6자리 금액 이상입니다. 5천, 8천, 2만 달러 같은 케이스는 변호사 입장에서 그냥 귀찮은 일이에요.

채권 추심 회사는요? 맞아요, 미국에는 추심 회사가 많습니다. 하지만 그들의 비즈니스 모델은 “모든 케이스를 무조건 받아서 똑같은 프로세스로 돌린다"는 겁니다. $2,000짜리 케이스나 $20,000짜리 케이스나 같은 SOP로 전화 돌리고, 편지 보내고, 신용 정보에 올립니다. 결과는 두 가지 극단으로만 나타납니다: 강압적인 방법으로 $2K를 받아내든가(FDCPA 제소와 TCPA 과태료 폭탄), 케이스가 큐에 쌓인 채 반년이 지나도 아무도 안 건드리든가.

중간이 없습니다.

중간이 바로 엄마랑 이모가 일에서 매일 만나는 케이스들입니다.

중간이 바로 제가 예전에 무역 회사를 하면서 만났던 케이스들입니다.

중간이 바로 Reddit에서 매일 수백 명이 게시물을 올리는 소기업 사장들입니다.


“맞는 사람을 찾는 게, 일을 잘 하는 것보다 중요하다”

“나만을 위한 AI 채권 추심 시스템을 만들 수 있을까?”

이 생각이 하룻밤 내내 머릿속을 맴돌았습니다. 하지만 바로 시작하지 않았습니다. 일단 시작하면 제품 설계에 매몰돼서, 스스로에게 질문할 능력을 잃게 된다는 걸 알고 있었으니까요.

그래서 먼저 스스로에게 2가지 질문을 던졌습니다:

첫 번째 질문: 어떤 케이스는 도울 수 있고, 어떤 케이스는 도울 수 없는지 어떻게 판단할 것인가?

두 번째 질문: 도울 수 없는 사람에게는 어떻게 말할 것인가?

이 두 질문이 저를 관통했습니다.

이런 유형의 시스템 대부분의 설계 철학은 “모든 케이스 다 받는다, 어차피 에이전트가 알아서 돌리면 되니까"입니다. 그런데 이 논리를 추심 시나리오에 적용하면, 기존 추심 회사와 똑같아집니다 — $2K 케이스 받아서 $500 회수하고, 수수료 빼면 고객 손에 $200 남는 결과. 안 받는 것보다 나쁜 거죠.

그래서 저는 이 시스템의 첫 번째 에이전트는 편지를 쓰는 것도, 전화를 거는 것도 아니라, 이 채권의 실제 모습을 먼저 파악하고, 가장 합리적인 경로를 선택하는 것이라고 결정했습니다.

이 에이전트를 Pre-flight라고 이름 붙였습니다.


Pre-flight가 보는 것: 인보이스 총액이 아니라 ‘미수 잔액’

데모에서 우리가 늘 입에 달고 사는 한 마디가 있습니다:

“Lawyers look at gross. We look at outstanding.” (변호사는 인보이스 총액을 보지만, 우리는 아직 받지 못한 금액을 봅니다.)

우리의 canonical fixture에서 가져온 실제 케이스 하나를 예로 들면: 인보이스 총액 $47,300, 주문 시점에 고객이 이미 50% 계약금을 지불한 상태. 미수 잔액(outstanding)은 $23,650. 변호사는 총액이 5만 달러 가까이 되는 걸 보고 “국제 소송은 너무 비싸니 포기하라"고 말하지만, 우리에게는 $23,650이 가장 잘 하는 스위트 스팟 안에 들어옵니다.

그래서 Pre-flight는 계약서와 인보이스를 받은 뒤 두 가지 일을 합니다:

  1. 계약 조항 추출 — governing law(준거법), forum selection(분쟁 관할), late fee(연체 수수료), arbitration clause(중재 조항), 계약금 % (§6.1). 시장 조사에 따르면 국제 계약의 약 70%가 governing law 조항조차 없는데, 이걸 추출해서 고객에게 알려주는 것만으로도 이미 시장 교육적 가치가 있습니다.
  2. 미수 잔액 계산, 세 경로로 분류미수 잔액 = 총액 × (1 − 계약금 %). 분류는 이 숫자로 돌아가지 인보이스에 찍힌 큰 숫자가 아닙니다.

세 경로는 명확합니다: $3K 미만은 Lite(간단한 이메일 + 결제 링크), $3K~$40K는 스위트 스팟으로 In-Spot 풀 플로우 자동 실행(편지 + 전화 + 어조 단계 조절, 마지막에 안 되면 법적 단계로 에스컬레이션), $40K 초과는 시스템을 돌리지 않고 변호사를 직접 추천합니다.


경로 1: Lite (미수 잔액 $3,000 미만)

금액이 너무 작아서 풀 플로우를 돌리는 것이 수지에 맞지 않습니다. 그래서 이 경로는 가장 간단한 일만 합니다: Diplomat가 친근한 알림 이메일 한 통을 보내고, 한 페이지짜리 멀티채널 결제 페이지를 첨부합니다 (신용카드, Stripe, ACH 미국 이체, Wire 국제 송금이 한 페이지에 모두 있어서 고객이 원하는 방식을 선택할 수 있습니다).

전화도 없고, 변호사 내용증명도 없습니다. 7일 내 미납 시 케이스 종료.

상대방이 납부하면 승리입니다. 상대방이 납부하지 않으면, 저희가 직접 말씀드립니다: “이 건은 더 밀어붙여도 수지에 안 맞습니다. 소액 청구 법원이나 손실 처리가 더 적합합니다. 이유는 다음과 같습니다.”

재미없지만, 그게 솔직한 겁니다.

경로 2: In-Spot (미수 잔액 $3,000 ~ $40,000)

이게 스위트 스팟입니다. 변호사도 거들떠보지 않고, 추심 회사는 망치게 될 그 중간 영역. Recoverflow의 8-에이전트 풀 크루가 가동되며, 가벼운 단계에서 무거운 단계로 한 단계씩 에스컬레이션됩니다:

  • 먼저 편지 (Diplomat가 친근한 리마인더, 정식 최고, 그리고 마지막에는 변호사 내용증명까지, 어조를 단계별로 격상)
  • 동시에 전화 (Voice 에이전트의 양방향 실시간 대화 — 상대가 “다음 주에 드릴게요"라고 말하는 걸 이해하고, “다음 주 언제, 어떤 방법으로"까지 재확인)
  • 과정 내내 Tone Coach가 뒤에서 모든 편지 문구가 FDCPA 레드라인을 밟지 않는지 지켜봅니다
  • Concierge가 모든 대외 행동을 먼저 사용자가 승인하도록 전달합니다
  • 케이스가 Day 60까지 미납 상태가 되면, 그제서야 Escalator가 정식 변호사 내용증명 단계로 에스컬레이션합니다

이 경로가 Recoverflow의 메인 무대입니다. 이후 일지에서 하나씩 풀어서 다루겠습니다.

이 구간에서 우리의 답은 직설적입니다: Recoverflow를 쓰지 마세요. 변호사를 찾으세요.

이 구간에서는 변호사 성공보수(약 33%, 선납 없음)가 우리보다 저렴할 때가 많고, 변호사에게는 소환장(subpoena) 권한이 있어서 상대 회사의 자산과 은행 계좌를 조회할 수 있습니다. 우리가 갖지 못한 국제 집행력입니다.

그래서 이런 케이스는 Pre-flight가 8-에이전트 플로우를 가동하지 않고, 직접 말합니다:

“이 건은 국제 상사 채권 추심 변호사를 찾아보시길 권장합니다. 캘리포니아 / 뉴욕 / 델라웨어 지역에 저희가 정리해둔 변호사 리스트가 있고, 그분들의 성공보수 구조는 대략 이렇습니다.”

저희는 리퍼럴 수수료를 받지 않습니다. 리스트는 있는 그대로 전달되며, 뒤에 다른 조건이 붙지 않습니다.

$40K 초과 케이스에서 우리가 줄 수 있는 가장 큰 가치는 솔직하게 “우리는 가장 적합한 도구가 아니다"라고 말해주는 것입니다.


소기업에게 솔직한 것의 대가

이 설계가 비즈니스 모델로는 보기 좋지 않다는 걸 압니다.

모든 Lite 케이스를 억지로 풀 파이프라인에 밀어 넣고, Attorney Recommended 구간에서도 변호사 리스트를 넘기지 않고 우리가 받아버리면 매출이 3배는 더 날 겁니다. 하지만 결과는 기존 추심 회사의 구태로 돌아가는 것 — 소규모 고객에게는 비용이 인보이스보다 더 들어가고, 대규모 고객에게는 실질적인 법적 도움도 못 주는.

이 시스템을 만든 초심은 그게 아니었습니다.

저는 소기업 사장이 친구에게 추천하고 싶다고 생각할 무언가를 만들고 싶습니다.

이걸 명확히 하면, 언뜻 “받아야 할 것 같은” 케이스가 사실은 “받아서는 안 될” 케이스라는 걸 알게 됩니다.

진정으로 잘 만든 제품은 뭐든 다 하는 게 아니라, 진짜 그 고통의 지점을 정확히 찌르고 실제로 해결하는 겁니다!

엄마랑 이모를 인터뷰하고 나서 이 주제로 결정했습니다…


전체 시스템은 어떻게 구상했나

다시 해커톤 주제로 돌아가서 — multi-agent enterprise workflows(다중 에이전트 기업 워크플로우, 여러 AI 소형 어시스턴트가 서로 분업 협력해 하나의 비즈니스 태스크를 완성하는 것).

제가 만들고 싶은 건 “슈퍼 강력한 AI 하나가 채권을 추심해주는 것"이 아니라, 소규모 팀: 각 에이전트(대리인, 하나의 일만 하는 AI 소형 어시스턴트로 생각하면 됩니다)가 하나의 일만 아주 전문적으로 처리하고, 컨텍스트(앞뒤 맥락)로 서로 정보를 주고받으며, 상태 머신(state machine, 이 케이스가 지금 어느 단계에 와 있는지 기록하는 작은 수첩 같은 것)으로 조율하는 구조입니다.

전체 Recoverflow에는 8개 에이전트가 있으며, 3개 레이어로 나뉩니다:

1레이어 — 게이트키핑(Gatekeeper, 문지기)

  • Pre-flight(비행 전 점검): 케이스를 처음 만나는 에이전트. 편지도 쓰지 않고 전화도 걸지 않으며, 두 가지 일을 합니다: 계약 조항(governing law, 계약금 % 등) 추출, **미수 잔액(outstanding)**을 기준으로 Lite / In-Spot / Attorney Recommended 세 경로로 분류. 이번 일지에서 처음부터 끝까지 다룬 내용이 바로 이 에이전트입니다.

2레이어 — 실행(Doers, 실행자)

  • Investigator(조사관): 이 고객과의 과거 기록을 훑어 패턴을 찾습니다 (항상 미루는 편인지? 갑작스러운 사정이 있었는지? 계약서에 연체 수수료(late fee) 조항이 빠져 있지는 않은지?)
  • Diplomat(외교관): 편지를 씁니다. 친근한 리마인더부터 정식 최고, 최후의 내용증명(demand letter, 정식 법적 효력의 최고장)까지, 케이스 단계에 따라 톤이 점점 격상됩니다
  • Voice(음성 전담): 전화를 겁니다. 양방향 대화가 가능하며, 상대가 “다음 주에 드릴게요"라고 말하는 걸 이해하고, “다음 주 언제, 어떤 방법으로"까지 재확인합니다
  • Payment(수금 전담): 상대가 납부하기로 했을 때 Stripe 결제 링크(온라인 신용카드 결제 링크) / 해외 전신환(wire transfer) 안내를 일괄 처리합니다

3레이어 — 수호(Guardians, 수호자)

  • Concierge(컨시어지): 당신의 승인(approve) 버튼. Pre-flight 분류, Diplomat 편지, Voice 전화 여부, Escalator 에스컬레이션 여부 — 모든 대외 행동은 전부 먼저 당신 손으로 넘어와 승인해야 발송됩니다
  • Tone Coach(톤 코치): 백그라운드에서 끊임없이 감시합니다. Diplomat이 한 문장을 쓸 때마다, Voice가 한 마디를 할 때마다 검토하고, FDCPA(미국 공정채권추심법) 레드라인을 밟거나 어조가 너무 공격적(aggressive, 강압적·압박감이 있는)이면 즉시 차단하고 재작성합니다
  • Escalator(에스컬레이션 담당): 케이스가 에스컬레이션 단계(예: 상대가 완전히 무응답이거나 변호사 경로로 가야 할 때)에 진입하면 전환을 담당합니다

이 아키텍처의 핵심 개념은: 실행자(doer)가 강해야 하지만, 더 중요한 건 게이트키퍼(gatekeeper)와 수호자(guardian)가 철저해야 한다는 겁니다.

대부분의 에이전트 시스템 설계는 “실행자(doer)에게 슈퍼 강력한 프롬프트(prompt, AI에게 주는 지시문)를 넣어서 한 번에 완성되길 기대한다"는 방식입니다. 하지만 이 시스템의 핵심 베팅은 정반대입니다 — Diplomat이 다소 평범하게 써도 Tone Coach가 항상 검수하는 게 낫고, 프로세스가 한 단계 느려져도 Concierge가 매 단계 당신이 확인하게 하는 게 낫고, Pre-flight가 미수 잔액 계산에 5초 더 쓰더라도 케이스를 가장 적합한 경로에 보내는 게 낫지, 매출을 위해 모든 케이스를 억지로 In-Spot에 밀어 넣지 않습니다.

왜냐하면 채권 추심 시나리오에서 한 번 망치면 “사용자(user)가 불편하다"가 아니라, FDCPA 제소, 고객의 원한, 브랜드 신뢰가 한순간에 0이 되는 결과가 생기기 때문입니다.

이것이 이름이 Collector(채권 추심원)가 아니라 Recoverflow인 이유입니다 — 제가 회수(recover)하고 싶은 건 돈만이 아니라, 추심 과정에서 소기업 사장이 갈아 없어진 자존감이기도 합니다.


다음 편에서는 저희의 Voice 에이전트가 어떻게 “단방향 알림"에서 “양방향 실제 사람 대화"로 변화했는지 씁니다 — 중간에 제가 직접 전화를 한 번 걸다가 버그를 밟아, 그 자리에서 두 시간 동안 프롬프트를 고쳤습니다.

그건 또 다른 재미있는 이야기입니다…

참고 자료