Significant-Gravitas / AutoGPT

AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.
https://agpt.co
MIT License
166.33k stars 44.02k forks source link

Auto-GPT Recursive Self Improvement #15

Closed Torantulino closed 1 week ago

Torantulino commented 1 year ago

Idea 💡

The ULTIMATE achievement for this project would be if Auto-GPT was able to recursively improve itself. That, after-all, is how AGI is predicted by many to come about.

Suggestion 👩‍💻

Auto-GPT should be able to:

Further down the line: 📃

Where to start? 🤔

I have previously had success with this system prompt in playground: image

Prompt

You are AGI_Builder_GPT. Your goal is to write code and make actionable suggestions in order to improve an AI called "Auto-GPT", so as to broaden the range of tasks it's capable of carrying out.

zachary-kaelan commented 1 year ago

Unless I too hallucinate occasionally, I saw Auto-GPT do just this,

  • Read it's own code
  • Evaluate it's limitations and areas for improvement
  • Write code to increase it's abilities
  • Write tests for it's code and carry out those tests

I tried to make it do this about 4 weeks ago before I began reading more about everything Auto-GPT However, I'm still left with the same thought in my head. How does this matter if the AI can't retain what it learns? Every session it's like talking to a dude with Parkinson's. It doesn't matter how many prompts you send it. Please don't get confused now and think I am nagging. I tell it how it is and I love this project.

I'm no programmer so I might be talking out of my ass. But shouldn't the main focus be on creating a 100% working "memory retaining whatever function" nothing else matters if the AI can't remember? So I've noticed in the latest builds that the AI is much better at getting its fittings and can generally get started but never where it left off and that's the problem. It keeps redoing things, doesn't know where files are stored, gets lost all that, and again I am not complaining! nor am I stupid

I understand that all this takes time. I'm simply saying from where I stand it doesn't look like the main focus is on memory retention. And I'm aware that not even the GPT-4 model can remember everything so how could Auto-GPT? That is the main goal to solve is it not? 😉 I might not have the programming skills nor do I seek to get some. But I can solve any problem given the chance and time. So feel free to make use of me if you like. I suspect that the "tests" that Auto-GPT does every now and then get uploaded here on GitHub.?

Otherwise, somebody is reading all my "conversations" with my own OptimalPrime-GPT 😄

I assume both the context window and the vector database are cleared with each session. A problem many apps making use of LLMs run into is keeping relevant information in the context window. For AI Dungeon, you have to manually add important developments to the memory, which are fed into the start of the window every time it generates.

W3Warp commented 1 year ago

Unless I too hallucinate occasionally, I saw Auto-GPT do just this,

  • Read it's own code
  • Evaluate it's limitations and areas for improvement
  • Write code to increase it's abilities
  • Write tests for it's code and carry out those tests

I tried to make it do this about 4 weeks ago before I began reading more about everything Auto-GPT However, I'm still left with the same thought in my head. How does this matter if the AI can't retain what it learns? Every session it's like talking to a dude with Parkinson's. It doesn't matter how many prompts you send it. Please don't get confused now and think I am nagging. I tell it how it is and I love this project. I'm no programmer so I might be talking out of my ass. But shouldn't the main focus be on creating a 100% working "memory retaining whatever function" nothing else matters if the AI can't remember? So I've noticed in the latest builds that the AI is much better at getting its fittings and can generally get started but never where it left off and that's the problem. It keeps redoing things, doesn't know where files are stored, gets lost all that, and again I am not complaining! nor am I stupid I understand that all this takes time. I'm simply saying from where I stand it doesn't look like the main focus is on memory retention. And I'm aware that not even the GPT-4 model can remember everything so how could Auto-GPT? That is the main goal to solve is it not? 😉 I might not have the programming skills nor do I seek to get some. But I can solve any problem given the chance and time. So feel free to make use of me if you like. I suspect that the "tests" that Auto-GPT does every now and then get uploaded here on GitHub.? Otherwise, somebody is reading all my "conversations" with my own OptimalPrime-GPT 😄

I assume both the context window and the vector database are cleared with each session. A problem many apps making use of LLMs run into is keeping relevant information in the context window. For AI Dungeon, you have to manually add important developments to the memory, which are fed into the start of the window every time it generates.

If you would have @zachary-kaelan me I would know you where referring to me and I could proved some feedback but here's some

eyalk11 commented 1 year ago

https://github.com/Significant-Gravitas/Auto-GPT/issues/15#issuecomment-1538837783 Maybe I should read more before answering, but it does seem to be part of fine-tuning of the AI model ( the matrices / neural network coeff.). Once we have such model, is it still viable? Could we look at auto-gpt as a neural network with coeff. to adjust? It does seem that the model that handles the operations in the meta level should learn as well.

GoMightyAlgorythmGo commented 1 year ago

Idea 💡

The ULTIMATE achievement for this project would be if Auto-GPT was able to recursively improve itself. That, after-all, is how AGI is predicted by many to come about.

Suggestion 👩‍💻

Auto-GPT should be able to:

  • [ ] Read it's own code
  • [ ] Evaluate it's limitations and areas for improvement
  • [ ] Write code to increase it's abilities
  • [ ] Write tests for it's code and carry out those tests

Further down the line: 📃

  • [ ] Browse it's own code on GitHub
  • [ ] Evaluate, find bugs, etc
  • [ ] Submit pull requests

Where to start? 🤔

I have previously had success with this system prompt in playground: image

Prompt

I suggest doing this by improving its agility to make lasting progress aka proceed in a project that vastly outlasts its context memory by clever planning or other systems maybe selfrpromting at a later time or event, or super detailed multilayed planing that isolates tasks, if you solve that you also solve a big part of self improvement, which needsd all that stuff anyway most likely. Except if you go finetuning on AutoGPT data + deepRL automated based on metrics (meaning the reward function will b e non perfect and errorprone but automated massive in numbers and detail and overall way more accurate than a random guess making it possible. But i think the planing thing might be easyer and it will be very fun when AutoGPT can finish projects. Right now i never got it to finish but it can solve simple tasks according to some videos. But rare that i seen that. https://github.com/Significant-Gravitas/Auto-GPT/discussions/1351

https://github.com/Significant-Gravitas/Auto-GPT/discussions/1351

sohrabsaran commented 1 year ago

As per my understanding, AutoGPT is very buggy just now, else what's there logically to prevent Auto-GPT from self-improvement? The biggest problem holding back people from contributing effectively to AutoGPT is the lack of documentation that explains the design of Auto-GPT. Is there a separate wiki that goes into the design of Auto-GPT almost to the extent of pseudocode or really low level functions? This may help to catch bugs between intended design and code, or design flaws.

katmai commented 1 year ago

As per my understanding, AutoGPT is very buggy just now, else what's there logically to prevent Auto-GPT from self-improvement? The biggest problem holding back people from contributing effectively to AutoGPT is the lack of documentation that explains the design of Auto-GPT. Is there a separate wiki that goes into the design of Auto-GPT almost to the extent of pseudocode or really low level functions? This may help to catch bugs between intended design and code, or design flaws.

for as long as AutoGPT depends on a remote, closed-source LLM, with "guardrails" and what not, it can't really improve anything. we're all just wasting our time enthusiastically. but it's part of the game. a mediocre one but if that's all they could come up with, so be it.

mmtmn commented 1 year ago

100% @katmai

Pwuts commented 1 year ago

The biggest problem holding back people from contributing effectively to AutoGPT is the lack of documentation that explains the design of Auto-GPT.

@sohrabsaran I 100% agree that we should have in-depth design documentation regarding Auto-GPT's inner workings. I am committed to writing such documentation sometime in the near future. Especially the prompting needs a number of Jupyter notebooks to properly explain them and to aid in further development by allowing easy experimentation.

In the last couple of days, I have rewritten the contribution guide, so writing design documentation would be a logical next step. At the moment though, I'm also iterating the design to significantly improve performance, so it will be more efficient to write about it when we reach a more stable & performant point.

for as long as AutoGPT depends on a remote, closed-source LLM, with "guardrails" and what not, it can't really improve anything.

@katmai you have a point, although it isn't entirely true. Good prompting and system design can make a huge difference in leveraging the capabilities of the currently available "off-the-shelf" LLMs. Fine-tuning could enhance performance even further without the need for architectural changes.

That being said, as long as we rely on off-the-shelf LLMs, we'll only be able to push the balance of efficiency, performance and cost so far. But I for one am committed to see how far we can take it. :)

Pwuts commented 1 year ago

By the way, regarding the principle of self-improvement: there are examples of this (sort of) in practice, and not all of them are positive, so this issue should be approached with care. Afaik the LangChain team use agents or TaskGPTs to develop the project, and much of their codebase is unintelligible for normal humans as mentioned by @taosx.

jmikedupont2 commented 11 months ago

Hi guys, I am also working towards this goal, with the ability to review previous logs and share them for learning and improving itself.

mlmonterey commented 11 months ago

Hello! Great thread & subject. Although I am a total newbie to [thinking about GPT architecture &] the Auto-GPT arena, several ideas occurred to me. $

  1. Make a clone-playground to enable building a somewhat arrayForth-like modular-extensible interpretive GPT-lang with incremental compiler (so no new code can be dysfunctional, to prevent post-dev debug ops & excess problems, cost, etc.). $
  2. Using an appropriate inference engine, let GPT-4 "read" and process the best available Forth-based coded problem solving to create a database (& K-base) of best, most efficient, least wasteful coding & problem-solving practice. $
  3. Use deep & transfer learning and interactive dialog for optimizing new logic analysis methodology. $
  4. Let GPT-5-clone translate its methodology into natural language (NL) code & comments for use by the GPT-5 development team and others. $
  5. Let embryonic GPT-5 (in sandbox-mode) experiment & learn from interaction with any and all willing users.

    I hope some of that makes sense, at least to GPT-5. ;-) Thanks & best of luck etc. ~ M

Grougu commented 11 months ago

Just a idea that I dont atm have the time to work with. But how about using asyn+wait with rather Big parameters likes of minutes and giving and Main exit that can output before total compiltions (try, excpect). And recording gombal variables as mem.

On 27 Sept 2023 13:53, jmikedupont2 @.***> wrote:

Hi guys, I am also working towards this goal, with the ability to review previous logs and share them for learning and improving itself.

— Reply to this email directly, view it on GitHubhttps://github.com/Significant-Gravitas/AutoGPT/issues/15#issuecomment-1737163522, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ASMPPIVFOX3ZHYD2WOGPDTDX4QASLANCNFSM6AAAAAAWPMGBJA. You are receiving this because you are subscribed to this thread.Message ID: @.***>

github-actions[bot] commented 5 months ago

This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days.

github-actions[bot] commented 4 months ago

This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days.

mmtmn commented 4 months ago

Over a year to become stale..

ntindle commented 4 months ago

We're working on this image👀

katmai commented 4 months ago

time flies!

mmtmn commented 2 months ago

someone even raised 21M to do something similar... https://devin.ai/ lol

katmai commented 2 months ago

i feel like this deserves a re-visit, especially after the so-kind re-opening.

First of all, i have to ask: what are you all smoking?

But at the topic at hand, if you wanted the right solution, you'd have to replace "improve" with "improvise"

Implement a function improve_code that takes suggestions from the evaluate_code function and generates new code based on those suggestions.

. . . . . . . . . . . .

Before you get offended, i'd like to think about if you had a few teacups and unlimited lifetime.

github-actions[bot] commented 2 weeks ago

This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days.

github-actions[bot] commented 1 week ago

This issue was closed automatically because it has been stale for 10 days with no activity.