에이전트 하네스란?

에이전트 하네스는 언어 모델을 감싸, 텍스트 생성기를 실제로 일할 수 있는 무언가로 바꾸는 런타임 계층입니다. 루프를 돌리고, 모델에 도구를 건네고, 무엇이 컨텍스트에 들어갈지 정하고, 세션을 지속 가능한 곳에 보관하며, 에이전트가 건드려도 되는 범위를 강제합니다. 판단은 모델이 제공하고, 나머지 전부는 하네스가 제공합니다.

하네스가 실제로 하는 일

에이전트를 끝까지 깎아내면 다섯 가지 책임이 남습니다. 그중 어느 것도 모델 혼자 감당할 수 없습니다.

루프. 모델 호출은 한 번 반환하고 멈춥니다. 에이전트는 계속 나아갑니다. 모델을 부르고, 요청받은 도구를 실행하고, 결과를 덧붙이고, 다시 부릅니다 — 작업이 끝나거나 한도에 걸릴 때까지. 이 순환이 하네스의 핵심 업무이며, 어떤 하네스와 다른 하네스를 가르는 것의 대부분 — 어떻게 재시도하는지, 언제 포기하는지, 단계를 병렬로 돌릴 수 있는지 — 은 루프에 관한 결정입니다.

도구. 파일 읽기, 명령 실행, 웹 검색. 하네스는 무엇을 쓸 수 있는지 알리고, 모델이 만들어 낸 인자를 검증하고, 호출을 실행하고, 결과를 모델이 읽을 수 있는 형태로 정리해 되돌려 줍니다.

컨텍스트. 모든 모델은 유한한 창을 가지며 현실의 작업은 그것을 넘칩니다. 무엇을 남기고, 무엇을 요약하고, 무엇을 필요할 때 다시 가져올지 정하는 것은 하네스의 책임이며, 에이전트가 자기가 하던 일을 잊었을 때 사용자가 가장 직접적으로 느끼는 부분이기도 합니다.

세션. 몇 시간에 걸치거나 재시작을 넘나드는 작업은 어딘가에 존재해야 합니다. 대화 기록, 중간 상태, 재개할 수 있는 능력. 영속성이 없으면 손에 있는 것은 채팅 창이지 에이전트가 아닙니다.

권한. 셸 명령을 실행할 수 있는 에이전트는 그 자체로 보안 표면입니다. 승인 프롬프트, 허용 목록, 샌드박스, 파일 시스템 경계는 모두 하네스에 있습니다. 모델은 스스로를 단속하리라 믿을 수 없고, 애초에 그렇게 설계되지도 않았기 때문입니다.

하네스가 아닌 것

그것은 모델이 아닙니다. 모델을 바꾸면 에이전트가 얼마나 잘 추론하는지는 달라지지만, 세션이 재개되는지, 어떤 명령에 승인이 필요한지는 달라지지 않습니다. 그것들은 하네스의 속성입니다. 같은 모델이 어떤 도구에서는 유능하게, 다른 도구에서는 형편없게 느껴지는 이유가 바로 이것입니다.

IDE 플러그인도 아닙니다. 다만 에디터를 통해 하네스를 만나는 경우가 많아 둘은 헷갈리기 쉽습니다. 에디터 확장은 표면입니다. 여러분의 요청을 모으고 출력을 보여 줍니다. 하네스는 루프와 도구 실행, 상태를 소유하는 쪽입니다. 잘 만든 하네스는 같은 세션 위에서 여러 표면 — CLI, 웹 인터페이스, 에디터 — 을 구동할 수 있으며, 눈앞의 것이 하네스인지 프런트엔드인지 가려내는 좋은 시험입니다.

DeepSeek Harness의 구현 방식

DeepSeek Harness — dsh — 는 DeepSeek AI가 2026년 8월 13일 MIT 라이선스로 공개했으며, 위의 모든 것에 대해 유난히 문자 그대로의 입장을 취합니다: 모든 것이 플러그인. 모델, 도구, 스킬, 세션, 샌드박스, 파일 시스템, 루프 자체, 오케스트레이션, 사용자 인터페이스까지 모두 하나의 공유 런타임에 로드되는 플러그인입니다.

그 런타임이 Cordis입니다. 플러그인을 로드하고 연결하는 것이 본업인 메타 프레임워크이며, @deepseek-ai/cordis는 모든 하네스 패키지의 peer dependency입니다. 조립은 시작할 플러그인과 옵션을 나열하는 cordis.yml 로더 설정에서 이루어지고, --profile 플래그가 상황에 맞는 번들을 고릅니다 — 기본 제공 프로파일에는 headless가 있습니다.

그 결과 dsh에서는 애플리케이션과 확장 사이에 의미 있는 선이 없습니다. 샌드박스를 교체하는 것은 구조적으로 도구 하나를 추가하는 것과 같은 행위입니다. 대부분의 에이전트 도구보다 여기서 플러그인 디렉터리가 더 중요한 이유가 그것입니다. 능력이 코어가 아니라 패키지에 살기 때문입니다. 현재 저희는 dsh 관련 토픽을 단 저장소 7900개를 수록했고 그중 3942개에 실제 플러그인 연결이 있습니다 — 둘러보거나 카테고리별로 따라갈 수 있습니다. 한 번 더 짚어 둘 점: dsh는 개발자 프리뷰이고 README가 호환성을 깨는 변경이 온다고 경고하므로, 여기 설명한 로더 형식은 스냅숏이지 계약이 아닙니다.

하네스와 에이전트 프레임워크

에이전트 프레임워크는 그것으로 애플리케이션을 만드는 라이브러리입니다. 루프 프리미티브, 도구 추상화, 메모리 헬퍼를 건네고 제품 결정은 여러분에게 맡깁니다 — 프로그램을 쓰는 것은 여러분이고, 내놓는 것도 여러분의 것입니다.

하네스는 그 결정을 이미 내려 두었습니다. 설치하면 돌아갑니다. 기본 루프, 기본 도구 모음, 기본 권한 모델, 어제 세션을 재개하는 방법이 있습니다. 라이브러리와 제품 사이의 흔한 트레이드오프입니다 — 통제는 줄고, 만들 것은 훨씬 줄어듭니다.

dsh는 이 선 위에서 흥미로운 자리에 있습니다. 바로 돌릴 수 있는 하네스이지만, 모든 부분이 범용 프레임워크 위의 플러그인이기 때문에 충분히 집요한 사용자라면 대부분의 하네스가 고정으로 취급하는 부분까지 바꿔 낄 수 있습니다. 구분은 여전히 성립합니다 — 코드를 한 줄도 쓰지 않고 dsh를 쓸 수 있습니다 — 그러나 경계는 평소보다 무릅니다.

하네스와 MCP

MCP, 즉 Model Context Protocol은 하네스와 한 호흡에 언급되곤 하지만 둘이 푸는 문제는 다릅니다. MCP는 프로토콜입니다. 도구나 데이터 소스가 자신을 어떻게 설명하고 호출에 어떻게 응답하는지를 표준화해서, 한 번 만든 서버를 그 프로토콜을 말하는 어떤 클라이언트에서도 쓸 수 있게 합니다. 답하는 질문은 '에이전트가 이것에 어떻게 닿는가'입니다.

하네스가 답하는 질문은 '누가 루프를 돌리고, 그 도구가 애초에 언제 호출되는가'입니다. 컨텍스트, 권한, 세션을 관리하지만 MCP는 그중 어느 것에도 의견이 없습니다. 하네스는 MCP 클라이언트가 될 수 있고, 그럴 때 MCP 서버는 하네스가 제공하는 다른 것들과 나란한 도구 공급원 하나가 됩니다. dsh 생태계에서의 구체적인 모습을 보고 싶다면, 이 디렉터리의 MCP 및 도구 카테고리가 그 경계에 놓인 플러그인들을 모아 두었습니다.

자주 묻는 질문

하네스와 모델은 같은 것인가요?
아닙니다. 모델은 텍스트를 더 많은 텍스트로 바꿀 뿐, 어제의 기억도, 파일 접근 권한도, 무언가를 실행할 능력도 없습니다. 하네스는 그 주위의 프로그램으로, 모델이 무엇을 볼지 정하고, 요청받은 도구를 실행하고, 결과를 되먹이고, 일이 끝나면 루프를 멈춥니다.
에이전트 하네스는 API 호출을 감싼 것뿐인가요?
한 번의 호출은 하네스가 아닙니다. 결정적인 특징은 루프입니다. 하네스는 모델을 부르고, 모델이 요청한 도구를 실행하고, 결과를 대화에 더하고, 다시 부르기를 정지 조건이 충족될 때까지 반복합니다. 하네스에서 어려운 모든 것 — 컨텍스트 관리, 권한, 세션 영속화, 오류 복구 — 은 그 루프 때문에 존재합니다.
하네스는 에이전트 프레임워크와 어떻게 다른가요?
프레임워크는 그것으로 애플리케이션을 만드는 라이브러리이고, 하네스는 여러분이 쓰는 실행 가능한 프로그램입니다. 프레임워크는 부품을 주고 결정을 여러분에게 맡기지만, 하네스는 그 결정을 이미 내려 기본값으로 내놓았습니다. 하네스가 유난히 설정 가능할 때 이 선은 흐려지는데, DeepSeek Harness가 바로 그렇습니다.
에이전트 하네스가 MCP를 대체하나요?
아닙니다. 둘은 서로 다른 질문에 답합니다. MCP는 도구나 데이터 소스가 에이전트에게 자신을 어떻게 드러내는지 기술하는 프로토콜이고, 하네스는 루프를 돌리며 그 도구가 애초에 호출될지를 정하는 프로그램입니다. 하네스는 MCP 클라이언트로 동작할 수 있으므로 둘은 경쟁이 아니라 보완 관계입니다.
DeepSeek Harness가 다른 하네스들과 비교해 특이한 점은?
'모든 것이 플러그인'이라는 설계입니다. 모델, 도구, 스킬, 세션, 샌드박스, 파일 시스템, 루프, 오케스트레이션, UI가 모두 플러그인으로 공유 Cordis 런타임에 로드되고 cordis.yml 파일로 조립됩니다. 대부분의 도구가 고정된 내부 구조로 취급하는 부분이 여기서는 교체 가능한 패키지인 것입니다.

이어서 읽기

위의 생각들을 실제로 돌아가는 소프트웨어로 보고 싶다면 dsh를 설치하세요 — npx 명령 하나면 http://127.0.0.1:3080에 웹 UI가 뜹니다. 모든 것이 플러그인인 하네스가 자리 잡은 독점 제품과 비교해 어떤지 보고 싶다면, dsh와 Claude Code에 대한 초기 비교를 읽어 보세요.