CH 02 · dsh 알아보기
본장 목표
이 장은 명령을 치지 않고, 환경도 세팅하지 않습니다. 단 세 가지만 분명히 합니다. dsh가 무엇인지, 무엇을 할 수 있는지, 그리고 모델이나 Claude Code 같은 도구와는 어떻게 다른지 말이죠. 이 장을 끝까지 읽으면 CH 03에서 설치할 준비가 됩니다.
dsh란 무엇인가
한 줄로 말하면: dsh는 DeepSeek가 2026년 8월 13일에 오픈소스로 공개한 Agent 런타임 프레임워크입니다. 명령 이름은 dsh, 정식 명칭은 DeepSeek Harness이며, 라이선스는 MIT이고, 공식 포지셔닝은 developer preview(개발자 미리보기 버전)입니다.
공식 홈페이지 첫 화면에 단 한 줄이 적혀 있습니다. — Everything is a plugin(모든 것은 플러그인). 공식 등식은 이렇습니다.
Agent = Model + Harness
이를 풀이하면 이렇습니다. 모델은 "생각"을 담당하고, Harness는 "일을 함"을 담당합니다. 모델은 그저 텍스트만 생성할 뿐이고, Harness가 있어야 모델이 파일을 읽고, 명령을 실행하고, API를 호출하고, 컨텍스트를 관리하고, 계획을 세울 수 있습니다. 즉, 모델을 현실 세계와 연결해서 비로소 작업이 실제로 완성됩니다.
무엇과 혼동하면 안 되는가
가장 자주 빠지는 함정: dsh를 "AI 코딩 어시스턴트"로 여기는 것입니다.
그렇지 않습니다. Claude Code, Codex는 코딩 어시스턴트이며, 이들은 완성된 제품입니다. 도구, Skill, 세션, 샌드박스가 모두 하나의 껍데기 안에 봉인되어 있어, 벽을 허물 수도 없고 배치도 바꿀 수 없습니다. dsh는 "실행 기판(substrate)"입니다. 코딩은 그저 사전 설정된 조합 하나일 뿐이고, 프로그래밍과 무관한 Agent도 얼마든지 조립할 수 있습니다.
또 다른 함정: dsh는 모델이 아닙니다. DeepSeek V4 flash(그리고 비전 버전인 V4 flash vision exp) 같은 것이 모델이고, dsh는 모델이 일할 수 있도록 해주는 "운영체제 계층"입니다. 둘은 다른 것입니다. 또한 dsh에서 DeepSeek 모델은 기본으로 사전 설치된 플러그인일 뿐이므로, 다른 모델로 얼마든지 교체할 수 있습니다.
네 가지 키워드로 이해하기
1. 모든 것은 플러그인입니다. 모델, 도구, Skill, 세션, 샌드박스, 저장소, 루프, 스케줄러, UI — 모든 역량이 플러그인(레고 블록)이고, 교체하거나, 삭제하거나, 추가할 수 있습니다.
2. 기반 계층은 Cordis입니다. Cordis 커널이 플러그인의 마운트, 언마운트, 의존성을 관리합니다. 플러그인들은 서비스(services)와 이벤트(events)를 통해 서로 협력하며, 누구든 끼어들 수 있고 누구도 특권을 갖지 않습니다.
3. 모든 실행은 추적 가능합니다. 모델이 본 모든 것이 추가식 세션 로그에 기록됩니다. 시스템 프롬프트, 추론, 도구 호출과 그 결과, 서브에이전트 스케줄링, 모든 컨텍스트 주입까지. Trajectory(궤적) 뷰에서 출처별로 조회할 수 있습니다. 이는 곧 관측 가능, 감사 가능, 재현 가능하다는 뜻이며, 연구와 운영 환경에 매우 중요합니다.
4. 네 가지 실행 모드. 이름에 겁먹지 마십시오. 이것들은 네 개의 엔진이 아니라, 공식 사전 설정 플러그인 조합 템플릿 네 가지이며, 새로운 모드를 직접 정의할 수도 있습니다.
- Standard(표준 모드): 신규 사용자의 기본 선택. 코드 Agent의 완전한 역량을 갖췄습니다. 파일 편집, Shell, 파일/웹 검색, Skills, 계획, 목표, 서브에이전트, 워크플로우를 별도 설정 없이 바로 사용 가능.
- Code(코드 모드): 표준 모드의 모든 역량 + 도구가 SDK 방식으로 노출되어, 모델이 TypeScript 프로그램을 작성해 여러 단계를 한 번에 오케스트레이션합니다. 기존에 5회 모델 왕복이 필요했던 읽기, 검색, 필터링, 병렬 호출을 한 번의 프로그램 실행으로 압축할 여지가 생깁니다. 토큰을 아끼고 지연도 줄어듭니다. 다만 모델의 코드 능력에 의존하게 되고 디버깅도 어려워져서, 초심자는 손대지 않는 것이 좋습니다.
- Minimal(미니멀 모드): 영속 bash + 파일 편집기만 남깁니다. 일상 개발용이 아니라 "벌거벗은 Agent" 벤치마크를 돌리기 위한 것입니다. 어떤 도구도 걸치지 않은 상태에서 두 모델의 순수한 실력을 비교할 때 씁니다.
- Creator(크리에이터 모드): 표준 모드의 모든 역량 + 한 가지가 더 추가됩니다. 실행 중인 Cordis 환경을 자체 점검하고, 메모리에서 플러그인을 시험해 보며, 새로운 Agent와 플러그인을 만들고, 심지어 자기 자신까지 개조할 수 있습니다.
초심자는 무조건 Standard만 고르시면 됩니다. 대량의 반복적인 도구 호출을 만나 왕복을 줄이고 싶을 때 Code로 전환하세요. 일상 개발에 Minimal을 쓰면 부족한 것들에 인생이 의심스러워질 겁니다.
누구에게 적합하고 누구에게 부적합한가
이 문단들은 공식 입장이 아니라, 커뮤니티의 실측 결과를 토대로 한 판단입니다.
적합한 대상: 플러그인 메커니즘을 연구해 보고 자신만의 실행 환경을 조립하려는 개발자 및 AI 애호가. Agent 역량을 자신의 시스템에 임베드해야 하는 팀 — 플러그인화가 바로 쓸 수 있는 기판을 제공합니다. Agent 연구자 — 궤적 기능이 재현 가능한 실험에 자연스럽게 맞습니다. 기성 Agent로 일상 잡무를 처리하고 싶은 개인 사용자 — 커뮤니티 플러그인이 이미 이미지 인식, Office 문서 읽기/쓰기(Excel/Word/PPT), 브라우저 자동화, 다중 Agent 팀 플레이 같은 영역을 커버하고 있어, 공식이 메우지 않은 빈틈은 커뮤니티가 거의 다 채워 놨습니다.
신중히 고려할 대상: 플러그인을 전혀 만지고 싶지 않고 더블 클릭만으로 바로 쓰고 싶은 분에게는 dsh가 아직 부족합니다. 공식 기본 탑재는 최소 도구 세트(Shell, 파일 읽기/쓰기, 코드 편집, 웹 검색)뿐이고, 이미지 인식, Office, 브라우저 자동화는 직접 플러그인을 설치해야 합니다. 또한 공식은 이 버전을 developer preview로 명시적으로 경고하고 있으며, 매일 업데이트되는 파괴적 변경이 있습니다. 편하게 쓰고 싶다면, 기본 역량이 채워지고 생태계가 안정될 때까지 조금 더 기다렸다가 손대도 늦지 않습니다.
이 장에서 배운 것
아래 항목들을 스스로 완수할 수 있으면 합격입니다.
- [ ] 자신의 말로 dsh가 무엇인지 설명하고,
Agent = Model + Harness에서 Harness이 무엇을 담당하는지 말할 수 있다 - [ ] dsh와 Claude Code 같은 "코딩 어시스턴트"의 차이점을 말할 수 있다(하나는 완성된 제품, 하나는 기판)
- [ ] 네 가지 실행 모드의 이름을 말하고, 초심자가 어떤 모드를 써야 하는지(Standard) 알고 있다
- [ ] dsh의 핵심 특징을 최소 하나 이상 말할 수 있다(모든 것은 플러그인 / Cordis 기반 / 모든 실행은 추적 가능)
