Introduction
This is a major issue that will revamp how SmartGPT works.
Projects like SwarmGPT show the potential of large amounts of parallelized agents working together. Meanwhile, SmartGPT has still had great results with the hierarchical system. Alongside this, papers such as the Generative Agents: Interactive Simulacra of Human Behavior paper show the power of giving agents the ability to have memories and self-reflect.
This issue proposes a new major feature: Smart Agents.
Smart Agents
Smart Agents have three separate contexts that handle different parts of their processing.
Brainstormer: All agents have a Brainstormer context. This handles short-term memory: specifically, it handles brainstorming ideas and short-term thoughts and plans. This handles all of the current tasks, thoughts, etc.
Reflector: The Reflector context though, does equally important work in the background. It handles long-term memory: chunking short-term observations together via self-reflection, pruning old memories, long-term planning, and keeping track of the final end goals.
Then, depending on whether or not it is an employee or a manager, it has one additional context, called an Actor. There are two types of Actor contexts: Executors and Delegators.
Executor: For employees, the Executor context takes the ideas from the Brainstormer, and finds out how to turn them into commands. It'll also extract useful information so that the Brainstormer and Reflector can more easily process it.
Delegator: For managers, the Delegator context takes the ideas from the Brainstormer, and delegates them as tasks to its employees. Then, it collaborates with those employees to ensure the tasks are carried out successfully.
All three of these contexts come together to form the Agent. Here's how it works in Employees.
The Reflector analyzes the problem; then the Brainstormer begins brainstorming ideas. The Brainstormer and Executor work together frequently, the Brainstormer giving ideas, the Executor executing them. Meanwhile, the Reflector works in the background, sorting through these new memories, and reflecting them. It makes sure the Brainstormer and Executor are working towards this goal.
Finally, the contexts also have one additional type of memory that is shared: The Web. The Web is just a network of embeddings; the contexts store information there, and can search for it later.
Dynamic Agents
Smart Agents also have one other key feature: they're built to be dynamic.
Currently, SmartGPT uses a static system of layers for how your program is organized. You start from the top manager, then go down to the lowest employee. This doesn't scale well, though.
SmartGPT will still start from the top agent. However, each agent will decide whether it should be an employee or a manager, and it can change its role later on, too. A manager can also have multiple employees working in parallel.
Dynamic Agents are a future feature that Smart Agents is meant to built on top off.
Note
Whether we use the Brainstormer, Reflector, Actor architecture is uncertain. However, the idea of Smart Agents and having some sort of internal contexts helping keep it organized is likely key, so we aim to prioritize this.