I've spent the past few days pretty cooped up inside, recovering from a pretty bad cold this kind of turned out to be a blessing in disguise, as I finally had time to fix some kernel issues with my home server that had gotten it to shut down and, in the process, spin up a new VM dedicated to building out my more autonomous agent.
I set it up to Slack, which actually feels much better as a communication channel than Telegram or other alternatives. I'm sure Discord would be good as well, but I just felt Slack worked better for me to be a bit more in a work environment context.
I mean, in reality it's just an LLM hooked up to some cron jobs and some memory, so it's quite a simple architecture in one way, but in another way it's become so immensely powerful.
One of my key concerns right now is how to handle memory, both in a sense of overloading context on simple calls and prompts, but also, more importantly, how to kind of self-sovereign this memory in order to apply it to any model or agent or app or tool that you want. Also being able to handle the compaction and search well.
Although having an agent like this with the full context of everything you're doing is extremely fun and interesting, I think in a more productive manner, I'll probably create these types of one-shot agents that only have specific context for whatever the task is.
For example, one of the most interesting workflows I have running right now is an auto-improvement to my thesis (video below). I have linked up the Autonomous Junior, my agent, to a forked version of my Github repository that has the code I am using for my master's thesis.I then also created a skill where Autonomous Junior can access Zotero, basically a drive that collects all the papers, academic papers that we're using within the thesis.The agent can then meditate or think through all these papers, as well as the context of the Github repository, and create pull requests on the Github repository on things that can be improved, both theoretically and methodologically, or any of these problems when it sees something that could be interesting.So this is an extremely impressive workflow, but the context quickly becomes bloated.
In all honesty, the results from this chat are irrelevant for basically all of my other chats or apps within Slack or that run within this autonomous agent.That said, I do think it would be fun to be able to pull in some of this information on other channels if needed. By default, this is completely irrelevant, so having the kind of memory isolation for these kinds of one-shot agents becomes important.
I think this is probably one of the most interesting parts. I think in the next update on this, I'll try to create an overview of the architecture that I have on my agent and how I want to kind of expand this to basically only use the main agent very rarely. I then create custom kind of one-shot agents for the actual tasks that I want to do, and then we can obviously kind of build out and self-heal those.