TL;DR: Users will only see a small part of the improvements made in this release. Most of the improvements were made "under the hood", where developers will see cleaner source code that is becoming increasingly easier to work with.
Highlights ✨
Highlights and notable changes since v0.3.0:
⚠️ Command send_tweet
is REMOVED
Twitter functionality (and more) is now covered by plugins.
⚠️ Memory backend deprecation 💾
The Milvus, Pinecone and Weaviate memory backends were rendered incompatible by work on the memory system, and have been removed. The Redis memory store was also temporarily removed; we will merge a new implementation ASAP.
Whether built-in support for the others will be added back in the future is subject to discussion, feel free to pitch in: #4280
❇️ Document support in read_file
📄
Auto-GPT can now read text from document files, with support added for PDF, doc, docx, CSV, HTML, TeX and more!
❇️ Managing Auto-GPT's access to commands ❌🔧
You can now disable set of built-in commands through the DISABLED_COMMAND_CATEGORIES
variable in .env. Specific shell commands can also be disabled using DENY_COMMANDS
, or selectively enabled using ALLOW_COMMANDS
.
The state of Auto-GPT 🔍
We are working on re-architecting large parts of the codebase to make development easier in the long term and future-proof the project. This re-architecture is a big task and will take a while, so in the meantime, we continue merging pull requests into master
(our main development branch) and integrating contributions that help the project's overall objectives, including re-arch.
The overarching vision of the re-arch is to re-imagine Auto-GPT as a component-based framework geared towards facilitating exploration of AI agents. If the internals are not clean, progress suffers.
This vision breaks down into specific goals:
- Component-based architecture with clean interfaces (to achieve separability, modularity)
- State-contained agent (to allow for efficient exploration of the agent run-loop)
- This requires removing global state
In this release... 🏗️
In this release, we make two major re-architecture steps:
-
Memory System Revamp
We have revised the vector memory storage system (#4208), laying a foundation to implement so-called "retrieval augmentation" that enhances the long-term performance of Auto-GPT.
For the time being we have removed support for all memory providers except for local (json_file
) memory. This stop-gap measure simplifies/expedites development. A Redis memory provider implementation is in the pipeline, we're waiting on the redis-om-python team to merge a fix.
Work on the memory system is tracked here: #3536 -
Removal of global configuration object
In this version, we've removed the global configuration object. Instead configuration is passed into components as required. Further work is ongoing to remove these 'singletons'.
Other Highlights
- Added possibility to interrupt continuous runs
- Updated Google/DuckDuckGo search internals
- Continued work on challenges
- Continued work on CI pipelines to speed them up without degrading DX
- Improved test coverage
- Updated documentation
Changelog 📃
- Sync
stable
intomaster
after v0.3.1 release by @richbeales in #4203 - Update prompt.py to clarify how to call commands by @richbeales in #4027
- Fix commands with same name overwriting by @k-boikov in #4226
- Fixed error in safe_google_results, added tests by @k-boikov in #3606
- Improve error message by providing the name of the env file by @Boostrix in #3964
- Show workspace during startup / fix for #2793 by @Boostrix in #4082
- Refactor challenges to use cycle count instead of time by @merwanehamadi in #4222
- Added feature to interrupt y -N continuous commands. by @gravelBridge in #4230
- fix ci cassettes by @merwanehamadi in #4234
- Fix ai_name not passed to Agent by @tmalahie in #3948
- Legal warning on continuous run by @ntindle in #4239
- Clarify .env.template image-provider options by @cwenner in #3720
- fix: allow absolute paths if contained in workspace by @BaseInfinity in #3932
- Huggingface retry generate_image with delay by @primaryobjects in #2745
- Adds check for Python 3.10 and print error message if required version not detected. by @amokduke in #3598
- Update README.md - make stable branch less shouty by @richbeales in #3702
- CI Pipeline: create cassettes in fork by @merwanehamadi in #4257
- encourage people to use a separate user account w/o VM/docker by @Boostrix in #3961
- Added custom_search_engine_id as mandatory for official google search by @k-boikov in #4228
- mention docker rebuild is necessary if changing requirements.txt by @Boostrix in #4136
- Update PULL_REQUEST_TEMPLATE.md to include linting by @richbeales in #3625
- Implement Logging of Self-Feedback in logs/Debug Folder by @AndresCdo in #3868
- Add $ to timestamp in ci.yml and improve diff by @merwanehamadi in #4266
- Make prompt parameters configurable by @DGdev91 in #3375
- Logs output to console if we're not on speak mode by @Zorinik in #3715
- switching from unittest to pytest in test_json_parser by @rihp in #3481
- Incremented Version BULLETIN.md by @AlexKissiJr in #4236
- Prevent test collection errors in devcontainer by @lc0rp in #4180
- Added unittest cases for commands/analyze_code.py file by @gocodeo in #4212
- Delete sponsors_readme.yml workflow by @Pwuts in #4304
- Imagegen delay retry huggingface by @lc0rp in #4194
- Enabling/disabling none/all of plugins from .env file by @TrajanWJ in #4036
- Update setup.md by @johnisanerd in #3690
- add command shell blacklist and whitelist by @Wladastic in #3950
- Used a regex expression for simple URL validation and added tests by @OmriGM in #3763
- Clean up BULLETIN.md by @Pwuts in #4305
- Added unittest cases for commands/audio_text.py by @gocodeo in #4307
- Adding devcontainer extensions by @lc0rp in #4181
- fix: completion was being called with wrong data types by @ntindle in #4324
- Fixed #4229 by @konraddroeske in #4278
- Fix split_file when overlap = 0, add test by @k-boikov in #3599
- Update README.md by @namelessperson0 in #4333
- Text file loaders by @sherif-med in #3031
- Update 1.bug.yml to improve consistency of data by @bfalans in #4293
- Prevent docker compose to break config by creating folders by @k-boikov in #4125
- Create data folder in Docker release build by @Pwuts in #4347
- Pass command line args as list by @Androbin in #1486
- Improve Azure setup wording in docs by @ntindle in #4325
- Cassettes should be added in the same pull request, without extra pull request by @merwanehamadi in #4355
- CI: set base repo before
gh pr checkout
by @merwanehamadi in #4363 - Update get_hyperlinks description by @sicongzhao in #4122
- Fix the version of duckduckgo-search to avoid empty result issue by @kinance in #4368
- empty commit to see cassette status by @merwanehamadi in #4382
- Migrate google search to use DDGS.text function by @kinance in #4383
- Remove Twitter Command by @ntindle in #4381
- Fix duckduckgo-search to 3.0.2 stable version by @kinance in #4405
- Vector memory revamp (part 1: refactoring) by @Pwuts in #4208
- Remove obsolete full_message_history kwarg from tests by @k-boikov in #4411
- Add 30 min timeout for tests by @k-boikov in #4416
- Switch from pypi to github for auto-gpt-plugin-template by @k-boikov in #4402
- Pass Configs to Commands and remove CFG = Config() in the commands/ folder by @ntindle in #4328
- remove cassettes auto commit by @merwanehamadi in #4432
- Create cassette submodule by @merwanehamadi in #4420
- Allow spinning to be disabled by @k-boikov in #4329
- Fix typo and links in documentation by @kinance in #4440
- Added three more tests to check for edge cases in URL validation by @Jedimasterjohns in #4441
- Fix Information Retrieval Challenge by @merwanehamadi in #4448
- remove unused imports automatically by @merwanehamadi in #4449
- "Beat Challenges" Mode by @merwanehamadi in #4447
- Master doesn't beat memory challenge b level 1 in a consistent manner by @merwanehamadi in #4460
- Improve the steps for running docker compose in the setup documentation by @kinance in #4462
- Fix #942: Respect --gpt4only, --gpt3only cli args by @lc0rp in #3144
- Replace 'prompt change' with 'behavior change' by @merwanehamadi in #4473
- Update current score when PR merged by @merwanehamadi in #4464
- add vcr to dalle by @merwanehamadi in #4474
- Fix #4461: Don't record error requests in challenges by @erik-megarad in #4469
- Information retrieval challenge by @merwanehamadi in #4456
- Ignore push if current score changed by @merwanehamadi in #4482
- Increase difficulty of the "information retrieval" challenge and add a new level by @merwanehamadi in #4468
- Create "Debug Code Challenge" by @dschonholtz in #4286
- Ignore cassettes and current score for all push events by @merwanehamadi in #4485
- Adding support for openai_organization env variable by @kaneda2004 in #289
- Fix CI for internal PRs with CI changes by @Pwuts in #4552
New Contributors 👷🏼
- @tmalahie made their first contribution in #3948
- @BaseInfinity made their first contribution in #3932
- @amokduke made their first contribution in #3598
- @DGdev91 made their first contribution in #3375
- @AlexKissiJr made their first contribution in #4236
- @gocodeo made their first contribution in #4212
- @TrajanWJ made their first contribution in #4036
- @johnisanerd made their first contribution in #3690
- @konraddroeske made their first contribution in #4278
- @namelessperson0 made their first contribution in #4333
- @sherif-med made their first contribution in #3031
- @sicongzhao made their first contribution in #4122
- @Jedimasterjohns made their first contribution in #4441
- @erik-megarad made their first contribution in #4469
- @kaneda2004 made their first contribution in #289
Full Changelog: v0.3.1...v0.4.0