Once I had a stable version, I went crazy with some of the Go primitives. Tool calls are done with Goroutines, concurrently (lol) and for scheduling tasks, Goroutines are spawned, with a separate context window, to handle repetitive task execution ( to avoid degradation through compaction) .I use singleflight for tasks that should run once but may be called by separate packages in any random order. I also used Channels to streamline communication between different components. I highly recommend building an agent with Go.