前言¶
DeepSeek Harness(DSH)把模型、工具和工作区拆成可插拔模块,但身份、私聊/群聊、邮箱这类「带账号边界」的能力通常不在核心包里。若要在 Agent 会话里复用同一套 DID/Handle,同时让模型通过工具读写会话与邮件,需要 Host 侧服务、Rust SDK、Web 客户端和 Agent 工具协同实现。
下面介绍社区插件 @awiki/dsh-plugin(SkillHub 条目 agentconnect/dsh-awiki)。它由 AgentConnect 维护,分类为 admin-security,为 DSH 提供 AWiki 身份注册/恢复、即时消息 Web UI,以及供 Agent 调用的消息与邮件工具。
这是什么¶
一句话定位:AWiki identity and messaging plugin for DeepSeek Harness——一个 npm 包同时安装 Host Service、生产级 Rust SDK Provider、模型工具,以及带可拖动「AWiki Me」入口的 Web 客户端。
Rust SDK 独占管理 stateRoot 下的身份、SecretVault、数据库、缓存与元数据。本发布线采用干净切换,不导入旧 TypeScript SDK 的 identity.json;从旧版升级后需创建新的 Rust 身份。
当前 package.json 版本为 0.3.5;GitHub 仓库约 10 stars(截至 2026-08-27)。
核心功能¶
身份与本地状态¶
在 Web UI 统一入口输入 Handle 和手机号。Host 在发送验证码前分类 Handle:新 Handle 走注册 OTP 并创建部署身份;已有 Handle 走 Recovery V4 OTP 并进入恢复流程。根 Agent 与子 Agent 共用最终身份。
OTP 流程保留验证码表单,按服务端冷却禁用重发;手机号与 OTP 不进入浏览器持久化、controller snapshot 或公开 Remote 结果。Recovery V4 到达 applied 后 Host 立即激活身份;历史邮箱与模型账本对账当前不阻塞恢复。
账户菜单支持「退出登录」(仅锁本会话,保留加密身份与消息库)和「重新进入本机身份」。切换身份需先确认永久清除本地 AWiki 数据。设置页危险区域需输入确认词后,才会清空本机身份、密钥、令牌、注册草稿与消息索引。
即时消息(Web UI)¶
- 私聊与群聊列表、未读角标、最新消息预览、持久化显示名;Core SQLite 为持久化真相源,local-first 渲染本地时间线,后台补齐远端历史。
- Web UI 建群:私有发现、开放加入、传输保护,1–50 个初始 Handle 或 DID 成员;建群后立即进入会话,个别成员失败单独提示。
- 文本 + 单附件消息,Enter 发送、Shift+Enter 换行,乐观气泡按客户端 message ID 对账;图片 SHA 校验与三层有界缓存(浏览器 LRU、IndexedDB、Host 磁盘)。
- 可拖动圆形入口、自适应弹窗、深色模式、会话记忆;用户触发的 AI 总结(最多 50 条最近或未读),仅保留在本次运行期内存。
首版不包含端到端加密、多身份、建群后管理、单消息多附件。
Agent 工具¶
消息(5 个):身份状态、会话列表、历史、需审批的文本发送、需审批的附件发送。
邮件 v1(5 个,按需):邮箱账户、收件箱、纯文本读取、需审批的标记已读、需审批的纯文本发送。无浏览器收件箱 UI,不以新邮件唤醒 Agent;awiki_mail_mark_read 与 awiki_mail_send 每次执行需审批;发送只尝试一次,超时返回 delivery-unknown。
可选实时 listener:DSH_AWIKI_LISTENER_ENABLED=true 且配置 exact allowlist 后,allowlist 内私聊对端可续接 DSH Agent 会话,或使用 /new、/status、/help。Listener 只接受明文私聊文本。
可选托管模型(独立包)¶
主包不再默认安装 AWiki 托管模型 Provider。需要时在主包之外安装 @awiki/dsh-model-proxy@latest:仅在 Harness 没有任何可用模型时,首次引导才在官方 API Key 步骤前提供 AWiki 托管 DeepSeek 选项(deepseek-v4-flash、deepseek-v4-pro)。只装主包时,不会出现模型启停、充值、用量或模型引导 UI。
安装与启用¶
在 DSH 项目根目录执行 Profile 安装命令(会同时添加包并激活 bundle layer;普通 npm i 不会激活 bundle):
dsh plugin --profile web add @awiki/dsh-plugin@latest
需要 AWiki 托管模型时再装:
dsh plugin --profile web add @awiki/dsh-model-proxy@latest
请在常规 DSH base 和 Web app bundle 之后应用本包。主包 cordis.patch.yml 加入 AWiki Host Service、Rust SDK Provider 和 Summary Provider;浏览器客户端由 DSH 根据包元数据自动注入。
插件默认连接公开租户 awiki.ai,无需环境变量即可使用。自部署或覆盖默认值时,可设置例如:
| 环境变量 | 用途 | 默认值 |
|---|---|---|
DSH_AWIKI_USER_SERVICE_URL |
AWiki user service 绝对 URL | https://awiki.ai |
DSH_AWIKI_STATE_ROOT |
Rust IM Core 状态目录 | 按 DSH profile 隔离,见 README |
DSH_AWIKI_LISTENER_ENABLED |
开启私聊到 Agent 的 listener | false |
DSH_AWIKI_LISTENER_ALLOWED_PEERS |
exact Handle/DID JSON 数组 | [] |
完整变量表见 GitHub README.zh.md。
典型用法¶
1. 首次身份¶
- 安装插件并启动 DSH Web profile。
- 点击左下角可拖动的 AWiki Me 入口,输入 Handle 与手机号。
- 按提示完成注册 OTP 或 Recovery V4 OTP;恢复已有 Handle 后 Host 会同步账号投影并尝试恢复群成员身份。
2. Agent 读取会话并发送(需审批)¶
Agent 可通过注册的工具查询身份、列出会话、拉取历史;文本与附件发送工具需用户审批后执行。具体工具名以插件注册为准(README 列出的五类消息工具与五类邮件工具)。
3. 同进程插件调用 ANP 身份认证¶
可信的 DSH Host 同进程插件可委托 AWiki 处理外部 HTTP 的 ANP 签名与 Token,无需自行实现 challenge/重试:
const response = await ctx.awiki.externalHttpAuth.dispatch(
new Request('https://api.example.com/orders', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ productId: '123' }),
}),
request => fetch(request),
)
回调函数仍是唯一网络 transport owner;该 API 不进入 Browser Remote 或 Agent tools。
4. 可选:私聊触发 Agent listener¶
启用 listener 并配置 allowlist 后,allowlist 内对端的明文私聊可路由到共享 AWiki Workspace 上的 DSH Session。生产环境需评估会话隔离与工具审批策略。
适用场景与注意¶
适合谁
- 已在或计划使用 AWiki(
awiki.ai或自部署租户)的 DSH 用户,希望在 Harness 内完成身份、IM 与(可选)邮件,而不是另开客户端。 - 需要 Agent 在审批边界内读写信箱、查会话、发消息的自动化场景。
- 希望可选接入 AWiki 托管 DeepSeek 模型、且接受独立
@awiki/dsh-model-proxy包的用户。
使用前务必了解
- 插件以当前 DSH 进程权限运行,可访问
stateRoot下的密钥与消息库;安装前应阅读 源码 与许可证。插件主体为 MIT;Rust IM Core 运行时依赖为 AGPL-3.0-only(见THIRD_PARTY_NOTICES.md)。 - SkillHub(skillhub.cn)是社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」思路,目录站点独立运营。
- 首版限制:无 E2E 加密;身份恢复不重建历史私聊(仅 Rust SDK 已保留的本地数据按 Core 规则迁移);邮件 v1 功能边界见上文。
- IM Core 状态含访问材料,应放在仓库外并限制文件权限;不要在仓库中提交 OTP、令牌、私钥或
.env。
链接¶
- SkillHub 目录页:https://www.skillhub.cn/plugins/AgentConnect/dsh-awiki
- GitHub 仓库:https://github.com/AgentConnect/dsh-awiki
- 中文说明:https://github.com/AgentConnect/dsh-awiki/blob/main/README.zh.md
若你的 DSH 工作流需要统一 AWiki 身份、本地优先的消息界面,以及可审批的 Agent 消息/邮件工具,可按上述 Profile 命令安装主包,再按需叠加 Model Proxy 与 listener 配置。