Skip to content

[epic] Nexus 재편: 협업 산출물 엔진 코어 슬림화 + 기능 spin-off 분화 + 디스패치 효율화 #1601

Description

@jinon86

배경 — 무엇이 문제인가

이 레포의 주 사용 목적은 에이전트간 협업을 통한 코드 등 산출물 구현이다. 그런데 레포가 비대화되면서, 가장 자주 쓰는 기능인 A2A 산출물 구현 루프가 solo 작업 대비 느리고 비효율적으로 변하고 있다는 문제의식이 운영자로부터 제기됐다 (2026-07-22).

실측 (2026-07-22, main 기준):

항목 수치
packages/broker 620 ts 파일 / 222k LOC (src/core/만 396 파일)
packages/docker-runner 37k LOC
packages/openclaw-plugin-a2a 33k LOC
스크립트 표면 375개 (scripts/ 174 + packages/broker/scripts/ 201)

체감을 뒷받침하는 계측 근거:

목표

  1. 코어 재정의: 이 레포의 주 기능 = 에이전트간 협업을 통한 산출물 구현 엔진 (디스패치 → 클레임 → 실행 → 검증 → 증거 회수 → 머지 루프). 이 루프의 속도와 신뢰성이 제1 지표.
  2. 분화(spin-off): A2A를 통해 얻은 기능 중 독립 제품 가치가 있는 것을 정리해 별도 패키지/레포로 분화.
  3. 단순화: 코어 코드를 깔끔하게 — 모듈 경계 명확, 스크립트 표면 축소, 실험 잔재 정리.
  4. 효율화: 디스패치 루프가 solo 대비 경쟁력을 가지도록 레이턴시/세레모니 비용 절감.

핵심 원칙 — modularize-first, extract-second

222k LOC 모놀리스를 바로 다레포로 쪼개면 계약 버저닝·크로스레포 CI·릴리스 조율 비용이 먼저 발생한다. 그래서:

  1. 1단계: 레포 내부에서 독립 packages/* 경계로 분리 (import 경계 + 버전 계약 강제)
  2. 2단계: 경계가 안정되고 독립 릴리스 수요가 확인된 것만 별도 레포로 추출

전 과정 #1500 (core JSON-RPC TCK blocking gate)을 분할 회귀의 안전판으로 사용한다.

Spin-off 후보

기준: 독립 제품 가치 + 경계 명확성 + 계약 안정성.

후보 내용 근거/선행
a2a-policy-referee 선언적 정책 문서(a2a.broker.policy.v1) + create/claim 시점 warn/enforce 평가. 경계가 가장 깨끗 (broker-policy.ts + broker-task-admission.ts) #1480 (이미 후보 등록), #1355 G1-d T1+T2 enforce 전환 완료(2026-07-22, LOG-20260722-soonwook-7)
에이전트 작업증명(attestation) 툴킷 "이 산출물을 어떤 에이전트가 어떤 검증으로 만들었는가"의 증명 체인: finalizer verdict 서명/keyring + 결정적 evidence assembly(JCS contentDigest) + redaction gate + spawn gate + budget counter. A2A 밖에서도 쓸 수 있는 독립 가치가 가장 큰 덩어리 #1383 V-c, #1537 Phase-1 패킷 체인
bounded-review-lifecycle PR 리뷰 루프 거버넌스: 계약 4종(IntentContract/ReviewLineageBudget/FindingLedger/ReviewReceipt) + record-mode 엔진. PR 리뷰 관리 제품으로 독립 가능 #1518 Phase 1~3a 머지 완료

코어에 남기는 것: 디스패치/클레임/실행/완료/증거 회수 루프 + 워커·라운드·상태저장 + TCK.

코어 슬림화 축

효율화 축 — "왜 solo보다 느린가"를 정면으로

가설: 현재 A2A 경로는 단순 태스크에도 중량 세레모니(라운드/리뷰/증거/파이널라이저/독립리뷰)를 전부 태운다.

  1. 레이턴시 예산 계측 (선행 필수): create→claim→start→complete 구간별 시간 계측. 지금은 체감만 있고 구간별 수치가 없다. 측정 없는 리팩토링 금지.
  2. fast lane: 저위험·단순 태스크는 경량 경로(단일 워커, 간이 증거), 고위험만 풀 세레모니. G1 정책 엔진 enforce로 "어떤 태스크가 고위험인가"를 선언적으로 구분할 기반이 이미 있음.
  3. 신뢰 비용 제거: worker: generic implementation-intent tasks are auto-acked as succeeded with zero work (false success) #1593 false success, implementation-pipeline: verifier anchoring and non-synchronous gate completion observed live — harden the contract #1596 게이트 계약 — 효율 이전에 신뢰 문제. 느린 것보다 "돌렸는데 안 한 것"이 더 비싸다.

단계 계획

  • P0 — 계측: 디스패치 루프 레이턴시 예산 측정 + 비효율 지점 특정. 산출물: 구간별 레이턴시 리포트 + fast lane 대상 분류 초안.
  • P1 — 첫 패키지 분리: packages/policy-referee (또는 packages/broker-policy)를 레포 내 독립 패키지로 추출. 경계가 가장 깨끗하고 실전 enforce 검증이 시작된 상태. #1480을 작업 이슈로 승격.
  • P2 — attestation 패키지화: verdict 서명 + evidence assembly + redaction/spawn gate를 독립 패키지로 묶고, 독립 레포 분화 여부를 경계 안정성 보고 판단.
  • P3 — fast lane 설계 + 코어 다이어트: 스펙 먼저(spec-first 관례 준수), 스크립트/모듈 정리와 병행.
  • 전 단계: TCK blocking + 실 A2A 태스크 증거(카나리/벤치) 유지, broker reload·배포는 별도 운영자 승인.

성공 지표 (제안)

  • 디스패치 루프 p50/p95 레이턴시의 계측 baseline 대비 개선
  • 벤치 파일럿 재측정에서 A2A 협업이 solo와 최소 대등 (2:0 패배 → 역전 또는 조걸별 승부)
  • 코어(broker) LOC/파일 수·스크립트 수 감소 추이
  • spin-off 패키지의 독립 테스트/버저닝 통과

비목표 (non-goals)

관련 이슈 매핑

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmonorepoMonorepo consolidation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions