ppagent / IMessageRule
Interface: IMessageRule
Defined in: src/rule/message.rule.ts:14
agent的一条匹配规则,agent根据规则优先级找到匹配的第一个规则。 规则可以给bot或者skill使用 各个条件之间是且的关系
用于skill的规则,如果返回的时候删除data中的message对象,则会停止进一步使用bot响应。可以用实现如发送特定指令返回固定内容的功能。
Properties
checkUserInGroup?
optional
checkUserInGroup:boolean
Defined in: src/rule/message.rule.ts:36
群消息时,fromUserName的限制是否生效,默认false,即群里所有人都响应
contentFilter?
optional
contentFilter:IMessageContentRule
Defined in: src/rule/message.rule.ts:50
过滤规则,不配置表示不根据内容过滤,仅文本消息内容(TEXT和REF)的该过滤生效。
正向规则,匹配成功才会响应,不适合用来做内容审查
fromNickNames?
optional
fromNickNames:string
[]
Defined in: src/rule/message.rule.ts:32
用户昵称的过滤
fromUserNames?
optional
fromUserNames:string
[]
Defined in: src/rule/message.rule.ts:28
响应的用户列表,不配置表示响应respond规则下,所有可以对话的用户
用户使用的是userName过滤,因为nickName重名的几率很大
groupMode?
optional
groupMode:"deny"
|"whitelist"
|"blacklist"
Defined in: src/rule/message.rule.ts:63
群组过滤模式,deny表示不响应群组消息。whitelist或者blacklist对应groupNames中的配置应该如何理解。 不配置表示whitelist
groupNameRule?
optional
groupNameRule:IMessageContentRule
Defined in: src/rule/message.rule.ts:40
用户群组的过滤规则,不配置表示不根据群组过滤(即都响应),针对nickName??userName??id的规则
instanceName
instanceName:
string
Defined in: src/rule/message.rule.ts:54
使用的实例名称。如果是针对skill的规则,就是skill实例的名称,如果是针对bot,就是bot实例的名称
messageTypes?
optional
messageTypes: (SourceChatMessageType
|"ALL"
)[]
Defined in: src/rule/message.rule.ts:44
生效的消息类型,可多选,不配置表示不做类型检查(即检查通过)
order?
optional
order:number
Defined in: src/rule/message.rule.ts:58
优先级,order值越小,优先级越高,默认100
respondTo?
optional
respondTo:object
Defined in: src/rule/message.rule.ts:89
该配置仅对群聊生效 只要有一个配置过的条件满足即可,不配置或者bool类型配置为false的不参与判断。
例如:
- 如果希望没有任何限制,留空即可。
- 如果希望仅仅被@的时候回复,配置为
- 如果被@ 或者以某个字符开头的时候都回复,配置为
- 如果配置为{}或者{at:false},{names:[]},{refered:false}都表示不响应任何请求
注意:技能会在找到bot后调用,因此如果bot中配置了这个规则,技能如果也是一样的规则,则直接留空即可
at?
optional
at:boolean
被@ 且在@ 列表中 只对文本或者图文混排的生效。纯图片,声音等类型的,由bot决定是否响应这些类型。
不配置或者配置为false都表示忽略该配置
names?
optional
names:string
[]
文本以以下列表中的一个开头。不配置或者配置为空则忽略该条件(即只看别的条件)。
refered?
optional
refered:boolean
内容被引用也可以响应。不配置或者配置为false则忽略该条件(即只看别的条件)。
skillApplyOn?
optional
skillApplyOn:"all"
|"source"
|"reply"
Defined in: src/rule/message.rule.ts:72
对什么消息生效(仅技能的rule可配置)。all表示来源和响应都生效(前提是skill中也有对应方法),source表示只对来源生效,reply表示只对响应生效。默认all。
skillWhenReplyStatus?
optional
skillWhenReplyStatus:"complete"
|"part"
Defined in: src/rule/message.rule.ts:76
技能应用与回复的状态,complete表示只有本次回复都结束后才应用,该情况一般用于需要完整获取回复的文本消息内容,part是每次回复都使用,如语音消息转文本。默认part。
userMode?
optional
userMode:"whitelist"
|"blacklist"
|"all"
Defined in: src/rule/message.rule.ts:68
用户过滤模式,all表示响应全部用户。whitelist或者blacklist对应fromUserNames中的配置该如何理解。 不配置表示whitelist