-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Hello kurtosis tech team!
I have various thoughts about this project, all of which are simply ways to improve -- at least as I see it -- the usability, execution speed, functional application space, or simply the quality of life. This is to say, I think the current state of this project is already great.
BUT...
Here is my vision for how this package could be used which would, for me at least, supercharge usage of this project.
π¬ Suggestions
These are not provided in any particular order, and it may well be that some should definitely be implemented before others. I leave that up to the more knowledgeable.
-
π Implementthanks!gpt4allsupport - π§± Supporting Local/Unpublished/Private Auto-GPT Plugins
-
π¦ AddingautogptBranch/Version Specification at Runtime - π Creating a Wiki / Nested Documentation
- βΈ "Pausing" & "Unpausing" Instances for Prolonged Use / Execution
-
π Constructing a "build-config" System for Configuration / Local Caching / Pausable Instances / etckinda dumb lol
I guess you can't have
scrollToid links to Headers in issues, or I'm being dumb... Either way sorry, the links above are, save the first, bogus.
π§± Supporting Local/Unpublished/Private Auto-GPT Plugins
I think it would be a very useful feature to allow users who are actively developing, working with a proprietary codebase, or for any other reason are deploying autogpt with currently unpublished forks of Auto-GPT-Plugin-Template to attach their local code to an instance of autogpt-package.
As for the implementation of this, I am less clear on how it would work, as I don't fully understand kurtosis under the hood. However, I do think it is possible. I also always think that... but I digress
π¦ Adding autogpt Branch/Version Specification at Runtime
A method with which we could specify the version of autogpt we want to use would be very helpful, especially given the drastic changes version to version -- such as the scrapping of the MEMORY_BACKEND system in Auto-GPT v0.4.0.
Currently, I would like to be able to use autogpt version 0.3.1, which can be located under the branch stable-0.3.1 in the Auto-GPT repository.
π Creating a Wiki / Nested Documentation
While you guys have definitely documented things well enough to use your project through just README.md, I think it's time you have a full-on wiki. I think the easiest, most user-friendly way to do this would be to utilize GitHub repository Wikis, but there are various possible ways. I would be happy to help create such documentation, if you would like.
βΈ "Pausing" & "Unpausing" Instances for Prolonged Use / Execution
Finding a way to save the state of your autogpt-package instance, write it to a file or files, and then return to it at a later date, would make utilizing this tool much nicer in terms of quality of life (in my opinion of course)
This could also potentially be a benefit when it comes to fault-tolerance / error recovery, which would be a great thing to support, both implemented by you guys, but also opening up a way for us to write our own conditions for "failure" and hook in our own subsequent handling systems.
π Constructing a "build" System for Configuration / Local Caching / Pausable Instances / etc
This one is by far the biggest ask. (save the best for last or something)
I am personally tired of having to provide all my arguments to the project in the form of a single CLI string. Even escaping special characters aside, growth while ultimately hampered by this constraint adds in my opinion unnecessary overhead.
As an alternative, I propose a build system not unlike that of npm or setuptools for Node.js and Python respectively, involving a json1 file, maybe by convention called agpkg_config.json2, which would facilitate multiple executions of the same instance -- especially if pausing is supported. (somehow)
Here's my suggestion, in terms of file examples.
agpkg_config.jsonc3
With this concept, a .env file which is exactly the same format as that which is used in standard autogpt instances can be utilized off-the-shelf by a new user intending to try out autogpt-package. Same idea with ai_settings.yaml.
Along with that, all the specification for other things, such as gpt4all configuration, or networking, or any other custom stuff you decide to put on top of autogpt in this package to increase its usefulness, could all be specified from a central file, and we wouldn't need to parse and merge .env files into json data then escape it. It just seems like this would be a more scalable approach in my eyes, but I could be wrong.
I also understand this would NOT be as simple as I have put it out to be -- it would be a somewhat major undertaking for the codebase -- but I wanted to put my suggestion out here. Feel free to use it as you see fit; I will not be offended. C:
π Summary
Here is the current README.md's method of initiating autogpt-package with a redis memory backend.4
$ kurtosis run github.com/kurtosis-tech/autogpt-package '{"GPT_4ALL": true, "MODEL_URL": "https://gpt4all.io/models/ggml-gpt4all-l13b-snoozy.bin"}'Here is how I would have things work, in a perfect world for me -- which is obviously not everyone's perfect world.
$ kurtosis run github.com/kurtosis-tech/autogpt-package --enclave autogpt `/path/to/agpkg_config.json` Alright, this is insanely long, and I apologize in advance! Hopefully something in here will inspire somebody. Thank you to everyone at kurtosis-tech again for making this package. It was the first way that I got Auto-GPT to work at all when I was first playing with it, and it was as seamless as it purported to be.
But then I wanted more... hah.
Cheers,
Jason, or zod
Footnotes
-
Or
yaml, or even justxmlif you don't like us very much. Format doesn't really matter here β© -
This should be able to be overwritten by a CLI flag, perhaps
--build-configuration <filename.json>β© -
This is just a simple extension of
jsonwhich supports multi line, single line, and inline comments usingjssyntax. Here is a parser fromMicrosoftwritten for Node.js This is not required by any means; simplejsonshould be used, & developers can precompile ourjsoncorjsonlinto appropriatejsonconforming structures on our own time. β© -
I realize that the
README.mddocument is, while replete with information about the actual use of the repository, a bit scattered. I think you guys should add either just adocs/directory with various.mdfiles, or a full-on GitHub Pages Wiki -- but I will make a separate issue for that β©