From b60c6cffae5189537b4f6fcc35e652b3b108bd67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E7=8E=AE=20=28Jade=20Lin=29?= Date: Tue, 23 Sep 2025 23:22:59 +0800 Subject: [PATCH] refactor(agent): remove globalCtx field and improve event setup - Remove globalCtx field from agent struct - Refactor setupEvents to accept context parameter directly --- internal/llm/agent/agent.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/internal/llm/agent/agent.go b/internal/llm/agent/agent.go index b66427f0d66c7aecb3628f232e95b3a23ce980b1..fe9c56bf5d9eec17ba31bc4acfc623c8cd187d7f 100644 --- a/internal/llm/agent/agent.go +++ b/internal/llm/agent/agent.go @@ -66,7 +66,6 @@ type Service interface { } type agent struct { - globalCtx context.Context cleanupFuncs []func() *pubsub.Broker[AgentEvent] @@ -231,7 +230,6 @@ func NewAgent( } a := &agent{ - globalCtx: ctx, Broker: pubsub.NewBroker[AgentEvent](), agentCfg: agentCfg, provider: agentProvider, @@ -246,7 +244,7 @@ func NewAgent( baseTools: csync.NewLazyMap(baseToolsFn), promptQueue: csync.NewMap[string, []string](), } - a.setupEvents() + a.setupEvents(ctx) return a, nil } @@ -1057,8 +1055,8 @@ func (a *agent) getToolByName(name string) (tools.BaseTool, bool) { return tool, ok } -func (a *agent) setupEvents() { - ctx, cancel := context.WithCancel(a.globalCtx) +func (a *agent) setupEvents(ctx context.Context) { + ctx, cancel := context.WithCancel(ctx) go func() { for event := range SubscribeMCPEvents(ctx) {