Build with TRAE Seoul(ByteDance) 해커톤 대상 수상작. 여러 AI 에이전트가 토론으로 결론에 도달하고, 그 결과물이 사업 아이디어 보고서와 랜딩 페이지로 바로 나오는 멀티에이전트 토론 플랫폼.
개요
당일치기 해커톤 두 번째 출전이었습니다. 첫 해커톤에서 열심히 준비했는데 수상자들은 라이브 데모 없이 촬영된 동영상으로도 수상하는 모습을 봤기에, 이번에는 프로젝트를 완성한 뒤 동영상 촬영으로 출품하겠다는 전략을 세워갔습니다. 그런데 심사기준이 배포된 프로젝트 URL을 제출하고, 사람 심사위원과 AI 심사위원이 직접 테스트하는 방식이었습니다. 전략이 완전히 어긋나서 멘붕 상태로 시간을 허비했고, 3시간 정도 남았을 때 Agent의 본질을 떠올렸습니다. 사람이 Agent를 만드는 이유는 결국 "자동화" 또는 "자율적인 의사결정을 통한 보조"인데, 단순히 답변을 생성하는 AI가 아니라, 서로 다른 관점이 충돌하고 검증되면서 결론이 만들어지는 과정을 보여주고 싶었습니다.
도전
남은 3시간 안에 배포까지 완료할 수 있는 시스템을 설계해야 했습니다. 시간이 부족했기에 해커톤 주제였던 "에이전트"의 본질에 집중했고, 에이전트 정의에 맞는 시스템을 보여주고 싶었습니다. 평소 에이전트에 대한 철학은 단순한 자동화 파이프라인이 아니라, 사용자의 의도를 분석하고 근거 있는 판단을 내릴 수 있는 시스템이었기에, 사용자의 의도를 다중 각도에서 분석하고 대안을 도출할 수 있는 "에이전트 토론 플랫폼"을 설계하게 됐습니다.
접근
진짜 에이전틱한 시스템이란 뭔가를 생각했을 때, 핵심은 오케스트레이터(진행자)가 사용자의 도메인에 맞는 전문가 에이전트를 동적으로 생성하고, 토론이 깊어지면 새로운 전문가를 소환하고, 더 이상 필요 없는 에이전트는 퇴장시키는 것까지 전부 사용자 개입 없이 자율적으로 돌아가면서 결론에 도달하는 구조라고 봤습니다. 그래서 에이전트들이 채팅 UI 안에서 자유 토론으로 충돌하고 수렴한 결과가 그대로 사업 아이디어 보고서와 랜딩 페이지로 나오는 흐름을 목표로 잡았습니다.
구조
AsyncGenerator 기반 오케스트레이터 + SSE 스트림 + useReducer 상태 머신의 3-layer 분리를 채택했습니다. 오케스트레이터는 30턴 자유 토론을 돌리고, 12·22턴에 비고정 에이전트를 교체해 특정 관점이 토론을 지배하지 않도록 하면서 새로운 시각이 지속적으로 유입되게 만들었습니다. 자유 토론만 계속되면 결론 없이 발산하기 쉬웠기 때문에 25턴 이후에는 강제로 실행 가능한 방향으로 압축되도록 설계했습니다. 토론 결과는 단순 텍스트 요약으로 끝나지 않고, 구조화된 사업 아이디어로 정제된 뒤 9종 디자인 템플릿 중 하나로 실제 랜딩 페이지 형태의 결과물로 즉시 변환됩니다.
실행
PM 에이전트(오케스트레이터)는 항상 존재하며 토론을 진행하는 역할입니다. 각 에이전트가 주제에서 크게 벗어나지 않도록 하네스 역할도 하면서, 토픽별 전문가는 동적으로 소환되고, 디자이너 에이전트는 3턴에 합류합니다. 사용자가 결과 랜딩 페이지를 거절하면 PM이 거절을 공지하고 추가 8턴 토론 → 새 랜딩 페이지 생성. 토론에 직접 텍스트를 입력하지 않고도 사람의 결정이 시스템에 반영되는 Human-in-the-Loop 구조입니다.
결과 & 성과
Build with TRAE Seoul(ByteDance) 대상 수상. 26 커밋·0 머지 충돌로 PRD부터 동작 데모까지 완성했고, 채팅 UI가 그대로 랜딩 페이지로 전환되는 흐름이 심사 핵심 포인트로 작용했습니다. 오케스트레이터 + 상태 머신이 토론의 발산을 막고 수렴으로 끌고 가는 척추 역할을 했습니다.
다른 프로젝트