快速开始:DeepSeek Harness 运行时上手
本指南面向 Agent 运行时工程:启动 Cordis Host、编写 cordis.yml、验证预设与 Session、体验审批与 MCP。理论背景见 入门导论;动手实验见 七天子站。
一、环境准备
| 项目 | 要求 | 说明 |
|---|---|---|
| Node.js | >= 18,推荐 20 LTS | node -v 验证 |
| 包管理 | npm / pnpm / yarn | npx 路径需 npm |
| LLM API | OpenAI 兼容 Key | DeepSeek / OpenAI 等 |
| 磁盘 | ≥ 2GB 可用 | Session Log 增长 |
| 内存 | ≥ 4GB 推荐 | MCP 多进程时 |
export DEEPSEEK_API_KEY="sk-..."
export DSH_LOG_LEVEL="info" # 排错时用 debug
默认 Web UI 地址:http://127.0.0.1:3080
1.1 网络与代理
企业环境若 npx 拉包失败,配置 HTTPS_PROXY 或使用内 npm mirror。LLM API 需 Host 出站访问;纯内网部署需自建模型 endpoint 并在 Profile 修改 model.baseURL。
二、安装路径对比
| 路径 | 命令 | 适用场景 | 缺点 |
|---|---|---|---|
| npx 一键 | npx @deepseek-ai/dsh web | 首次体验、Demo | 版本浮动 |
| 克隆源码 | git clone + pnpm install + pnpm dev | 插件/Bug 开发 | 需构建 |
| Docker | 官方镜像 + volume | 生产预演、CI | 需维护镜像 |
# 推荐首启命令
npx @deepseek-ai/dsh web
# 等价包名(视发布渠道)
# npx @deepseek-ai/deepseek-harness web
生产应用 pin digest 而非 @latest;开发可用 pnpm link 本地 cordis 插件。
2.1 决策矩阵
| 你的目标 | 选择 |
|---|---|
| 15 分钟体验 | npx |
| 写 Cordis 插件 | clone 源码 |
| K8s 部署 Rehearsal | Docker + PVC |
| 无 Node 的服务器 | Docker only |
三、cordis.yml 精讲
项目根或 DSH_CONFIG_DIR 指向目录下的 cordis.yml 是 Effective Runtime 的声明式入口。
host:
name: local-dev
port: 3080
bind: 127.0.0.1
bundle: standard
profile: local
profiles:
local:
model:
provider: deepseek
name: deepseek-chat
apiKey: ${DEEPSEEK_API_KEY}
session:
store: ./.dsh/sessions
maxTurns: 40
sandbox:
workspace: ./demo-ws
denyPaths:
- "**/.env"
- "**/secrets/**"
approval:
mode: permissive
context:
compress: hybrid
patches: []
| 字段 | 配置层 | 含义 |
|---|---|---|
bundle | Bundle | 预设能力包 |
profile | Profile | 当前激活环境名 |
profiles.* | Profile | 各环境参数块 |
patches | Patch | 短期覆盖列表 |
Patch 示例——临时禁用 bash:
patches:
- op: disable
path: tools.bash
reason: "demo 只读"
expire: "2026-12-31"
3.1 合并语义
后应用的 Patch 覆盖先应用的 Profile 字段;patches 数组顺序 significant。环境变量 ${VAR} 在启动时展开,缺失时 fail-fast。
四、首启验证(七步)
node -v≥ 18export DEEPSEEK_API_KEY=...- 创建
demo-ws/README.md测试文件 - 写入第三节
cordis.yml npx @deepseek-ai/dsh web- 浏览器打开
http://127.0.0.1:3080,选 Standard - 发送:「读取 README 第一行」→ 检查
.dsh/sessions/*/events.jsonl
健康检查:curl -sf http://127.0.0.1:3080/health 应返回 200。