Hanori花织 · 使用文档
版本更新

v0.20.0

插件市场、统一检索与 Bot 运行诊断

新增网页插件市场和统一检索入口,可按 Bot 配置可信插件,并按需启用 Bilibili 后台音频转录。

Bot 管理员可以直接询问“为什么上一条消息没有回复”,查看当前聊天的运行状态、有效配置、请求链路、近期错误和脱敏诊断事件。

新功能

插件市场与统一检索

  • 所有者和管理员可在网页安装内置插件或可信第三方插件,按 Bot 配置、启停和测试。第三方来源固定到公开 GitHub 仓库的完整 40 位提交 SHA,支持更新与上一版本回滚;发布内容须预构建,服务器不执行依赖安装或构建脚本。插件具有宿主进程权限,不是沙箱,安装前需明确确认信任。
  • Cookie、Token、API Key 等秘密按 Bot 加密保存,网页只显示是否已配置,不回显原值。配置清单变化后需要重新审核保存;停用、更新或卸载会取消旧会话,卸载保留加密配置草稿。
  • 支持在插件配置中扫码登录 Bilibili 和网易云音乐;手机确认、平台账号验证通过后,自动将 Cookie 加密保存到选中的 Bot。第三方插件可通过统一扫码接口接入。保存开始前可取消,过期可重试;保存开始后关闭窗口不撤销写入,结果无法确认时需刷新配置核对。登录不自动启用插件,也不提供 Cookie 自动续期。
  • search 统一查询已有来源,先返回有界摘要,再用 read_reference 按需读取正文。引用限定当前回复或委派任务,保留 Bot、聊天、用户和来源权限;检索不会隐式发送消息、写入资产、下载音频或启动转录。
  • 统一检索默认开启,可在 AI 设置中关闭以恢复旧独立搜索工具;已启用插件的检索仍通过统一入口提供。新增插件开发契约与预构建示例。

媒体读取与后台转录

  • 内置 Bilibili 支持链接查询、分 P 元数据和平台字幕;网易云支持歌曲、专辑、歌单元数据及原文/翻译/罗马音歌词。正文支持分页和关键字查询,区分来源、不可用状态与截断;这些插件不提供付费、DRM 或账号权限绕过。
  • 可选 Bilibili ASR 默认关闭。管理员明确请求、配置有效 Cookie、音频外传许可、单一 ASR 服务与每用户预算后,只有确认没有平台字幕才创建后台任务。支持查询进度、取消、有限恢复及网页任务管理;转换由完全无网络的独立 worker 执行,不构成可信插件的沙箱,也不会自动切换供应商或模型。
  • 时长、每日任务数与预算可在网页按需设置,取消固定的 10 分钟、10 次、60 分钟等配置上限;仍按用户保存的限制拒绝超长或超额任务。单次文件容量和处理超时仍有效,当前不自动分段处理长音频。
  • 转录正文从任务创建起保留 24 小时,完成通知仅包含任务 ID 和状态。网页每页最多 40 条字幕、4,000 字符;SRT/VTT 全文下载须先启用导出,并为当前任务单独确认处理权限。配置变化会撤销旧结果的读取资格。

聊天内运行诊断

  • 新增五个只读 AI 诊断工具,区分排队、模型超时、工具失败、空回复与 Telegram 投递失败,支持查询上一条自己的消息。
  • 查询限定当前 Bot 和当前聊天;身份来自真实 Telegram 消息,仅当前 Bot 管理员可用。输出采用白名单,不返回凭据、完整提示词或原始消息正文。
  • 每次查询均写入审计,包括拒绝和未找到记录的情况。查询有频率、分页和响应大小限制;审计失败时不返回诊断数据。

修复

  • 运行状态和有效配置工具不再暴露无用的筛选参数;链路、日志与错误查询兼容可选参数的 null 和空白 ID,避免空 toolCallId 导致 invalid_request。
  • 五个工具同时调用时,超出四个审计写入槽位的查询进入有界等待队列,避免数据库正常时误报 Diagnostic audit unavailable。排队与写入仍共享一秒期限,超时的等待项不会继续写入。
  • 稳定共享 CI runner 上涉及子进程的测试,减少并发资源竞争导致的偶发失败。

使用与升级

  • 新增七个增量数据库迁移(0058–0064),用于插件配置、安装记录、转录任务、清理状态、费用精度及解除固定转录时长约束。已部署插件市场的实例仍需执行新增的 0064 迁移。升级前备份数据库和持久目录,并保持原 ENCRYPTION_KEY 与存储卷;不要重新生成密钥,否则已有密文无法解密。诊断功能仍沿用已有日志存储,无新增审计开关。
  • 可选音频转录需启用 Compose media profile,并配置独立 MEDIA_WORKER_SECRET;同时使用编码 worker 时设为 COMPOSE_PROFILES=coding,media。Cookie、ASR 密钥、服务地址、模型、外传许可和预算在网页按 Bot 配置,不能用 worker secret 替代。
  • Dokploy 部署需关闭 Advanced → Enable Isolated Deployment,避免向所有服务追加网络而破坏 worker 隔离;只给 app 接入代理网络,并设置实际共享网络对应的 TRAEFIK_DOCKER_NETWORK。使用默认 Domains 配置时为 dokploy-network,部署前检查 Preview Compose;保留原项目名和 volume,不能通过删除数据卷解决网络冲突。
  • 转录预算按 Bot、用户和 UTC 日期保守预留完整视频时长,取消和失败任务仍占用当天预留。取消不能撤销已收费的供应商请求;进入转录阶段后,中断或重启不会自动重试。估算不是账单或退款承诺,手动重新创建任务前需核对旧请求状态。
  • Bot JSON 导出不包含插件秘密或临时转录任务;完整数据库备份仍可能包含密文和未过期正文,需按敏感数据保护。临时音频和转换控制 volume 不作为长期备份内容。
  • 升级并重启服务后生效。请求链路保存在 Bot 当前运行实例的内存中,默认保留最近一小时,最多 500 条;旧版本或重启前的链路不会补录。
  • 历史链路缺失会返回未找到或空结果,不影响运行状态和有效配置查询。正常使用不需要手动填写当前请求的 message ID、trace ID 或 tool call ID。
  • 使用与配置见公开文档「插件管理」(/docs/guides/plugins)、「统一检索」(/docs/guides/search)及「参考 → AI 运行诊断」(/docs/reference/runtime-diagnostics)。

验证边界

回归覆盖模型传入空 ID / null、五工具并发、审计排队与超时、槽位恢复、参数拒绝及聊天隔离;真实工具工厂与诊断服务的集成测试验证调用契约。发布前执行仓库检查、生产构建及公开文档的桌面和移动端浏览器验证。

插件安装、配置隔离、扫码会话与保存竞态、检索权限、任务租约与恢复、授权导出和无网络转换使用本地合成内容及隔离数据库测试验证。两平台扫码建码、等待与过期已进行匿名接口联调;手机确认后的真实 Cookie 接收、平台音频下载和外部 ASR 的端到端可用性尚未验证。配置测试通过也不代表账号或外部服务已验证。

线上只读日志确认了原始空参数问题和成功落库的审计记录;修复后的真实 Telegram / 模型调用仍需升级后验证。GitHub Release 发布不会自动更新运行中的服务或公开文档站。

本页内容