
Claude, ChatGPT, Gemini가 합의할 때까지 논쟁하게 만들기 — 그리고 이제 함께 연구하기
요약
Claude, ChatGPT, Gemini를 병렬로 구동하여 서로의 답변을 검증하고 합의를 도출하는 auto-browser 도구를 소개합니다. MCP를 활용해 브라우저 세션에 연결하며, 모델 간 교차 수정을 통해 답변의 수렴도를 높이는 워크플로우를 제공합니다.
핵심 포인트
- MCP를 통해 API 키 없이 Chrome 세션에 연결하여 세 모델을 병렬 제어
- 모델 간 투표(AGREE/DISAGREE)를 통한 답변 수렴(Convergence) 측정
- 멀티 프로바이더 심층 연구(Deep Research) 파이프라인 및 보고서 합성 기능
- 각 모델(ChatGPT, Claude)의 UI 특성에 맞춘 프레임 인지 추출 기술 적용
저는 Claude, ChatGPT, 그리고 Gemini를 유료로 사용합니다. 제가 얻는 최고의 답변은 이 모델들이 서로를 검증하게 만들 때 나옵니다. 하지만 이를 위해 세 개의 탭 사이를 복사해서 붙여넣어야 했던 과거의 워크플로우는 최악이었습니다.
auto-browser가 저의 해결책입니다. 이는 제가 이미 로그인되어 있는 Chrome 세션에 연결되는 MCP (Model Context Protocol) 서버로 (DevTools Protocol을 통해 연결되므로 API 키가 필요 없습니다), 세 가지 채팅 UI를 병렬로 구동합니다. Claude Desktop이 MCP 도구를 통해 이를 오케스트레이션합니다.
실제 구조를 통한 합의 (Consensus)
세 모델 모두에게 동일한 프롬프트를 전달합니다. 그 후 교차 수정 (cross-pollination) 라운드를 진행하며, 각 모델은 다른 모델의 답변을 보고 수정합니다. 라운드는 라인에 고정된 VERDICT (평결): AGREE (동의) | DISAGREE (비동의) 투표로 종료됩니다. 합의가 이루어지려면 성공한 모델들 사이에서 최소 두 개의 확정적인 AGREE와 zero 개의 DISAGREE가 필요합니다. 예외 케이스를 처리하는 데 실제 엔지니어링 역량이 집중되었습니다. 반대자가 다음 라운드에서 타임아웃(timeout)되면 반대 의견이 유지되도록 했고, 임베딩(embedding) 전에 동료의 평결 라인을 제거하여(다른 모델을 인용하는 모델이 투표를 던질 수 없도록 함), 타임아웃이 마치 답변인 것처럼 다른 모델에게 보여지지 않도록 했습니다.
이것이 무엇을 측정하는지 정확히 말하자면, 정답 여부가 아닌 수렴 (convergence)입니다. 세 모델이 동의하더라도 여전히 틀릴 수 있지만, 모델들이 서로 의견이 일치하지 않는 지점은 제가 확실히 주의를 기울여야 할 곳입니다.
새로운 부분: 멀티 프로바이더 심층 연구 (multi-provider deep research)
v3.2.0에는 연구 파이프라인이 추가되었습니다. 일련의 연구 프롬프트를 전달하면, 각 프롬프트를 여러 프로바이더(provider)로 라우팅하고, 각 프로바이더 고유의 심층 연구 (deep-research) 모드를 실행하며, 긴 실행 시간을 기다린 후, 보고서를 수집하여 모든 보고서를 바탕으로 작업별 최종 보고서를 합성합니다.
보고서 수집을 진정으로 재미있게 만들어준 세 가지 프로바이더의 특이점 (quirks):
- ChatGPT는 샌드박스 처리된 교차 출처 iframe (cross-origin iframe) 내부에 심층 조사 보고서 (deep-research reports)를 렌더링합니다. 메인 DOM에는 어시스턴트 메시지가 전혀 나타나지 않지만, 완성된 보고서는 화면에 바로 떠 있는 상태가 됩니다. 단순한 스크래핑 (scraping) 방식으로는 실행이 실패한 것으로 결론짓게 됩니다. 해결책은 프레임 인지 추출 (frame-aware extraction)입니다.
- Claude는 전체 보고서를 확장 가능한 Document artifact 뒤에 배치합니다. 메시지 DOM에는 미리보기만 포함됩니다. Harvest는 이 artifact를 열어 전체 텍스트를 가져옵니다.
- Gemini는 조사를 시작하기 전에 연구 계획 (research plan)에 대한 확인을 요구합니다. 러너 (runner)는 이 관문을 자동으로 통과합니다.
심층 조사 (Deep research)는 실제 비용과 실제 할당량 (quota)을 소모하므로, 지출 안전성 (spend-safety)은 기능이 아닌 설계 불변량 (design invariant)입니다. 즉, 전송된 작업은 절대 재전송되지 않으며, 완료된 보고서를 언제든 무료로 다시 수집할 수 있도록 채팅 URL이 보존됩니다. 또한, 지속되는 할당량 장부 (예: Gemini의 일일 제한)와 쿨다운 탐지 (cooldown detection)를 통해 큐 (queue)가 할당량을 소진하는 대신 대기하도록 합니다.
모델 선택, 기본값은 비용이 많이 들기 때문
모든 전송은 명시적인 모델을 결정합니다 — 호출별 → 작업별 → 설정된 기본값 순으로 결정되며, 탭에서 마지막으로 사용했던 모델을 조용히 상속받는 일은 절대 없습니다. 저는 이를 비싼 대가를 치르고 배웠습니다. 테스트는 설계상 각 프로바이더의 가장 저렴한 모델을 고정하여 사용합니다.
솔직한 상태
MIT 라이선스. macOS는 엔드 투 엔드 (end to end)로 실제 작동이 검증되었습니다. Windows/Linux Chrome 경로는 존재하지만 테스트되지 않았습니다. 22개 파일로 구성된 Chrome 미사용 유닛 테스트 스위트 (unit suite)가 CI (Node 20/22)에서 실행됩니다. 실제 e2e 게이트는 사용자의 로그인된 Chrome이 필요하며 CI에서는 절대 실행되지 않습니다. 그리고 분명히 말씀드리자면: 이 도구는 프로바이더의 웹 UI를 자동화하며, 이는 서비스 약관 (terms of service)에 의해 제한될 수 있습니다. 이 도구는 사용자의 개인 유료 계정을 위해 구축되었으며, 모든 책임은 사용자에게 있습니다. UI 자동화는 UI가 변경될 때 깨지기 마련이며, 바로 그런 날을 위해 셀렉터 레지스트리 (selector-registry) 오버라이드 파일가 준비되어 있습니다.
Repo: https://github.com/mythicalhacker/auto-browser
Release notes: https://github.com/mythicalhacker/auto-browser/releases/tag/v3.2.0
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기