Show HN: ROMA는 Claude, Codex 등 여러 코딩 에이전트를 동시에 실행합니다.
hackernews
|
|
📦 오픈소스
#ai 딜
#claude
#codex
#gemini
#멀티 에이전트
#코딩 에이전트
원문 출처: hackernews · Genesis Park에서 요약 및 분석
요약
ROMA는 클로드, 코덱스, 제미니 등 여러 코딩 에이전트를 동시에 실행하여 문제를 병렬로 처리하거나 투표로 최적 해결책을 선정하는 도구입니다. 코디네이터(Caesar)가 작업을 분배하고 결과를 종합하는 네 가지 실행 모드를 제공하며, 각 에이전트는 격리된 깃 워크트리에서 작업 후 자동으로 병합됩니다. Go 1.22 이상과 깃이 필요하며, 사용자가 설치한 CLI 도구를 에이전트로 등록해 TUI나 커맨드라인을 통해 작업을 제어할 수 있습니다.
본문
"It just fires up all the coding agents at once and points them at the same problem." — someone "It not only does nothing, it also burns a lot of tokens." — someone else ROMA runs multiple coding agents simultaneously — Claude, Codex, Gemini, Copilot, OpenCode, or any CLI-driven agent — and orchestrates them into a single coherent result. Instead of asking one agent for the answer, ROMA can: - Parallelize: run the same problem across multiple agents at the same time - Coordinate: let a Caesar (coordinator) agent break down the task, dispatch subtasks to delegate agents, and synthesize the results - Vote: agents propose solutions independently, ROMA collects their outputs and runs anonymous peer review — the best proposal wins - Merge safely: each agent works in an isolated git worktree ; ROMA merges the winning implementation back to your main branch automatically viagit apply --3way The result is not just "what one agent said" — it's the outcome of a structured deliberation process backed by structured artifacts, event records, and policy gates. romad is the kernel. It owns the queue, sessions, task states, policy checks, workspaces, artifacts, and recovery. roma is the client. You use it to run work, inspect progress, approve plans, and debug sessions. ROMA supports these execution modes: | Mode | Description | |---|---| | Direct | One agent, one task — fast and simple | | Fanout | Starter clarifies once, then delegate agents execute in parallel. The starter does not implement code. This is the default multi-agent run mode. | | Caesar | Starter acts as an active coordinator and contributor: clarify, bootstrap, review rounds, follow-up delegation, and possible starter-side implementation. | | Senate | Multi-stage voting flow: agents propose plans, vote on the plan, implement against the accepted plan, then vote again on the implementations before merging the winner. | | Curia | Curia decision flow that produces a DecisionPack + ExecutionPlan for approval-oriented execution paths. | | Graph | DAG-based execution with explicit dependencies; any node can use any mode | curl -fsSL https://raw.githubusercontent.com/liliang-cn/roma/main/install.sh | sh Custom install directory: curl -fsSL https://raw.githubusercontent.com/liliang-cn/roma/main/install.sh | INSTALL_DIR=/usr/local/bin sh The installer: - Detects your OS and architecture (linux/darwin × amd64/arm64) - Uses go install if Go ≥ 1.22 is available, otherwise downloads a prebuilt binary from GitHub Releases - Creates ~/.roma/ (ROMA home directory) - Verifies the binaries actually run after installation - Warns if the install directory is not in PATH If ~/.local/bin is not in your PATH, add it: # zsh echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc # bash echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc Requires Go ≥ 1.22 and git. git clone https://github.com/liliang-cn/roma.git cd roma make install # installs to ~/.local/bin ROMA has no built-in agents. Register whichever CLI coding tools you have installed. For claude , codex , and gemini , command arguments are filled in automatically: roma agent add claude "Claude" $(which claude) roma agent add codex "Codex" $(which codex) roma agent add gemini "Gemini" $(which gemini) # confirm roma agent list roma start # romad started (pid=12345, log=~/.roma/romad.log) # single agent — direct mode roma run --prompt "add input validation to the user registration handler" --agent claude # multi-agent — default fanout mode roma run --prompt "refactor the payment module and add unit tests" --agent claude --with codex # explicit fanout mode roma run --mode fanout --prompt "answer a repo question" --agent codex --with claude # starter participates, with bootstrap / review / follow-up roma run --mode caesar --prompt "build a feature across two agents" --agent codex --with gemini,claude # two-stage plan vote + implementation vote roma run --mode senate --prompt "build a feature and pick the best implementation" --agent codex --with gemini,claude roma status # daemon state + queue summary roma queue list # all jobs roma queue attach # stream live output roma result show # final result summary roma stop roma start [--acp-port ] # start romad in background roma stop # stop romad (SIGTERM, fallback SIGKILL after 10s) roma status # daemon state, queue counts, sqlite stats Logs are written to ~/.roma/romad.log . PID is stored in ~/.roma/romad.pid . roma run --prompt "" [--mode ] [--agent ] [--with ] [--cwd ] [-d] [-f] [--verbose] Notes: - Default mode is fanout . - Default behavior is -f : submit, follow progress, and print the final result when the run completes. - Use -d to submit in the background and return immediately. --verbose prints per-node execution details instead of only the main progress lines. roma queue list [--status ] # list jobs roma queue show # job details as JSON roma queue attach # stream output in real time roma approve # approve a pending job roma reje
Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.
공유