There is an emerging trend in AI: getting AI to work with itself. It’s a form of perpetual self-improvement. The Agent model allows delegation, which can chunk each work into smaller pieces.
The flow looks something like this: tasks are generated based on the user-provided requirements, then passed on to the Queue Manager. Tasks are reorganized and reprioritized. Workers are then spawned on-demand to work on individual tasks.
The real kicker in some of these frameworks is that they have added access to external data sources such as:
- browsing google
- accessing databases
- submitting tasks to external services
- writing to files
These spawned agents all work together, hopefully without any conflicts… I hope.
Agent Model
There are 3 actors – Manager, Executor, and Queue Manager, then there is a centralized storage to store the “thought process”.
flowchart
User([User])-- 1. Provide objective & task -->Queue[(Task Queue)];
Queue-- 2. Complete task -->Execution(Execution Agent);
Execution-- 3. Send task result -->Creation(Task Creation Agent);
Creation-- 4. Add new task -->Queue;
Queue-- 5. Prioritize task -->Prioritize(Task Prioritization Agent);
Prioritize-- 6. Create task list -->Queue;
Memory[(Memory Storage)]-- Context -->Execution;
Memory[(Memory Storage)]-- Context -->Creation;
Execution-- Store task+result -->Memory;
Execution-- Queue memory for context -->Memory;
Creation-- Queue memory for context -->Memory;
Adapted from @yoheinakajima
There are multiple variants of this flow, and notably, there are these repos available for experimentation: Auto-GPT, and BabyAGI
Auto-GPT
This new repo skyrocketed in popularity because it’s so easy to set up. You just need to get an API key from OpenAI and Pinecone; install Python and you’re ready to go.
The interface is still a little clunky because you need to provide exactly 5 Goals for your task.
There are also persisting problems when the application fails to communicate with OpenAI API and goes into an infinite failure loop. I tried updating the repo from upstream at some point, but it stopped working altogether. It’s safe to say that it’s only a beta demo, and the project is in its infancy.
However, seeing the “thought process” of this AI machine is very intriguing and interesting.
The missing piece, the validator
I would be interested to see a new type of agent added to the stack – the “validator”.
Since we never got to a solid conclusion, I think it’d be interesting to have a worker that validates some chunk of work against the prompt. It’d be a form of an automated self-reflection mechanism. By doing so we could eliminate pieces of work that do not correspond to expectations.
This was evident when my friends and I tried to generate an itinerary for a trip abroad from Tokyo, somehow AI kept getting stuck at trips from Tokyo, but within Japan. If there was a validator to check the outcome, this mistake probably would’ve been prevented.
I’ve been somewhat on top of crypto for a while now. Well, I thought following crypto was hard – but following AI is getting harder and harder. But hopefully, both of these problems will be solved by AI soon.