- feat(agent/core): Add `AnthropicProvider`
- Add `ANTHROPIC_API_KEY` to .env.template and docs
Notable differences in logic compared to `OpenAIProvider`:
- Merges subsequent user messages in `AnthropicProvider._get_chat_completion_args`
- Merges and extracts all system messages into `system` parameter in `AnthropicProvider._get_chat_completion_args`
- Supports prefill; merges prefill content (if any) into generated response
- Prompt changes to improve compatibility with `AnthropicProvider`
Anthropic has a slightly different API compared to OpenAI, and has much stricter input validation. E.g. Anthropic only supports a single `system` prompt, where OpenAI allows multiple `system` messages. Anthropic also forbids sequences of multiple `user` or `assistant` messages and requires that messages alternate between roles.
- Move response format instruction from separate message into main system prompt
- Fix clock message format
- Add pre-fill to `OneShot` generated prompt
- refactor(agent/core): Tweak `model_providers.schema`
- Simplify `ModelProviderUsage`
- Remove attribute `total_tokens` as it is always equal to `prompt_tokens + completion_tokens`
- Modify signature of `update_usage(..)`; no longer requires a full `ModelResponse` object as input
- Improve `ModelProviderBudget`
- Change type of attribute `usage` to `defaultdict[str, ModelProviderUsage]` -> allow per-model usage tracking
- Modify signature of `update_usage_and_cost(..)`; no longer requires a full `ModelResponse` object as input
- Allow `ModelProviderBudget` zero-argument instantiation
- Fix type of `AssistantChatMessage.role` to match `ChatMessage.role` (str -> `ChatMessage.Role`)
- Add shared attributes and constructor to `ModelProvider` base class
- Add `max_output_tokens` parameter to `create_chat_completion` interface
- Add pre-filling as a global feature
- Add `prefill_response` field to `ChatPrompt` model
- Add `prefill_response` parameter to `create_chat_completion` interface
- Add `ChatModelProvider.get_available_models()` and remove `ApiManager`
- Remove unused `OpenAIChatParser` typedef in openai.py
- Remove redundant `budget` attribute definition on `OpenAISettings`
- Remove unnecessary `usage` in `OpenAIProvider` > `default_settings` > `budget`
- feat(agent): Allow use of any available LLM provider through `MultiProvider`
- Add `MultiProvider` (`model_providers.multi`)
- Replace all references to / uses of `OpenAIProvider` with `MultiProvider`
- Change type of `Config.smart_llm` and `Config.fast_llm` from `str` to `ModelName`
- feat(agent/core): Validate function call arguments in `create_chat_completion`
- Add `validate_call` method to `CompletionModelFunction` in `model_providers.schema`
- Add `validate_tool_calls` utility function in `model_providers.utils`
- Add tool call validation step to `create_chat_completion` in `OpenAIProvider` and `AnthropicProvider`
- Remove (now redundant) command argument validation logic in agent.py and models/command.py
- refactor(agent): Rename `get_openai_command_specs` to `function_specs_from_commands`
### Background
Follow up after merging https://github.com/Significant-Gravitas/AutoGPT/pull/7054, old plugins will no longer be used.
### Changes 🏗️
- Removed all dead code needed to load and use plugins.
- Removed `auto-gpt-plugin-template` dependency
- Removed `rev=` from `autogpt-forge` dependency (the set `rev` had incompatible `duckduckgo-search` versions)
- Kept `--install-plugin-deps` CLI option and dead code associated (may be needed for new plugins)
* feat: add all the new component docs to the site
* fix(docs): relative links and markdown warnings
* feat(docs): How to contribute to the docs as a docs section
* fix(docs): missed docs page for developer setup
* fix(docs): re-add configurations options
* fix(docs): bad link to components fixed
* fix(docs): bad link to components fixed
* ref(docs): reorder some items to make more sense
* fix(docs): bad indentation and duplicate block
* fix(docs): warning about out of date markdown extension
* fix(docs): broken links fixed
* fix(docs): markdown formatter complaints
This incremental re-architecture unifies Agent code and plugins, so everything is component-based.
## Breaking changes
- Removed command categories and `DISABLED_COMMAND_CATEGORIES` environment variable. Use `DISABLED_COMMANDS` environment variable to disable individual commands.
- Changed `command` decorator; old-style commands are no longer supported. Implement `CommandProvider` on components instead.
- Removed `CommandRegistry`, now all commands are provided by components implementing `CommandProvider`.
- Removed `prompt_config` from `AgentSettings`.
- Removed plugin support: old plugins will no longer be loaded and executed.
- Removed `PromptScratchpad`, it was used by plugins and is no longer needed.
- Changed `ThoughtProcessOutput` from tuple to pydantic `BaseModel`.
## Other changes
- Created `AgentComponent`, protocols and logic to execute them.
- `BaseAgent` and `Agent` is now composed of components.
- Moved some logic from `BaseAgent` to `Agent`.
- Moved agent features and commands to components.
- Removed check if the same operation is about to be executed twice in a row.
- Removed file logging from `FileManagerComponent` (formerly `AgentFileManagerMixin`)
- Updated tests
- Added docs
See [Introduction](https://github.com/kcze/AutoGPT/blob/kpczerwinski/open-440-modular-agents/docs/content/AutoGPT/component%20agent/introduction.md) for more information.
- Change default `SMART_LLM` from `gpt-4` to `gpt-4-turbo-preview`
- Change default `FAST_LLM` from `gpt-3.5-turbo-16k` to `gpt-3.5-turbo-0125`
- Change default `EMBEDDING_MODEL` from `text-embedding-ada-002` to `text-embedding-3-small`
- Update .env.template, azure.yaml.template, and documentation accordingly
- Update the `RESTRICT_TO_WORKSPACE` variable in `.env.template` to use the new workspace location
- Update the `.gitignore` files to remove the old workspace directory
- Update the `voice.md` file in the documentation to reflect the new command for speech mode
* Adding More Info To The Docs
* Start of main page rebuild and adding new folders
* Starting to move the AutoGPT(agent) Docs to a subfolder and start setup forge's subfolder
* small fixes in links
* fix file name
* added the benchmakrs page
* added front-end page
* re-aranging the layout
* moved the config section to be under the AutoGPT folder
* fix image link
* moved "Share Logs" and "Testing" to be under the AutoGPT folder
* index.md: fix broken links on home page
* Index.md: Testing Something with the links
* index.md: Added the Benchmarks section
* small fix for Frontend
* Added a chat ai to the docs for testing as part of #5694
* index.md: sepetating the sections and making it easier to read
* index.md: Added discord Link
* index.md: Added better info to each section from @Yash-Ambekar
* index.md: trying to fix the layout
* Index.md: updating layout
* Move Docker Setup To Its Own File
* small fix
* seperating the installation setups to there own page for making things clear
* small fix in links
* fix links again
* change nav titles color to help make things clear
* fix css
* mv custom.css
* fix for css not working
* rm custom css as it didnt work
* fix img
* update image url
* update nav
* index.md: improving layout and wordings
* index.md: testing line breaks
* index.md: Fixed the line breaks
* setup/docker-setp.md: small fix
* Docker-setup.md update link to correct memory page
* docker-setup.md: added note about docker install being broken
* Docker-Setup.md: Updating the warning
* Docker-Setup.md : Test
* docker-setup.md: fix
* docker-setup.md: fix
* docker-setup.md final update to the warning
* Docker-Setup.md
* Updates to mkdocs.yml and docker-setup based on the feedback
* fix to docker-setup.md
* docker-setup.md fix
* introduction.md: fix
* Update docs/content/AutoGPT/Setups/Docker-setup.md
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
* docker-setup.md update link
* Update docs/content/AutoGPT/Setups/Git-setup.md
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
* Update docs/content/AutoGPT/Setups/Git-setup.md
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
* nogit-setup.md: updated links
* Update docs/content/AutoGPT/Setups/Git-setup.md
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
* Update docs/content/index.md
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
* Update docs/content/index.md
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
* Update docs/content/index.md
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
* Update docs/content/index.md
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
* setup.md: added extra info about the docker insall
* setup.md small changs to clean things up
* removed emojis from forge get-started.md
* get-started.md - small changes
* Update AutoGPT intro in index.md
---------
Co-authored-by: sohamtembhurne <sohamatembhurne@outlook.com>
Co-authored-by: Yash-Ambekar <yashambekar03@gmail.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>