> ## Content Index
> Fetch the complete content index at: https://www.taivo.ai/llms.txt
> Use this file to discover other available public pages before exploring further.

# Core innovations of AutoGPT
- URL: https://www.taivo.ai/__core-innovations-of-autogpt/
- Published: 2023-05-19T13:34:40.000Z
- Updated: 2025-12-24T11:02:33.000Z
- Author: Taivo Pungas
- Tags: Systems, stream

**AutoGPT* ([repo](https://github.com/Significant-Gravitas/Auto-GPT?ref=taivo.ai)) went viral on Github and looks impressive on Twitter, but almost never works. In the process of trying to improve it I dug into how it works. Really there are two important parts to AutoGPT: a plan-and-execute workflow, and looped **Chain-of-thought* (CoT).

### Plan-and-execute

Say the user input is "Find one funny News Story from last week and compose a tweet about it."

A simple **Agent middleware* would go ahead and start executing on it. In AutoGPT, a planning step precedes that. So the input to the looped CoT would not be the raw user input; rather it is a list of subgoals or steps needed to achieve the goal:

1\. Search for funny news stories from last week. 2\. Select one story and summarize it. 3\. Compose a tweet about the selected story.

The full prompt for generating the goals is a bit too long and boring to reproduce, but the **in-context* example looks like this:

![](https://storage.ghost.io/c/4a/28/4a28c12b-061d-4fef-9be7-3d9f25838589/content/images/size/w1600/2023/05/autogpt_goals.png)

Empirically this seems to get better results (although I have a hunch that a better CoT loop prompt would remove the need for a separate planning step).

### Looped chain of thought

Instead of running a pre-determined set of steps, **AutoGPT* (and in fact, all **Agent middleware*s!) run a prompt in a loop. Literally, a [while-loop](https://github.com/hwchase17/langchain/blob/bf5a3c6dec2536c4652c1ec960b495435bd13850/langchain/experimental/autonomous%5Fagents/autogpt/agent.py?ref=taivo.ai#L86).

In each step of the loop, the agent gets a lot of context (including the sub-goals and historical messages) and is asked to output thoughts in the following format:

![](https://storage.ghost.io/c/4a/28/4a28c12b-061d-4fef-9be7-3d9f25838589/content/images/size/w1600/2023/05/autogpt_loop-1.png)

Both of the above ideas can be heavily improved by **Prompt engineering* to make the agent more productive -- mostly by removing stuff. But the core ideas remain valuable on their own.