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) {