로컬에서 DSH 실행하기

Node 18 이상 버전만 있으면 됩니다. 가장 빠른 방법은 패키지를 전역에 설치하지 않는 것입니다.

웹 UI 시작하기

명령어 하나로 패키지를 다운로드하고 커널을 부팅한 뒤, 로컬 머신에서 인터페이스를 제공합니다.

terminal
npx @deepseek-ai/dsh web
UI는 127.0.0.1에서 제공되므로 기본적으로 네트워크에 노출되지 않습니다.

또는 소스에서 빌드하기

클론을 수행하면 플러그인 워크스페이스, docs 디렉토리, 그리고 참고할 프리셋들을 얻을 수 있습니다.

terminal
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm build

플러그인 추가하기

플러그인은 npm 패키지입니다. 플러그인을 추가하면 설정 파일에 기록되며 커널이 의존성을 해결하도록 요청합니다.

terminal
npx @deepseek-ai/dsh plugin add <package-name>
npx @deepseek-ai/dsh plugin list

첫 번째 플러그인 작성하기

가장 작은 단위의 유용한 플러그인은 필요한 것을 정의하고 한 가지 기능을 등록하는 함수입니다. 이 예시는 테이블에 도구를 하나 추가합니다.

greet-tool.ts
import type { Context } from 'cordis'

export const name = 'greet-tool'
export const inject = ['tools']

export function apply(ctx: Context) {
  return ctx.tools.register('greet', async ({ name }) => {
    return `Hello, ${name}.`
  })
}
반환된 disposer는 플러그인이 언로드될 때 도구를 깔끔하게 제거합니다.

프리셋 선택하기

프리셋은 에이전트가 사용할 수 있는 범위를 변경합니다. Standard로 시작한 뒤 더 깔끔한 측정값이 필요할 때 하위 항목으로 이동하세요.

  • Standard

    완전한 코딩 에이전트: 파일 편집, 셸 접근, 검색, 전체 도구 테이블.

  • PTC

    도구를 한 번에 하나씩 선택하는 대신 TypeScript로 구성하여, 한 번의 턴으로 전체 프로그램을 표현할 수 있습니다.

  • Minimal

    Bash와 에디터. 그 외에는 아무것도 없습니다. 모델 벤치마킹을 위한 정직한 기준점입니다.

  • Creative

    나만의 프리셋을 빌드하고 런타임이 서비스별로 실행되는 과정을 확인하세요.

시작되지 않는 경우

Node 버전 오류

node -v를 확인하세요. 18 미만 버전은 런타임에서 사용하는 문법으로 인해 실패합니다.

포트 3080이 이미 사용 중인 경우

명령줄에서 다른 포트를 전달하거나, 해당 포트를 점유 중인 프로세스를 중단하세요.

플러그인이 로드되지 않는 경우

대부분 inject가 충족되지 않았기 때문입니다. 플러그인은 지정된 모든 Service가 존재할 때까지 pending 상태로 유지되므로 의존성 플러그인이 먼저 로드되었는지 확인하십시오.

전체 가이드, 아키텍처 노트 및 AGENTS.md는 저장소의 docs 디렉토리에 있습니다. 문서

Cordis는 Koishi 커뮤니티에서 만든 TypeScript plugin 프레임워크입니다. DSH는 자체적인 plugin 시스템을 구현하지 않고 이를 사용하며, 이것이 바로 DSH plugin이 곧 Cordis plugin인 이유입니다.

커널 이해하기