로컬에서 DSH 실행하기
Node 18 이상 버전만 있으면 됩니다. 가장 빠른 방법은 패키지를 전역에 설치하지 않는 것입니다.
웹 UI 시작하기
명령어 하나로 패키지를 다운로드하고 커널을 부팅한 뒤, 로컬 머신에서 인터페이스를 제공합니다.
npx @deepseek-ai/dsh web 또는 소스에서 빌드하기
클론을 수행하면 플러그인 워크스페이스, docs 디렉토리, 그리고 참고할 프리셋들을 얻을 수 있습니다.
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm build 플러그인 추가하기
플러그인은 npm 패키지입니다. 플러그인을 추가하면 설정 파일에 기록되며 커널이 의존성을 해결하도록 요청합니다.
npx @deepseek-ai/dsh plugin add <package-name>
npx @deepseek-ai/dsh plugin list 첫 번째 플러그인 작성하기
가장 작은 단위의 유용한 플러그인은 필요한 것을 정의하고 한 가지 기능을 등록하는 함수입니다. 이 예시는 테이블에 도구를 하나 추가합니다.
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}.`
})
} 프리셋 선택하기
프리셋은 에이전트가 사용할 수 있는 범위를 변경합니다. 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인 이유입니다.
커널 이해하기