AI로 일하기

말 맞춘 적 없는데, 넷이 같은 곳을 가리켰습니다 🎯

생각에 잠긴 초록이 아빠

아침마다 하는 일이 있습니다. 제가 만드는 자산관리 앱 돈독( https://don-doc.com )을 매일·매주 점검하는 AI 에이전트 네 명 — 디자이너·개발자·기획자·마케터 — 이 각자 써놓은 리포트를 커피 한 잔 들고 몰아 읽는 겁니다.

보통은 각자 자기 영역만 얘기합니다. 디자이너는 색상이랑 여백, 개발자는 코드 중복, 기획자는 우선순위, 마케터는 카피. 그런데 오늘 아침엔 넷이 똑같은 문장 하나를 각자 다른 말로 적어놨습니다.

오늘 리포트 넷에 똑같은 줄이 있었다

전날(9/4) 배포한 기능 하나가 있습니다. 혼자 쓰다가 배우자를 가족으로 초대하면, 내가 먼저 넣어뒀던 계좌·거래가 자동으로 가족 쪽으로 넘어가는 기능이에요. 코드(lib/actions/family/_join-migration.ts)는 이미 잘 돌고 있었습니다.

그런데 오늘 리포트를 순서대로 읽다 보니, 넷이 서로 다른 문 앞에서 출발해서 같은 방으로 들어와 있었습니다.

  • 기획 담당은 자기가 3라운드째 추적하던 우려(“솔로일 때 넣은 계좌가 합류하면 사라진 것처럼 보인다”)가 코드로는 해소됐는지 확인하다가, app/api/family/join/route.ts:92-101이 계산해 돌려주는 migratedAccounts(이관된 계좌 수)를 화면 어디에서도 안 쓰고 있다는 걸 발견했습니다.
  • 디자이너는 카피와 실제 화면이 어긋나는 곳을 훑다가 같은 결론에 도착했습니다. 그 성공 화면 맨 아래엔 “가족의 사생활은 존중하면서, 자산은 투명하게”라는 문구가 박혀 있는데, 정작 계좌가 몇 개 넘어왔는지는 안 보여주고 있었거든요. app/invite/[code]/page.tsx:43을 짚었습니다.
  • 개발 담당은 기획 담당의 리포트를 그냥 믿고 넘어가지 않았습니다. 직접 grep -n "migratedAccounts" app/invite/[code]/page.tsx를 돌려 0건인 걸 확인한 뒤에야 “기획-09-05 P1과 코드 레벨에서 독립 재확인, 이견 없음”이라고 적었습니다.
  • 마케팅 담당은 이 기능을 홍보 문구로 쓰려다가 브레이크를 걸었습니다. “화면에서 바로 확인된다”는 문장은 아직 못 쓴다고요. 화면에 안 뜨는 걸 뜬다고 쓰면 거짓 카피가 되니까요(don-doc/agent-reports/marketing-2026-09-05.md:24).

한 명이 문제를 던지면 나머지 셋이 그걸 각자의 렌즈로 다시 비춰본 셈입니다. 카피 렌즈, 코드 렌즈, 홍보 문구 렌즈.

왜 넷이 같은 곳에서 멈췄을까 — 베낀 게 아니라 다시 확인한 것 🔁

여기서 중요한 건 “네 에이전트가 똑같은 걸 찾았다”가 아닙니다. 그거라면 그냥 한 명이 찾은 걸 나머지가 복사한 것과 다를 게 없어요.

진짜 중요한 대목은 개발 담당이 적은 저 한 줄, “코드 레벨에서 독립 재확인”입니다. 개발 담당의 프롬프트에는 “다른 역할이 이미 지적한 항목이라도, 네 방식(코드를 직접 열어 확인)으로 다시 확인하고 나서 동의·이견을 적어라”는 지시가 들어 있습니다. 그래서 기획 담당의 문장을 그대로 옮겨 적은 게 아니라, 직접 grep을 돌려서 “0건”이라는 자기 증거를 만든 다음에야 동의를 적었습니다.

이 한 단계가 없으면 위험한 게 하나 있습니다. 만약 기획 담당이 애초에 파일 경로를 잘못 짚었거나, 이미 고쳐진 걸 오래된 로그만 보고 착각했다면 — 나머지 셋이 그 오류를 그대로 베껴서 리포트 네 개가 한목소리로 틀린 말을 하게 됩니다. 실제로 이번 라운드 바로 전날(9/4), 기획 담당이 “약속을 안 지켰다”고 지적했다가 원문 대조 결과 그런 약속 자체가 없었던 걸로 정정된 적이 있었거든요. 그날의 교훈이 바로 다음 날 이 구조로 이어진 겁니다 — 넷이 만장일치라는 건 안심할 이유가 아니라, 넷이 각자 자기 증거를 갖고 있을 때만 의미가 있다는 것.

그래서 지금 뭐가 남았나

발견은 넷이 했지만 실행은 아직입니다. API는 migratedAccounts 값을 이미 계산해서 응답에 담아 보내고 있으니, 성공 화면에 조건문 한 줄만 붙이면 됩니다.

{migratedAccounts > 0 && (
  <p className="text-xs text-muted-foreground/70 -mt-6 mb-8">
    기존에 쓰던 계좌 {migratedAccounts}개도 이 가족으로 함께 넘어왔어요.
  </p>
)}

작업량은 크지 않습니다(디자이너 표현으로 XS, 15분). 다만 이걸 붙이기 전까지는 마케팅 담당 말대로 “화면에서 확인된다”는 문구는 못 씁니다. 넷이 같은 곳을 가리켰다고 문제가 저절로 고쳐지는 건 아니라서, 다음 코드 세션에 이 조건문 하나를 넣는 게 이번 주 실행 목록 맨 위에 있습니다.

따라 하기

여러 AI 에이전트를 역할별로 나눠 굴리고 있다면, 서로의 발견을 베끼지 않고 다시 확인하게 만드는 문장 하나만 프롬프트에 추가하면 됩니다.

1. “동의하기 전에 네 증거를 만들어라” 지시 넣기

다른 역할의 리포트에서 이미 지적된 항목을 참고할 때:
1. 그 주장을 그대로 옮겨 적지 마라
2. 네 역할의 방법(코드라면 grep/직접 열어보기, 카피라면 실제 화면 문구 대조)으로
   똑같은 결론에 도달하는지 스스로 확인해라
3. 확인됐으면 "독립 재확인" 이라고 표시하고 네가 확인한 근거(파일:줄, 명령어)를 적어라
4. 확인 중 다른 결론이 나오면 "이견"이라고 표시하고 왜 다른지 적어라

이렇게 되면 성공 — 리포트에 “독립 재확인” 또는 “이견”이라는 말과 함께, 그 에이전트 자신이 실행한 명령어나 열어본 파일 줄 번호가 남습니다.

막히면 — 에이전트가 “동의합니다”라고만 쓰고 끝냅니다. 근거 없는 동의는 동의가 아니라 복사라고 되물으면, 명령어를 실제로 돌리고 결과를 적습니다.

2. 근거 형식을 파일:줄로 강제하기

발견·동의·이견 어디에도 "~인 것 같다", "~로 보인다" 같은 표현만 쓰지 마라.
반드시 파일 경로:줄 번호, 또는 실행한 명령어와 그 출력을 함께 적어라.

이 규칙 하나로 “네 에이전트가 만장일치”라는 결과가 실제로 신뢰할 수 있는 신호인지, 아니면 그냥 한 명의 착각이 세 번 복사된 것인지 나중에 사람이 직접 판별할 수 있습니다.

결국 남는 건

넷이 같은 곳을 가리킨 게 신기해서 이 글을 씁니다만, 진짜 배운 건 “여러 에이전트를 쓰면 저절로 정확해진다”가 아니었습니다. 각자한테 “동의하기 전에 직접 확인해라”는 문장을 박아뒀기 때문에, 만장일치가 나왔을 때 그게 믿을 만한 신호라는 걸 저도 믿을 수 있게 된 겁니다.

뿌듯해하는 초록이 아빠

내일 아침 리포트 넷을 또 읽습니다. 이번엔 어디서 만날지 모르겠지만, 적어도 만난 자리에 각자의 근거는 남아있을 거예요. 🐴

이 글은 산업 구조와 만드는 과정을 정리한 개인 기록입니다.
특정 종목의 매수·매도 추천이 아니며, 투자 판단과 그 결과는 독자 본인에게 있습니다.

← 글 목록으로