사람이 결재하는
3-에이전트 시스템

관리자 · 실무자 · 검증 세 에이전트가 서로 일을 주고받고, 마지막 판단은 사람이 화면에서 내립니다.

사람 관리자 실무자 검증
개발 비용
50만 원
납기
2일 · 일요일 – 월요일
1회 실행 비용
약 2.5원
스택
Python · Vue

01

요구사항이 설계를 정했습니다

아래 네 가지는 취향이 아니라 제약입니다. 각 항목이 왜 그 결정으로 이어졌는지 함께 적었습니다.

AI Agent한테 추가 개발을 맡길 건데 어려우면 이해를 못하더라
의존성 없음 · 파일 8개

프레임워크를 쓰면 AI가 그 프레임워크의 규약까지 알아야 합니다. Python 표준 라이브러리만 쓰면 코드에 보이는 것이 전부라, AI가 파일 몇 개만 읽고 바로 수정할 수 있습니다. pip install 도 필요 없습니다.

학생이라 시험적으로 돌릴 때 비용이 들면 안 됩니다
무료 모드가 기본값

판단 로직을 Brain 이라는 교체 가능한 부품으로 분리했습니다. 기본값은 규칙 기반이라 API 호출이 0건입니다. 키가 없어도, 잔액이 떨어져도 데모는 끝까지 동작합니다.

이것저것 붙여서 확장하기 좋게
추가 = 파일 1개 + 3줄

모든 에이전트가 같은 골격을 씁니다. 새 에이전트는 기존 파일을 복사해 판단 부분만 바꾸고, 관리자에게 한 줄 등록하면 끝입니다. AI에게 검색 Agent 추가해줘 라고 시키기 좋은 크기입니다.

동작을 직관적으로 볼 수 있으면 좋겠다
Vue 화면에 실시간 표시

에이전트끼리 주고받는 대화가 화면에 그대로 쌓입니다. 누가 무엇을 위임했고 왜 반려됐는지 눈으로 따라갈 수 있어야, 나중에 고칠 때도 어디를 고칠지 압니다.

02

관리자를 중심에 둡니다

실무자와 검증자는 서로 직접 통신하지 않습니다. 모든 대화가 관리자를 거칩니다.

사람 지시 · 최종 승인 관리자 Agent :8001 · 재작업 루프 3회 A2A / JSON-RPC 2.0 실무자 Agent :8002 · 산출물 생성 검증 Agent :8003 · 통과 / 반려 실선 = 위임 점선 = 결과 반환
세 에이전트 모두 같은 A2A 서버 골격을 씁니다. 관리자만 서버이면서 동시에 클라이언트로 동작하고, 실무자와 검증자는 순수 서버입니다.

A2A 프로토콜에서 실제로 쓰는 것

A2A 명세는 넓지만, 이 데모는 세 가지만 씁니다. 나머지는 자리만 비워두고 나중에 필요할 때 채웁니다.

구성요소역할이번 범위
Agent Card 이 에이전트가 무엇을 할 수 있는지 알리는 명함 /.well-known/agent-card.json
message/send 작업을 맡기고 결과를 받는다 동기 요청-응답
tasks/get 작업 상태를 다시 조회한다 폴링
스트리밍 (SSE) 토큰 단위 실시간 전송 이번 범위 밖

03

검증 Agent를 누가 부를 것인가

보내주신 그림에서 이 부분 하나가 정해지지 않았습니다. 사소해 보이지만 비용과 안정성이 여기서 갈립니다. 왜 그런지 먼저 설명드리고, 제가 고른 답을 말씀드리겠습니다.

보내주신 그림에서 애매한 부분

요청하신 구조는 이랬습니다.

사람 ↔ [관리자 Agent ↔ 실무자 Agent ↔ 검증 Agent]

여기서 가운데 화살표 실무자 ↔ 검증 이 두 가지로 읽힙니다. 실무자가 검증자를 직접 부른다는 뜻일 수도 있고, 관리자가 양쪽을 각각 부른다는 뜻일 수도 있습니다. 그림만으로는 구분되지 않는데, 실제로 만들 때는 완전히 다른 프로그램이 됩니다.

이 장면을 생각해 보십시오

실무자가 보고서를 씁니다. 검증자가 문단이 부족하다며 반려합니다. 실무자가 고쳐 씁니다. 검증자가 또 반려합니다. 또 고칩니다. 또 반려합니다…

이 반복을 누가 멈춥니까?

LLM은 매번 호출할 때마다 돈이 나갑니다. 멈추는 사람이 없으면 밤새 돌면서 요금이 쌓입니다. 그래서 누가 검증자를 부르는가가 곧 누가 멈출 수 있는가가 됩니다.

가능한 방법 세 가지

각각을 그림으로 그려 보면 차이가 분명해집니다.

A
실무자가 직접 부른다
실무자 → 검증
관리자 맡김 실무자 검증 둘이서 무한 반복 관리자는 이 사실을 모른다

관리자는 처음에 일을 맡기고 손을 뗍니다. 그 뒤로 실무자와 검증자가 둘이서 주고받습니다.

문제 — 관리자가 개입할 수 없어 반복을 멈출 수 없습니다. 요금이 새는 것을 아무도 모릅니다.
B
관리자가 양쪽을 부른다
관리자 → 실무자 · 검증
관리자 실무자 검증 관리자가 횟수를 센다 3회가 되면 사람에게 넘긴다

관리자가 실무자에게 맡기고 결과를 받습니다. 그 결과를 검증자에게 보내 판정을 받습니다. 반려되면 다시 실무자에게 보낼지 관리자가 정합니다.

채택 — 모든 왕복이 관리자를 거치므로 횟수를 셀 수 있고, 3회에서 멈춰 사람에게 넘길 수 있습니다.
C
관리자가 검증까지 한다
검증 Agent 없음
관리자 + 검증 겸임 실무자 시킨 사람이 채점한다 에이전트가 2개로 줄어든다

검증 Agent를 없애고 관리자가 판정까지 맡습니다. 만들 것이 줄어드니 가장 간단해 보입니다.

문제 — 일을 시킨 쪽이 결과를 채점합니다. 요청하신 에이전트 3개가 2개로 줄어듭니다.

결론 — B안이고, 요청하신 그림 그대로입니다

실무자 ↔ 검증둘이 직접 주고받는 것이 아니라 관리자를 거쳐 오가는 것으로 구현합니다. 검증 Agent는 그대로 있고, 세 에이전트도 그대로입니다. 달라지는 것은 누가 전화를 거는가 하나뿐입니다.

비유하자면 관리자는 팀장입니다. 팀원(실무자)에게 일을 시키고, 결과를 받아 검수 담당(검증)에게 보냅니다. 검수에서 퇴짜가 나면 팀장이 다시 해라를 결정하고, 세 번째 퇴짜에서는 팀장이 위(사람)에 보고합니다. 팀원과 검수 담당이 팀장 모르게 둘이서 계속 주고받는 상황을 막는 것입니다.

04

B안을 택한 네 가지 이유

구조 선택은 취향이 아니라 아래 네 가지가 결정합니다. 특히 1번이 결정적입니다.

1

루프를 멈출 주체가 하나여야 합니다

재작업 상한 3회는 비용 안전장치입니다. 관리자가 호출자일 때만 3회를 넘으면 사람에게 넘긴다가 성립합니다. A안처럼 실무자와 검증자가 직접 주고받으면, 둘이 계속 반복해도 관리자는 그 사실을 모릅니다. 학생 신분으로 시험 실행하실 때 무한 루프 한 번이면 계산이 무너집니다.

2

만든 쪽이 채점하면 검증이 아닙니다

검증이 의미를 가지려면 검증자가 실무자의 사고 과정을 몰라야 합니다. 산출물만 보고 판정해야 왜 이렇게 썼는지에 설득당하지 않습니다. C안처럼 관리자가 검증을 겸하면 지시한 사람이 결과를 채점하게 되어 판정이 후해집니다. 검증 에이전트를 따로 두신 이유가 사라집니다.

3

확장해도 관리자만 수정합니다

에이전트를 다섯, 열 개로 늘릴 때 별 구조는 관리자 파일 한 곳만 바뀝니다. 체인은 순서를 다시 짜야 하고, 서로 직접 부르는 방식은 연결 조합이 급격히 늘어납니다. 확장하기 좋게라는 요구에 직결되는 부분입니다.

4

A2A 프로토콜의 모델과 일치합니다

A2A는 클라이언트-서버 구조입니다. 관리자만 클라이언트 역할을 하고 나머지는 순수 서버로 두면 각 에이전트가 단순해집니다. AI에게 수정을 맡길 코드에서는 이 단순함이 곧 안정성입니다.

05

한 번의 작업은 이렇게 흐릅니다

검증이 반려하면 사유를 붙여 실무자에게 되돌립니다. 최대 3회까지만 반복하고, 그 이후에는 사람에게 넘깁니다.

사람
지시
관리자
위임
실무자
초안
검증
반려
실무자
재작성
검증
통과
사람
승인
반려 → 재작업 · 최대 3회

화면에는 이 흐름이 실시간으로 쌓입니다. 어느 에이전트가 무엇을 했고, 검증이 왜 반려했는지 사유까지 그대로 보입니다. 마지막에 사람이 승인하거나, 추가 지시를 붙여 되돌립니다.

06

실행 비용은 사실상 들지 않습니다

다만 정확히 말하면 저렴하다가 아니라 상한을 걸어 저렴하게 만든다가 맞습니다. 그 차이가 중요합니다.

1회
2.5원
100회
249원
1,000회
2,485원
무료 모드
0원

GPT-5 nano 공식 단가(입력 $0.05 / 출력 $0.40 per 1M tokens) 기준입니다. 재작업 1회를 포함한 5회 호출, 호출당 입력 1,500 · 출력 700 토큰으로 잡았습니다. 하루 20회씩 한 달을 돌려도 1,500원 안팎입니다.

이 숫자를 지키는 세 가지 장치

상한이 없으면 무한 루프 한 번에 몇 천 원이 나갈 수 있습니다. 그래서 아래 셋을 코드 기본값으로 넣어 납품합니다.

01

재작업 3회 상한

검증이 계속 반려해도 3회에서 멈추고 사람에게 넘깁니다.

02

출력 토큰 상한

호출마다 최대 출력을 제한해 한 번의 비용을 고정합니다.

03

누적 비용 표시

이번 세션의 토큰과 원화가 화면에 항상 보입니다.

API 키가 없어도 완전히 동작합니다

판단 로직을 Brain 인터페이스로 분리해서, 환경변수 한 줄로 두뇌를 바꿉니다. 기본값은 규칙 기반이라 LLM 호출이 0건입니다. 구조 확인과 과제 시연은 이 모드로 하시고, 품질이 필요할 때만 켜시면 됩니다.

BRAIN=rule    python run.py   # 무료. 호출 0건
BRAIN=openai  python run.py   # GPT-5 nano. 1회 약 2.5원

07

확장하는 방법

AI에게 추가 개발을 맡긴다는 조건에 맞춰, 확장 절차를 세 단계로 고정했습니다.

project/
├── a2a/            # 프로토콜 계층 — 수정할 일이 없다
│   ├── types.py        Task · Message · AgentCard
│   ├── server.py       JSON-RPC 서버 + 실행 인터페이스
│   └── client.py       Agent Card 조회 + 메시지 전송
├── agents/         # 여기만 수정 / 추가
│   ├── brain.py        판단 로직 (rule / openai)
│   ├── manager.py      관리자  :8001
│   ├── worker.py       실무자  :8002
│   └── reviewer.py     검증    :8003
├── web/            # Vue 화면
└── run.py          # 전체 기동

예를 들어 AI에게 검색 Agent를 추가해줘라고 시키면 이렇게 됩니다: worker.py를 복사해 searcher.py로 만들고 판단 부분만 교체 → 포트 :8004 부여 → 관리자의 위임 목록에 한 줄 추가. 파일 1개 + 3줄입니다. 이 절차를 예제 코드와 함께 README에 적어 드립니다.

08

납품물과 일정

주말 이틀(일·월)에 완료합니다.

납품물

  • +A2A 프로토콜 계층 · 에이전트 3종
  • +Vue 콘솔 (실시간 트레이스 + 결재)
  • +무료 / 유료 모드 전환
  • +비용 안전장치 3종
  • +회귀 테스트 · README
  • +에이전트 추가 튜토리얼
  • +사용 매뉴얼 (Docx)
  • +납품 후 2주 버그 수정

이번 범위 밖

  • 클라우드 배포 · 도메인
  • 사용자 인증
  • DB 영속화 (현재 메모리)
  • 외부 도구 연동 (검색 · 파일)
  • 스트리밍 응답
  • 에이전트 4종 이상
  • 모바일 전용 화면

범위 밖 항목은 구조상 막아둔 것이 아니라 이번 일정에서 뺀 것입니다. 예를 들어 DB 영속화는 저장소 부분의 메서드 두 개만 교체하면 되고, 외부 도구는 실무자 에이전트에 함수를 추가하는 형태로 붙습니다. 필요해지면 직접 붙이실 수 있게 문서로 안내드립니다.

일자작업
일요일A2A 프로토콜 계층 · 에이전트 3종 · 재작업 루프
월요일Vue 콘솔 · 비용 안전장치 · 매뉴얼 · 문서화 · 납품

09

착수 전 확인 부탁드립니다

아래 세 가지만 정해 주시면 바로 시작하겠습니다.

Q1에이전트에게 어떤 일을 시키는 데모로 만들까요?
화면은 이미 정해져 있습니다. 에이전트들이 주고받는 대화가 실시간으로 쌓이고 마지막에 승인 버튼이 있는 관제 화면은 그대로 만들어 드립니다. 여기서 여쭙는 것은 그 화면 안에서 에이전트가 실제로 처리할 일감입니다.

기본안은 짧은 보고서 작성입니다. 실무자가 보고서를 쓰고, 검증자가 문단 수 · 길이 · 금지어를 확인해 통과 또는 반려를 판정합니다. 반려 사유가 화면에 그대로 보여서, 세 에이전트가 어떻게 협업하는지 가장 알아보기 쉬운 예입니다.
다른 일감으로 바꿔도 됩니다
일감실무자가 만드는 것검증자가 보는 것
보고서 작성 기본안 3문단 보고서 문단 수 · 길이 · 금지어
이메일 초안고객 응대 메일인사말 · 서명 · 존댓말
상품 소개문제품 설명가격 · 규격 등 필수 항목
회의록 요약요약본결정사항 · 담당자 표기
일감이 무엇이든 화면과 구조는 그대로이고, 비용과 일정도 달라지지 않습니다. 바뀌는 것은 실무자와 검증자가 다루는 내용뿐입니다. 염두에 두신 업무가 있으면 검증 기준으로 삼고 싶은 조건과 함께 알려주십시오.
Q2OpenAI API 키는 직접 발급하시겠습니까?
고객님 계정으로 발급하시길 권합니다. 사용량을 직접 통제하실 수 있습니다. 무료 모드는 키 없이 동작하므로, 키 발급 전에도 구조 확인은 가능합니다.
Q3실행 환경이 Windows인가요, Mac인가요?
Python 3.11 이상이면 양쪽 다 동작하지만, 실행 스크립트를 해당 환경에서 검증해 드리겠습니다.