@changgaowei:静默失败/谁做了什么的问题是我们从身份开始,而不是另一个工具的原因。如果代理有一个稳定的…
摘要
发布用于DeepSeek Harness的AWiki身份和消息工具,具有稳定的身份标识符和本地优先消息传递功能,旨在解决AI代理系统中的归因和静默失败问题。
查看缓存全文
缓存时间: 2026/08/20 19:05
@0genlab 静默故障/操作者归因问题正是我们从身份体系而非其他工具入手的原因。若代理拥有稳定标识,操作链至少可追溯。https://t.co/GGcWh1j8cN
AgentConnect/dsh-awiki
来源:https://github.com/AgentConnect/dsh-awiki
@awiki/dsh-plugin
为 DeepSeek Harness (https://github.com/deepseek-ai/deepseek-harness) 提供 AWiki 身份验证与消息服务。 该包安装一个宿主服务、其生产环境 Rust SDK 提供程序、 模型工具以及带有可拖动 AWiki Me 启动器的 Web 客户端。
注册失败时会保留表单与本地待处理身份材料。封闭注册、 不可用验证状态及提交冲突各自提供安全的下一步操作,无需暴露远程响应细节。
Rust SDK 独占管理配置的 stateRoot 下的身份、SecretVault、数据库、缓存与元数据。本版本执行彻底切换,不导入前 TypeScript SDK 的 identity.json;升级后请创建基于 Rust 的新身份。
功能特性
- 通过 Web UI 注册一个部署级 AWiki 身份。
- 打开左上角 AWiki 账户菜单可在本地登出,不删除加密身份或消息数据库;恢复操作将重新加载相同的 DID 与 Handle,包括跨 DSH 重启场景。
- 在根代理及其子代理间复用同一身份。
- 支持直接消息与现有群组对话列表、未读计数、最新消息预览及持久化显示名称。核心 SQLite 仍是持久化真相源:宿主将持久化对等档案关联至直接通讯录行,而浏览器保存活动身份最后可信的直接档案与群组标题。稀疏轮询标识符因此无法覆盖已解析的显示名称或真实群组标题。打开对话时首先渲染本地已提交时间线,从核心显示档案缓存注入群组发送者标签,后台协调远程历史与直接档案数据,若刷新失败则保持本地消息可见。后台通讯录轮询失败时仍保持可用本地视图静默;显式加载操作仍会呈现其错误。此本地优先路径涵盖最新预测页面;加载更早消息仍需远程历史服务。上拉时显示最新消息控件,统计新到达消息而不中断阅读。仅当对话最新渲染消息抵达可视底部时才标记为已读。
- 通过 Web UI 创建支持私密发现、开放加入、传输层保护的群组,可设置名称及 1–50 个初始 Handle 或 DID 成员。群组立即创建;无法添加的成员会被报告,同时不隐藏已成功创建的群组。
- 文本消息支持每条附加一个附件,支持回车发送、Shift+Enter 换行、通过精确客户端消息 ID 协调的乐观发送气泡、图像预览及 SHA 校验。校验后的图像字节采用三层有限容量架构:浏览器运行时 LRU 缓存确保对话重载即时性,身份作用域 IndexedDB 在全页面刷新时保持数据无需调用宿主,私有宿主磁盘缓存可抵御浏览器存储丢失及 Harness 重启。清除本地数据将移除所有三层缓存。
- 可拖动圆形启动器、自适应弹出层定位、深色模式及记忆最后活跃对话。
- 用户触发式 AI 摘要最多处理 50 条近期或未读消息,仅存储于运行时内存,并提供显式过期、重试、复制及源文件导航状态。
- OTP 注册保持验证表单可见,并通过可见的服务器端冷却倒计时禁用重发功能。
- 安装独立
@awiki/dsh-model-proxy包时,在 Harness 无可用模型提供方情况下、官方 API 密钥启用步骤前提供 AWiki 托管 DeepSeek 选项,需明确选择且 API 密钥逃生路径不变。当官方或其他提供方可用后,新会话不再显示 AWiki 模型或支付提示。 - 可选的模型代理包管理仅限宿主的短令牌流程,注册
awiki-deepseek服务并配备deepseek-v4-flash与deepseek-v4-pro;推荐使用 Flash 版本,凭据绝不进入浏览器。 - 高级 AWiki 设置始终可用。仅在加载
@awiki/dsh-model-proxy时显示账户与充值、用量标签页。 - 在设置危险区域执行永久清除本地 AWiki 身份、密钥、令牌、注册草稿及消息索引状态前,提供类型化二次确认。
- 五种消息代理工具:身份状态、对话列表、历史记录、经批准的文本发送、经批准的附件发送。
- 五种按需邮件代理工具:邮箱账户、收件箱、纯文本阅读、经批准的标读、经批准的纯文本发送。
- 可选实时监听器,允许精确白名单内的直接对等方继续一个 DSH 代理会话或使用
/new、/status和/help命令。
截图
消息功能
DeepSeek Harness 中的 AWiki 直接与群组消息
邮件功能
DeepSeek Harness 中的 AWiki 邮箱
首版未实现端到端加密、多身份支持、 群组创建后管理或单消息多附件。代理监听器仅接收纯文本直接消息;群组、附件、加密/载荷内容及未知斜杠命令永不触达代理。
邮件 v1 版本仅按需触发,无浏览器邮箱或撰写界面。不会为新邮件唤醒代理,不渲染或发送 HTML,不传输邮件附件,也不支持回复、转发及会话线程。邮件主题、地址、预览、正文、时间戳及附件元数据属不可信外部数据,绝非代理指令。awiki_mail_mark_read 与 awiki_mail_send 需执行批准。邮件发送仅尝试一次无自动重试;超时或传输丢失将返回 delivery-unknown,故发送前请检查邮箱状态。
安装
安装官方公共 npm 包:
``bash dsh plugin –profile web add @awiki/dsh-plugin@latest
主包不再安装 AWiki 托管模型提供方。仅当需要该功能时添加独立版本管理的宿主专用包:
``bash
dsh plugin --profile web add @awiki/dsh-model-proxy@latest
配置文件安装器同时添加包并激活其捆绑层。在 DSH 项目中执行 npm i @awiki/dsh-plugin 仅安装包;
不会激活捆绑层,因此配置文件命令仍是推荐安装路径。本版本线针对 0.1.0-rc.7 包系列,精确固定每个直接宿主对等依赖,防止 npm 在 DSH 根依赖树中混合预发布系列。
@awiki/dsh-plugin 自 0.2.0-rc.4 起为规范包标识。前 @awiki/dsh 注册表条目已下架,不作为本版本线的安装源。
应用包应在正常 DSH 基础与 Web 应用捆绑层之后加载。其主 cordis.patch.yml 添加 AWiki 宿主服务、Rust SDK 提供程序及摘要提供程序;DSH 通过包元数据发现并注入浏览器客户端。它不插入模型代理。可选包拥有独立补丁,在 AWiki 后精确插入一行 awiki-model-proxy,并声明对已加载 awiki 服务的显式依赖。
配置
该插件默认使用公共 awiki.ai 租户,无需环境配置。仅当部署需要覆盖时设置以下变量:
| 变量 | 用途 | 默认值 |
|---|---|---|
DSH_AWIKI_USER_SERVICE_URL | 绝对 AWiki 用户服务 URL | https://awiki.ai |
DSH_AWIKI_USER_SERVICE_DOMAIN | Handle 提供程序域的组合默认值 | awiki.ai |
DSH_AWIKI_MESSAGE_SERVICE_URL | 宿主调用的消息服务 URL | https://awiki.ai |
DSH_AWIKI_MAIL_SERVICE_URL | 宿主调用的邮件服务 URL | 解析后的用户服务 URL |
DSH_AWIKI_MESSAGE_SERVICE_DID | 权威消息服务 DID | did:wba:awiki.ai |
DSH_AWIKI_MESSAGE_SERVICE_PUBLIC_URL | 写入协议记录的公开端点 | https://awiki.ai |
DSH_AWIKI_ALLOWED_ATTACHMENT_ORIGINS | 额外精确 HTTPS 源的 JSON 数组 | [] |
DSH_AWIKI_STATE_ROOT | 私有 Rust IM 核心状态目录 | $DSH_HOME/awiki/im-core 或 ~/.dsh/awiki/im-core |
DSH_AWIKI_VAULT_ROOT_KEY_FILE | 包含 base64/base64url 32 字节保险库根密钥的现有私有文件 | $DSH_HOME/awiki/secret-vault/root-key.b64u |
DSH_AWIKI_VAULT_WORKSPACE_ID | 稳定非机密保险库工作区上下文 | dsh-awiki |
DSH_AWIKI_VAULT_DEVICE_ID | 稳定非机密保险库设备上下文 | local-device |
DSH_AWIKI_POLL_INTERVAL_MS | 开放对话轮询间隔 | 5000 |
DSH_AWIKI_ATTACHMENT_MAX_BYTES | 解码后附件限制 | 10485760 |
DSH_AWIKI_IMAGE_CACHE_MAX_BYTES | 私有校验图像预览缓存预算 | 67108864 |
DSH_AWIKI_LISTENER_ENABLED | 启用直接消息到代理监听器 | false |
DSH_AWIKI_LISTENER_ALLOWED_PEERS | 精确 Handle 或 DID 的 JSON 数组;启用时必填 | [] |
DSH_AWIKI_LISTENER_WORKSPACE_PATH | AWiki 发起会话的绝对共享工作区 | $DSH_HOME/workspaces/awiki 或 ~/.dsh/workspaces/awiki |
DSH_AWIKI_SUMMARY_MAX_INPUT_BYTES | 宿主端摘要最小化后的 UTF-8 上限 | 32768 |
DSH_AWIKI_SUMMARY_TIMEOUT_MS | 单次模型截止时间 | 30000 |
DSH_AWIKI_SUMMARY_MAX_OUTPUT_TOKENS | 结构化摘要输出上限 | 768 |
AWiki 托管 DeepSeek 账户
此功能现需独立 @awiki/dsh-model-proxy 包。它使用 ctx.awiki.externalHttpAuth 在宿主内获取短期模型令牌,并复用 Harness DeepSeek 适配器。浏览器仅通过本地 RPC 通道接收过滤后的账户、用量及订单状态。DID 签名、承载令牌及上游平台凭据不会出现在浏览器包中。
前运行时导入 @awiki/dsh-plugin/model-proxy 已移除。请使用
@awiki/dsh-model-proxy;共享的浏览器安全契约仍为 @awiki/dsh-plugin/model-proxy-contract。仅安装主包将保持模型引导、账户/充值及用量入口隐藏,同时 AWiki 高级设置功能正常。
此拆分始于 @awiki/[email protected] 与
@awiki/[email protected]。可选包要求主包版本 ^0.3.0,因此无法与仍默认插入旧运行时的 0.2.x 主包组合。
可选包管理以下配置变量:
| 变量 | 用途 | 默认值 |
|---|---|---|
DSH_AWIKI_MODEL_PROXY_URL | AWiki 托管 DeepSeek 代理根 URL | https://model.awiki.info |
DSH_AWIKI_MODEL_CONTEXT_WINDOW | AWiki 托管 DeepSeek 上下文窗口 | 1000000 |
DSH_AWIKI_MODEL_MAX_TOKENS | AWiki 托管 DeepSeek 最大输出 | 8192 |
DSH_AWIKI_MODEL_TOKEN_REFRESH_SKEW_SECONDS | 提前短令牌刷新间隔 | 60 |
AWiki 托管 DeepSeek 默认禁用。仅在引导或设置 → AWiki →
账户与充值中的显式选择才会注册 awiki-deepseek 路由并选择 Flash。禁用将恢复之前的提供方、模型及推理强度。成功充值刷新余额但永不自动启用 AWiki 或更改选定模型。
设置界面支持支付重定向与通企付 ALI_QR 内容。支付禁用时报告开发限制,但不阻止 model_access_available 标志为真的账户。开发绕过分别显示计算与扣费金额,扣费为零;当无价格表激活时不虚构价格。
公开充值创建在 src/client/recharge-availability.ts 中设有客户端发布门控。该门控当前关闭:充值控件保持可见,但尝试充值显示本地化即将推出对话框且不发送订单 RPC。仅在生产收款账户就绪后开启该单一门控;现有支付、轮询及取消流程在门控后保持完整。
严格计费将内部计费模式标签排除在常规账户摘要之外。当后端报告 model_access_reason=insufficient_balance 时,充值成为主要操作,模型启用功能在信用额可用前被保留。宿主在每次重新打开设置页面时恢复最新待处理订单及其支付操作,轮询时不创建重复项,支付后仍需显式模型选择。充值金额在订单创建后不可变。如需选择其他金额,用户确认取消并更改金额;宿主先关闭提供方订单,然后恢复金额编辑器而不创建替换项。关闭失败保留现有支付操作可用,而赢得竞争的支付刷新已充值账户而非被报告为已取消。
默认 Handle 提供程序域为 awiki.ai。本地用户可在设置 → AWiki → 高级中覆盖;DSH 将该选择持久化至设置文档并在下次 Harness 重启后应用。该设置影响未来的身份注册及短 Handle 补全。不重写已注册的 DID 或 Handle。
设置页面与插件拥有的连接通道通信,宿主仅接受来自本地回环的连接。这确保独立安装的 @awiki/dsh-plugin 与原版 DSH 发行版兼容,无需将 AWiki 添加至核心设置白名单;非本地浏览器源无法读取或修改宿主设置。
设置 → AWiki → 高级 → 危险区域仅清除本安装的本地 AWiki 状态;不删除服务器端账户或 Handle。对话框需显示确认短语。成功后,本地 DID 密钥、访问令牌、注册草稿、对话列表、附件索引及缓存图像预览无法通过应用恢复,本安装可能丢失对旧身份的访问权。
常规登出与破坏性操作分离。仅写入私有宿主拥有会话标记,控制 Web 与代理操作,并保留 SDK 拥有的 SecretVault 身份、密钥、令牌、对话、附件索引及缓存图像预览。恢复操作移除标记并重新加载同一本地身份,无需注册。
提供程序域与消息服务 DID 是协议标识符。请勿从 API 主机名推断。生产服务 URL 必须使用 HTTPS。IM 核心状态目录包含访问材料;请将其排除在仓库外,限制文件系统访问并保护底层磁盘及备份。
Node 外观拥有 stateRoot/vault/root-key.b64u;宿主不提供、复制或记录保险库密钥材料。请在常规重启及升级过程中保留完整的 SDK 状态根。
除非同时配置 DSH_AWIKI_LISTENER_ENABLED=true 及非空精确白名单,否则监听器禁用。启动时及每个核心实时调度信号运行时,先执行规范可靠同步再读取已提交历史。核心管理 WebSocket 连接与重连;流关闭作为停止处理,重连同步后替换实时会话。每个直接对话的持久化路由与消息水印保留当前 DSH 会话跨重启。每个 AWiki 发起的会话均在注册的共享 AWiki 工作区中创建并关联。监听器消息为不可信用户数据,不批准工具或桥接批准/用户提问提示。
针对默认 10 MiB 解码附件上限,请配置至少 14 MiB 的反向代理请求限制以容纳 base64 与 JSON 开销。
AI 摘要生成仅在用户选择 AI 摘要 后运行。若对话打开时存在未读消息,宿主…
相似文章
@changgaowei: 很棒——模型后端作为插件。我们以同样的方式处理身份认证,这样代理就可以被访问,而不必只存在于……
本文详细介绍了 DeepSeek Harness 的 AWiki 插件的发布,该插件为 AI 代理提供了身份识别和消息传递功能,包括注册、直接消息传递、群组创建和本地数据持久化等特性。
@changgaowei: https://x.com/changgaowei/status/2075462596384469283
AWiki从一个技能升级为开源基础设施产品,用于AI智能体连接,支持基于W3C DID的身份认证、端到端加密及多种集成方式,实现内部和跨域协作。
@changgaowei: 如果同事还依赖电子邮件,这就是我们遇到的差距。插件为代理提供邮箱和句柄,这样他们就不必…
此插件为 DeepSeek Harness 提供 AWiki 身份和消息功能,使AI代理能够拥有邮箱和句柄特性,实现无缝通信。
@changgaowei: 不错。我们刚刚将身份整合到同一条路径上——句柄 + DID,这样代理可以在Harness内部处理消息和邮件,而不是由您手动复制。
此版本为DeepSeek Harness引入了一个身份和消息插件,使代理能够通过DID管理身份,并通过具有安全功能的Web UI处理消息和邮件。
@changgaowei: 跨机器代理对话是正确的问题。我们以相同的方式拆分:首先身份(`did:wba`),然后消息…
代理网络协议(ANP)是一种开源通信协议,旨在实现AI代理之间安全、高效的交互,定位为智能网络时代的HTTP。