88 "io"
99 "reflect"
1010 "strconv"
11- "sync"
1211 "time"
1312
1413 "github.com/RomiChan/syncx"
@@ -34,8 +33,7 @@ var AgentChar []byte
3433var IsAgentCharReady = false
3534
3635var (
37- inActionMu = sync.Mutex {}
38- ags = syncx.Map [int64 , * goba.Agent ]{}
36+ ags = syncx.Map [int64 , * goba.Agent ]{}
3937)
4038
4139type charcfg struct {
@@ -92,19 +90,15 @@ var checkgids = map[string]struct{}{
9290}
9391
9492// CallAgent and check group API permission
95- func CallAgent (ag * goba.Agent , issudo bool , iter int , api deepinfra.API , p model.Protocol , grp int64 , role goba.PermRole ) (
96- []zero.APIRequest , func (),
97- ) {
98- inActionMu .Lock ()
93+ func CallAgent (ag * goba.Agent , issudo bool , iter int , api deepinfra.API , p model.Protocol , grp int64 , role goba.PermRole ) []zero.APIRequest {
9994 reqs , err := ag .GetAction (api , p , grp , role , iter , false )
10095 if err != nil {
101- inActionMu .Unlock ()
10296 if ! errors .Is (err , io .EOF ) {
10397 logrus .Warnln ("[chat] agent err:" , err , reqs )
10498 } else {
10599 logrus .Infoln ("[chat] agent end action" )
106100 }
107- return nil , nil
101+ return nil
108102 }
109103 logrus .Infoln ("[chat] agent do:" , reqs )
110104 checkedreqs := make ([]zero.APIRequest , 0 , len (reqs ))
@@ -153,7 +147,7 @@ func CallAgent(ag *goba.Agent, issudo bool, iter int, api deepinfra.API, p model
153147 }
154148 checkedreqs = append (checkedreqs , req )
155149 }
156- return checkedreqs , inActionMu . Unlock
150+ return checkedreqs
157151}
158152
159153func togobaev (ev * zero.Event ) * goba.Event {
@@ -220,11 +214,6 @@ func logev(ctx *zero.Ctx) {
220214 if countParamsLength (req .Params ) > 256 { // skip too long req&resp
221215 return
222216 }
223- if inActionMu .TryLock () {
224- defer inActionMu .Unlock ()
225- } else {
226- return
227- }
228217 gid := ctx .Event .GroupID
229218 if gid == 0 {
230219 gid = - ctx .Event .UserID
@@ -242,11 +231,7 @@ func logev(ctx *zero.Ctx) {
242231 })
243232 }),
244233 )
245- if inActionMu .TryLock () {
246- defer inActionMu .Unlock ()
247- } else {
248- return
249- }
234+ ctx .State [zero .StateKeyPrefixKeep + "_chat_ag_hooked__" ] = struct {}{}
250235 gid := ctx .Event .GroupID
251236 if gid == 0 {
252237 gid = - ctx .Event .UserID
0 commit comments