跳转至

开发者命令

聊天里以 / 开头的命令通道。本页只读:查看通道状态与已注册命令,不能在这里 开启通道、注册命令或执行命令。命令在回合里的截断时机见 一次回合的完整链路,页面实现见 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,回复会列出与本页 表格相同的命令目录。

排查:命令没被当成命令

按顺序核对三件事:

  1. 发送者是不是 adapter.toml 里配置的 owner——只有 owner 的消息会进命令匹配。
  2. 通道开关是否打开——[developer] 段缺失或 enabled = false 时一律按普通聊天 处理,她可能把命令当成一句话来回应。
  3. 写法是否整条匹配——对照本页表格里的完整匹配正则,多了或少了字符都不命中。

命令的回复走消息出口,不经过回复生成模型;输出内容由各命令自己决定,因此 /help 列出的目录与面板表格总是一致。

通道开关

开关不在面板上:features.toml[developer] 段,enabled 默认为 false, 设置页刻意不提供这个控件——开启是显式动作,需要手改文件后重启后端:

[developer]
enabled = true

新部署的库这个段可以整个不写(等于关闭)。关闭状态下命令按普通聊天处理,她可能 把它当成一句话来回应。其余功能开关的改法见月璃设置