快速开始
从零到一个能跑的 Profile
本页带你走完:准备环境 → 安装 → 用 setup 配置 → 用 doctor 验证 → 在 Web 设置页查看状态。每一步都可以单独回头重来。
setup、doctor 与设置页来自可选的运维工具 @baoyx/dsh-agent-kit-admin。不装它也可以:五类能力的实现都在 @baoyx/dsh-agent-kit 中,直接编辑 Profile 的 cordis.patch.yml 启用并配置即可(见各 Service 文档的「配置」一节)。
环境要求
- Node.js
^22.19或>=24。 @deepseek-ai/dshCLI0.1.5-rc.3。当前为预发布版本,dsh 与 cordis 相关依赖需锁定到与之一致的版本。- 使用钉钉推送:已安装并登录
dws(dingtalk-workspace-cli,已验证1.0.62),仅支持user身份。 - 使用通知服务:同时启用默认渠道(钉钉或飞书)的行。
- 使用飞书:安装可选依赖
@larksuiteoapi/node-sdk(^1.76.0),详见 飞书。 dws可以先不装:admin 包的setup会在你确认后安装。- 使用 Agent 任务:安装
@deepseek-ai/dsh-subagent-claude-code和/或@deepseek-ai/dsh-subagent-codex,并完成 Claude Code / Codex 的原生登录。 - 使用 Jev 判断:安装
@typesafe-ai/sdk,并准备好 TypeSafe API Key(存放位置见本页最后一节);或者改用本地部署的 Laya,只需要它的服务地址,见 Jev 判断。 - 生产部署:Profile 进程由 systemd、pm2 等进程守护托管。
安装
先安装 dsh,并基于 web 模板创建一个常驻 Profile:
npm i -g @deepseek-ai/dsh@0.1.5-rc.3
dsh --profile my-agent --from-default-profile web再把本包和 Agent provider 装进这个 Profile。subagent 包必须显式指定版本:它们的 latest 标签目前指向 0.0.1-rc.1,与 dsh 不匹配。
$dsh plugin --profile my-agent add @baoyx/dsh-agent-kit @deepseek-ai/dsh-subagent-claude-code@0.1.5-rc.3 最后装上你自己的业务包:
dsh plugin --profile my-agent add ./my-business-plugin-0.1.0.tgz如果要用下面的 setup、doctor 与设置页,再装上可选的运维工具:
$dsh plugin --profile my-agent add @baoyx/dsh-agent-kit-admin 用 setup 配置
setup 是 admin 包自带的交互式配置工具,不需要启动 dsh:
$npx @baoyx/dsh-agent-kit-admin setup --profile my-agent 它会依次:
- 选择 Profile:在
$DSH_HOME/profiles下查找装了@baoyx/dsh-agent-kit的 Profile;只有一个时自动选中,有多个时让你选。 - 选择要启用的 Service:已启用的默认勾选。
- 安装缺少的 dws:启用了钉钉、而
dws不在PATH中时,展示npm i -g dingtalk-workspace-cli@1.0.62并请你确认。 - 逐个配置:当前值作为默认值。钉钉固定为
user身份,可以按群名搜索群,未登录时可以拉起dws auth login;通知的默认渠道可选钉钉或飞书;Agent 任务需要声明权限上限;Jev 的 Key 输入时不回显。 - 预览改动并确认:以差异视图展示
cordis.patch.yml的改动,确认后才写入。密钥单独保存,不会出现在差异里。 - 自动运行 doctor:检查刚写入的配置。
任何一步取消都不会写入文件。
用 doctor 验证
doctor 只读,不修改任何文件。它只检查已启用 Service 需要的项,每个未通过的项都附一条修复命令:
$npx @baoyx/dsh-agent-kit-admin doctor --profile my-agent Profile: my-agent
[通用]
✓ Node.js 版本:当前 24.8.0,需要 ^22.19 或 >=24
✓ 本包已加入 Profile:Profile my-agent 已包含 @baoyx/dsh-agent-kit
✓ 配置修改即时生效:patchReload: live
[dingtalk]
✓ 钉钉 配置:配置有效
✓ dws 已安装:/usr/local/bin/dws
✓ dws 登录状态:已登录 张三 @ 示例科技
[notify]
✓ 通知渠道 配置:配置有效
✓ 通知渠道:钉钉:agent-kit-dingtalk 已启用
[agent-tasks]
✓ Agent 任务 配置:配置有效
✗ subagent provider 已安装:未安装 claude-code 或 codex provider
→ dsh plugin --profile my-agent add @deepseek-ai/dsh-subagent-claude-code@0.1.5-rc.3
✓ 权限上限已声明:所有已安装 provider 都已声明
存在未通过的检查项,请按提示修复。加上 --json 会输出机器可读的报告,适合接入 CI;有未通过的项时退出码为 1。
在 Web 设置页查看与修改
Profile 中装了 admin 包时,启动后打开 dsh Web 界面,进入「设置 → Agent Kit」。已展示的 Service 和业务插件各有卡片,可启停、修改配置、查看运行状态和检查结果;与 setup 读写同一份 cordis.patch.yml。钉钉卡片提供当前 user 扫码登录、群消息路由与未命中记录;通知 Service 仍供代码使用,但不显示独立卡片。业务插件可以在自己的卡片里选择群或个人作为发送目标。
dsh --profile my-agent --no-open
TypeSafe Key 存在哪里
读取顺序在三个平台上一致,靠前的优先:
| 顺序 | 来源 | 说明 |
|---|---|---|
| 1 | 环境变量 TYPESAFE_API_KEY | 所有平台;setup 与设置页不会覆盖或清除它 |
| 2 | macOS 钥匙串 | 仅 macOS;服务名默认 ai.typesafe.api-key,可与 gitflow-cli 共用 |
| 3 | dsh 凭据文件 | $DSH_HOME/.credentials.yaml,Linux 与 Windows 上保存 Key 的默认位置 |
用 admin 包的 setup 与设置页保存 Key 时:macOS 默认写入钥匙串,Linux 与 Windows 写入 dsh 凭据文件。Jev 选本地 Laya 时不需要 TypeSafe Key;Laya Key 可选,只存 dsh 凭据文件。