Ramp 엔지니어링 팀은 엔지니어처럼 모든 맥락과 도구를 갖추고 작업을 검증할 수 있는 자체 코딩 에이전트 'Inspect'를 개발했습니다. Inspect는 샌드박스 환경에서 실행되어 빠르고 안전하며, 현재 Ramp 전체 풀 리퀘스트(PR)의 약 30%를 처리할 만큼 높은 효율을 자랑합니다. 이 글은 누구나 자신만의 강력한 코딩 에이전트를 구축할 수 있도록 Inspect의 핵심 기술 스펙과 구현 방법을 상세히 공유합니다.


1. Inspect: 엔지니어처럼 일하는 에이전트 🤖

2026년 1월, 우리는 자체 백그라운드 코딩 에이전트인 Inspect를 구축했습니다. Inspect는 단순히 코드를 작성하는 것을 넘어, 실제 Ramp 엔지니어처럼 모든 맥락과 도구를 활용해 자신의 작업을 스스로 검증하고 업무의 완결성을 높입니다.

백엔드 작업 시에는 테스트를 실행하고, 원격 측정을 검토하며, 기능 플래그(Feature flags)를 조회합니다. 프론트엔드 작업의 경우, 시각적으로 결과물을 검증하고 스크린샷과 라이브 미리보기를 사용자에게 제공합니다.

에이전트는 주체성(Agency)을 가져야 합니다. 그래서 우리는 Inspect가 누락된 맥락이나 도구 때문에 제한받지 않고, 오직 모델의 지능 그 자체에 의해서만 제한되도록 확실히 해두었습니다.

모든 세션은 Modal의 샌드박스 VM(가상 머신)에서 실행되며, 로컬 엔지니어 환경과 동일하게 Vite, Postgres, Temporal 등이 갖춰져 있습니다. 또한 Sentry, Datadog, GitHub, Slack 등 다양한 도구와 연결되어 있어 엔지니어링 도구 설정을 갖춘 빌더라면 누구나 기여할 수 있습니다.

빠르고 자유로운 작업 흐름 ⚡

Inspect 세션은 시작이 빠르고 실행 비용이 거의 무료에 가깝습니다. 덕분에 개발자는 로컬 환경을 아낄 필요 없이 마음껏 세션을 생성할 수 있습니다.

  • 같은 프롬프트로 여러 버전을 동시에 실행해보고 가장 좋은 결과를 선택할 수 있습니다.
  • 노트북을 켜지 않고도 모바일로 작업을 지시하고 결과를 확인할 수 있습니다.
  • 퇴근 전 버그를 발견했다면? 세션을 열어두고 아침에 PR을 확인하면 됩니다.

내부 도입률은 폭발적으로 증가하여, 현재 프론트엔드 및 백엔드 저장소에 병합되는 전체 PR의 약 30%가 Inspect에 의해 작성되고 있습니다. 우리는 누구나 이런 도구를 만들 수 있다고 믿으며, 이를 복제하기 쉽도록 아래에 상세한 기술 스펙을 정리했습니다.


2. 샌드박스(Sandbox): 에이전트의 작업 공간 📦

호스팅된 코딩 에이전트의 핵심은 실행 환경입니다. 새 세션을 시작할 때마다 전체 개발 환경이 갖춰진 새로운 샌드박스를 즉시 생성해야 합니다. 여기서 핵심 과제는 개발 환경을 얼마나 빨리 띄우느냐인데, 우리는 Modal을 통해 이 문제를 해결했습니다.

효율적인 이미지 및 스냅샷 전략

우리는 다음과 같은 접근 방식을 사용합니다.

  1. 이미지 레지스트리: 각 코드 저장소(Repository)에 대한 이미지를 정의합니다.
  2. 30분 주기 빌드: 30분마다 저장소를 복제(clone)하고, 종속성을 설치하고, 초기 빌드 명령을 수행하여 이미지를 빌드합니다.
    • GitHub 앱을 통해 토큰을 생성하여 특정 사용자에 종속되지 않게 합니다.
  3. 스냅샷 저장: 완료된 상태의 이미지를 스냅샷으로 저장합니다.
  4. 세션 시작: 저장된 스냅샷에서 새 샌드박스를 시작합니다.
    • 이렇게 하면 저장소는 최대 30분 전의 상태이므로, 최신 코드와의 동기화가 매우 빨라집니다.
  5. 작업 종료 후: 변경 사항이 생기면 또 다른 스냅샷을 찍어두어, 나중에 사용자가 후속 요청을 할 때 복원할 수 있게 합니다.

에이전트 엔진: OpenCode 🛠️

샌드박스 내에서 작업을 수행할 에이전트로 오픈 소스 코딩 에이전트인 OpenCode를 강력히 추천합니다.

  • 서버 우선 구조: TUI나 데스크탑 앱은 단순한 클라이언트일 뿐이므로, 원하는 곳 어디에나 에이전트를 배치할 수 있습니다.
  • 타입이 지정된 SDK: 기술적 구현이 탄탄하고 플러그인 시스템이 포괄적입니다.
  • 코드 자체가 진실: 문서가 불명확할 때 AI에게 OpenCode의 소스 코드를 읽게 하면, 환각(Hallucination) 없이 정확한 동작을 파악할 수 있습니다.

속도 최적화를 위한 팁 🚀

  • 샌드박스 예열: 사용자가 프롬프트를 타이핑하는 순간부터 샌드박스를 예열하고 최신 변경 사항을 동기화하세요. 엔터 키를 누를 때쯤이면 이미 준비가 끝납니다.
  • 즉시 읽기 허용: 최신 코드 동기화가 끝나지 않았더라도 에이전트가 파일 읽기(Research)는 바로 시작할 수 있게 하세요. 단, 파일 쓰기는 동기화 완료 후로 차단해야 합니다.
  • 빌드 단계로 작업 이관: 샌드박스 실행 시간을 줄이기 위해, 가능한 모든 설정(테스트 실행, 캐시 파일 생성 등)을 30분 주기 이미지 빌드 단계에서 미리 수행하세요.

3. API 및 멀티플레이어(Multiplayer) 🤝

다양한 클라이언트(채팅, Slack, 크롬 확장 프로그램 등)의 입력을 처리하고 상태를 동기화하기 위해 API를 구축해야 합니다.

기술 스택: Cloudflare

우리는 Cloudflare의 Durable Objects를 사용합니다.

  • 개별 SQLite DB: 모든 세션은 각자의 SQLite 데이터베이스를 가집니다. 수백 개의 세션이 동시에 돌아가도 성능 저하가 없습니다.
  • 실시간 스트리밍: Cloudflare Agents SDK를 활용해 샌드박스, API, 클라이언트 간의 실시간 토큰 스트리밍을 효율적으로 처리합니다.

멀티플레이어 지원

우리는 멀티플레이어가 미션 크리티컬(Mission-critical)한 기능이라고 믿습니다. 코드 브랜치에서 여러 사람이 작업하듯, 하나의 세션에서 여러 사람이 함께 작업할 수 있어야 합니다.

우리는 멀티플레이어가 미션 크리티컬한 기능이라고 믿으며, 아직 다른 제품에서는 보지 못한 기능입니다.

이 기능은 다음과 같은 상황에서 매우 유용합니다.

  • 교육: PM이나 디자이너에게 AI 활용법을 가르칠 때.
  • 실시간 QA: 팀원들이 실시간으로 변경 사항을 확인하고 즉석에서 수정 요청을 큐에 넣을 때.
  • 코드 리뷰: PR 리뷰 중 수정이 필요한 부분을 코멘트로 남기는 대신 AI에게 즉시 수정을 지시할 때.

인증 및 보안 🔐

GitHub 인증을 사용하여 사용자의 토큰으로 PR을 열도록 하세요. 앱(Bot) 계정으로 PR을 열면 사용자가 본인의 변경 사항을 스스로 승인할 위험이 있으므로, 반드시 사용자 이름으로 PR이 생성되도록 해야 합니다.


4. 클라이언트: 어디서나 작업 가능하게 💻

API와 샌드박스가 준비되었다면, 조직의 업무 방식에 맞는 클라이언트를 구축할 차례입니다.

Slack (슬랙)

팀 커뮤니케이션 도구에 에이전트를 통합하는 것은 매우 효과적입니다.

  • 접근성: 사용자가 별도의 문법을 배울 필요 없이 자연어로 대화하게 하세요.
  • 저장소 분류기: 사용자의 메시지를 분석해 작업할 저장소를 자동으로 선택하는 분류기를 만드세요. 빠르고 저렴한 모델(예: GPT 5.2)을 사용하면 됩니다.
  • 진행 상황 공유: 에이전트가 작업 중일 때와 완료했을 때를 명확히 알리고, 자체 이모지를 추가해 재미요소를 더하세요.

Web (웹 인터페이스)

데스크탑과 모바일 모두에서 작동하는 세련된 웹 클라이언트를 만드세요.

  • 호스팅된 VS Code: 샌드박스 내부에서 실행되는 VS Code 인스턴스를 제공하여, 로컬 복제 없이도 수동으로 코드를 수정할 수 있게 하세요.
  • 스트리밍 데스크탑 뷰: 웹 프로젝트의 경우, 에이전트가 브라우저를 조작하고 검증하는 과정을 실시간으로 볼 수 있게 하세요.
  • 통계 페이지: 조직 전체의 사용량과 병합된 PR 수를 추적하여 보여주세요. 이는 에이전트가 가치 있는 일을 하고 있음을 증명하는 가장 중요한 지표입니다.

Chrome Extension (크롬 확장 프로그램)

비엔지니어 직군의 참여를 유도하기 위해, React 앱을 시각적으로 수정할 수 있는 크롬 확장 프로그램을 만드세요.

  • 시각적 수정: 화면의 요소를 선택하고 채팅으로 변경 사항을 요청할 수 있습니다.
  • DOM 트리 활용: 단순 스크린샷 대신 DOM과 React 내부 트리를 활용해 토큰 비용을 절약하세요.
  • 배포: 관리된 기기 정책(Managed device policy)을 사용하면 크롬 웹 스토어를 거치지 않고 사내 브라우저에 강제로 설치 및 배포할 수 있습니다.

마치며

우리는 자체 도구를 구축함으로써 기성 제품보다 훨씬 강력하고 우리 조직에 딱 맞는 시스템을 만들 수 있었습니다. Inspect의 도입으로 개발 속도는 빨라졌고, 동시성에는 제한이 없어졌습니다. 이제 여러분도 이 가이드를 바탕으로, 링크를 코딩 에이전트에 붙여넣고 구축을 시작해 보세요. 여러분만의 강력한 동료를 만들 수 있을 것입니다. 🏗️

Related writing

Related writing

HarvestEngineering Leadership · AIKorean

Software 3.0 시대, 조직의 생산성을 끌어올리는 AI 하네스 구축하기

이 글은 개발팀 내에서 개인의 역량에 크게 의존하고 있는 AI(LLM) 활용 방식을 조직 전체의 체계적인 시스템으로 발전시켜야 한다는 핵심적인 메시지를 담고 있습니다. 특히 Claude Code의 플러그인과 마켓플레이스 생태계를 단순한 확장 도구가 아닌, 팀의 업무 방식과 지식을 코드로 만...

Mar 8, 2026Read more
HarvestEngineering LeadershipKorean

미첼 하시모토의 새로운 코드 작성법: AI 시대의 소프트웨어 엔지니어링

이 영상은 하시코프(HashiCorp)의 공동 창립자이자 고스티(Ghostty)의 창시자인 미첼 하시모토와의 인터뷰를 담고 있습니다. 그는 소프트웨어 엔지니어링에 입문한 과정, 하시코프의 설립 역사, 그리고 널리 사용되는 오픈소스 도구를 성공적인 비즈니스로 전환하는 데 겪었던 어려움에 대해...

Feb 25, 2026Read more
HarvestStartup · Engineering LeadershipKorean

Granola 성공 비결: 혼잡한 AI 노트 시장에서 돋보이고 과감한 리브랜딩으로 도약하기

이 영상은 'The Design VC'의 호스트 앤디 버드(Andy Budd)가 AI 노트 앱 'Granola'의 공동 창립자 샘 스티븐슨(Sam Stevenson)과 나눈 대화를 요약합니다. Granola는 치열한 AI 노트 시장에서 어떻게 성공적으로 자리매김하고 과감한 리브랜딩을 진행했...

Feb 16, 2026Read more