Skip to content

Commit f27e603

Browse files
committed
feat(aichat): agent +more configs & fix too long log evs
1 parent ec8c402 commit f27e603

5 files changed

Lines changed: 33 additions & 35 deletions

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1635,7 +1635,9 @@ print("run[CQ:image,file="+j["img"]+"]")
16351635
- [x] 设置AI聊天(不)以AI语音输出
16361636
- [x] 设置AI聊天Agent性格
16371637
- [x] 查看AI聊天Agent性格
1638-
- [x] 重置AI聊天Agent性格
1638+
- [x] 设置AI聊天Agent性别
1639+
- [x] 查看AI聊天Agent性别
1640+
- [x] 重置AI聊天Agent性格性别
16391641
- [x] 重置AI聊天Agent
16401642
- [x] 查看AI聊天配置
16411643
- [x] 重置AI聊天

go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/FloatTech/sqlite v1.7.2
1313
github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d
1414
github.com/FloatTech/zbpctrl v1.7.1
15-
github.com/FloatTech/zbputils v1.7.2-0.20260117035520-ab3ea04ef68c
15+
github.com/FloatTech/zbputils v1.7.2-0.20260117102821-810378820dcc
1616
github.com/RomiChan/syncx v0.0.0-20240418144900-b7402ffdebc7
1717
github.com/RomiChan/websocket v1.4.3-0.20251002072000-d3eb41798438
1818
github.com/Tnze/go-mc v1.20.2
@@ -24,10 +24,9 @@ require (
2424
github.com/fumiama/cron v1.3.0
2525
github.com/fumiama/deepinfra v0.0.0-20251221163610-e98ee3ba437a
2626
github.com/fumiama/go-base16384 v1.7.1
27-
github.com/fumiama/go-onebot-agent v0.0.0-20260106161505-f7d25272034c
27+
github.com/fumiama/go-onebot-agent v0.0.0-20260117094018-cd93ccfd6e04
2828
github.com/fumiama/go-registry v0.2.7
2929
github.com/fumiama/gotracemoe v0.0.3
30-
github.com/fumiama/imgsz v0.0.4
3130
github.com/fumiama/jieba v0.0.0-20221203025406-36c17a10b565
3231
github.com/fumiama/slowdo v0.0.0-20241001074058-27c4fe5259a4
3332
github.com/fumiama/terasu v1.0.2
@@ -44,10 +43,10 @@ require (
4443
github.com/notnil/chess v1.10.0
4544
github.com/pkg/errors v0.9.1
4645
github.com/shirou/gopsutil/v4 v4.25.12
47-
github.com/sirupsen/logrus v1.9.3
46+
github.com/sirupsen/logrus v1.9.4
4847
github.com/tidwall/gjson v1.18.0
4948
github.com/wcharczuk/go-chart/v2 v2.1.2
50-
github.com/wdvxdr1123/ZeroBot v1.8.3-0.20260108153355-cbf2ab0dd527
49+
github.com/wdvxdr1123/ZeroBot v1.8.3-0.20260117102541-393033a35adb
5150
gitlab.com/gomidi/midi/v2 v2.3.18
5251
golang.org/x/image v0.34.0
5352
golang.org/x/sys v0.39.0
@@ -66,6 +65,7 @@ require (
6665
github.com/ericpauley/go-quantize v0.0.0-20200331213906-ae555eb2afa4 // indirect
6766
github.com/fumiama/go-simple-protobuf v0.2.0 // indirect
6867
github.com/fumiama/gofastTEA v0.1.3 // indirect
68+
github.com/fumiama/imgsz v0.0.4 // indirect
6969
github.com/fumiama/orbyte v0.0.0-20251002065953-3bb358367eb5 // indirect
7070
github.com/gabriel-vasile/mimetype v1.4.12 // indirect
7171
github.com/go-ole/go-ole v1.2.6 // indirect

go.sum

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d h1:mUQ/c3wXKsUGa4Sg9
1616
github.com/FloatTech/ttl v0.0.0-20250224045156-012b1463287d/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs=
1717
github.com/FloatTech/zbpctrl v1.7.1 h1:0yPEmCForhyMbnhTckmjDUFFDZgQp1RjO2bVF4ZVqOs=
1818
github.com/FloatTech/zbpctrl v1.7.1/go.mod h1:xmM4dSwHA02Gei3ogCRiG+RTrw/7Z69PfrN5NYf8BPE=
19-
github.com/FloatTech/zbputils v1.7.2-0.20260117035520-ab3ea04ef68c h1:GD96NoftxCVPBs0yewZFb1ynMCF4SmEu9CjrwmZFSbU=
20-
github.com/FloatTech/zbputils v1.7.2-0.20260117035520-ab3ea04ef68c/go.mod h1:yLJvsQJssgQIB4+/uVRNseN4sgFqyfGQLcrKUuXL454=
19+
github.com/FloatTech/zbputils v1.7.2-0.20260117102821-810378820dcc h1:csX6rK1Zjn0fahnNpBaHVFXM4GMOpnf/ZLoyqMbPckI=
20+
github.com/FloatTech/zbputils v1.7.2-0.20260117102821-810378820dcc/go.mod h1:uX5JHIADt9/vSIriLZTRwkeVvOVwxOGiDyS5O1lTPGE=
2121
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
2222
github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
2323
github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
@@ -67,8 +67,8 @@ github.com/fumiama/deepinfra v0.0.0-20251221163610-e98ee3ba437a h1:a0+2vaXajfxsN
6767
github.com/fumiama/deepinfra v0.0.0-20251221163610-e98ee3ba437a/go.mod h1:uqsWK/GM9OvKV0pXZOQB63rWugBbiXInY8E1JoRKhkg=
6868
github.com/fumiama/go-base16384 v1.7.1 h1:1P1x6FWRvd7PtbH4idDAGWAjKKcVxggxlROYKRXbw58=
6969
github.com/fumiama/go-base16384 v1.7.1/go.mod h1:OEn+947GV5gsbTAnyuUW/SrfxJYUdYupSIQXOuGOcXM=
70-
github.com/fumiama/go-onebot-agent v0.0.0-20260106161505-f7d25272034c h1:kCAFF41GkJklKvftchjuEpo4Mp/qUSiEGBeChs4QJdk=
71-
github.com/fumiama/go-onebot-agent v0.0.0-20260106161505-f7d25272034c/go.mod h1:rTrS23rvTYuZcSngENJTvcBFTz1nGsImSv+bW7yfhqs=
70+
github.com/fumiama/go-onebot-agent v0.0.0-20260117094018-cd93ccfd6e04 h1:TAvkyECK+lSVh+AnVSPNfCmeCiYiJCd+z9QQwfjHSuw=
71+
github.com/fumiama/go-onebot-agent v0.0.0-20260117094018-cd93ccfd6e04/go.mod h1:rTrS23rvTYuZcSngENJTvcBFTz1nGsImSv+bW7yfhqs=
7272
github.com/fumiama/go-registry v0.2.7 h1:tLEqgEpsiybQMqBv0dLHm5leia/z1DhajMupwnOHeNs=
7373
github.com/fumiama/go-registry v0.2.7/go.mod h1:m+wp5fF8dYgVoFkBPZl+vlK90loymaJE0JCtocVQLEs=
7474
github.com/fumiama/go-simple-protobuf v0.2.0 h1:ACyN1MAlu7pDR3EszWgzUeNP+IRsSHwH6V9JCJA5R5o=
@@ -182,11 +182,10 @@ github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94
182182
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
183183
github.com/shirou/gopsutil/v4 v4.25.12 h1:e7PvW/0RmJ8p8vPGJH4jvNkOyLmbkXgXW4m6ZPic6CY=
184184
github.com/shirou/gopsutil/v4 v4.25.12/go.mod h1:EivAfP5x2EhLp2ovdpKSozecVXn1TmuG7SMzs/Wh4PU=
185-
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
186-
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
185+
github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w=
186+
github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g=
187187
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
188188
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
189-
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
190189
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
191190
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
192191
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
@@ -206,8 +205,8 @@ github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9R
206205
github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ=
207206
github.com/wcharczuk/go-chart/v2 v2.1.2 h1:Y17/oYNuXwZg6TFag06qe8sBajwwsuvPiJJXcUcLL6E=
208207
github.com/wcharczuk/go-chart/v2 v2.1.2/go.mod h1:Zi4hbaqlWpYajnXB2K22IUYVXRXaLfSGNNR7P4ukyyQ=
209-
github.com/wdvxdr1123/ZeroBot v1.8.3-0.20260108153355-cbf2ab0dd527 h1:QQAAftj7MvP+Ebxfs1MV5d6fswYi6YJ2YFkoicFpcEY=
210-
github.com/wdvxdr1123/ZeroBot v1.8.3-0.20260108153355-cbf2ab0dd527/go.mod h1:trueIIVRywKJa3ov4QphzVvzYzgCNrlXdf9JvPJOFW8=
208+
github.com/wdvxdr1123/ZeroBot v1.8.3-0.20260117102541-393033a35adb h1:pwmyrnnMzb0WygAwUgXoZckzJkusK4WSaXxXqsIJYmU=
209+
github.com/wdvxdr1123/ZeroBot v1.8.3-0.20260117102541-393033a35adb/go.mod h1:kCLja2sXXgbBTsEOyBNCuT4z9tI+URQ2y0q/GGXprzU=
211210
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
212211
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
213212
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
@@ -268,7 +267,6 @@ golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7w
268267
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
269268
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
270269
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
271-
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
272270
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
273271
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
274272
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

plugin/aichat/main.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ func init() {
5252
logrus.Warnln("ERROR: cannot get stor")
5353
return false
5454
}
55-
if _, ok := ctx.State[zero.StateKeyPrefixKeep+"_chat_ag_hooked__"]; !ok {
56-
logrus.Warnln("ERROR: ctx has not been hooked by agent")
55+
if _, ok := ctx.State[zero.StateKeyPrefixKeep+"_chat_ag_hooked__"]; !ok && !stor.NoAgent() {
56+
logrus.Infoln("[aichat] skip agent for ctx has not been hooked by agent")
5757
return false
5858
}
5959
if !(ctx.ExtractPlainText() != "" &&
@@ -64,10 +64,6 @@ func init() {
6464
if !ctx.Event.IsToMe && rand.Intn(100) >= int(rate) {
6565
return false
6666
}
67-
if chat.AC.Key == "" {
68-
logrus.Warnln("ERROR: get extra err: empty key")
69-
return false
70-
}
7167
if ctx.Event.IsToMe {
7268
ctx.Block()
7369
}
@@ -82,7 +78,7 @@ func init() {
8278
topp, maxn := chat.AC.MParams()
8379

8480
logrus.Debugln("[aichat] agent mode test: noagent", stor.NoAgent(), "hasapi", chat.AC.AgentAPI != "", "hasmodel", chat.AC.AgentModelName != "")
85-
if !stor.NoAgent() && chat.AC.AgentAPI != "" && chat.AC.AgentModelName != "" {
81+
if !stor.NoAgent() && chat.AC.AgentAPI != "" && chat.AC.AgentModelName != "" && chat.AC.Key != "" {
8682
logrus.Debugln("[aichat] enter agent mode")
8783
x := deepinfra.NewAPI(chat.AC.AgentAPI, string(chat.AC.AgentKey))
8884
mod, err := chat.AC.Type.Protocol(chat.AC.AgentModelName, temperature, topp, maxn)

plugin/aichatcfg/main.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ var (
2929
"- 查看AI聊天系统提示词\n" +
3030
"- 重置AI聊天系统提示词\n" +
3131
"- 设置AI聊天系统提示词xxx\n" +
32-
"- 设置AI聊天Agent性格" +
33-
"- 查看AI聊天Agent性格xxx" +
34-
"- 重置AI聊天Agent性格\n" +
32+
"- 设置AI聊天Agent性格xxx" +
33+
"- 查看AI聊天Agent性格" +
34+
"- 设置AI聊天Agent性别xxx" +
35+
"- 查看AI聊天Agent性别" +
36+
"- 重置AI聊天Agent性格性别\n" +
3537
"- 设置AI聊天分隔符</think>(留空则清除)\n" +
3638
"- 设置AI聊天(不)响应AT\n" +
3739
"- 设置AI聊天最大长度4096\n" +
@@ -45,12 +47,6 @@ var (
4547

4648
func init() {
4749
en.UsePreHandler(chat.EnsureConfig, func(ctx *zero.Ctx) bool {
48-
if !chat.IsAgentCharReady {
49-
if chat.AC.AgentChar != "" {
50-
chat.AgentChar = []byte(chat.AC.AgentChar)
51-
}
52-
chat.IsAgentCharReady = true
53-
}
5450
k := zero.StateKeyPrefixKeep + "aichatcfg_stor__"
5551
if _, ok := ctx.State[k]; ok {
5652
return true
@@ -98,7 +94,13 @@ func init() {
9894
en.OnPrefix("设置AI聊天系统提示词", chat.EnsureConfig, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).
9995
Handle(chat.NewExtraSetStr(&chat.AC.SystemP))
10096
en.OnPrefix("设置AI聊天Agent性格", chat.EnsureConfig, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).
101-
Handle(chat.NewExtraSetStr(&chat.AC.AgentChar))
97+
Handle(chat.NewExtraSetStr(&chat.AC.AgentChar), func(ctx *zero.Ctx) {
98+
chat.AgentCharConfig.Chars = chat.AC.AgentChar
99+
})
100+
en.OnPrefix("设置AI聊天Agent性别", chat.EnsureConfig, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).
101+
Handle(chat.NewExtraSetStr(&chat.AC.AgentSex), func(ctx *zero.Ctx) {
102+
chat.AgentCharConfig.Sex = chat.AC.AgentSex
103+
})
102104
en.OnFullMatch("查看AI聊天系统提示词", chat.EnsureConfig, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) {
103105
ctx.SendChain(message.Text(chat.AC.SystemP))
104106
})
@@ -119,13 +121,13 @@ func init() {
119121
}
120122
ctx.SendChain(message.Text("成功"))
121123
})
122-
en.OnFullMatch("重置AI聊天Agent性格", chat.EnsureConfig, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) {
124+
en.OnFullMatch("重置AI聊天Agent性格性别", chat.EnsureConfig, zero.OnlyPrivate, zero.SuperUserPermission).SetBlock(true).Handle(func(ctx *zero.Ctx) {
123125
c, ok := ctx.State["manager"].(*ctrl.Control[*zero.Ctx])
124126
if !ok {
125127
ctx.SendChain(message.Text("ERROR: no such plugin"))
126128
return
127129
}
128-
chat.AC.AgentChar = ""
130+
chat.ResetAgentCharConfig()
129131
err := c.SetExtra(&chat.AC)
130132
if err != nil {
131133
ctx.SendChain(message.Text("ERROR: set extra err: ", err))

0 commit comments

Comments
 (0)