开发者命令¶
聊天里以 / 开头的命令通道。本页只读:查看通道状态与已注册命令,不能在这里
开启通道、注册命令或执行命令。命令在回合里的截断时机见
一次回合的完整链路,页面实现见
webui 模块。
通道边界¶
「通道边界」卡显示两个字段:状态(已开启 / 关闭,随配置读当前值)与鉴权
(仅 owner)。页面同时写明边界语义:仅 owner 发出的消息会尝试匹配命令,私聊与
群聊都可触发;非 owner 与关闭态一律按普通聊天处理,不会收到权限提示,也不会
看到隐藏命令的存在。页面另有一句提醒:群聊里的回复整群可见,注意命令输出里可能
带出本机信息——owner 身份在 adapter.toml 里配置,改法见
月璃设置的 QQ 适配器段。
命令命中发生在归属解析之后、任何门控与观测之前:命中即截断,不再走回复门控, 也不进事件账本,所以「她为什么没理这句话」的排查里,命令误命中是排除项——被 截断的消息在会话观察里没有痕迹。
已注册命令¶
表格列出当前注册的全部命令:命令、完整匹配正则、说明、鉴权。命令由后端注册表 提供,随构建而有差异,以页面列出的为准;当前构建注册了三到四条:
| 命令 | 说明 |
|---|---|
/help |
列出当前已注册的开发者命令 |
/git N |
统计最近 N 天的提交次数并给出起止日期,默认 7 天 |
/version |
应用、配置、数据库与运行环境的版本,以及当前适配器 |
/inst |
匿名安装统计的折线图:d 装机数、n 在线数、v 版本分布、a 三者合一(默认) |
/inst 是条件注册的:只有在统计服务端地址已经填好、且环境变量
YUELI_STATS_TOKEN 有值时才出现在这张表里。两者缺一,这条命令根本不存在,
发出去会按普通聊天处理。
命令必须整条匹配正则才算命中——/git 后面是可选的一个参数位,写成一句话不会被
误匹配。「完整匹配正则」列同时是排查工具:自己编译新命令或怀疑某条命令没生效时,
对照这一列确认注册内容与预期一致。命令由后端注册表在启动时注册,面板上没有注册
入口。验证通道是否在工作:owner 在任意可触发会话里发 /help,回复会列出与本页
表格相同的命令目录。
排查:命令没被当成命令¶
按顺序核对三件事:
- 发送者是不是
adapter.toml里配置的 owner——只有 owner 的消息会进命令匹配。 - 通道开关是否打开——
[developer]段缺失或enabled = false时一律按普通聊天 处理,她可能把命令当成一句话来回应。 - 写法是否整条匹配——对照本页表格里的完整匹配正则,多了或少了字符都不命中。
命令的回复走消息出口,不经过回复生成模型;输出内容由各命令自己决定,因此 /help
列出的目录与面板表格总是一致。
通道开关¶
开关不在面板上:features.toml 的 [developer] 段,enabled 默认为 false,
设置页刻意不提供这个控件——开启是显式动作,需要手改文件后重启后端:
新部署的库这个段可以整个不写(等于关闭)。关闭状态下命令按普通聊天处理,她可能 把它当成一句话来回应。其余功能开关的改法见月璃设置。