Auto-GPT v0.3.0
Over a week and 275 pull requests have passed since v0.2.2, and we are happy to announce the release of v0.3.0! From now on, we will be focusing on major improvements rather than bugfixes, as we feel stability has reached a reasonable level. Most remaining issues relate to limitations in prompt generation and the memory system, which will be the focus of our efforts for the next release.
Highlights ✨
Plugins 🔌
Now 3rd-party developers can extend the functionality of AutoGPT by writing plugins.
Do you want Auto-GPT to access your calendar or open your garage door? Write a plugin for it!
Please note the Plugin interface is unstable and will change with potentially v0.3.1 and v0.4.0 as we add more capability
https://github.com/Significant-Gravitas/Auto-GPT-Plugins#plugins-in-the-repository
Documentation 📖 - https://docs.agpt.co/
The docs have been updated and can now be found on https://docs.agpt.co/. RTFM! :)
Test Driven Development 🧪
Many proposals come in, but how to know which ones actually improve Auto-GPT? To better focus our efforts, our tests now include challenges, e.g., a memory challenge (levels 1 to 10).
AutoGPT can get up to level 4. Can any rockstar dev get it to level 5 or level 10?
Simplified prompt 💬
Auto-GPT just became a lot easier to use with an automatic initial prompt generator.
Just say what you want, e.g., "make pong," and Auto-GPT will (attempt to) do the rest.
Self-feedback 🔍
This feature enables the AI to engage in reflection and improve its thought, plans, and reasoning capabilities by considering its own internal evaluations. To use this feature, input the 'S' key when Auto-GPT asks for your input.
Memory Management 🧠
To better keep the AI on track, Auto-GPT now maintains a running summary of prior interactions.
After each interaction, this summary is updated. In this way, Auto-GPT remembers what's essential as it works.
Behind the scenes
The above are highlights out of the changes you'll see as a user, but it's just the tip of the iceberg.
Behind the scenes, the core team has been restructuring the codebase and organizing itself.
We're paying back the technical debt that was accrued during our early days. There's much more to come.
Full List of What's Changed
- Plugin Support by @BillSchumacher in #757
- Shirt size labeling for PRs by @ntindle in #2467
- fix shirt-sizing workflow permissions by @Pwuts in #2605
- Update docker-hub image push action by @richbeales in #1986
- Stable by @juanignacioronca in #2272
- include openapi-python-client in docker build by @k-boikov in #2669
- Fix README
./run.sh start
->./run.sh
by @chenfengyanyu in #2523 - Cancel in-progress docker CI on outdate by @edcohen08 in #2619
- doc: update git clone command to use stable branch by @egonm12 in #2667
- Use inclusive language: Rename 'blacklist' to 'denylist' and 'whitelist' to 'allowlist' by @riensen in #2644
- Pin BeautifulSoup version to fix
browse_website
by @peterbanda in #2680 - fix #2654 spacy language model installation by @Pwuts in #2727
- Fix
validate_json
file error when cwd != project root by @mickjagger19 in #2665 - Add missing
size
param to generate_image_with_dalle by @AndresCdo in #2691 - Fix label of
download_file
command by @Nickfost in #2753 - Fix typo's by @lengweiping1983 in #2735
- Add Coverage reporting to CI pipeline by @ntindle in #2628
- Make
load_azure_config
throw ifazure.yaml
does not exist by @Pwuts in #2758 - docs: fix small typo in README by @chrisvxd in #2752
- Update README.md by @Bsodoge in #2709
- add instruction to show .env by @itsmarble in #2705
- Update pre-commit version by @AndresCdo in #2682
- Improve plugin section in README.md to prevent dependency errors by @riensen in #2651
- Added version select to bug template by @cryptidv in #2545
- only adjust argument order by @lengweiping1983 in #2313
- Make config load and override for every new run by @coditamar in #2788
- Update README.md by @T-Higgins in #2785
- fix indentation of bug template yml by @k-boikov in #2832
- Fix docker usage readme by @pkqs90 in #2406
- Update README.md (
IMAGE_PROVIDER=sd
=>IMAGE_PROVIDER=huggingface
) by @okunishinishi in #2802 - [Hotfix] Fix coverage tooling by @ntindle in #2771
- Add OS Info into the initial prompt by @MikelCalvo in #2587
- Update readme to more clearly describe usage between platforms by @BuildEverything in #2837
- Use readline if available by @jlxip in #2558
- Add file op tests by @rocks6 in #2205
- fixed typo by @sudouser777 in #2851
- [feat] Update milvus_memory_test.py error log by @AndresCdo in #2679
- Add Code Cov by @ntindle in #2877
- Added basic spinner tests and modified spinner method docstring by @OmriGM in #2855
- Documentation: fixing typos in README.md by @didier-durand in #2886
- Update README to include Eleven Labs speech setup by @minghinmatthewlam in #2884
- Fixing header of CONTRIBUTING.md by @didier-durand in #2888
- adjust file_operations.py code format by @gklab in #2756
- Fix(tests): restore config values after changing them in tests by @Torantulino in #2904
- Add CodeCov CI coverage requirements by @ntindle in #2881
- Re-work Docs and split out README (using MkDocs) by @richbeales in #2894
- ci: selenium safari bug fixed by @dharana77 in #2915
- Replace print statements with logging.error by @ugobok in #2708
- Fix plugin command arg ordering issue. by @BillSchumacher in #2631
- misc: fix typo in benchmark by @jazelly in #2521
- Tests utils suite by @rihp in #2961
- Automatic prompting by @Torantulino in #2896
- Documentation typo: serach -> search by @didier-durand in #2977
- Mark test test_generate_aiconfig_automatic_typical as @requires_api_… by @richbeales in #2981
- Add note for windows install by @ntindle in #2970
- Fix to prompt generator - "Ensure the response can beparsed" by @richbeales in #2980
- Add missing test decorator by @richbeales in #2989
- update weaviate.py for weaviate compatibility by @non-adj in #2985
- Documentation: fixing typos by @didier-durand in #2978
- Documentation: ensuring naming consistency by @didier-durand in #2975
- update documentation deploy gh action by @richbeales in #3030
- Support secure and authenticated Milvus memory backends by @chyezh in #2127
- Fix Milvus module config import by @chyezh in #3036
- Add workspace abstraction by @collijk in #2982
- Fix typo in warning message when non allowlisted plugins found by @hdkiller in #3044
- Make Auto-GPT aware of its running cost by @Vwing in #762
- Add tests for json_utils.json_fix_llm by @coditamar in #2952
- Perm memory test cases by @rihp in #2996
- Refactor/collect embeddings code by @collijk in #3060
- Bugfix/make local memory json when it doesnt exist by @collijk in #3066
- Resolve sequencing issue in global state management by @collijk in #3089
- Fixed incorrect comment: Clear memory instead of Redis by @scout9ll in #3092
- Handle API timeouts by @soheil in #3024
- Validate URLs in web commands before execution by @edcohen08 in #2616
- Add function and class descriptions to tests by @AndresCdo in #2715
- Improve docker setup & config by @Pwuts in #1843
- Add arg to do_nothing command by @fluxism in #3090
- fix test_search_files for windows by @k-boikov in #3073
- Clean up GitHub Workflows by @Pwuts in #3059
- Adjust test_json_parser file by @younessZMZ in #1935
- Error if null bytes are included in the path on windows by @collijk in #3147
- Agent and agent manager tests by @rihp in #3116
- Add indirection layer to entry point by @collijk in #3152
- anontation fix by @zhanglei1172 in #3018
- Hotfix/global agent manager workaround by @collijk in #3157
- Remove dead permanent memory module by @collijk in #3145
- Refactor/move singleton out of config module by @collijk in #3161
- Add option to install plugin dependencies by @dychen in #3068
- Re-add install-plugin-deps to CLI by @dychen in #3170
- Update ci.yml by @ntindle in #3179
- Bulletin patch - Updating 'BULLETIN.MD' to warn about the deprecation of baked-in 'send_tweet' command by @desojo in #3181
- Ensure Fore.RED is followed by Fore.RESET by @lwneal in #3182
- Add a little more descriptive installation instruction by @resduo in #3180
- Update installation.md by @MarKiSS2000 in #3166
- Refactor/decouple logger from global configuration by @collijk in #3171
- docs fix to image generation by @ntindle in #3186
- Feature: Added Self Feedback by @AbTrax in #3013
- fix: use config instead of hardcoded filename by @ppetermann in #3189
- unit test agent feedback by @merwanehamadi in #3209
- Remove plugin notice from CONTRIBUTING.md by @Pwuts in #3227
- Extract OpenAI API retry handler and unify ADA embeddings calls. by @collijk in #3191
- Use explicit API keys when querying OpenAI by @collijk in #3241
- Fix readme centering by @richbeales in #3243
- Remove import time loading of config from llm_utils by @collijk in #3245
- adding probably erroneously removed return value from execut_shell, g… by @psvensson in #3212
- Load .env in package init by @collijk in #3251
- Fix PR size autolabeler message by @ntindle in #3194
- Fix
get_ada_embedding
return type by @Androbin in #3263 - Fix docs alignment by @richbeales in #3302
- Fix(docs) Contributing, CoC and License links by @Pwuts in #3308
- Fix(docs) requirements link in installation guide by @apurvsibal in #3264
- Codecov - don't fail pipelines for project cov changes by @vlad-ko in #3327
- Update installation.md by @MarKiSS2000 in #3325
- mock openai in test agent manager by @merwanehamadi in #3285
- Have api manager use singleton pattern by @collijk in #3269
- use pytest-recording with VCR by @merwanehamadi in #3283
- test image gen by @merwanehamadi in #3287
- Fix docs by @Pwuts in #3336
- Clean up image generation tests by @collijk in #3338
- fix set_total_budget docstring by @karlivory in #3288
- Chat plugin capability by @Wladastic in #2929
- Cassettes should not record Transfer-Encoding and test_write_file should use no memory by @merwanehamadi in #3342
- Fix(workspace) root resolution by @Pwuts in #3365
- Remove do_nothing (Do nothing) by @merwanehamadi in #3369
- Hotfix/validate url strips query params by @edcohen08 in #3370
- Run the integration tests in the CI pipeline BUT without API keys by @merwanehamadi in #3359
- Set
vcr_config
scope to "session" by @Androbin in #3361 - Fix MilvusMemory connecting to Zilliz by @chyezh in #3278
- The unlooping and fixing of file execution. by @BillSchumacher in #3368
- Exclude docs and test cassettes from linguist stats by @Pwuts in #3402
- Minor improvements to the docs for voice config and testing by @Pwuts in #3407
- Add makedirs to file operations by @montanaflynn in #3289
- Browse Site Regression test by @merwanehamadi in #3387
- Fix imports, type hints and fixtures for goal oriented tests by @Pwuts in #3415
- Fix
browse_website
headless mode for Firefox by @Irmius in #2816 - Update broken link by @ledrui in #3416
- Fix README: remove redundant "Disclaimer" by @DhruvAwasthi in #3391
- Add a regression test for the embedding by @collijk in #3422
- Make y/n configurable by @edcohen08 in #3178
- Fix URL to docs in API throttling message by @gantit in #3201
- Add tests for code/shell execution & improve config fixture by @rickythefox in #1268
- Removing unitest in favor of pytest from test_config.py by @rihp in #3417
- Remove unittest in favor of pytest in the test_token_counter module by @rihp in #3453
- move remove_color_codes to utils and add tests by @k-boikov in #3260
- Refactor test_chat to use pytest instead of unittest by @rihp in #3484
- Organize all the llm stuff into a subpackage by @collijk in #3436
- Fix memory by adding it only when context window full by @merwanehamadi in #3469
- More graceful browsing error handling by @collijk in #3494
- update pyproject by @BillSchumacher in #2757
- Architecture-agnostic dev-container patch, now with Redis 😍 by @desojo in #3102
- Feature/llm data structs by @collijk in #3486
- Fix
clone_repository
to conform to URL validation by @SBNovaScript in #3150 - Extend & improve file operations tests by @k-boikov in #3404
- fix typo in testing.md by @eltociear in #3537
- Removing duplicate tests browse_tests by @rihp in #3535
- Refactor test_spiunner to deprecate unittest in favor of pytest by @rihp in #3532
- Feature/challenge memory management by @merwanehamadi in #3425
- Feature/challenge memory challenge B by @merwanehamadi in #3550
- replace 50+ occurrences of print() with logger by @richbeales in #3056
- Refactor AIConfig to Sanitize Input for Goal Parameters by @pr-0f3t in #3492
- Feature/test summarization against memory challenge by @merwanehamadi in #3567
- added tests for clone_repository by @k-boikov in #3558
- add report method to typewriter_log & load report plugins into logger by @Wladastic in #3582
- rename search_files to list_files by @richbeales in #3595
- fix bug #3455 by @zyt600 in #3591
- [bug]
list_files
api signature change indata_ingestion.py
and lo… by @valayDave in #3601 - Update documentation URLs to docs.agpt.co by @Pwuts in #3621
- Fix side effects on message history by @AbTrax in #3619
- Message about Pinecone initializing by @Ashutoshkataria19 in #1194
- Fix file operations logger by @bobisme in #3489
- update web_selenium.py to use try-with for headers by @non-adj in #2988
- Fix multi-byte character handling in
read_file
by @sidewaysthought in #3173 - Fix
validate_json
scheme path by @k-boikov in #3631 - Fix the maximum context length issue by chunking by @kinance in #3222
- Add warning for LLM to avoid context overflow by @Pwuts in #3646
- Fix MACOS Zip Import Error when compressing plugin by @gravelBridge in #3629
- Synchronize
stable
->master
by @Pwuts in #3677 - Release v0.3.0 by @Pwuts in #3683
New Contributors
- @ntindle made their first contribution in #2467
- @juanignacioronca made their first contribution in #2272
- @chenfengyanyu made their first contribution in #2523
- @egonm12 made their first contribution in #2667
- @peterbanda made their first contribution in #2680
- @mickjagger19 made their first contribution in #2665
- @Nickfost made their first contribution in #2753
- @chrisvxd made their first contribution in #2752
- @Bsodoge made their first contribution in #2709
- @itsmarble made their first contribution in #2705
- @T-Higgins made their first contribution in #2785
- @pkqs90 made their first contribution in #2406
- @okunishinishi made their first contribution in #2802
- @MikelCalvo made their first contribution in #2587
- @BuildEverything made their first contribution in #2837
- @jlxip made their first contribution in #2558
- @sudouser777 made their first contribution in #2851
- @didier-durand made their first contribution in #2886
- @minghinmatthewlam made their first contribution in #2884
- @dharana77 made their first contribution in #2915
- @ugobok made their first contribution in #2708
- @jazelly made their first contribution in #2521
- @non-adj made their first contribution in #2985
- @Vwing made their first contribution in #762
- @scout9ll made their first contribution in #3092
- @soheil made their first contribution in #3024
- @fluxism made their first contribution in #3090
- @zhanglei1172 made their first contribution in #3018
- @dychen made their first contribution in #3068
- @desojo made their first contribution in #3181
- @lwneal made their first contribution in #3182
- @resduo made their first contribution in #3180
- @MarKiSS2000 made their first contribution in #3166
- @AbTrax made their first contribution in #3013
- @ppetermann made their first contribution in #3189
- @apurvsibal made their first contribution in #3264
- @vlad-ko made their first contribution in #3327
- @karlivory made their first contribution in #3288
- @montanaflynn made their first contribution in #3289
- @Irmius made their first contribution in #2816
- @ledrui made their first contribution in #3416
- @DhruvAwasthi made their first contribution in #3391
- @gantit made their first contribution in #3201
- @pr-0f3t made their first contribution in #3492
- @zyt600 made their first contribution in #3591
- @valayDave made their first contribution in #3601
- @Ashutoshkataria19 made their first contribution in #1194
- @bobisme made their first contribution in #3489
- @sidewaysthought made their first contribution in #3173
- @gravelBridge made their first contribution in #3629
Full Changelog: v0.2.2...v0.3.0