npx @deepseek-ai/dsh web
npx = 临时下载、运行、不常驻安装,像试驾:车开走试试,不用先买。启动后自动打开 http://127.0.0.1:3080。
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install && pnpm run build
pnpm dsh web
| 场景 | 用哪个 |
|---|---|
| 只是想用、想体验 | 方式 A |
| 开发插件 / 读源码 / 改代码 | 方式 B(本课程后续练习都基于 B) |
| SSH 服务器上跑,不想自动开浏览器 | 加 --no-open |
platform.deepseek.com 申请),保存。$DSH_HOME/.credentials.yaml(DSH_HOME 是 dsh 的主目录),设置里只保留对它的"引用"。配置后模型选择器出现可用模型,选中的自动成为新会话默认;已发过请求的会话则记住自己日志里记录的模型,不被全局默认影响——又是"日志即事实"。
workspace(工作区)= 授权给智能体操作的目录。dsh 进程默认用启动时的目录,但 Web UI 必须先添加并选中一个 workspace 才能新建会话(安全默认:不点头,不让碰)。点 Choose workspace → 添加你启动 dsh 的项目目录 → 选中它。
总结这个仓库,并指出它的主要包。
发出后观察 Web UI:流式输出(每个片段是一条 assistant/chunk 入账事件,见 L07)、工具活动卡片(读文件等)、敏感操作的审批弹窗。智能体在工作区能读写文件、运行命令、委派子任务、维护计划,每一步都在日志里,随时可回看。
Add provider → 选 Anthropic / OpenAI 等目录提供商 → 填 API key。目录自带端点、协议和模型清单,像应用商店的"官方应用",信息都配好了。
Add a custom provider,提供:小写 Provider ID(永久的,改名=新建+删旧)、base URL、API 协议、凭据、至少一个模型;可点 Fetch available models 从端点拉取清单。
$DSH_HOME/settings.yaml 里路由的 compat 即可:
llm-pi-ai:
providers:
my-gateway:
baseURL: https://gateway.example/v1
compat:
supportsDeveloperRole: false # 推理模型的系统提示别用 developer 角色发
maxTokensField: max_tokens # 输出上限字段用 max_tokens 而非 max_completion_tokens
手动添加的模型默认纯文本;视觉模型要在 settings.yaml 给它声明 input: [text, image]。报错"图片被拒"先查这里。
| 症状 | 解法 |
|---|---|
MISSING_CREDENTIAL | 在 Models 页存好 key,或配置所引用的环境变量 |
UNKNOWN_MODEL | 选一个已配置的模型,或往自定义提供商里补这个模型 |
| 拉模型清单 401 | key 不对;或该端点没有 GET /models 接口——改为手动填模型 |
| key 和 URL 都对但请求全被拒 | 网关请求形状与 OpenAI 不同 → 上文的 compat 两开关 |
| 只有推理模型失败 | 系统提示被发成 developer 角色被网关拒 → supportsDeveloperRole: false |