TrueForge: 모델 호출부터 샌드박스, 채팅 UI까지 에이전트 실행 루프를 통째로 제공하는 오픈소스 하네스

TrueForge 소개

LLM으로 에이전트 프로토타입을 만드는 일은 이제 어렵지 않지만, 그것을 실제 서비스로 운영하는 일은 여전히 다른 차원의 문제입니다. 스트리밍 응답, 세션 지속성, 도구 서버 연결, 코드 실행을 위한 샌드박스(Sandbox), 위험한 작업 전의 사람 승인, 그리고 사용자에게 보여줄 UI까지 필요한데, 이 요소들은 에이전트의 핵심 로직과 무관하게 매번 다시 구현해야 하는 기반 시설입니다. 이렇게 모델 바깥에서 에이전트의 실행을 받치는 계층을 하네스(Harness)라고 부릅니다.

이번에 소개할 TrueForge는 AI 게이트웨이 제품을 만드는 TrueFoundry가 공개한 오픈소스 에이전트 하네스로, 모델 호출, MCP 도구, 스킬(Skill), 샌드박스, 승인, 컨텍스트 관리, 세션 상태까지 에이전트 실행 루프 전체를 대신 실행합니다. 이 실행 루프를 3가지 방식으로 노출하는 점이 특징입니다: 함께 제공되는 채팅 UI, TypeScript SDK가 함께 제공되는 HTTP API, 그리고 자신의 앱에 임베드할 수 있는 UI SDK입니다. 즉 팀 내부용 에이전트라면 채팅 UI만으로 바로 쓰고, 자동화 파이프라인이라면 SDK로 호출하며, 자사 제품에 넣을 때는 UI 컴포넌트를 가져다 쓰는 식으로 같은 하네스를 여러 형태로 활용할 수 있습니다.

TrueForge는 모델, MCP 서버, 스킬, 샌드박스를 YAML 카탈로그로 한 번 설정해 두면 이후 만드는 에이전트들이 그중에서 골라 쓰는 구조입니다. 모델은 OpenAI, Anthropic, Google Gemini 외에 OpenAI 호환 엔드포인트라면 무엇이든 연결할 수 있고, 원격 MCP 서버는 헤더 인증과 OAuth(채팅 중 인가 포함)를 지원합니다. 스킬은 Git 저장소로 관리되는 SKILL.md 지침 팩으로 샌드박스 안에서 필요할 때 로드되며, 샌드박스는 현재 Daytona를 지원하고 필요할 때만 프로비저닝됩니다. 이 밖에 도구 승인, 사용자에게 질문하기, 대화 중 생성형 UI(Generative UI) 같은 사람 개입 지점과 서브에이전트, 지연 도구 로딩(Deferred Tool Loading), 대용량 결과 오프로딩, 압축(Compaction) 같은 컨텍스트 엔지니어링 기능이 함께 들어 있습니다.

누구에게 유용한가

채팅 UI와 승인 절차, 샌드박스를 갖춘 사내 에이전트를 빠르게 세우고 싶은 팀이라면 TrueForge가 좋은 출발점입니다. 이미 LangGraph 같은 프레임워크로 에이전트 파이프라인을 직접 짜서 운영하고 있다면, 실행 루프의 제어권을 하네스에 넘기는 구조라 교체 비용 대비 이득을 따져봐야 합니다. 로컬 모드는 기본 로그인이 없고 데이터가 로컬 SQLite 파일에 저장되므로, 프로젝트에서 직접 로컬호스트 전용 시험 환경이라고 명시하고 있다는 점도 판단에 넣어야 합니다. 실행에는 Node.js 22.14 이상이 필요합니다.

TrueForge의 아키텍처와 실행 모드

위 그림처럼 채팅 UI(@truefoundry/trueforge-ui)와 사용자 코드(trueforge-sdk)는 모두 TrueForge 서버의 HTTP API를 거쳐 에이전트 루프에 도달하고, 루프는 저장소(SQLite 또는 Postgres)와 사용자가 직접 연결한 모델, MCP 서버, 샌드박스와 통신합니다. 배포 형태는 두 가지입니다:

모드 적합한 용도 저장소 추가 인프라 실행 방법
Local 개인 사용, 시험 삼아 써보기 SQLite 없음 npx @truefoundry/trueforge
Hosted 팀, 다중 레플리카 Postgres Postgres + Redis Docker Compose 또는 Helm

로컬 모드는 프로세스 하나에 SQLite로 동작하는 시험용이며, TrueFoundry는 로컬 모드를 인터넷에 노출하지 말고 로컬호스트에서만 쓰라고 안내합니다. 공유 환경이나 프로덕션 배포에는 호스티드 모드를 사용하고, 공유 배포를 위한 OIDC(OpenID Connect) 로그인 설정은 별도 문서에서 다룹니다.

기존 도구와 비교: TrueForge의 벤치마크

TrueFoundry는 TrueForge를 Claude Managed Agents(Anthropic의 관리형 에이전트 실행 기능), 그리고 LangGraph 기반의 오픈소스 하네스인 deepagents 와 비교해 자체적으로 측정한 결과를 공개했습니다. DevRev의 Enterprise-Bench 중 L1-L2 태스크 14개를 사용해 세 하네스 모두 같은 모델, 같은 MCP 서버 3개, 같은 시스템 프롬프트로 실행하고, 구성마다 3회씩 반복해 평균을 냈습니다. 채점은 어느 하네스의 답인지 모르는 독립 LLM 심판이 맡았습니다. 결과는 다음과 같습니다 (출처: TrueForge Benchmarking 문서):

구성 해결 수 / 14 실행당 비용 실행당 토큰
Claude Managed Agents · Opus 4.8 10.7 $11.8 10.0M
TrueForge · Opus 4.8 10.7 $8.6 3.7M
TrueForge · GLM-5.2 11.7 $3.0 3.8M
deepagents · Opus 4.8 10.0 $21.2 16.5M
deepagents · GLM-5.2 12.0 $9.1 11.9M

같은 Opus 4.8 기준으로 정답 수는 Claude Managed Agents와 같으면서 비용은 약 30% 낮고, deepagents 대비로는 약 2.5배 저렴했다는 것이 TrueFoundry의 요약입니다. 비용 차이의 원인으로는 매 턴 전송하는 컨텍스트가 가볍다는 점, 같은 결과에 도달하는 도구 호출 수가 적다는 점(태스크당 19회로, 나머지 둘의 32회·40회보다 적음), 그리고 히스토리 전체를 다시 보내는 대신 압축과 대용량 응답 오프로딩을 쓴다는 점을 들고 있습니다. 다만 개발사가 자사 도구를 측정한 값이므로, 재현 절차가 저장소의 benchmark/ 디렉토리에 공개되어 있다는 점까지 확인하고 참고하는 편이 좋습니다.

TrueForge 설치 및 시작하기

로컬 모드는 Node.js 22.14 이상 환경에서 명령 한 줄로 실행합니다:

npx @truefoundry/trueforge

팀 단위 배포는 Docker Compose 또는 Helm 차트로 진행하며, 모델과 도구를 연결하고 첫 에이전트를 만들기까지의 과정은 Quickstart 문서에 단계별로 정리되어 있습니다. SDK로 자동화하려면 @truefoundry/trueforge-sdk 패키지로 세션, 턴, 이벤트를 다루는 TypeScript 클라이언트를 사용할 수 있습니다.

TrueForge의 라이선스

TrueForge는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:books: TrueForge 문서 사이트

:github: TrueForge GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. :hugs:

이 도구를 직접 설치해 사용해보셨다면, :pytorch:파이토치 한국 사용자 모임:south_korea: 회원들을 위해 경험이나 팁을 댓글로 남겨주세요! :folded_hands: