文档

六个 Service,一套约定

每个 Service 可以单独启用;业务包只 inject 用到的那几个。六个 Service 都在 @mc/dsh-agent-kit 中,业务包只依赖这一个包;doctor、setup 与设置页在可选的 @mc/dsh-agent-kit-admin 中。下面的约定对所有 Service 都成立。

通用约定

错误模型

所有错误都继承 KitError,带有 service、code、retryable,以及经过脱敏的 cause 与 details。 业务包用 isKitError(e) 和 code 判断错误,不依赖 instanceof,这样即使出现多份模块实例也能正确判断。 配置或环境变量非法时抛出 ConfigError(code: invalid_config),对应 Service 启动失败。

import { isKitError } from '@mc/dsh-agent-kit'

onError: (err, frame) => {
  if (isKitError(err) && err.retryable) {
    // 例如:记录下来,交给对端系统重投
  }
}

生命周期与卸载

健康状态与可观测性

本地开发与测试

@mc/dsh-agent-kit/testing 导出本地 WebSocket 测试服务端、假 subagent provider、Jev mock、假 dws 脚本(createFakeDws)和假 lark-cli 脚本(createFakeLark),业务包可以在没有 dws、lark-cli 与 Agent 登录态的环境下开发和测试;钉钉推送与飞书推送也可以设为 dryRun。