Skip to content

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