Auto-GPT v0.4.1
This release focuses on improving command reliability and fixing bugs from version 0.4.0. Some internal changes have been made that pave the way for the highly anticipated 0.5.0 major release.
As usual, this release cannot have happened without Auto-GPT's ever-enthusiastic community. Hop over to the discussion boards to discuss this release and more.
This time round, we're highlighting "New Contributors" before the longer changelog details, and including testers, PR-reviewers and other active community members. We may keep this new format in future releases.
Highlights ✨
- Directory-based plugins! - Great news! Plugins no longer have to be compressed into zip files. Simply placing a plugin in a subfolder or repository clone within the plugins directory will now allow it to be recognized and loaded.
- Keyboard navigation! - People who are "less mouse, more keyboard" will love this.
- JSON fixes - Several prompts and JSON problems have been resolved, leading to a more dependable selection and execution of commands.
- More dependable search - Internet searching is now more reliable and less prone to errors thanks to Auto-GPT's improved ability to detect duckduckgo rate limits. The tool now automatically retries searches when these limits are reached.
- Better read_file - Building on the expansion of the read_file command in version 0.4.0, further improvements have been made to Auto-GPT's reading and writing of files.
- More reliable Python code execution - Similarly, Auto-GPT should choke less when creating or executing Python code, and now has the ability to do so within a Docker install
- To round up the highlights, the configuration of allowed/denied shell commands has been simplified and made less confusing, and batch summarization of LLM message history should address some identified crashes caused by the summarization process.
New Contributors & Notable Catalysts
- @DrMurx made their first contribution in #2821
- @BorntraegerMarc made their first contribution in #1569
- @javableu made their first contribution in #4167
- @scenaristeur made their first contribution in #4561
- @ShrekTwo (Discord) - Release testing
- @Boostrix - PR Triaging, code contributions, release testing
- @Wladastic - PR Triaging, code contributions, release testing
Changelog
- Cache Python Packages in the CI pipeline by @merwanehamadi in #4488
- Skip flaky challenges by @merwanehamadi in #4573
- Add
replace_in_file
command to change occurrences of text in a file by @bfalans in #4565 - Sync release v0.4.0 back into
master
by @Pwuts in #4585 - Fix "update cassettes" step by @merwanehamadi in #4591
- Rearrange tests & fix CI by @Pwuts in #4596
- Fix inverted logic for deny_command by @erik-megarad in #4563
- Update cassette submodule by @merwanehamadi in #4601
- Fix duckduckgo rate limiting by @merwanehamadi in #4592
- Increase thresholds for PR autolabeler by @Pwuts in #4602
- Fix issues with file reading and writing with Python code by @erik-megarad in #4567
- Dockerfile: reduce layer bloat by @DrMurx in #2821
- Update .gitignore by @Androbin in #882
- feat: log new-line so user can differentiate sections better in console by @BorntraegerMarc in #1569
- Update .gitignore by @ntindle in #4610
- Feat set token limits based on model by @BaseInfinity in #4498
- Set proxy headers as secrets by @merwanehamadi in #4620
- Inform users that challenges can be flaky by @merwanehamadi in #4616
- Make challenge "write file" harder + add level 2 by @merwanehamadi in #4481
- Fix "debug code" challenge by @merwanehamadi in #4632
- Decrement information retrieval challenge a so that it doesn't break the CI by @merwanehamadi in #4637
- Add command for directly executing python code by @erik-megarad in #4581
- Fix issues with information retrieval challenge a by @erik-megarad in #4622
- Streamline / clarify shell command control configuration by @erik-megarad in #4628
- False believes challenge based on sally anne test. by @javableu in #4167
- Quicker logs in pytest by @merwanehamadi in #4486
- Clean up and fix issues with env configuration and .env.template by @erik-megarad in #4630
- Fix prompt issue causing 'No Command' issues and challenge b to fail by @erik-megarad in #4623
- Decrement memory challenge c by @merwanehamadi in #4639
- Add settings for custom base url by @DGdev91 in #2594
- Implement directory-based plugin system by @erik-megarad in #4548
- Add config as attribute to Agent, rename old config to ai_config by @erik-megarad in #4638
- Upload logs as artifact by @merwanehamadi in #4640
- Create benchmarks that will run Regression Tests and unbeaten challenges by @merwanehamadi in #4647
- Pass agent to commands instead of config by @erik-megarad in #4645
- Retry regression tests by @merwanehamadi in #4648
- Fix benchmark logs by @merwanehamadi in #4653
- Implement Batch Summarization in MessageHistory Class to manage context length under model's token limit by @kinance in #4652
- Use prompt_toolkit to enable keyboard navigation in CLI by @erik-megarad in #4649
- Change memory challenge c expectations by @merwanehamadi in #4657
- Update setup.md fix typo by @digger-yu in #4613
- make run.sh more compatible by @scenaristeur in #4561
- Add basic Netlify config by @Pwuts in #4662
- Remove extra spaces in summarization prompt by @kinance in #4660
- Remove unused function
split_file
from file_operations.py by @Pwuts in #4658 - Add challenge identifiers to pytest by @merwanehamadi in #4661
- Strip spaces from the end of truncated ai_name in log_cycle.py by @Pwuts in #4672
- Incorporating current summary length in token count calculation for the update_running_summary function by @kinance in #4670
- Correct and clean up JSON handling by @erik-megarad in #4655
- Make Benchmarks write cassettes without using them by @merwanehamadi in #4664
- Fix autogpt docker image not working because missing prompt_settings by @merwanehamadi in #4680
- Rework plugin config to be file-based by @erik-megarad in #4673
- Extract openai API calls and retry at lowest level by @collijk in #3696
Full Changelog: v0.4.0...v0.4.1