New Features ✨
-
New OpenAI Models 🤖
gpt-4-turbo
is now supported and set as the defaultSMART_LLM
model.- Default
FAST_LLM
changed fromgpt-3.5-turbo-16k
togpt-3.5-turbo
. - Default
EMBEDDING_MODEL
changed fromtext-embedding-ada-002
totext-embedding-3-small
. - Added support for
gpt-4-0125-preview
andgpt-4-turbo
models.
-
Agent Protocol Server Enhancements 🌐
- Made API server port configurable via
AP_SERVER_PORT
environment variable. - Added documentation for configuring the API port.
- Implemented task cost tracking and logging in the
AgentProtocolServer
.
- Made API server port configurable via
-
CLI Usability Improvements 💻
- Added a check to ensure the specified API server port is available before running.
- Improved handling of invalid or empty tasks provided by the user.
- Display information on whether code execution is enabled or not on CLI startup.
-
Web Browsing Enhancements 🌐
- Added browser extensions to handle cookie walls and ads when using Selenium.
- Added
extract_information
function to extract pieces of information from webpage content based on a list of topics of interest. Theread_webpage
command now supportstopics_of_interest
andget_raw_content
parameters to leverage this capability.
-
Telemetry & Error Tracking 📊
- Integrated Sentry for telemetry and error tracking.
- Added configuration flow and opt-in prompt for enabling telemetry.
- Distinguish between
production
anddev
environments based on VCS state. - Capture exceptions for LLM parsing errors and command failures.
-
File Storage Abstraction 📂
- Fully abstracted file storage access with the
FileStorage
class. - Renamed
FileWorkspace
toFileStorage
and updated associated classes and methods. - Updated
AgentManager
andAgentProtocolServer
to use the newFileStorage
system.
- Fully abstracted file storage access with the
-
History Compression 📜
- Implemented history compression to reduce token usage and increase longevity when using models with limited context windows.
Fixes 🔧
-
JSON Parsing Robustness
- Implemented
json_loads
for more tolerant JSON parsing of llm responses. - Updated
extract_dict_from_response
to handle bothjson and
JSON blocks in responses. - Fixed boolean value decoding issues in
extract_dict_from_response
.
- Implemented
-
Error Handling
- Added error handling for loading non-existing agents.
- Fixed handling of
action_history
related exceptions in CLI and Server modes. - Implemented self-correction mechanism for invalid LLM responses by appending error messages to the prompt.
-
Artifact & File Handling
- Fixed handling of artifact modifications by setting
agent_created
attribute instead of registering a new Artifact. - Fixed
read_file
command in GCS and S3 workspaces.
- Fixed handling of artifact modifications by setting
-
Dependency Updates & Security Fixes
- Updated
aiohttp
andfastapi
dependencies to mitigate vulnerabilities. - Fixed Content-Type Header ReDoS vulnerabilities in
python-multipart
.
- Updated
-
TTY Mode Enhancements
- Fixed
finish
command behavior in TTY mode. - Agent now properly raises
AgentTerminated
exception to exit the loop.
- Fixed
-
Miscellaneous Fixes
- Fixed
summarize_text
andQueryLanguageModel
abilities to handle OpenAI API changes. - Improved representation of optional command parameters in prompts.
- Fixed GCS workspace binary file upload.
- Moved
auto-gpt-plugin-template
to regular dependencies to fix missing module error.
- Fixed
Chores & Refactoring 🧹
- Updated
agbenchmark
andautogpt-forge
dependencies across the project. - Upgraded OpenAI library to v1 and refactored code to accommodate API changes.
- Improved logging by capturing errors raised during action execution.
- Cleaned up unused imports and fixed linting issues across the codebase.
- Sped up
test_gcs_file_workspace
by changing the fixture scope.
Pull Requests
Note: most of the changes mentioned above were made through direct commits. See also the full changelog.
- [Documentation Update] Updating Using and Creating Abilities to use Action Annotations by @himsmittal in #6653
- AGBenchmark: Codebase clean-up by @Pwuts in #6650
- fix: cast port to int by @orarbel in #6643
- Add documentation on how to use Agent Protocol in .env.template by @ntindle in #6569
- feat(benchmark): JungleGym WebArena by @Pwuts in #6691
- fix No modules named 'forge.sdk.abilities' and 'forge.sdk' #6537 #5810 by @kfern in #6571
- feat(agent/web): Add browser extensions to deal with cookie walls and ads by @Pwuts in #6778
- fix(forge): no module named 'sdk' by @MKdir98 in #6822
- Adding support to allow for sending a message with the enter key by @zedatrix in #6378
- Fixed revising constraints and best practices by @ThunderDrag in #6777
- Set subprocess.PIPE on stdin and stderr and just let pytest run the currentt file when running main() by @aorwall in #5868
- Update execute_code.py by @ehtec in #6903
- fix(agent/execute_code): Disable code execution commands when Docker is unavailable by @kcze in #6888
- OPEN-133: Fix trying to load non-existing agent by @kcze in #6938
- Fixing support for AzureOpenAI by @edwardsp in #6927
- OPEN-165: Improvement - check for duplicate command by @kcze in #6937
- chore: Change
agbenchmark
to directory dependency inautogpt
andforge
by @Pwuts in #6946 - Create Security Policy by @joycebrum in #6900
- feat(agent): Abstract file storage access by @kcze in #6931
- fix(autogpt): Fix GCS and S3 root path issue by @kcze in #7010
- feat(autogpt/forge): Send exception details in agent protocol endpoints by @kcze in #7005
- fix(agent): Handle
action_history
-related exceptions gracefully by @kcze in #6990 - fix(autogpt/cli): Loop until non-empty task is provided by the user by @kcze in #6995
- docs: Redirect AutoGPT users from Forge tutorial with warning by @ntindle in #7014
- docs: replace
polyfill.io
by @SukkaW in #6952 - feat(autogpt/cli): Check if port is available before running server by @kcze in #6996
- feat(autogpt/cli): Display info if code execution is enabled by @kcze in #6997
- feat(agent): Implement more tolerant
json_loads
function by @kcze in #7016 - ci(agent): Matrix CI tests across Linux, macOS and Windows by @Pwuts in #7029
- feat(agent): Handle OpenAI API key exceptions gracefully by @kcze in #6992
- test(agent): Fix VCRpy request filter for cross-platform use by @Pwuts in #7040
- ci(agent): Add macOS ARM64 to AutoGPT Python CI matrix by @Pwuts in #7041
- security(agent): Replace unsafe
pyyaml
loader withSafeLoader
by @matheudev in #7035 - fix(agent): Fix check when loading an existing agent by @kcze in #7026
- fix(agent, forge): Conform
web_search.py
toduckduckgo_search
v5 by @kcze in #7045 - fix(agent, forge): Conform web_search.py to duckduckgo_search v5 by @kcze in #7046
- fix(agent): Make
save_state
behave like save as by @kcze in #7025 - refactor(agent): Refactor & improve
create_chat_completion
by @Pwuts in #7082
New Contributors
- @himsmittal made their first contribution in #6653
- @orarbel made their first contribution in #6643
- @kfern made their first contribution in #6571
- @MKdir98 made their first contribution in #6822
- @zedatrix made their first contribution in #6378
- @ThunderDrag made their first contribution in #6777
- @ehtec made their first contribution in #6903
- @edwardsp made their first contribution in #6927
- @joycebrum made their first contribution in #6900
- @SukkaW made their first contribution in #6952
- @matheudev made their first contribution in #7035
Full Changelog: autogpt-v0.5.0...autogpt-v0.5.1