HarnessRouter/harnessrouter
Python0 / 0
Codex와 Claude Code를 자체 Docker 환경의 하나의 API로 실행하는 self-hosted agent framework
TL;DR
HarnessRouter Community Edition은 Codex, Claude Code, Hermes 등 agent harness를 Docker 컨테이너 안에서 실행하고 하나의 Responses-compatible API와 웹 콘솔로 관리하는 self-hosted agent framework입니다. provider API 키와 SQLite, 파일, 세션 workspace를 자체 인프라에 두며, 세션별 권한 격리와 streaming·cancellation·파일 수집을 지원합니다. `protocol/`에는 UHP 사양과 conformance suite가 포함되고 CE 0.3.0은 공개 report에서 class Full을 통과했습니다. 여러 coding agent를 내부 API로 통합하려는 팀에는 적합하지만, 단일 머신의 실행 한계와 초기 CLI 설치, provider 조합 문제, 기본 비밀번호 변경을 고려해야 합니다.
핵심 포인트
- 이 레포지토리는 Docker로 배포하는 self-hosted agent framework이자 API·웹 콘솔을 포함한 standalone tool입니다. Codex, Claude Code, Hermes, Pi, DeepSeek Harness 같은 agent harness를 하나의 Responses-compatible API와 UHP 인터페이스로 실행합니다. 특정 클라우드에 종속되지 않고 자체 인프라에서 API 키, 세션, 파일, 실행 기록을 관리하려는 팀에 적합합니다.
- Docker 컨테이너 하나가 Next.js UI, Responses API gateway, 세션별 agent runner를 함께 실행하며 SQLite와 파일을 `/data` 볼륨에 저장합니다. 각 세션은 별도 workspace·대화 상태·checkpoint를 받고 agent CLI는 세션별 사용자 권한으로 실행되어 다른 세션 파일과 제품 비밀에 접근하지 못합니다. 기본 설치에는 약 4GB 디스크와 model provider API 키가 필요하고, 첫 실행 때 agent CLI를 내려받으므로 관련 라이선스를 직접 확인해야 합니다.
- 콘솔뿐 아니라 `/api/harness/v1/responses`, `/v1/harnesses`, `/v1/models`, 세션·취소·trace API를 사용할 수 있으며 streaming, cancellation, idempotency를 지원합니다. 로그인 후 세션 쿠키로 API를 호출하고 `stream`을 `true`로 설정하면 Server-Sent Events로 명령 실행과 파일 변경을 실시간 수신합니다. 여러 provider 연결과 backend별 policy를 설정할 수 있지만 호환되지 않는 provider 조합은 긴 대기 뒤 빈 응답을 반환할 수 있어 UI 기반 설정이 더 안전합니다.
- UHP 사양, OpenAPI 3.1·JSON Schema 2020-12, conformance suite가 `protocol/`에 함께 있어 호환 서버 구현과 검증에 활용할 수 있습니다. 공개된 최근 conformance report는 HarnessRouter CE 0.3.0을 UHP class Full로 기록합니다. 다만 단일 머신 구조라 hosted deployment처럼 sandbox를 자동 확장하지 않으며, `HR_BACKENDS`에서 `hermes`를 제외하면 컨테이너가 오류 없이 종료되는 알려진 문제가 있습니다.
벤치마크
| 벤치마크 | 지표 | 값 | 비교 |
|---|---|---|---|
| UHP conformance | conformance class | Full | HarnessRouter CE 0.3.0에 대한 저장소 공개 conformance report 수치이며 성능 벤치마크는 아닙니다. |
이미지 분석




537
STARS
47
FORKS
+204
TRENDING
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.