Yeah, I basically state an objective and an initial task. Then it iterates through the first round of tasks and tries to satisfy the objective. This is how it stays on task.
I have an initial set of code here, but have since upgraded the prompts to be more reliable and have also added multi-layers of task searching (2-deep instead of 1-deep), ditched the dumpTask
nonsense and general cleanup. Working on the embedding version with AWS soon, and finally full cloud deployment using lambda functions so I can parallelize the hell out of it!