string">their</span> <span class="hljs-string">pros</span> <span class="hljs-string">and</span> <span class="hljs-string">cons</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">include</span> <span class="hljs-string">the</span> <span class="hljs-string">price</span> <span class="hljs-string">for</span> <span class="hljs-string">each</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">save</span> <span class="hljs-string">the</span> <span class="hljs-string">analysis</span> <span class="hljs-string">into</span> <span class="hljs-string">a</span> <span class="hljs-string">txt-file</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">once</span> <span class="hljs-string">done,</span> <span class="hljs-string">terminate</span></pre></div><p id="4ccf">Fast forward a couple of iterations, and approximately ten minutes later: I see that the bot browses tech websites such as toms hardware, pc gamer, or tech radar, summarizing them, and I see the names of my favorite GPUs popping up. In the end, the following file is written:</p><div id="0cb2"><pre>Top <span class="hljs-number">5</span> Graphics Cards <span class="hljs-keyword">with</span> the pros <span class="hljs-built_in">and</span> cons:
Comparative Analysis Report:
Based <span class="hljs-keyword">on</span> the Graphics Card Market research, Nvidia GeForce RTX <span class="hljs-number">3080</span> <span class="hljs-built_in">is</span> the fastest graphics card available. However, it <span class="hljs-built_in">is</span> the most expensive <span class="hljs-built_in">and</span> power-hungry. Nvidia GeForce RTX <span class="hljs-number">3070</span> <span class="hljs-built_in">is</span> reasonably priced <span class="hljs-keyword">with</span> great value <span class="hljs-keyword">for</span> a graphics card that supports RTX <span class="hljs-built_in">and</span> DLSS. AMD Radeon RX <span class="hljs-number">6900</span> XT <span class="hljs-built_in">is</span> the fastest Radeon GPU available. Nevertheless, it <span class="hljs-built_in">is</span> power-hungry <span class="hljs-built_in">and</span> comes <span class="hljs-keyword">with</span> a high price tag. AMD Radeon RX <span class="hljs-number">6800</span> XT <span class="hljs-built_in">is</span> the best value <span class="hljs-keyword">for</span> money graphics card <span class="hljs-keyword">as</span> it offers great performance at an affordable price. At the same time, it still manages <span class="hljs-keyword">to</span> support Ray-tracing <span class="hljs-built_in">and</span> DLSS.</pre></div><p id="841f">This result is very exciting. It gives a lot of good GPUs; the description is mostly good and limited to 5 GPUs. Everything was written to a file. However, the top-tier GPU 4090 is missing, as also industry-grade GPUs such as the A100. Overall, for GPUs, you would probably be better off just looking at a benchmark site such as <a href="https://gpu.userbenchmark.com">UserBenchmark</a>. Nonetheless a very exciting result and one can get a glimpse of where this is going.</p><h1 id="74f4">Example 3: Planner</h1><p id="0441">We create an AI that will help us to plan a wedding.</p><div id="0681"><pre><span class="hljs-attr">ai_name:</span> <span class="hljs-string">PlannerGPT</span>
<span class="hljs-attr">ai_role:</span> <span class="hljs-string">ai</span> <span class="hljs-string">agent</span> <span class="hljs-string">designed</span> <span class="hljs-string">to</span> <span class="hljs-string">organize</span> <span class="hljs-string">events</span>
<span class="hljs-attr">ai_goals:</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">plan</span> <span class="hljs-string">a</span> <span class="hljs-string">wedding</span> <span class="hljs-string">in</span> <span class="hljs-string">New</span> <span class="hljs-string">York</span> <span class="hljs-string">for</span> <span class="hljs-number">100</span> <span class="hljs-string">people</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">make</span> <span class="hljs-string">a</span> <span class="hljs-string">plan</span> <span class="hljs-string">with</span> <span class="hljs-string">three</span> <span class="hljs-string">different</span> <span class="hljs-string">pricing</span> <span class="hljs-string">tiers</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">include</span> <span class="hljs-string">venues</span> <span class="hljs-string">and</span> <span class="hljs-string">potential</span> <span class="hljs-string">activities</span> <span class="hljs-string">and</span> <span class="hljs-string">include</span> <span class="hljs-string">contact</span> <span class="hljs-string">data</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">include</span> <span class="hljs-string">a</span> <span class="hljs-string">timeline</span> <span class="hljs-string">for</span> <span class="hljs-string">each</span> <span class="hljs-string">tier</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">recommend</span> <span class="hljs-string">a</span> <span class="hljs-string">month</span> <span class="hljs-string">for</span> <span class="hljs-string">each</span> <span class="hljs-string">tier</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">save</span> <span class="hljs-string">the</span> <span class="hljs-string">analysis</span> <span class="hljs-string">to</span> <span class="hljs-string">a</span> <span class="hljs-string">file</span>
<span class="hljs-bullet">-</span> <span class="hljs-string">once</span> <span class="hljs-string">done,</span> <span class="hljs-string">terminate</span></pre></div><p id="b4bc">It goes over several iterations and starts with the budget tier. Between the lines, I can see lists of wedding venues. A parsing error appears. While I initially manually confirmed each iteration, I now tell it to run multiple iterations without me checking each result. After approximately ten minutes, I get the following files, and the bot shuts down.</p><div id="8dd9"><pre>Wedding Plan Analysis:
Identified potential activities <span class="hljs-keyword">for</span> <span class="hljs-keyword">the</span> wedding <span class="hljs-keyword">and</span> categorize them <span class="hljs-keyword">into</span> different pricing tiers.
Created <span class="hljs-literal">three</span> different pricing tiers that cater <span class="hljs-built_in">to</span> different budgets.
<span class="hljs-keyword">Each</span> tier will <span class="hljs-keyword">include</span> different venues <span class="hljs-keyword">and</span> activities, appealing <span class="hljs-keyword">to</span> different <span class="hljs-keyword">types</span> <span class="hljs-keyword">of</span> budgets.</pre></div><p id="7d77">Again, the result looks very usable, and we achieved most of our goals. The timeline is missing, and we don’t have the best month for the event. One obvious question is if there is a good website out there that has this compilation out there already. Overall it is very enjoyable to see the bot <i>thinking</i> and spitting out results.</p><h1 id="e29c">Summary</h1><p id="3ea8">Auto-GPT with GPT-4 is one big step in the right direction for intelligent agents, and I can easily see how more and more tasks will be automatable. It is to note that, in principle, I could have provided feedback to Auto-GPT for each iteration, but I did run it without human inference — autonomously. For this, the results are absolutely remarkable.</p><p id="1b88">Sometimes I could see coding errors, and it was able to fix itself.
While typing these lines, I wonder if Auto-GPT would have been able to write this article. At this point, I don’t think so, but this probably won’t be for long.</p><p id="5e42"><i>A note on API keys: Whenever I use API keys on public repos, I double-check where the keys are used, and so should you. When I checked Auto-GPT, I saw they were only passed to the <code>openai</code> package as they should have, so I was okay to continue testing. However, in principle, one commit could be enough to try to change the code to forward the API key somewhere else, so it is probably not a bad idea to double-check when you update the codebase.</i></p></article></body>
Auto-GPT: Towards Artificial Intelligence With Intelligent Agents
Auto-GPT is an experimental open-source attempt to make GPT-4, the core language model of the latest ChatGPT, autonomous. Test cases include business management and development to increase net worth. Not surprisingly, the project’s popularity quickly skyrocketed. In this article, we give some relevant background about intelligent agents in the context of artificial intelligence (AI), technicalities of the bot and dive deeper into what the bot currently can do with three examples.
Background: Intelligent Agents
If you have a discussion about Artificial Intelligence (AI) these days, it will probably be dominated by Deep Learning (DL) and its latest and greatest models and recent applications. Sometimes, DL and AI are used so interchangeably that one could assume that DL is AI. However, if you start with a scholarly approach, there is a clear distinction. Take the book Artificial Intelligence: A Modern Approach, the most-used AI textbook from the AI grandmasters Stuart Russel and Peter Norvig; one of the first larger topics you will learn about is Intelligent Agents.
If you don’t have time to read through this AI masterpiece, we can start off by introducing a definition from Wikipedia.
In artificial intelligence, an intelligent agent (IA) is anything which perceives its environment, takes actions autonomously in order to achieve goals, and may improve its performance with learning or acquiring knowledge. They may be simple or complex — a thermostat or other control system is considered an example of an intelligent agent, as is a human being, as is any system that meets the definition, such as a firm, a state, or a biome.
How would this definition fit something like ChatGPT or its underlying language model GPT-4? Maybe you could argue that ChatGPT’s goal is to be the best conversation bot, and it decides autonomously what it will tell you. We can also ask GPT-4, whether it considers itself to be an intelligent agent:
As an AI language model, ChatGPT can be considered an intelligent agent. An intelligent agent is a system that can perceive its environment, reason about it, and take actions based on its understanding to achieve specific goals or objectives. ChatGPT can perceive and process natural language inputs, reason about them based on its extensive training data, and generate appropriate responses or perform specific tasks.
However, how is this autonomous? Here’s an abstract from the response when questioning autonomy:
However, the autonomy of ChatGPT is limited by its narrow focus on language processing and understanding. It can only “make decisions” within the scope of generating relevant text based on input, and it does not possess the ability to independently adapt or learn beyond its training.
So the key question is: How can ChatGPT break free from the boundaries of its training?
Introducing Auto-GPT: GPT going autonomously.
One approach for this is Auto-GPT by Toran Bruce Richards. By now, it is one of the fastest growing packages on GitHub when you measure it by popularity: Being approximately one month old, it has already gained 33.5 k stars, had more than 1000 pull requests, and 85 contributors. It gained tremendous traction amongst various outlets. Cosmopolitan called it the “latest player in AI’s race for glory”. A modified version termed ChaosGPT was even programmed to “destroy humanity with AI”.
To give you a glimpse of what Auto-GPT can do, we can check the Tweet of Twitter User SullyOmarr. Auto-GPT was tasked to do market research with it, getting five competitors and generating a report:
It went on Google to research the information and gave a detailed report with pros, cons, and a conclusion. Everything is in eight minutes and for a cost of 10 cents. This sparks a lot of interest.
Technicalities
So, what does Auto-GPT do? It is written in Python and basically consists of the following functions:
An ability to access the internet to search and gather information. Underlying is a web scraper based on Beautiful Soup
Long-Term and Short-Term memory management. Here it can use vector databases based on Pinecone or Redis.
From OpenAI it uses GPT-4 for text generation and file storage and summarization with GPT-3.5
Internally, it configures agents that can receive messages, and they will return a response.
On top of it, you can configure the AI to read out the text.
A Field Test
To run Auto-GPT, the minimum requirements are Python3.8 or later, an OpenAI API key, and a PINECONE API key. The instructions on the GitHub are straightforward to follow.
When I first tested things, they didn’t work, and other users were already quick to create an issue for it. A couple of commits later, things worked again. The development pace is extremely fast, so it could be that the codebase changes in a couple of minutes. For testing, I used this commit: a0f900f , so once you cloned the repo, you could check out this state with git checkout a0f900f for consistency.
Next, you will need to define your bot in ai-settings.yaml.
Example 1: Entrepreneur-GPT
To get started, I kept the preconfigured Entrepreneuer-GPT, which is supposed to increase net worth and develop and manage multiple businesses.
It started with creating a plan to estimate my current net worth and come up with a business strategy to increase my net worth. It continued to search the web and found a net worth calculator, which — not to my surprise as I didn’t give financial data — did lead nowhere, so it continued to come up with a plan to monitor finance and news websites for interesting investment opportunities. Now this is an interesting spin.
The next iteration was to write some Python code to interface the net worth calculator. Why the net worth calculator again? Arguably, this is where things seem to go wrong. But there is some code. Another iteration to refactor the code. Two more iterations with seemingly no action. Then back to the news websites. It comes up with a plan to create an investment file that is able to track information in a structured way. This sounds quite reasonable.
Nonetheless, I stop here: I see some very good thoughts, but I can imagine that reaching the goal of creating a tangible business this way might take a while.
Example 2: Market Research
Let’s try something easier. I made a slightly modified version of SullyOmarrs AI definition, but this time to research GPUs, like so:
Fast forward a couple of iterations, and approximately ten minutes later: I see that the bot browses tech websites such as toms hardware, pc gamer, or tech radar, summarizing them, and I see the names of my favorite GPUs popping up. In the end, the following file is written:
Top 5 Graphics Cards with the pros and cons:
1. Nvidia GeForce RTX 3080Pros: Fastest GPU available, Ray-tracing performance, and DLSS built-in.
Cons: Expensive, power-hungry
Price: $6992. Nvidia GeForce RTX 3070Pros: Great value, RTX and DLSS support.
Cons: Can run hot, not the fastest GPU.
Price: $4993. Nvidia GeForce RTX 3070 Ti
Pros: Balanced performance, Ray-tracing ability, and DLSS support.
Cons: Expensive, as fast as the cheaper RTX 3080.
Price: $5994. AMD Radeon RX 6900 XT
Pros: Great 4K and1440p performance, Smart Access Memory enabled
Cons: Price, Power consumption.
Price: $9995. AMD Radeon RX 6800 XT
Pros: Great speed for its price, supports Ray-tracing and DLSS.
Cons: Expensive, power-hungry.
Price: $649
Comparative Analysis Report:
Based on the Graphics Card Market research, Nvidia GeForce RTX 3080is the fastest graphics card available. However, it is the most expensive and power-hungry. Nvidia GeForce RTX 3070is reasonably priced with great value for a graphics card that supports RTX and DLSS. AMD Radeon RX 6900 XT is the fastest Radeon GPU available. Nevertheless, it is power-hungry and comes with a high price tag. AMD Radeon RX 6800 XT is the best value for money graphics card as it offers great performance at an affordable price. At the same time, it still manages to support Ray-tracing and DLSS.
This result is very exciting. It gives a lot of good GPUs; the description is mostly good and limited to 5 GPUs. Everything was written to a file. However, the top-tier GPU 4090 is missing, as also industry-grade GPUs such as the A100. Overall, for GPUs, you would probably be better off just looking at a benchmark site such as UserBenchmark. Nonetheless a very exciting result and one can get a glimpse of where this is going.
Example 3: Planner
We create an AI that will help us to plan a wedding.
It goes over several iterations and starts with the budget tier. Between the lines, I can see lists of wedding venues. A parsing error appears. While I initially manually confirmed each iteration, I now tell it to run multiple iterations without me checking each result. After approximately ten minutes, I get the following files, and the bot shuts down.
Wedding Plan Analysis:
- Identified potential activities forthe wedding and categorize them into different pricing tiers.
- Created three different pricing tiers that cater to different budgets.
- Recommended the best month foreach pricing tier based onvendoravailability, costofgoods, andclientpreferences.
- Created adetailed timeline foreach event ofthe wedding day and shared itwiththe vendors andthe wedding party.
- Premium tier costsbetween$50,000 - $75,000.
- Mid-range tier costsbetween$30,000 - $50,000.
- Budget tier costsbetween$15,000 - $20,000.
- Each tier will include different venues and activities, appealing to different typesof budgets.
Again, the result looks very usable, and we achieved most of our goals. The timeline is missing, and we don’t have the best month for the event. One obvious question is if there is a good website out there that has this compilation out there already. Overall it is very enjoyable to see the bot thinking and spitting out results.
Summary
Auto-GPT with GPT-4 is one big step in the right direction for intelligent agents, and I can easily see how more and more tasks will be automatable. It is to note that, in principle, I could have provided feedback to Auto-GPT for each iteration, but I did run it without human inference — autonomously. For this, the results are absolutely remarkable.
Sometimes I could see coding errors, and it was able to fix itself.
While typing these lines, I wonder if Auto-GPT would have been able to write this article. At this point, I don’t think so, but this probably won’t be for long.
A note on API keys: Whenever I use API keys on public repos, I double-check where the keys are used, and so should you. When I checked Auto-GPT, I saw they were only passed to the openai package as they should have, so I was okay to continue testing. However, in principle, one commit could be enough to try to change the code to forward the API key somewhere else, so it is probably not a bad idea to double-check when you update the codebase.