配置引导

doctor、setup 与设置页

本页介绍的都来自可选的运维工具 @mc/dsh-agent-kit-admin,不在基础包 @mc/dsh-agent-kit 中。业务包不需要依赖它;不装它时,六个 Service 照常工作,直接编辑 cordis.patch.yml 即可。需要时把它加入 Profile:

$dsh plugin --profile my-agent add @mc/dsh-agent-kit @mc/dsh-agent-kit-admin

admin 包以常驻行 agent-kit-admin 注册(ctx.agentKitAdmin,即设置页调用的服务端接口),不影响基础包各行的启停。

三种方式读写的是同一份配置:Profile 目录下 cordis.patch.yml 中 id 为 agent-kit-* 的几行,以及业务包登记进来的行(见下文「业务包的行」)。手动编辑这个文件,效果也完全一样。

doctor:检查

$npx @mc/dsh-agent-kit-admin doctor --profile my-agent

setup:交互式配置

$npx @mc/dsh-agent-kit-admin setup --profile my-agent
  1. 选择 Profile。Profile 没装基础包时,会提示要执行的 dsh plugin --profile <名字> add @mc/dsh-agent-kit @mc/dsh-agent-kit-admin。
  2. 多选要启用的 Service,已启用的默认勾选。
  3. 安装缺少的渠道 CLI:启用了钉钉或飞书、而 dws 或 lark-cli 不在 PATH 中时,把缺少的列成多选(默认全选,可以都装,也可以只装一个),再展示将要运行的命令请你确认一次。版本锁定到验证过的 dingtalk-workspace-cli@1.0.62 与 @larksuite/cli@1.0.96。跳过或安装失败时只打印手动安装命令,不影响后续配置。两个包在其他任何时候都不会安装 CLI。
  4. 逐个配置,当前值作为默认值:
    • 钉钉:选择身份;可以按群名搜索群,或直接输入群 ID;user 身份未登录时可以直接拉起 dws auth login;最后可以给自己发一条测试消息。
    • 飞书:选择身份(服务器环境推荐 bot);lark-cli 还没有应用配置时可以直接拉起 lark-cli config init,user 身份未登录时可以直接拉起 lark-cli auth login;默认目标可以按群名搜索群(lark-cli im +chat-search),或直接输入群 chat_id(oc_ 开头)、用户 open_id(ou_ 开头);选择是否 dryRun;写入后可以给默认目标发一条测试消息(群里其他人也会看到)。
    • 通知渠道:选择一个渠道(钉钉或飞书),同一时间只用一个。选中未启用的渠道时会提示。重新运行 setup 可以原地修改渠道;业务代码里也可以用 ctx.notify.use() 临时切换。
    • Agent 任务:工作目录;为 claude-code、codex 声明权限上限。
    • Jev:先选服务(TypeSafe Jev 或本地 Laya)。TypeSafe:Key 输入时不回显;显示将保存到哪里;已有 Key 时可以保留。本地 Laya:填写服务地址;Laya 开启了鉴权时可保存 Key 到 dsh 凭据文件。
  5. 以差异视图展示 cordis.patch.yml 的改动,确认后才写入。密钥单独保存,不出现在差异中。
  6. 自动运行 doctor。

任何一步取消都不会写入文件;已保存的密钥保留。

设置页:在 dsh Web 中操作

Profile 中装了 admin 包时,启动后进入 dsh Web 的「设置 → Agent Kit」:

Agent Kit 设置页
设置 → Agent Kit:启用开关、运行状态、检查结果与配置表单。
只读状态下的 Agent Kit 设置页
只读状态:所有编辑控件禁用,并显示原因。

业务包的行

业务包可以把自己的 loader 行登记进来:设置页多出一张同样的卡片(启用开关、运行状态、检查结果、配置表单和密钥),doctor 也会列出它的检查,scope 为该行的 id。

写法见 README 的「把业务包的配置接入设置页与 doctor」。

密钥保存在哪里

平台setup 与设置页的默认保存位置读取顺序
macOS钥匙串,服务名 ai.typesafe.api-key环境变量 → 钥匙串 → dsh 凭据文件
Linux$DSH_HOME/.credentials.yaml环境变量 → dsh 凭据文件
Windows$DSH_HOME/.credentials.yaml,写入后收紧为仅当前用户可访问环境变量 → dsh 凭据文件

dsh 凭据文件与 .env 一样是明文,只靠文件权限保护;Agent 子进程以同一用户运行,理论上可以读到它。