autogpt-v0.5.0
Significant-Gravitas/AutoGPTautogpt-v0.5.0Dec 14, 2023by Pwuts
AI Summary
A major architectural overhaul introducing the Agent Protocol, a new UI, and a monorepo structure.
Key Highlights
- Integration of the Agent Protocol REST API
- New open-source Agent UI and CLI
- Monorepo restructuring (Forge, Benchmark, Frontend)
- Per-task workspace management instead of a single workspace
Breaking Changes
- Renamed run.sh to autogpt.sh
- Project structure restructured to monorepo
- Single workspace replaced by per-task workspaces
- Adoption of PromptStrategy class
New Features
- Agent Protocol
- New UI
- Resuming agents in TTY mode
- GCS and S3 workspace backends
- Documentation rewrite
- Docker dev build
Full Release Notes
First some important notes w.r.t. using the application: * `run.sh` has been renamed to `autogpt.sh` * The project has been restructured. The AutoGPT Agent is now located in `autogpts/autogpt`. * The application no longer uses a single workspace for all tasks. Instead, every task that you run the agent on creates a new workspace folder. See the [usage guide](https://docs.agpt.co/autogpt/usage/#workspace) for more information. ## New features ✨ * **Agent Protocol 🔌** Our agent now works with the [Agent Protocol](/#-agent-protocol), a REST API that allows creating tasks and executing the agent's step-by-step process. This allows integration with other applications, and we also use it to connect to the agent through the UI. * **UI 💻** With the aforementioned Agent Protocol integration comes the benefit of using our own open-source Agent UI. Easily create, use, and chat with multiple agents from one interface. When starting the application through the project's new [CLI](/#-cli), it runs with the new frontend by default, with benchmarking capabilities. Running `autogpt.sh serve` in the subproject folder (`autogpts/autogpt`) will also serve the new frontend, but without benchmarking functionality. Running the application the "old-fashioned" way, with the terminal interface (let's call it TTY mode), is still possible with `autogpt.sh run`. * **Resuming agents 🔄️** In TTY mode, the application will now save the agent's state when quitting, and allows resuming where you left off at a later time! * **GCS and S3 workspace backends 📦** To further support running the application as part of a larger system, Google Cloud Storage and S3 workspace backends were added. Configuration options for this can be found in [`.env.template`](/autogpts/autogpt/.env.template). * **Documentation Rewrite 📖** The [documentation](https://docs.agpt.co) has been restructured and mostly rewritten to clarify and simplify the instructions, and also to accommodate the other subprojects that are now in the repo. * **New Project CLI 🔧** The project has a new CLI to provide easier usage of all of the components that are now in the repo: different agents, frontend and benchmark. More info can be found [here](/#-cli). * **Docker dev build 🐳** In addition to the regular Docker release [images](https://hub.docker.com/r/significantgravitas/auto-gpt/tags) (`latest`, `v0.5.0` in this case), we now also publish a `latest-dev` image that always contains the latest working build from `master`. This allows you to try out the latest bleeding edge version, but be aware that these builds may contain bugs! ## Architecture changes & improvements 👷🏼 * **PromptStrategy** To make it easier to harness the power of LLMs and use them to fulfil tasks within the application, we adopted the `PromptStrategy` class from `autogpt.core` (AKA re-arch) to encapsulate prompt generation and response parsing throughout the application. * **Config modularization** To reduce the complexity of the application's config structure, parts of the monolithic `Config` have been moved into smaller, tightly scoped config objects. Also, the logic for building the configuration from environment variables was decentralized to make it all a lot more maintainable. This is mostly made possible by the `autogpt.core.configuration` module, which was also expanded with a few new features for it. Most notably, the new `from_env` attribute on the `UserConfigurable` field decorator and corresponding logic in `SystemConfiguration.from_env()` and related functions. * **Monorepo** As mentioned, the repo has been restructured to accommodate the AutoGPT Agent, Forge, AGBenchmark and the new Frontend. * AutoGPT Agent has been moved to `autogpts/autogpt` * Forge now lives in `autogpts/forge`, and the project's new CLI makes it easy to create new Forge-based agents. * AGBenchmark -> `benchmark` * Frontend -> `frontend` See also the [README](/#readme). ## Pull Requests **Note:** most of the changes mentioned above were made through direct commits. See also the [full changelog](https://github.com/Significant-Gravitas/AutoGPT/commits/autogpt-v0.5.0/autogpts/autogpt). * Sync release into master by @lc0rp in https://github.com/Significant-Gravitas/AutoGPT/pull/5118 * Add files via upload by @ntindle in https://github.com/Significant-Gravitas/AutoGPT/pull/5130 * Fix speak mode with elevenlabs falling into error by @dannaward in https://github.com/Significant-Gravitas/AutoGPT/pull/5127 * Agent loop v2: Planning & Task Management (part 2) by @Pwuts in https://github.com/Significant-Gravitas/AutoGPT/pull/5077 * fix(docker): add gcc installation in order to build psutil by @alexsoyes in https://github.com/Significant-Gravitas/AutoGPT/pull/5059 * Fix elevenLabs config error by @dannaward in https://github.com/Significant-Gravitas/AutoGPT/pull/5131 * Update __init__.py to support image_gen commands by @dmoham1476 in https://github.com/Significant-Gravitas/AutoGPT/pull/5137 * Fixed stream elements speech function by @NeonN3mesis in https://github.com/Significant-Gravitas/AutoGPT/pull/5146 * Restructure Repo by @merwanehamadi in https://github.com/Significant-Gravitas/AutoGPT/pull/5160 * Refactor/remove abstract singleton as voice base parent by @collijk in https://github.com/Significant-Gravitas/AutoGPT/pull/4931 * Add support for args to `execute_python_file` by @MauroDruwel in https://github.com/Significant-Gravitas/AutoGPT/pull/3972 * read me update for monorepo by @SilenNaihin in https://github.com/Significant-Gravitas/AutoGPT/pull/5199 * Change agbenchmark folder by @merwanehamadi in https://github.com/Significant-Gravitas/AutoGPT/pull/5203 * Integrate benchmark and autogpt by @merwanehamadi in https://github.com/Significant-Gravitas/AutoGPT/pull/5208 * Migrate AutoGPT agent to poetry by @Pwuts in https://github.com/Significant-Gravitas/AutoGPT/pull/5219 * Adding Space After Colon in Console Input Prompt by @WilliamEspegren in https://github.com/Significant-Gravitas/AutoGPT/pull/5211 * AutoGPT: use config and LLM provider from `core` by @Pwuts in https://github.com/Significant-Gravitas/AutoGPT/pull/5286 * Rename Auto-GPT to AutoGPT by @merwanehamadi in https://github.com/Significant-Gravitas/AutoGPT/pull/5301 * AutoGPT: Move all the Agent's prompt generation code into a PromptStrategy by @Pwuts in https://github.com/Significant-Gravitas/AutoGPT/pull/5363 * Fixed stacking prompt instructions by @NeonN3mesis in https://github.com/Significant-Gravitas/AutoGPT/pull/5520 * AutoGPT: Implement Agent Protocol by @Pwuts in https://github.com/Significant-Gravitas/AutoGPT/pull/5612 * Fix typo in exceptions.py by @eltociear in https://github.com/Significant-Gravitas/AutoGPT/pull/5813 * docs: fix typos in markdown files by @shresthasurav in https://github.com/Significant-Gravitas/AutoGPT/pull/5871 * feat: Add support for new models and features from OpenAI's November 6 update by @Pwuts in https://github.com/Significant-Gravitas/AutoGPT/pull/6147 * Improve the accuracy of the extract_dict_from_response method's JSON extraction. by @HawkClaws in https://github.com/Significant-Gravitas/AutoGPT/pull/5458 * Allow port numbers to be used in local host names. e.g. localhost:8888. by @aaron13100 in https://github.com/Significant-Gravitas/AutoGPT/pull/5318 * Streamline documentation for getting started by @Pwuts in https://github.com/Significant-Gravitas/AutoGPT/pull/6335 * Fix docker build. Changing agbenchmark dependency as git reference instead of folder reference. by @warnyul in https://github.com/Significant-Gravitas/AutoGPT/pull/6274 * refactor(agent/config): Modularize `Config` and revive Azure support by @Pwuts in https://github.com/Significant-Gravitas/AutoGPT/pull/6497 * feat(agent/workspace): Add GCS and S3 FileWorkspace providers by @Pwuts in https://github.com/Significant-Gravitas/AutoGPT/pull/6485 * Add dependencies required to use PostgreSQL by @ntindle in https://github.com/Significant-Gravitas/AutoGPT/pull/6558 * Updating `duckduckgo-search` version to v4.0.0 to unbreak `web_search` command by @zedatrix in ~~https://github.com/Significant-Gravitas/AutoGPT/pull/6557~~ https://github.com/Significant-Gravitas/AutoGPT/commit/d820239a7c93c711ec01ece9e721ffdc7f530df2 ## New Contributors 🧙🏼 * @dannaward made their first contribution in https://github.com/Significant-Gravitas/AutoGPT/pull/5127 * @alexsoyes made their first contribution in https://github.com/Significant-Gravitas/AutoGPT/pull/5059 * @dmoham1476 made their first contribution in https://github.com/Significant-Gravitas/AutoGPT/pull/5137 * @MauroDruwel made their first contribution in https://github.com/Significant-Gravitas/AutoGPT/pull/3972 * @WilliamEspegren made their first contribution in https://github.com/Significant-Gravitas/AutoGPT/pull/5211 * @shresthasurav made their first contribution in https://github.com/Significant-Gravitas/AutoGPT/pull/5871 * @HawkClaws made their first contribution in https://github.com/Significant-Gravitas/AutoGPT/pull/5458 * @aaron13100 made their first contribution in https://github.com/Significant-Gravitas/AutoGPT/pull/5318 * @warnyul made their first contribution in https://github.com/Significant-Gravitas/AutoGPT/pull/6274 * @zedatrix made their first contribution in ~~https://github.com/Significant-Gravitas/AutoGPT/pull/6557~~ https://github.com/Significant-Gravitas/AutoGPT/commit/d820239a7c93c711ec01ece9e721ffdc7f530df2