Skip to main content
频道入口是入站渠道事件的实验性访问控制边界。插件负责平台事实和副作用;核心负责通用策略:私信/群组允许列表、配对存储中的私信条目、路由门控、命令门控、事件身份验证、提及激活、脱敏诊断和准入。 接收路径使用 openclaw/plugin-sdk/channel-ingress-runtime

运行时解析器

不要预先计算有效允许列表、命令所有者或命令组。解析器会根据原始允许列表、存储回调、路由描述符、访问组、策略和会话类型推导它们。

结果

内置插件应直接使用现代投影: 事件授权仍可通过有序的 ingress.graph 和起决定作用的 ingress.reasonCode 获取;不会生成单独的事件投影。 已弃用的第三方 SDK 辅助函数可以在内部重新构建旧结构。新的内置接收路径不应将现代结果转换回本地 DTO。

访问组

accessGroup:<name> 条目保持脱敏。核心会自行解析静态 message.senders 组,并且仅对需要平台查询的动态组调用 resolveAccessGroupMembership。缺失、不受支持和解析失败的组均采用故障关闭策略。

事件模式

表情回应、按钮、回调和原生命令使用 mayPair: false

路由和激活

对房间、主题、公会、线程或嵌套路由策略使用路由描述符:
当插件具有多个可选路由描述符时,使用 channelIngressRoutes(...);它会过滤已禁用的分支,同时保持路由事实的通用性,并按照每个描述符的 precedence 排序。 提及门控是一种激活门控。提及未命中时返回 admission: "skip",因此轮次内核不会处理仅观察的轮次。大多数渠道应将激活门控置于发送者门控和命令门控之后。对于必须在发送者允许列表产生干扰之前抑制未提及流量的公共聊天界面,可以在禁用文本命令绕过时选择启用 activation.order: "before-sender"。对于具有隐式激活的渠道(例如 Bot 线程中的回复),应使用 resolveChannelImplicitMentions(...) 解析 channels.defaults.implicitMentions 以及渠道和账户覆盖,然后将结果作为 activation.implicitMentions 传递。投影的 activationAccess.shouldBypassMention 会报告命令或隐式激活何时绕过了显式提及。

脱敏

原始发送者值和原始允许列表条目仅作为解析器输入。它们不得出现在已解析状态、决策、诊断、快照或兼容性事实中。应使用不透明的主体 ID、条目 ID、路由 ID 和诊断 ID。

验证