DeepSeek Harness, Claude Code, Omnigent 비교 분석
DeepSeek Harness, Claude Code, Omnigent의 아키텍처와 모델 결합도 및 라이선스를 비교합니다. VPS 환경에서 각 도구를 실행하기 위한 필수 요구 사항과 성숙도를 정리하여 프로젝트에 적합한 에이전트 하네스 선택 기준을 제시합니다.
DeepSeek Harness, Claude Code, Omnigent 비교: 무엇이 필요한가
DeepSeek Harness, Claude Code, Omnigent는 모두 에이전트 하네스(agent harness)로 분류되지만, 각기 다른 영역의 문제를 해결합니다. DeepSeek Harness는 사용자가 직접 모델을 공급하는 웹 UI 기반의 플러그인 런타임입니다. Claude Code는 Anthropic 모델을 구동하는 Anthropic의 터미널 프로그램입니다. Omnigent는 Databricks에서 제공하는 오케스트레이터로, 자체적인 에이전트 루프를 구현하는 대신 Claude Code를 포함한 다른 하네스를 제어합니다. 이들은 서로 완벽하게 대체 가능한 관계가 아니므로, 현재 시스템에서 어떤 계층이 부족한지 파악하는 것이 중요합니다.
실질적인 차이점은 아키텍처, 모델 결합도, 인터페이스, 성숙도, 라이선스입니다. 아래의 모든 버전과 날짜는 2026년 8월 18일 기준으로 확인되었습니다. 세 가지 도구 중 두 가지는 변화 속도가 매우 빠르므로, 특정 도구를 도입하기 전에 다시 한번 확인해야 합니다.
DeepSeek Harness란 무엇이며, 플러그인 모델은 어떤 이점을 제공합니까?
DeepSeek는 2026년 8월 github.com/deepseek-ai/deepseek-harness를 통해 DeepSeek Harness, 즉 dsh를 공개했습니다. 저장소 설명은 전체 설계를 네 단어로 요약합니다. 모든 것이 플러그인이라는 점입니다. 모델 어댑터, 도구 레지스트리, 세션 로그, 샌드박스, 그리고 에이전트 루프 자체가 모두 플러그인이며, Cordis 기반 런타임에 의해 로드됩니다. 도입 속도는 이례적으로 빨랐으며, 공개 며칠 만에 저장소 별점 150,000개를 돌파했습니다(2026년 8월 18일 확인).
DeepSeek Harness는 현재 개발자 프리미엄 단계이며 빠르게 반복 개선되고 있습니다. 호환성을 깨뜨리는 변경 사항이 발생할 것입니다.
이는 README에 명시된 경고이며, 이 비교에서 가장 중요한 문장입니다. 오늘 플러그인 API(애플리케이션 프로그래밍 인터페이스)를 사용하여 작성하는 모든 코드는 향후 다시 작성해야 한다고 예상해야 합니다.
Node.js가 설치된 환경에서 npx를 사용하여 시작합니다.
npx @deepseek-ai/dsh web이 명령은 URL을 출력합니다. 기본적으로 웹 UI는 http://127.0.0.1:3080에서 서비스됩니다. 소스에서 빌드하려면 대신 pnpm을 사용합니다.
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh webdsh web은 dsh --profile web의 약어입니다. 프로필은 $DSH_HOME/profiles/ 하위의 디렉터리이며, 런처는 지정한 프로필을 부팅합니다. 헤드리스 프로필도 존재하기 때문에 이 점이 중요합니다. dsh --profile headless "job"는 하나의 지속 세션을 실행하고 결과를 출력한 뒤 종료되는데, 이는 cron 작업이나 빌드 단계에서 필요한 형태입니다. --profile 및 --patch과 같은 런처 플래그는 애플리케이션 자체의 인수보다 앞에 위치해야 합니다. 런처가 핸드오프 지점에서 구문 분석을 중단하기 때문입니다. --port과 같은 플래그는 런처가 아닌 부팅된 프로필에 속하므로 위치가 중요합니다. 플러그인은 dsh plugin --profile web add <package>과 같이 인수를 pnpm으로 전달하여 관리합니다.
Claude Code란 무엇이며, 왜 터미널 프로그램인가요?
Claude Code는 Anthropic에서 직접 제공하는 CLI(명령줄 인터페이스) 에이전트입니다. 제품 자체에 웹 UI는 포함되어 있지 않습니다. 이 도구는 사용자가 작업하려는 디렉터리의 터미널에서 직접 실행되므로 서버 세션에서 사용하기에 매우 적합합니다. macOS, Linux, WSL에서의 설치는 다음 명령 한 줄로 완료됩니다.
curl -fsSL https://claude.ai/install.sh | bash
claude --version정상적으로 설치되면 버전과 제품 이름이 출력됩니다(예: 2.1.211 (Claude Code)). 설치에 실패할 경우, claude doctor 명령을 실행하면 세션을 시작하지 않고도 읽기 전용 설치 및 설정 진단 정보를 출력할 수 있습니다. npm 패키지인 npm install -g @anthropic-ai/claude-code도 제공되며, v2.1.198 버전 기준으로 Node.js 22 이상이 필요합니다. 이 패키지는 동일한 네이티브 바이너리를 설치하므로, 설치된 claude는 런타임에 사용자의 Node.js를 사용하지 않습니다. Anthropic은 Debian, Ubuntu, Fedora, RHEL, Alpine을 위한 서명된 apt, dnf, apk 저장소도 제공합니다. 구성 관리 도구로 서버를 운영하는 경우, 일반적인 업그레이드 워크플로우를 통해 업데이트를 받을 수 있는 이 방식이 더 권장됩니다.
Claude Code를 사용하려면 Pro, Max, Team, Enterprise 또는 Console 계정이 필요합니다. 무료 Claude.ai 플랜은 액세스를 포함하지 않습니다. Claude 구독과 API 과금 방식 간의 선택은 도구 내부의 어떤 설정보다도 비용에 훨씬 큰 영향을 미칩니다.
Omnigent이란 무엇이며, 메타 하네스(meta-harness)는 무엇을 오케스트레이션합니까?
Databricks는 2026년 6월 Omnigent를 발표하고 Apache 2.0 라이선스로 공개했습니다. 이 도구는 스스로를 메타 하네스라고 부릅니다. Omnigent는 에이전트 루프를 직접 구현하지 않습니다. 대신 Claude, Codex, Cursor, OpenCode, Hermes, Pi 및 OpenAI의 agents SDK(software development kit)와 같이 이미 존재하는 에이전트들을 구동합니다. 하네스 목록에 있는 몇몇 에이전트는 두 번 등장하는데, 한 번은 벤더의 SDK와 통신하는 형태이고, 다른 한 번은 벤더의 실제 터미널 프로그램을 래핑하는 네이티브 형태입니다.
에이전트는 YAML 파일이며, YAML은 일반 텍스트 구성 형식입니다.
name: my_agent
prompt: You are a helpful data analyst.
executor:
harness: claude-sdk
tools:
word_count:
type: function
callable: mypackage.mymodule.word_count
docs:
type: mcp
url: https://example.com/mcp
researcher:
type: agent
prompt: Search for relevant information.executor.harness 라인은 이 프로젝트의 핵심입니다. claude-sdk를 codex로 변경하면 동일한 프롬프트와 도구를 사용하여 다른 벤더에서 실행할 수 있습니다. 도구는 Python 함수, MCP(model context protocol) 서버 또는 다른 에이전트가 될 수 있으며, 마지막 경우가 멀티 에이전트 작업이 표현되는 방식입니다. 즉, 하위 에이전트는 하나의 도구일 뿐입니다. 기술(skills), MCP 서버, 규칙 파일이 각각 어디에 속하는지 아직 파악하지 못했다면, 에이전트 기술, MCP 및 규칙 파일의 차이점을 먼저 읽어보는 것이 좋습니다. Omnigent는 하위 하네스가 지원하는 기능을 그대로 상속하기 때문입니다.
제공된 예제는 이 개념을 구체적으로 보여줍니다. Polly는 코딩 오케스트레이터로, 스스로 코드를 작성하지 않습니다. Polly는 계획을 세우고, 병렬 git 워크트리에서 코딩 하위 에이전트에게 작업을 위임한 뒤, 각 diff를 다른 벤더의 모델에서 실행되는 리뷰어에게 전달합니다.
공개된 스크립트로 설치하십시오.
curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | sh또는 수동으로 설치할 수 있으며, Python 3.12 이상이 필요합니다.
uv tool install omnigent
omnigent setup
omnigent startpip install "omnigent"도 작동하며, 추가 기능은 일반적인 방식인 uv tool install "omnigent[databricks,modal]"로 선택합니다. omnigent setup은 자격 증명과 기본값을 수집합니다. omnigent start는 서버를 시작하고, 해당 머신을 호스트로 등록하며, http://localhost:6767에서 웹 UI를 제공합니다. omnigent server status과 omnigent stop는 매일 사용하게 될 다른 두 가지 명령어입니다. 옵션 없이 omnigent만 입력하면 서버를 시작하지 않고 대화형 세션을 엽니다.
의존성 목록은 한 줄짜리 설치 스크립트가 암시하는 것보다 깁니다. Python 3.12 이상, git, npm 및 pnpm을 포함한 Node.js 22 LTS(long term support) 이상, 네이티브 터미널 래퍼를 위한 tmux, 그리고 Linux 샌드박스를 위한 bubblewrap(bwrap)이 필요합니다. 이는 설계상 필연적인 결과입니다. Omnigent는 벤더 CLI를 직접 설치하고 감독해야 하므로, Node.js 소프트웨어를 실행하는 역할을 수행하는 Python 소프트웨어입니다.
모델은 누가 제공하며, 비용은 누가 부담합니까?
이는 실질적인 결과 측면에서 가장 중요한 축이며, 세 가지 답변은 근본적으로 다릅니다.
DeepSeek Harness는 사용자가 직접 모델을 가져오는 방식(bring-your-own)입니다. 설치된 공급자 카탈로그는 Anthropic, OpenAI, Bedrock, Vertex, Azure 및 Codex를 지원합니다. 사용자 지정 공급자 항목을 추가하려면 소문자 공급자 ID, 표시 이름, 기본 URL, API 프로토콜, 자격 증명 및 하나 이상의 모델을 입력해야 하며, 이를 통해 기업 게이트웨이나 자체 호스팅 서버를 지정할 수 있습니다. 키는 $DSH_HOME/.credentials.yaml에 기록되며, $DSH_HOME/settings.yaml은 해당 키에 대한 참조만 유지합니다. 따라서 설정 파일은 공유해도 안전하지만 자격 증명 파일은 공유해서는 안 됩니다. 게이트웨이 항목은 apiKeyEnv: GATEWAY_API_KEY과 같은 줄을 사용하여 환경 변수를 대신 지정할 수 있습니다. 프로젝트 이름과 달리, 이 도구는 사용자가 반드시 DeepSeek의 모델을 사용하도록 강제하지 않습니다.
Claude Code는 설계상 특정 공급업체에 종속되어 있습니다. 유료 계정으로 로그인하거나 ANTHROPIC_API_KEY을 설정하면, Claude Code는 브라우저를 여는 대신 해당 키를 승인하라는 메시지를 표시합니다. 두 번째 방식은 헤드리스 서버에서 작동하는 방식입니다. 이미 다른 곳에서 용량을 구매한 조직은 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 통해 라우팅할 수 있습니다.
Omnigent는 omnigent setup를 통해 수집된, 하위 하네스(harness)가 요구하는 모든 것을 필요로 합니다. 이 도구는 API 키, 기존 CLI 구독, OpenAI 호환 또는 Anthropic 호환 게이트웨이, Databricks 워크스페이스를 허용합니다. 이것이 메타 하네스의 실제 비용입니다. 즉, 한 대의 머신이 모든 공급업체의 자격 증명을 보유하게 됩니다. 해당 머신을 공용 인터넷에 연결하기 전에 AI 에이전트가 비밀 정보에 접근하지 못하게 하는 방법을 읽어보십시오.
2026년 8월 기준 각 도구의 성숙도
Claude Code는 2025년부터 정식으로 제공되었으며 2026년 8월 기준으로 2.1.x 버전을 유지하고 있습니다. 이 도구는 백그라운드에서 자동으로 업데이트되며 latest 및 stable 릴리스 채널을 제공합니다. 또한 GPG 서명된 릴리스 매니페스트를 게시하며, 최소 버전을 유지해야 하는 조직을 위해 minimumVersion 고정 기능을 문서화하고 있습니다. 이는 이미 운영 환경에서 사용 중인 제품의 전형적인 모습입니다.
Omnigent는 2026년 6월부터 공개되었으며 여전히 0.x 시리즈에 머물러 있고, README에는 알파 버전으로 명시되어 있습니다. 하네스 목록과 YAML 스키마 모두 지속적으로 변경될 것으로 예상해야 합니다. 현재 사용은 가능하지만 아직 안정화된 상태는 아닙니다.
DeepSeek Harness는 비교 대상 중 가장 최근에 등장했습니다. 이 비교 문서를 작성하기 며칠 전인 2026년 8월에 공개되었으며, README에서부터 호환성을 깨뜨리는 변경 사항이 발생할 것임을 예고하고 있습니다. 매우 높은 스타 수는 많은 사람이 이 프로젝트를 주시하고 있음을 보여줍니다. 하지만 이는 플러그인 API가 안정화되었는지 여부와는 무관합니다.
각 소프트웨어의 라이선스는 무엇입니까?
DeepSeek Harness는 MIT 라이선스를 따르며, 제3자 라이선스는 THIRD_PARTY_NOTICES.md에서 확인할 수 있습니다. Omnigent는 Apache 2.0 라이선스를 사용합니다. Claude Code는 오픈 소스가 아닙니다. 이는 Anthropic의 상용 제품이며, 실행하려면 유료 계정이나 API 결제 수단이 필요합니다. 모든 코드를 직접 읽고 수정할 수 있어야 한다는 것이 요구 사항이라면, 기능 비교를 시작하기도 전에 Claude Code는 제외됩니다. 반면, 별도의 관리 없이도 다음 달에 도구가 계속 정상적으로 작동해야 한다는 것이 요구 사항이라면, 선택의 기준은 달라질 것입니다.
각각을 VPS에서 실행하려면 무엇이 필요한가?
Claude Code는 세 가지 중 가장 간단합니다. 설치 후 로그인하고, SSH(secure shell) 연결이 끊겨도 세션이 유지되도록 tmux 내부에서 실행하십시오. Anthropic은 4 GB 이상의 RAM(random access memory)과 x64 또는 ARM64 프로세서, 그리고 Ubuntu 20.04 이상, Debian 10 이상 또는 Alpine 3.19 이상을 요구합니다. Alpine에서는 bash, curl, libgcc, libstdc++ 및 ripgrep을 먼저 설치해야 합니다. 이 패키지들이 없으면 설치 명령이 not found 오류와 함께 실패하기 때문입니다. tmux 내부에서 Claude Code를 VPS에 실행하기에서 세션 처리 방법을 자세히 다룹니다.
DeepSeek Harness는 Node.js와 웹 UI를 가리키는 브라우저가 필요합니다. README는 최소 버전을 명시하지 않고 Node.js를 요구하므로, 주변 생태계가 지향하는 Node 22 LTS를 선택하는 것이 안전합니다. 포트 3080을 외부로 공개하지 마십시오. 서버를 127.0.0.1에 두고 노트북에서 포트를 포워딩하십시오:
ssh -N -L 3080:127.0.0.1:3080 you@your-vps그런 다음 로컬에서 http://127.0.0.1:3080을 여십시오. VPS에 DeepSeek Harness 전체 설치하기에서 프로필 레이아웃과 플러그인 명령을 다룹니다.
Omnigent는 다른 사람들의 CLI를 설치하고 관리하므로 가장 무겁습니다. 동일한 서버에 Python 3.12, Node.js 22, npm, pnpm, tmux 및 bubblewrap이 필요하며, 여기에 더해 활성화하는 각 벤더 CLI를 추가로 다운로드합니다. 포트 포워딩은 동일한 방식으로 수행하십시오:
ssh -N -L 6767:127.0.0.1:6767 you@your-vps다른 사용자가 함께 사용하는 서버의 경우, 지원되는 경로는 deploy/를 통한 Docker 배포이며, 이는 기본적으로 다중 사용자 계정을 활성화합니다. 수동으로 시작한 서버에서도 OMNIGENT_AUTH_ENABLED=1을 설정하면 동일한 동작이 가능하며, Google, GitHub, Okta 및 Microsoft를 통한 OIDC(OpenID Connect) 로그인이 작동합니다. Omnigent 다중 에이전트 하네스 가이드에서는 에이전트가 디스크에 쓰기 작업을 시작할 때 중요해지는 샌드박스 제공업체에 대해 다룹니다.
서버의 공인 IP 주소에서 웹 UI가 빈 화면으로 나오는 이유는 무엇입니까?
두 웹 하네스(web harness)는 기본적으로 루프백(loopback) 인터페이스에서 수신 대기하도록 설정되어 있습니다. 따라서 이를 0.0.0.0에 바인딩하고 포트를 개방하는 것이 당연한 해결책처럼 보일 수 있습니다. 하지만 이 과정에서 두 가지 문제가 발생합니다. 첫 번째는 보안 문제입니다. 기본 로컬 모드에서는 인증 기능이 제공되지 않으므로, 포트를 개방하는 것은 곧 VPS를 외부 공격에 노출하는 것과 같습니다. 두 번째는 브라우저의 보안 정책입니다. crypto.randomUUID()는 HTTPS(hypertext transfer protocol secure), localhost 또는 127.0.0.1과 같은 보안 컨텍스트에서만 정의됩니다. http://203.0.113.10:3080과 같은 일반 주소로 동일한 UI를 로드하면 브라우저 콘솔에 다음과 같은 오류가 보고됩니다.
TypeError: crypto.randomUUID is not a function이 경우 세션 생성 단계에서 실패하여 화면이 전혀 그려지지 않거나 일부만 표시됩니다. 서버 자체에는 문제가 없으며, 로그에는 정상적인 요청으로 기록됩니다. 브라우저가 해당 출처(origin)를 신뢰하지 않기 때문에 프런트엔드가 의존하는 함수가 정의되지 않은 것입니다. SSH 터널을 사용하면 인증서 없이도 이 문제를 해결할 수 있는데, 이는 127.0.0.1가 보안 컨텍스트로 간주되기 때문입니다. 실제 TLS(transport layer security) 인증서를 보유한 리버스 프록시를 사용하는 방법도 있으며, 이 경우 직접 인증 기능을 추가해야 합니다.
어떤 도구가 적합합니까?
현재 바로 사용할 수 있는 코딩 에이전트가 필요하고, Anthropic에 비용을 지불할 의향이 있으며, 이미 터미널 환경에서 작업 중이라면 Claude Code를 선택하십시오. 이 세 가지 도구 중 프리뷰 버전이 아닌 완성된 상용 제품은 이것이 유일합니다.
플러그인 모델이 핵심이라면 DeepSeek Harness를 선택하십시오. 모델 어댑터, 샌드박스, 에이전트 루프를 직접 교체하고 싶고, 작성하는 인터페이스가 변경될 수 있음을 감수한다면 적합합니다. 제공자 카탈로그가 Anthropic과 OpenAI를 모두 지원하므로, 이 선택은 DeepSeek 모델이 아닌 런타임에 거는 투자입니다.
이미 여러 개의 에이전트 CLI를 실행 중이며 실제 문제가 정책, 샌드박싱, 다른 벤더 모델을 통한 검토, 타인이 관찰할 수 있는 공유 세션과 같은 조정(coordination)에 있다면 Omnigent를 선택하십시오. 이는 스택에 계층을 추가하는 것이며, 불필요한 계층은 장애의 원인이 될 수 있습니다. 조정 문제가 그보다 작다면, 동일한 장비에서 두 개의 Claude Code 세션을 실행하여 중간 오케스트레이터 없이 서로 메시지를 주고받게 할 수 있습니다.
여전히 후보를 추리는 중이라면, Mimo Code AI 코딩 에이전트는 Claude Code와 동일한 터미널 에이전트 범주에 속합니다. 또한 어떤 도구를 선택하든 일회용 VM에서 코딩 에이전트 실행하기 문서를 읽어보는 것이 좋습니다. 이 세 가지 도구 중 어느 것도 부주의한 rm -rf을 스스로 안전하게 만들어주지는 않기 때문입니다. 또한 이 세 도구 모두 에이전트가 제안하는 diff의 크기를 결정하지 않으며, 이는 프롬프트 수준에서 해결할 문제이므로 어떤 도구를 선택하든 작동하는 최소한의 변경 사항을 제안하도록 에이전트를 유도하는 기술을 추가로 적용하는 것이 좋습니다.
FAQ
Claude Code를 사용하려면 Anthropic 유료 플랜이 필요한가요?
네. Claude Code를 사용하려면 Pro, Max, Team, Enterprise 또는 Console 계정이 필요하며, 무료 Claude.ai 플랜은 포함되지 않습니다. 헤드리스 VPS 환경에서는 첫 실행 전에 ANTHROPIC_API_KEY을 설정하십시오. 그러면 브라우저를 열려고 시도하는 대신 해당 키를 승인하라는 메시지가 한 번 표시됩니다. 다른 곳에 리소스가 있는 조직은 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 대신 지정할 수 있습니다.
DeepSeek Harness에서 Claude나 OpenAI 모델을 실행할 수 있나요?
네. 설치된 공급자 카탈로그는 Anthropic, OpenAI, Bedrock, Vertex, Azure 및 Codex를 지원하며, 설정(Settings)의 모델(Models) 메뉴에서 공급자별로 키를 추가할 수 있습니다. 카탈로그에 없는 항목은 사용자 지정 공급자로 등록할 수 있으며, 이때 소문자로 된 공급자 ID, 기본 URL, API 프로토콜, 자격 증명 및 최소 하나의 모델이 필요합니다. 키는 $DSH_HOME/.credentials.yaml에 저장되고 $DSH_HOME/settings.yaml에는 참조만 보관되므로, 자격 증명 파일은 별도로 백업하고 버전 관리 시스템에 포함되지 않도록 하십시오.
Omnigent이 Claude Code를 대체하나요?
아니요. Omnigent은 Claude Code를 실행하는 도구입니다. 하네스 목록에는 Claude, Codex, Cursor, OpenCode, Hermes 및 Pi가 포함되어 있으며, 에이전트는 YAML 파일의 harness: 한 줄로 모델을 선택합니다. 기본 CLI는 사용자가 직접 설치하고 인증해야 합니다. Omnigent은 그 위에 오케스트레이션, 정책 및 샌드박싱 기능을 추가하므로, 둘 이상의 에이전트나 둘 이상의 공급자를 운영할 때 의존성을 확보하게 됩니다.
서버의 공용 IP 주소에서 DeepSeek Harness 웹 UI가 빈 화면으로 나오는 이유는 무엇인가요?
일반 HTTP 오리진은 보안 컨텍스트가 아니기 때문에 해당 환경에서 crypto.randomUUID()가 정의되지 않으며, 브라우저 콘솔에 TypeError: crypto.randomUUID is not a function 오류가 보고됩니다. 세션 생성에 실패하여 서버 로그는 정상으로 보이지만 페이지가 부분적으로만 렌더링되거나 아예 표시되지 않습니다. 루프백은 보안 컨텍스트로 간주되므로 ssh -N -L 3080:127.0.0.1:3080 you@your-vps을 사용하여 포트를 SSH로 포워딩하고 http://127.0.0.1:3080에 접속하십시오. 실제 TLS 인증서를 사용하는 리버스 프록시를 구성해도 되며, 이 경우 직접 인증 기능을 추가해야 합니다.
이러한 하네스를 실행하려면 VPS에 RAM이 얼마나 필요한가요?
Anthropic은 Claude Code를 위해 4 GB 이상의 RAM을 권장합니다. DeepSeek Harness와 Omnigent은 공식적인 요구 사양을 명시하지 않으므로 추측하기보다 직접 측정해야 합니다. 세 경우 모두 모델은 원격으로 실행되므로, 하네스 자체는 추론보다는 프로세스 감독 및 파일 작업을 수행합니다. 서버 사양을 결정하는 핵심 요소는 빌드나 테스트 스위트 실행과 같이 에이전트가 수행하는 작업의 규모입니다. Omnigent은 Python, Node.js, tmux 및 활성화된 모든 공급자 CLI가 동일한 머신에서 실행되므로 가장 많은 리소스를 요구합니다.