CPU가 명령어 순서를 바꿔 실행해도 최종 결과는 유지한다는 1988년 Smith-Pleszkun의 Reorder Buffer(ROB) 논문 내용이 2026년 AI 코딩 에이전트의 효율을 결정하는 핵심 로직으로 부활했다. 복잡한 고속도로에서 빠른 차가 먼저 가되, 톨게이트에서는 원래 순서대로 정산하는 것과 같은 원리다. 이 하드웨어 설계 방식이 소프트웨어 스케줄러로 이식되었다.
AI 에이전트를 사용하는 개발자가 가장 크게 체감하는 병목은 바로 '대기' 시간이다. 에이전트가 코드를 짜고, 테스트하고, 수정하는 과정을 순차적으로 기다려야 하기 때문이다. 특히 여러 서브에이전트를 띄워 대규모 작업을 처리할 때, 앞선 작업이 끝나지 않으면 다음 작업이 준비되어 있어도 실행하지 못하는 비효율이 발생한다. EstreGenesis 2.3은 이를 해결하기 위해 하드웨어의 명령어 처리 로직을 도입해 어떤 작업을 먼저 실행하고 어떻게 결과를 병합할지를 정밀하게 제어한다.
에이전트 간 경계를 허무는 A2A WebSocket 라이브보드 'Constellation'
코드를 작성한 에이전트의 결과물을 다른 에이전트에게 검수받으려면 사람이 직접 내용을 복사해 붙여넣거나, 부모 에이전트가 중간에서 메시지를 전달하는 단방향 구조를 거쳐야만 했다. EstreGenesis는 A2A(Agent-to-Agent) WebSocket 브릿지를 도입해 이러한 부모-자식 간의 종속 관계를 끊어낸다. Claude Code나 Cursor 같은 각 에이전트가 자신의 IDE 세션을 유지하는 상태에서, 별도의 데몬 프로세스가 WebSocket 라이브보드에 접속해 다른 에이전트의 대화창으로 메시지를 직접 송신한다. 이는 상위 노드가 하위 노드를 생성하고 결과를 회수하는 기존 방식에서 벗어나, 동등한 권한을 가진 노드들이 실시간으로 데이터를 주고받는 Peer-to-Peer 모델이다.
에이전트의 역할을 main, local, upstream, collab 네 가지로 분리해 운용 효율을 높였다. 전체 공정을 설계하고 관리하는 오케스트레이터 PM 역할의 main, 실제 구현을 담당하는 local, Hermes Agent와 같은 자율 에이전트 peer인 upstream, 그리고 외부 협업자 peer인 collab이 그 구성이다. main 에이전트가 local 워커에게 Delegate(위임) 메시지를 보내면, 워커는 자신의 IDE 환경에서 즉시 코드를 실행하고 WorkerReport(보고) 형식으로 결과를 회신한다. 이 과정에서 각 에이전트의 자동 승인 모드(AutoMode)를 활성화해 사람의 개입 없이 메시지가 흐르도록 설계한다.
응답 후 런타임이 종료되는 턴(turn) 기반 에이전트의 특성은 self-wake watcher 패턴으로 해결했다. 브릿지 데몬이 파일 IO 기반의 inbox와 outbox를 통해 메시지를 수신하면, 백그라운드에서 상주하는 감시자가 이를 감지해 다음 턴을 스스로 시작하는 구조다. 이 방식은 셸 세션과 분리된(detached) 상태로 동작하므로 에이전트가 대기 상태에서도 외부 신호를 받아 즉각적으로 반응할 수 있다. 여기에 모든 에이전트의 작업 내역과 메시지, 현재 상태를 단일 화면에 출력하는 대시보드를 제공해 협업 흐름을 파악하고 재구성한다.
Constellation.md 파일과 `constellation/*.eux` 컴포넌트 스펙에 시스템의 구체적인 동작 규격이 기록되어 있다. 사용자는 별도의 비공개 런타임을 설치하지 않고도 문서에 명시된 프로토콜을 참조해 자신의 환경에 맞게 브릿지를 구축할 수 있다. A2A 통신 체계와 역할 분리 모델의 전체 소스 코드는 EstreGenesis GitHub 저장소를 통해 공개되어 있다.
실시간 통신 체계가 갖춰진 뒤에는 수많은 에이전트가 동시에 쏟아내는 작업을 효율적으로 배치하는 스케줄링의 문제가 남는다.
CPU 아키텍처를 이식한 작업 스케줄링 모듈 'Superscalar'
서브에이전트에게 여러 작업을 동시에 맡기면 작업 간의 의존성과 사용자 승인 대기 시간이라는 병목이 발생한다. EstreGenesis 2.3의 Superscalar 모듈은 비순차 실행(OoO)과 분기 예측(Speculation) 기법을 에이전트 스케줄링에 적용해 처리량(throughput)을 높인다.
issue_width 5차원 공식이 Superscalar의 핵심 작동 원리다. 시스템은 한 시점에 실행할 서브에이전트의 수를 다섯 가지 제약의 최솟값으로 결정한다. Anthropic이 제시한 작업 난이도별 effort band, pace_mode 상한, Little's Law에 기반한 처리량, Kanban WIP 상한, 그리고 autonomy_available_workers(자동 승인 모드가 활성화된 워커 수)가 그 기준이다. 특히 자동 승인 모드가 꺼진 워커는 매 동작마다 사용자 권한 창을 띄워 전체 처리량을 저하시키므로, 시스템은 가용 자원을 엄격히 필터링해 사용자 개입 구간과 자율 실행 구간을 분리한다.
Tomasulo 알고리즘과 Reorder Buffer(ROB) 패턴을 도입해 실행 순서를 관리한다. 의존성이 해결된 작업은 선언된 순서와 관계없이 즉시 실행하되, 결과는 반드시 선언된 순서대로 retire(병합)하여 사용자가 논리적인 흐름을 유지하며 결과를 확인하게 한다. 또한, 2단계 검증을 거치는 Speculation 기법은 'consider X' 단계에서 사용자 승인을 받은 뒤 'execute X'를 수행하며, 예측이 빗나갈 경우 해당 worktree를 즉시 폐기한다. 30k에서 60k 토큰 구간에서는 spawn 오버헤드와 병렬 이득을 비교하는 Cost-benefit gate가 작동하여, 작은 작업은 인라인으로 처리하고 큰 작업만 병렬로 분산한다.
실제 dogfooding 로그를 통해 이 구조를 검증했으며, 토요타 안돈(Andon) 원칙에 따라 시각적 신호와 비상 정지 기능을 포함했다.
python
Superscalar 스케줄러의 의사결정 로직 예시
def calculate_issue_width(task_queue):
constraints = [
effort_band_limit(task_queue),
pace_mode_cap(),
littles_law_throughput(),
kanban_wip_limit(),
autonomy_available_workers()
]
return min(constraints)
의존성 만족 시 즉시 실행(OoO) 및 결과 순서 보장(ROB)
if dependency_satisfied(task) and rob_slot_available():
dispatch_to_worker(task)
5가지 제약 조건을 기반으로 병렬 처리 한계를 실시간으로 결정하는 것이 Superscalar의 방식이다. 개발자가 작업 선후 관계를 일일이 지정하지 않아도, 시스템이 정의한 자율 원칙에 따라 에이전트가 최적의 실행 경로를 수행한다.
CPU의 자원 할당 논리를 이식한 EstreGenesis는 AI 에이전트의 작업 우선순위와 가용 자원을 계산해 배분한다. 이는 개별 모델의 성능을 넘어, 다수의 에이전트를 정밀하게 제어하는 스케줄러 중심의 개발 환경을 구현한 사례다.




