8 Commits

Author SHA1 Message Date
Reinier van der Leer
39c46ef6be feat(agent/core): Add Anthropic Claude 3 support (#7085)
- 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`
2024-05-04 20:33:25 +02:00
Krzysztof Czerwinski
d38e8b8f6c clean(autogpt): Remove old plugin system (#7097)
### 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)
2024-04-28 21:10:53 +02:00
Nicholas Tindle
5e89b8c6d1 Add all the new component docs to the site and do a tidy up of docs (#7098)
* 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
2024-04-23 08:49:07 -05:00
Krzysztof Czerwinski
a74548d3cd feat(agent): Component-based Agents (#7054)
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.
2024-04-22 19:20:01 +02:00
Reinier van der Leer
1d653973e9 feat(agent/llm): Use new OpenAI models as default SMART_LLM, FAST_LLM, and EMBEDDING_MODEL
- 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
2024-02-12 13:19:37 +01:00
Reinier van der Leer
809173c3f5 docs: Update AutoGPT workspace location and other minor fixes
- 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
2023-11-25 16:21:27 +01:00
Reinier van der Leer
8d12f3fe6b chore(docs): Delete deprecated memory configuration guide 2023-11-25 16:10:29 +01:00
Bently
bcdc8d46f5 Restructuring The Docs (#5441)
* 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>
2023-11-15 18:54:29 +01:00