본문으로 건너뛰기

© 2026 Molayo

GH Trending릴리즈2026. 05. 25. 20:32

소프트웨어 전달을 위한 워크스페이스 중심의 다중 에이전트 코디네이션 플랫폼 Routa

요약

Routa는 소프트웨어 개발 프로세스를 관리하기 위한 워크스페이스 중심의 다중 에이전트 코디네이션 플랫폼입니다. 목표 설정부터 백로그 정제, 개발, 검토, 보고에 이르기까지 각 단계를 전문 에이전트가 담당하여 체계적인 워크플로우를 제공합니다.

핵심 포인트

  • 워크스페이스 중심의 다중 에이전트 협업 구조
  • Backlog Refiner부터 Done Reporter까지 단계별 전문 에이전트 배치
  • Next.js 웹과 Tauri 데스크톱을 지원하는 이중 백엔드 아키텍처
  • 검토 및 검증을 위한 강력한 게이트 시스템(Entrix Fitness 등) 구축

소프트웨어 전달을 위한 워크스페이스 중심의 다중 에이전트 코디네이션 플랫폼

데모 • 아키텍처 • 작동 방식 • 왜 Routa인가 • 빠른 시작 • 문서 • 중국어

Routa는 소프트웨어 전달을 위한 워크스페이스 중심의 다중 에이전트 코디네이션 플랫폼입니다. 목표, 작업(tasks), 세션, 추적(traces), 증거(evidence), 검토 상태를 단일 채팅 스레드 안에 묻어두지 않고 보드에 보이도록 유지합니다.

릴리스 • 아키텍처 • 기능 트리 • 빠른 시작 • 문서 사이트 • Slack • 기여하기

현재 구현은 두 개의 분리된 제품이 아닌, 의도적으로 이중 백엔드(dual-backend)로 구성되어 있습니다.

  • 웹: src/ 내의 Next.js 페이지 및 라우트 핸들러

  • 데스크톱: apps/desktop/ 내의 Tauri 쉘

crates/routa-server/에 있는 Axum 서버가 백엔드를 담당합니다.

  • 공유 경계(Shared boundary): 두 런타임 모두 api-contract.yaml에 정의된 동일한 워크스페이스, 세션, 작업, 추적, 코드베이스, 작업 트리(worktree), 및 검토 의미론을 보존합니다.

  • 통합 표면(Integration surfaces): ACP, MCP, A2A, AG-UI, A2UI, REST, 그리고 SSE

전달 게이트는 단일 리뷰어 페르소나가 아니라 쌓여 있는 의사 결정 경로입니다.

  • Harness Monitor는 추적, 변경된 파일, 명령어, git 상태 및 기여도를 표면화하여 '무슨 일이 일어났는지'에 답합니다.
  • Entrix Fitness는 강력한 게이트(hard gates), 증거 요구 사항, 파일 예산 또는 정책 검사를 시행하여 '무엇이 참이어야 하는지'에 답합니다.
  • Gate Specialist는 수용 기준을 확인하고 Done, Dev, 또는 인간 에스컬레이션으로 라우팅함으로써 카드가 이동할 수 있는지 여부에 답합니다.
You: 

- You: 자연어로 목표를 설명합니다.
- ROUTA 또는 보드 자동화(board automation)가 해당 목표를 워크스페이스 범위(workspace-scoped)의 카드로 변환합니다.
- Backlog Refiner는 거친 요청을 수용 기준(acceptance criteria), 제약 사항(constraints), 의존성(dependencies), 그리고 INVEST 스냅샷을 포함한 정형 YAML 스토리(canonical YAML story)로 다시 작성합니다.
- Todo Orchestrator는 상위 단계의 카드를 신뢰하지 않고, YAML을 다시 파싱하며, 불충분한 스토리를 거부하고, 실행 준비가 된 브리프(execution-ready brief)를 추가합니다.
- Dev Crafter는 계획을 다시 한번 신뢰하지 않으며, 스토리가 실행 가능하지 않으면 코딩을 거부합니다. 범위 내의 변경 사항만 구현하고, 검증(validation)을 실행하며, 작업을 커밋(commit)하고, Dev Evidence(개발 증거)를 추가합니다.
- Review Guard는 개발자의 자기 평가를 신뢰하지 않고, 각 수용 기준을 독립적으로 확인하며, 테스트와 깨끗한 git 상태를 요구합니다. 그 후 개발자에게 거부하거나 Done으로 승인합니다.
- Done Reporter는 무엇이 배포되었고 어떤 증거가 완료를 정당화했는지 설명하는 짧은 완료 요약(completion summary)을 추가합니다.
- 만약 환경, 의존성 또는 모호함으로 인해 작업이 차단되면, Blocked Resolver는 차단 요인을 기록하고 문제가 암묵적으로 남게 두는 대신 카드를 올바른 레인(lane)으로 다시 라우팅합니다.

| 레인 (Lane) | 전문가 (Specialist) | 프롬프트가 강제하는 사항 | 카드에 기록되는 내용 | 일반적인 인수인계 (Typical handoff) |
|---|---|---|---|---|
| Backlog | Backlog Refiner | 범위를 명확히 하고, 코딩하지 않으며, 카드가 정확히 하나의 정형 YAML 스토리 블록을 포함할 때까지 다음 단계로 진행하지 않음 | 문제 정의, 수용 기준, 제약 사항, 의존성, 범위 외 항목 및 INVEST 체크가 포함된 정형 YAML 스토리 | 스토리가 파싱되고 독립적으로 실행 가능할 때만 Todo로 이동 |
| ... | | | | |

동일한 카드는 시간이 지남에 따라 더욱 엄격해집니다:

- Backlog는 정형 스토리 YAML을 생성합니다.
- Todo는 실행 브리프를 추가합니다.
- Dev는 구현 및 검증 증거를 추가합니다.
- Review는 공식적인 판결과 조사 결과(findings)를 추가합니다.
- Done은 완료 요약을 추가합니다.

이것이 보드가 단순한 시각적 상태가 아닌 이유입니다. 각 컬럼(column)은 다음 전문가가 무엇을 신뢰할 수 있는지를 변화시킵니다.

- ROUTA Coordinator (코디네이터): 먼저 계획을 세우며, 파일을 직접 수정하지 않습니다. 명세(spec)를 작성하고 승인을 기다리며, 작업을 단계별(waves)로 위임하고, 구현 후에는 검증을 위해 GATE를 호출합니다.
- CRAFTER Implementor (구현자): 작업 범위(task scope) 내에 머물며, 리팩토링(refactor)과 범위 확장(scope creep)을 피합니다. 파일이 중복될 경우 다른 에이전트와 협력하며, 부여받은 검증 단계를 실행하고, 작은 단위로 커밋(commit)합니다.
- GATE Verifier (검증자): 오직 수락 기준(acceptance criteria)에 대해서만 검증하며, 증거(evidence)를 필수 사항으로 취급합니다. 부분 승인을 허용하지 않으며, 모호한 신뢰도 대신 명확한 판결(verdict)을 보고합니다.

내장된 레인 프롬프트(lane prompts)는 `resources/specialists/workflows/kanban/*.yaml` 아래에 위치하며,

핵심 역할 프롬프트(core role prompts)는 `resources/specialists/core/{routa,crafter,gate}.yaml` 아래에 위치합니다.

단일 에이전트 채팅(Single-agent chat)은 고립된 작업에는 효과적입니다. 하지만 동일한 스레드 내에서 분해(decomposition), 구현(implementation), 리뷰(review), 증거 수집(evidence collection), 그리고 릴리스 결정(release decisions)을 모두 수행해야 할 때는 한계가 발생합니다.

Routa는 이러한 책임들을 명시적으로 만듭니다:

- 작업은 숨겨진 전역 리포지토리(global repo) 상태가 아닌 워크스페이스(workspace)에서 시작됩니다.
- 칸반 레인(Kanban lanes)은 모든 역할을 하나의 프롬프트에 섞는 대신, 전문가들 사이에서 작업을 라우팅(route)합니다.
- 세션(sessions), 트레이스(traces), 노트(notes), 아티팩트(artifacts), 코드베이스(codebases), 그리고 워크트리(worktrees)는 영구적인 객체(durable objects)입니다.
- 프로바이더 런타임(Provider runtimes)은 프로바이더 특유의 동작이 제품으로 유출되는 대신 어댑터(adapters)를 통해 정규화(normalized)됩니다.
- 리뷰 경계(review boundary)는 단순한 의견을 가진 리뷰어가 아닌, 실제 게이트(gate) 역할을 수행합니다.

- 워크스페이스 범위의 개요(overview), 칸반 보드(Kanban boards), 세션(sessions), 팀 뷰(team views) 및 코드베이스 뷰(codebase views) 생성
- 생성(create), 프롬프트(prompt), 취소(cancel), 재연결(reconnect), 스트리밍(streaming) 및 트레이스 검사(trace inspection) 흐름을 통한 에이전트 세션 실행
- 큐잉(queueing) 및 보드별 자동화(per-board automation)를 통해 전문화된 레인(specialist lanes) 간에 작업 라우팅
- 로컬 저장소(local repositories), 워크트리(worktrees), 파일 검색, Git 참조(refs) 및 커밋 검사(commit inspection) 관리
- GitHub 저장소를 가상 워크스페이스(virtual workspaces)로 가져오고 트리, 파일, 이슈(issues), PR 및 댓글 탐색
- MCP 도구 및 커스텀 MCP 서버 추가
- 일회성 프롬프트를 넘어선 자동화를 위해 스케줄(schedules), 웹훅(webhooks), 백그라운드 작업(background tasks) 및 워크플로 실행(workflow runs) 사용
- 결과(findings), 심각도(severity), 트레이스(traces), 하네스 신호(harness signals) 및 피트니스 보고서(fitness reports)를 통한 변경 사항 검토
- 제품을 로컬 우선(local-first) 데스크톱 모드 또는 셀프 호스팅(self-hosted) 웹 모드로 실행

사용자가 Routa를 사용하고자 하는 방식에 맞는 가장 짧은 경로를 선택하세요.

| 인터페이스(Surface) | 최적의 용도 | 시작하기 |
|---|---|---|
| 데스크톱(Desktop) | 전체 제품 경험, 시각적 워크플로, 로컬 우선 사용 | GitHub Releases에서 다운로드 |
| ... |
- GitHub Releases에서 Routa Desktop을 다운로드합니다.
- 워크스페이스를 생성합니다.
- 하나의 프로바이더(provider)를 활성화합니다.
- 저장소를 연결합니다.
- 임시 작업(ad hoc work)을 위해 세션(Session)에서 시작하거나, 라우팅된 전달(routed delivery)을 위해 칸반(Kanban)에서 시작합니다.

npm install -g routa-cli
routa --help
routa -p "Explain the architecture of this repository"
...

npm install --legacy-peer-deps
npm run dev


`http://localhost:3000`을 엽니다.

.

npm install --legacy-peer-deps
npm run dev

npm install --legacy-peer-deps
npm --prefix apps/desktop install
npm run tauri:dev

docker compose up --build
docker compose --profile postgres up --build


Tauri 스모크 테스트(smoke path)는 데스크톱 셸(desktop shell) 뒤에서 `http://127.0.0.1:3210/`을 사용합니다.

`docs/fitness/README.md`를 공식 검증 규칙집(canonical validation rulebook)으로 사용하세요.

cargo build -p entrix
entrix run --dry-run
entrix run --tier fast
...


| 경로 (Path) | 목적 (Purpose) |
|---|---|
| `src/app/` | Next.js App Router 페이지 및 API 라우트 |
| `src/client/` | 클라이언트 컴포넌트 (Client components), 훅 (hooks), 뷰 모델 (view models), UI 프로토콜 헬퍼 (UI protocol helpers) |
| `src/core/` | ACP/MCP, 칸반 (Kanban), 워크플로 (workflows), 트레이스 (traces), 리뷰 (review), 하네스 (harness), 스토어 (stores)를 위한 TypeScript 도메인 서비스 |
| `apps/desktop/` | Tauri 셸 (shell) 및 데스크톱 패키징 |
| `crates/routa-core/` | 공유 Rust 런타임 기반 (runtime foundation) |
| `crates/routa-server/` | 데스크톱 및 로컬 서버 모드에서 사용되는 Axum 백엔드 |
| `crates/routa-cli/` | CLI 엔트리포인트 (entrypoints) 및 ACP 서빙 명령 |
| `crates/harness-monitor/` | 실행 관찰 (Run observation), 평가 (evaluation), 및 운영자 대상 하네스 모니터 |
| `docs/ARCHITECTURE.md` | 표준 아키텍처 경계 (architecture boundaries) 및 불변량 (invariants) |
| `docs/adr/` | 아키텍처 결정 기록 (Architecture decision records) |
| `docs/product-specs/FEATURE_TREE.md` | 생성된 라우트 (route) 및 엔드포인트 (endpoint) 인벤토리 |
| `docs/fitness/` | 검증 (Validation) 및 품질 게이트 (quality gates) |

- 아키텍처 (Architecture)
- ADR 인덱스 (ADR Index)
- 빠른 시작 (Quick Start)
- 기능 트리 (Feature Tree)
- 피트니스 규칙 (Fitness Rules)
- 하네스 모니터 아키텍처 (Harness Monitor Architecture)
- 기여하기 (Contributing)
- 보안 (Security)

MIT. LICENSE를 참조하세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending TypeScript (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0