
AIBA: 시각적 추론을 활용하여 50개 이상의 병렬 서브 에이전트를 실행하는 오픈 소스 자율 웹 에이전트 구축
요약
AIBA는 불안정한 DOM 구조에 의존하지 않고, 시각적 추론과 병렬 실행을 결합한 오픈 소스 자율 웹 에이전트 엔진입니다. 이 엔진은 사용자의 목표를 여러 독립적인 서브 에이전트로 분해하여 최대 50개까지 병렬로 실행합니다. 또한, 좌표 기반 상호 작용 방식을 도입하여 UI 변경에 강인하게 작동하도록 설계되었습니다.
핵심 포인트
- DOM 의존성을 벗어나 시각적 추론을 활용한 웹 자동화 구현
- 최대 50개의 서브 에이전트를 병렬로 실행하는 군집 지능 아키텍처
- 좌표 기반 상호 작용(Coordinate-Based Interaction)으로 UI 변경에 강인함 확보
Most browser automation tools break the moment a dynamic DOM changes, a class name gets auto-generated, or a React portal shifts layout states.
(대부분의 브라우저 자동화 도구는 동적 DOM이 변경되거나, 클래스 이름이 자동으로 생성되거나, React 포털이 레이아웃 상태를 전환하는 순간에 작동을 멈춥니다.)
I got tired of fixing brittle selectors, so I spent the last few months solo-building AIBA (Autonomous Internet Browsing Agent) from the ground up.
(저는 불안정한 셀렉터를 수정하는 것에 지쳐서 지난 몇 달 동안 AIBA (자율 인터넷 브라우징 에이전트)를 처음부터 혼자 구축했습니다.)
It is a production-grade, open-source engine designed to execute complex web workflows completely unattended. Instead of relying on fragile DOM trees, AIBA treats the browser as eyes, not just hands—combining parallel execution with visual reasoning.
(이것은 복잡한 웹 워크플로우를 완전히 무인으로 실행하도록 설계된 프로덕션급 오픈 소스 엔진입니다. AIBA는 불안정한 DOM 트리에 의존하는 대신, 브라우저를 단순히 손이 아닌 눈으로 취급하여 병렬 실행과 시각적 추론을 결합합니다.)
Here is how the architecture and optimizations work under the hood.
(내부 아키텍처와 최적화가 어떻게 작동하는지 설명드리겠습니다.)
1. Swarm Intelligence & Parallelism
(군집 지능 및 병렬성)
1. 군집 지능 및 병렬성
(Swarm Intelligence & Parallelism)
AIBA에 높은 수준의 연구 목표를 부여하면, 단일한 선형 에이전트 루프만 실행하는 것이 아닙니다. 이는 병렬적인 군집을 조정합니다:
- 1단계 (분해): 오케스트레이터가 사용자의 프롬프트를 분석하여 목표를 독립적인 연구 작업들로 나눕니다.
- 2단계 (병렬 실행): 최대 50개의 서브 에이전트를 병렬로 전개합니다. 각 에이전트는 자체적으로 독립적인 루프를 실행합니다: 사고(Think) -> 계획(Plan) -> 발견(Discover) -> 실행(Execute) -> 종합(Synthesize) -> 보고(Report).
- 3단계 (교차 검증): 모든 서브 에이전트의 발견 사항은 여러 출처에 걸쳐 교차 참조됩니다. 모순되는 부분은 플래그가 지정되고 격리되어 환각(hallucinations)을 완전히 제거하고, 단일하고 신호도가 높은 인텔리전스 브리프를 출력합니다.
2. DOM 우회: 좌표 기반 상호 작용
(Bypassing the DOM: Coordinate-Based Interaction)
UI 변경으로 인해 에이전트가 작동을 멈추는 것을 방지하기 위해, AIBA는 시각 모델과 공간 실행의 조합을 사용합니다:
- Set-of-Marks (SOM) 주입: 활성 DOM에 클라이언트 측 JS 캔버스 오버레이를 동적으로 주입합니다. 이는 상호 작용 가능한 요소들을 시각적 태그로 강조하여, 에이전트의 비전 모델이 즉시 읽을 수 있게 합니다.
- 듀얼 레이어 50px 시각 그리드: DOM 요소가 완전히 분리되거나 포털(portals)에 묻혀 있는 경우, AIBA는 좌표 그리드를 오버레이합니다. 이는 사람처럼 마우스를 물리적으로 움직이는 방식을 모방하여, 픽셀 단위의 상대 좌표를 통해 페이지와 상호 작용합니다.
- 대규모 엔지니어링 최적화
(High-Scale Engineering Optimizations)
50개의 병렬 에이전트를 실행하는 것은 컨텍스트 창과 예산을 소진시킬 수 있습니다. AIBA가 대규모에서 효율성을 처리하는 방법은 다음과 같습니다:
- 동적 DOM 압축 (
--tree-pruned): 원시 HTML(Raw HTML)은 매우 방대합니다. AIBA는 사용자 정의 트리 가지치기 알고리즘을 사용하여 불필요한 배경 노드를 압축하고 제거함으로써, 컨텍스트 창 크기를 3k 토큰으로 엄격하게 제한합니다. - 공유 브라우저 런타임 (
--shared-runtime): 자원 집약적인 Chromium 인스턴스를 50개 실행하는 것을 방지하기 위해, 모든 병렬 에이전트는 단일 핵심 브라우저 프로세스를 통해 라우팅되며 엄격하게 격리된(sandboxed) 브라우저 컨텍스트 내에서 작동합니다. - 예정된 작업 (Scheduled Beats): 간단한
beats.yaml파일을 사용하여 cron 스케줄링 기반의 실행을 정의할 수 있습니다. AIBA는 완전히 헤드리스(headless) 상태로 깨어나 연구 군집(research swarm)을 실행하고, 최종 마크다운 요약본을 사용자의 받은 편지함으로 이메일 전송합니다.
beats:
- name: "경쟁사 모니터링" (competitor watch)
schedule: "0 8 * * *"
...
코드 품질 및 프로젝트 현황
이것은 프로토타입 래퍼(prototype wrapper)가 아닙니다. 저는 이 프로젝트를 상용 등급의 안정성을 염두에 두고 구축했습니다:
- APL (Apache 스타일 오픈 소스 라이선스) 하에 라이선스가 부여되었습니다.
- 257개의 테스트 스위트 전반에 걸쳐 100% 단위 및 통합 테스트 커버리지가 검증되었습니다.
- GitHub Actions를 통해 모든 커밋마다 엄격한 Pyright 정적 타이핑과 Ruff 포맷팅이 적용됩니다.
코드는 완전히 공개되어 있으며, 저는 아키텍처, 토큰 최적화 전략, 그리고 좌표 실행 엔진에 대한 커뮤니티의 피드백을 받고 싶습니다.
만약 이 프로젝트가 흥미롭거나 워크플로우에서 사용하고 싶다면, 저희에게 별점(star)을 주시는 것을 고려해 주세요! 🌟
- GitHub 저장소: github.com/hamza-mughal1/AIBA
- 문서: docs.aibacli.tech
- 실제 사이트: aibacli.tech
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기