Agent-Up 소개: 웹 애플리케이션의 에이전트 구축 버전을 동시에 실행하기
요약
Agent-Up은 여러 AI 코딩 에이전트의 워크스페이스를 동일한 머신에서 격리된 런타임으로 실행할 수 있게 돕는 오픈 소스 데스크톱 앱입니다. 포트 충돌, Docker 서비스 간섭, 브라우저 세션 유출 등의 문제를 해결하여 에이전트별 독립적인 개발 환경을 제공합니다.
핵심 포인트
- 각 에이전트 워크스페이스에 고유한 프로세스, 포트, Docker 서비스를 할당하여 완전한 격리 구현
- 브라우저 세션 및 탭 그룹화를 통해 에이전트별 실행 버전을 명확히 구분
- MCP(Model Context Protocol)를 통해 에이전트가 직접 환경을 관리하고 제어 가능
- Git worktree의 한계인 실행 중인 애플리케이션 격리 문제를 해결
Agent-Up은 동일한 머신에서 여러 개의 AI 코딩 에이전트 워크스페이스 (workspace)를 실행하고 검토할 수 있는 오픈 소스(open-source) 기반의 크로스 플랫폼(cross-platform) 데스크톱 앱입니다. 이 앱은 웹 애플리케이션 개발을 위해 특별히 구축되었으며, 각 에이전트에게는 단순히 격리된 소스 트리 (source tree) 이상의 것, 즉 격리된 런타임 (runtime)이 필요합니다.
Agent-Up의 모든 에이전트 워크스페이스는 각자 고유의 프로세스 (processes), 안정적인 포트 (ports), 격리된 Docker 서비스, 전용 브라우저 세션, 그룹화된 브라우저 탭, 그리고 자체 로그 및 런타임 상태를 가집니다. 에이전트들은 MCP를 통해 환경을 관리합니다. 사용자는 이 모든 것을 한 곳에서 검토할 수 있습니다.
문제점
Git worktree는 소스 코드 격리 문제를 잘 해결합니다. 각 에이전트에게 고유한 worktree를 부여하면, 변경 사항이 분리되어 독립적으로 검토될 수 있습니다. 하지만 worktree는 실행 중인 애플리케이션을 격리하지는 못합니다.
여러 에이전트가 동시에 동일한 웹 앱에서 작업할 때, 각 에이전트는 동시에 전체 스택 (full stack)의 서로 다른 버전을 실행해야 할 수도 있습니다. 추가적인 도구 없이는 다음과 같은 문제들이 빠르게 발생하여 신뢰성이 떨어집니다:
- 워크스페이스 간의 포트 (ports) 충돌
- 에이전트가 스택을 재시작한 후에도 이전 버전의 프로세스가 계속 서비스를 제공함
- 브라우저 탭이 잘못된 워크스페이스를 가리킴
- 관련 프론트엔드 (frontend) 및 백엔드 (backend) 탭이 함께 그룹화되지 않음
- 워크스페이스 간의 Docker 서비스 충돌
- 세션 간의 인증 (authentication) 및 브라우저 상태 유출
가장 최악의 실패는 미묘하게 발생하는 것입니다. 에이전트가 코드를 성공적으로 변경하고 서버를 재시작했지만, 사용자의 브라우저는 여전히 다른 에이전트의 프로세스에 연결되어 있는 경우입니다. 사용자는 잘못된 버전을 검토하고 있으면서도 그 사실을 알지 못하게 됩니다.
Agent-Up이 변화시키는 점
Agent-Up은 각 워크스페이스를 단순한 디렉토리 (directory)가 아닌, 완전하고 격리된 런타임 환경으로 취급합니다.
하나의 워크스페이스 (workspace)는 전체 모노레포 (monorepo)를 나타냅니다: 즉, 여러 개의 웹 애플리케이션 (web apps), API, 워커 (workers), 데이터베이스 (databases), 큐 (queues), 그리고 Docker 서비스들을 포함합니다. 각 워크스페이스는 데스크톱 앱 내부에서 안정적으로 사전 할당된 포트 (ports)와 고유한 브라우저 세션 (browser session)을 부여받습니다. 해당 웹 애플리케이션들은 전용 브라우저 탭 그룹으로 나타납니다. 워크스페이스를 전환한다는 것은 해당 에이전트 (agent)가 관리하는 전체 환경을 전환하는 것을 의미합니다.
여러분은 현재 어떤 워크스페이스를 검토하고 있는지, 어떤 프론트엔드 (frontend) 및 백엔드 (backend) 버전이 실행 중인지, 어떤 브라우저 탭들이 서로 연결되어 있는지, 그리고 어떤 로그 (logs)와 프로세스 (processes)가 해당 워크스페이스에 속해 있는지를 항상 알 수 있습니다.
따라서 여러 에이전트가 하나의 머신에서 동일한 풀스택 (full-stack) 웹 애플리케이션의 서로 다른 버전들을 환경 간의 간섭 없이 동시에 실행할 수 있습니다.
에이전트가 이를 사용하는 방법
에이전트가 작업을 마치면 Agent-Up MCP 서버를 통해 새로운 버전을 시작합니다. 서버가 나머지 작업을 처리합니다: 필요한 애플리케이션을 시작하거나 재시작하고, 선언된 Docker 서비스들을 구동하며, 충돌 없는 포트를 할당하고, 해당 포트들을 각 프로세스에 환경 변수 (environment variables)로 주입하며, 로그와 프로세스 상태를 추적하고, 실행 중인 웹 애플리케이션들을 데스크톱 앱의 브라우저 탭으로 노출합니다.
전체 스택 (stack)을 반드시 Docker화 (Dockerized)할 필요는 없습니다. 많은 웹 애플리케이션의 경우, 프로세스 및 포트 격리 (isolation)만으로도 충돌 없이 여러 버전을 동시에 실행하기에 충분합니다.
모든 에이전트 워크스페이스를 위한 하나의 데스크톱 앱
병렬적인 에이전트 작업을 정리하기 위해 여러 개의 터미널 (terminals), 포트 할당, Docker 스택, 브라우저 창, 그리고 브라우저 프로필 (profiles)을 관리하는 일을 멈추세요.
Agent-Up은 각 에이전트에게 격리된 풀스택 환경을 제공하며, 이 모든 에이전트에 대한 제어권을 단일 데스크톱 앱에 모아줍니다. 이제 드디어 여러분의 앱이 올바른 버전을 보여주고 있는지 고민하지 않아도 됩니다.
Windows 및 macOS 설치 프로그램은 agent-up.themassiveone.net에서 이용 가능합니다.
Agent-Up은 오픈 소스 (open source)입니다 — github.com/agent-up-oss/agent-up에서 코드를 확인하거나, 이슈 (issue)를 보고하거나, 기여 (contribute)할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기