Skip to content

Rich Segment 适配器矩阵

Rich Segment 在 Adapter.renderSendMessage 首步由 resolveRichSegments 渲染为标准 IM 段;Endpoint 可选 materializeOutboundMedia 将 base64/本地文件转为平台 URL。

Install tiers:Rich media@zhin.js/html-renderer)、Speech@zhin.js/speech)。

内置 kind 与默认 mode

kind默认 mode可选 mode
qrcodeimageimage, text, origin
htmltextimage, text, origin
markdowntextimage, text, origin
ttsaudioaudio, text, origin

Adapter policy 一览

Adapterhtmlmarkdownqrcodetts备注
icqq / napcat / onebot11 / onebot12 / milkyimageimageimageaudioOneBot 系
kookimageoriginimageaudio默认 registry + override
qqimageoriginimageaudioQQ 官方
telegram / discord / slack / lineimageimageimageaudio国际 IM
lark / dingtalk / wecomimageimageimageaudio国内企微
weixin-ilinktextoriginimageaudio微信 iLink
wechat-mptexttexttexttext受限出站
satoriimageimageimageaudio协议适配
emailoriginimageimagetext邮件 HTML 原样
githubtexttexttexttext通知文本

未列出的 adapter 使用 OUTBOUND_RICH_SEGMENT_POLICY_IM_DEFAULT(与 registry 默认一致)。

降级行为

  • policy image 但未装 @zhin.js/html-renderer → 降级 text(warn once)
  • policy audio 但未装 @zhin.js/speech → 降级 text(warn once)
  • 平台不支持 audio → adapter policy 设为 text

日志:stage: rich_segmentkindmodefallback。详见 AI 内容链

扩展

typescript
import { OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL } from '@zhin.js/core';

class MyAdapter extends Adapter {
  static override outboundRichSegmentPolicy = OUTBOUND_RICH_SEGMENT_POLICY_IM_FULL;
}

CI:pnpm check:rich-segments 校验各 adapter 声明 policy 与契约测试文件。

基于 MIT 许可发布