agent-orchestra 🎻

LangGraph 멀티에이전트 오케스트레이터 — supervisor가 과제를 분해하면 관점이 다른 리서처 3명이 한 superstep에서 동시에 조사하고, writer가 이어받아 초안을 쓰고, critic이 승인할 때까지 재작성 루프를 돕니다. 이 페이지는 아래 실행 한 번에서 자동 생성되었습니다.

backend: mock (offline) rounds: 1 verdict: approve wall clock: 8ms commit: 779a837

01그래프 구조

리서처 3명은 순차 호출이 아니라 한 superstep에서 동시에 실행되고, Annotated[list, operator.add] 리듀서가 노트를 합쳐 writer에게 넘깁니다. critic의 조건부 엣지가 승인/재작성을 결정하며 라운드 상한으로 종료를 보장합니다.

┌─▶ researcher_requirements ─┐ supervisor ───┼─▶ researcher_risks ────────┼─▶ writer ──▶ critic ──▶ END (fan-out) └─▶ researcher_structure ────┘ ▲ │ └─ REVISE ──┘

02실행 기록

과제: 사내 문의 응대 에이전트 도입 제안서 작성 — 포함: 도입 배경, 비용 추정, 보안 검토, 단계별 일정

supervisor · 계획 수립
1) researcher가 과제의 핵심 항목을 조사한다
2) writer가 조사 노트를 바탕으로 결과물을 작성한다
3) critic이 루브릭 충족 여부를 검수하고 미흡하면 재작성을 요청한다
researcher 1/3 · 병렬 조사
- 도입 배경: 과제 요구사항 — 결과물에 반드시 다뤄야 함
- 비용 추정: 과제 요구사항 — 결과물에 반드시 다뤄야 함
- 보안 검토: 과제 요구사항 — 결과물에 반드시 다뤄야 함
- 단계별 일정: 과제 요구사항 — 결과물에 반드시 다뤄야 함
researcher 2/3 · 병렬 조사
- 리스크 점검: 누락되기 쉬운 예외 상황과 실행 리스크를 결과물에 명시할 것
researcher 3/3 · 병렬 조사
- 형식 점검: 섹션 헤더로 항목을 구분하고 결론 요약을 갖출 것
writer · 초안 작성
## 결과 보고
### 도입 배경
도입 배경에 대한 구체적 계획과 근거를 정리했다.
### 비용 추정
비용 추정에 대한 구체적 계획과 근거를 정리했다.
### 보안 검토
보안 검토에 대한 구체적 계획과 근거를 정리했다.
### 단계별 일정
단계별 일정에 대한 구체적 계획과 근거를 정리했다.
### 리스크 점검
리스크 점검에 대한 구체적 계획과 근거를 정리했다.
### 형식 점검
형식 점검에 대한 구체적 계획과 근거를 정리했다.

> 이전 실행에서 배운 것 반영: 요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.
critic · 검수 (approve)
APPROVE
루브릭 전 항목 충족. 교훈: 요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.

03A2A 메시지 로그

에이전트 간 모든 통신이 Envelope(sender, recipient, intent, content, ts) 봉투로 기록되어 전 hop을 재생할 수 있습니다. 관측·감사 레이어이며, 실제 데이터 전달은 그래프 state 채널이 담당합니다.

보낸 곳받는 곳intent내용
supervisor→ *plan1) researcher가 과제의 핵심 항목을 조사한다 2) writer가 조사 노트를 바탕으로 결과물을 작성한다 3) critic이 루브릭 충족 여부를 검수하고 미흡하면 재작성을 요청한다
researcher_requirements→ writernotes- 도입 배경: 과제 요구사항 — 결과물에 반드시 다뤄야 함 - 비용 추정: 과제 요구사항 — 결과물에 반드시 다뤄야 함 - 보안 검토: 과제 요구사항 — 결과물에 반드시 다뤄야 함 - 단계별 일정: 과제 요구사항 — 결과물에 반드시 다뤄야 함
researcher_risks→ writernotes- 리스크 점검: 누락되기 쉬운 예외 상황과 실행 리스크를 결과물에 명시할 것
researcher_structure→ writernotes- 형식 점검: 섹션 헤더로 항목을 구분하고 결론 요약을 갖출 것
writer→ criticdraft## 결과 보고 ### 도입 배경 도입 배경에 대한 구체적 계획과 근거를 정리했다. ### 비용 추정 비용 추정에 대한 구체적 계획과 근거를 정리했다. ### 보안 검토 보안 검토에 대한 구체적 계획과 근거를 정리했다. ### 단계별 일정 단계별 일정에 대한 구체적 계…
critic→ writerreviewAPPROVE 루브릭 전 항목 충족. 교훈: 요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.
critic→ *lesson요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.

04절차적 메모리

critic이 승인하면 그때 얻은 '교훈'을 JSON으로 영속화하고, 다음 실행에서 writer 프롬프트에 자동 주입합니다. 같은 교훈이 반복되면 중복 저장 대신 강화 횟수를 올립니다.

교훈강화
요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.17회 강화
요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.8회 강화
요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.8회 강화
요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.8회 강화
요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.8회 강화
요구 항목을 섹션 헤더로 명시하면 누락이 줄어든다.8회 강화

05회귀 하네스 — 검출력 실측

오프라인에서 결정적으로 도는 6개 태스크 하네스입니다. 통과율은 모델 품질이 아니라 배선 회귀 신호입니다. 아래 변이 주입 표는 python -m tools.mutation_check가 실제로 측정해 커밋한 eval/mutation_results.json에서 렌더됩니다 — 구조 변이는 잡아내고, 관측 레이어 변이는 통과시키는 사각지대까지 그대로 공개합니다.

변이통과율검출
baseline (no mutation)6/6BASELINE
drop fan-out edge (researcher_requirements removed)0/6DETECTED
drop note join (writer sees no notes)0/6DETECTED
no-op A2A envelope log6/6MISSED
block procedural-memory injection6/6MISSED
태스크결과재작성누락 항목
proposal-helpdeskPASS1 라운드
release-notePASS1 라운드
incident-reportPASS1 라운드
onboarding-docPASS1 라운드
ab-test-planPASS1 라운드
vendor-comparePASS1 라운드
합계6/6