Compare commits

...

3697 Commits

Author SHA1 Message Date
Reinier van der Leer
7e0b1156cc feat(agent): Improve history format for code flow execution results 2024-07-23 23:15:50 +02:00
Reinier van der Leer
da9360fdeb feat(agent/api): Pretty-print execute_code_flow proposal in Agent Protocol output 2024-07-23 22:55:16 +02:00
Reinier van der Leer
9dea6a273e Merge branch 'master' into zamilmajdy/code-validation 2024-07-23 22:42:32 +02:00
Reinier van der Leer
e7885f943b fix(agent): Unbreak LLM status check on start-up
Fixes #7508

- Amend `app/configurator.py:check_model(..)` to check multiple models at once and save duplicate API calls
- Amend `MultiProvider.get_available_providers()` to verify availability by fetching models and handle failure
2024-07-23 22:36:04 +02:00
Reinier van der Leer
e19636ac3e feat(agent/cli): Pretty-print code flow proposal
- Amend `main.py:update_user(..)` to improve displaying of existing + new prompt strategy output
- Replace `"execute_code_flow"` literals with references to the command definition
2024-07-23 22:18:54 +02:00
Reinier van der Leer
f03c6546b8 Merge branch 'master' into zamilmajdy/code-validation 2024-07-23 20:38:30 +02:00
Aarushi
aca7165694 feat(rnd) Fix linting and formatting (#7568)
fix linting and formatting
2024-07-23 18:25:04 +01:00
Toran Bruce Richards
22b223037e feat(Blocks): Add support for new Llama 3.1 models with Groq! (#7567)
feat: Add support for new Groq models

The commit adds support for new Groq models, including LLAMA3_1_405B, LLAMA3_1_70B, and LLAMA3_1_8B. These models are part of the preview release and offer enhanced reasoning and versatility capabilities.
2024-07-23 16:48:39 +01:00
Toran Bruce Richards
6747ae1559 feat(Blocks): Add Blocks Providing Basic Arithmetic Operations (#7529)
* feat(blocks): Add MathsBlock for performing mathematical operations

The commit adds a new block called MathsBlock to perform various mathematical operations such as addition, subtraction, multiplication, division, and exponentiation. The block takes input parameters for the operation type, two numbers, and an option to round the result. It returns the result of the calculation along with an explanation of the performed operation.

---------

Co-authored-by: Swifty <craigswift13@gmail.com>
2024-07-23 16:28:59 +02:00
Aarushi
39afba6da8 feat(ci) Fix migrations in CI (#7563)
* update CI

* add poetry run

* schema prisma
2024-07-23 14:01:45 +01:00
Toran Bruce Richards
a00df25092 feat(Blocks): Add RSS Reader Block for reading RSS feeds (#7533)
* feat: Add RSSReaderBlock for reading RSS feeds

The commit adds a new `RSSReaderBlock` class in the `rss-reader-block.py` file. This block allows users to read RSS feeds by providing the URL of the feed, start datetime, polling rate, and a flag to run the block continuously. The block fetches the feed using the `feedparser` library and returns the title, link, description, publication date, author, and categories of each RSS item.

This commit also includes the addition of the `feedparser` dependency in the `pyproject.toml` file.

* fix(server): update lock file

* updated poetry lock

* fixed rss reader testing

* Updated error message in test to include check info

* Set starttime as 1 day ago

* Changed start time to time period

---------

Co-authored-by: Swifty <craigswift13@gmail.com>
2024-07-23 13:15:14 +02:00
Toran Bruce Richards
ea698ab0fe feat(Blocks): Add For-Each Block for iterating over a List. (#7531)
* feat: Add ForEachBlock for iterating over a List.

---------

Co-authored-by: Swifty <craigswift13@gmail.com>
2024-07-23 11:40:41 +02:00
Krzysztof Czerwinski
902d2a8924 feat(builder): UX and style updates (#7550)
- Handles:
  - Add `NodeHandle` to draw input and output handles
  - Position handles relatively
  - Make entire handle label clickable/connectable
  - Add input/output types below labels
  - Change color on hover and when connected
  - "Connected" no longer shows up when connected
- Edges:
  - Draw edge above node when connecting to the same node
  - Add custom `ConnectionLine`; drawn when making a connection
  - Add `CustomEdge`; drawn for existing connections
  - Add arrow to the edge end
  - Colorize depending on type
- Input field modal:
  - Select all text when opened
  - Disable node dragging
- CSS:
  - Remove not needed styling
  - Use tailwind classes instead of css for some components
  - Minor style changes
- Add shadcn switch
- Change bottom node buttons (for properties and advanced) to switches
- Format code
2024-07-23 09:36:42 +01:00
Reinier van der Leer
ab0df04bfe fix(builder/monitor): Fix Graph export (#7556)
- fix(builder/monitor): Export `Graph` rather than `GraphMeta`
  - Fixes #7557

- refactor(builder): Split up `lib/autogpt_server_api` into multi-file module
  - Resolves #7555
  - Rename `lib/autogpt_server_api` to `lib/autogpt-server-api`
  - Split up `lib/autogpt-server-api` into `/client`, `/types`
  - Move `ObjectSchema` from `lib/types` to `lib/autogpt-server-api/types`
  - Make definition of `Node['metadata']['position']` independent of `reactflow.XYPosition`

- fix(builder/monitor): Strip secrets from graph on export
  - Resolves #7492
  - Add `safeCopyGraph` function in `lib/autogpt-server-api/utils`
  - Use `safeCopyGraph` to strip secrets from graph on export in `/monitor` > `FlowInfo`
2024-07-23 09:28:06 +02:00
Zamil Majdy
d407fd101e fix(rnd): Make Agent Server's pin connections become the mandatory source of input (#7539)
### Background

Input from the input pin is consumed only once, and the default input can always be used. So when you have an input pin overriding the default input, the value will be used only once and the following run will always fall back to the default input. This can mislead the user.

Expected behaviour: the node should NOT RUN, making connected pins only use their connection(s) for sources of data.

### Changes 🏗️

* Make pin connection the mandatory source of input and not falling back to default value.
* Fix the type flakiness on block input & output. Unify the typing for BlockInput & BlockOutput using the right alias to avoid wrong typing.
* Add comment on alias
* automated test on the new behaviour.
2024-07-23 09:06:26 +07:00
Aarushi
a911f9a5eb feat(rnd) Add Postgres support (#7513)
* replace SQLite with Postgres

* make sqlite default

* add migrations for sqlite and postgres

* update readme

* fix formatting
2024-07-22 23:43:49 +01:00
Reinier van der Leer
470c738732 fix(builder/monitor): Fix # of runs count on first load (#7558)
Return mutated copy rather than in-place mutated `flowRuns` in `refreshFlowRuns(..)`

Fixes #7507
2024-07-22 23:15:54 +01:00
Nicholas Tindle
7de49dfbe5 Update workflow-checker.yml (#7553) 2024-07-22 13:49:27 -05:00
Reinier van der Leer
a02b017cea feat(builder): Built-in templates (#7511)
- Add "Medium Blogger" template to `graph_templates` folder
- Add `import_packaged_templates()` function in `data.graph`
- Call `import_packaged_templates()` in `AgentServer` lifecycle setup
- Fix `util.json:loads` typing and parameter forwarding
2024-07-22 17:54:48 +02:00
Nicholas Tindle
56b82369b6 ci(all): verify the workflows as part of each run (#7500) 2024-07-22 07:23:48 -05:00
Tyrion Lannister
a7926584ca Fix(rnd): Add Prerequisites Documentation in README.md (Server) (#7546) 2024-07-22 07:19:20 -05:00
Nicholas Tindle
6ffa644fb6 fix(ops/issues): update template for bugs (#7211) 2024-07-22 07:16:51 -05:00
Bently
a82317e2ac feat(builder): fix sidebar scroll issue (#7548)
fix sidebar scroll issue
2024-07-22 13:05:50 +01:00
Bently
fd000a4173 feat(Builder): Fix sidebar covering navbar (#7544)
Fix sidebar covering flow
2024-07-22 10:11:46 +01:00
Nicholas Tindle
235715e054 feat(server): read_csv block (#7499) 2024-07-22 09:58:02 +02:00
Nicholas Tindle
d0ec31b698 docs: fix dead links (#7470) 2024-07-22 09:56:32 +02:00
Zamil Majdy
fa1b486c64 feat(rnd): Add Agent block UUID validation for Agent Server (#7501)
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-07-20 09:14:18 +07:00
Reinier van der Leer
21084c5817 feat(builder, server): Speed up fetching graphs (#7477)
- Let `GET /graphs` return `GraphMeta[]` instead of `string[]` (list of IDs)
- Rename `AutoGPTServerAPI` method `listGraphIDs` -> `listGraphs` and adjust return type
   - Replace all usages of `Graph` with `GraphMeta` in `/monitor`
- Delete `data.graph:get_graph_ids()`
2024-07-19 18:28:59 -05:00
Zamil Majdy
82fd3166ef feat(rnd): Add block description and categories (#7463)
### Background

Add block description and categories metadata.

### Changes 🏗️

* Add block description and categories metadata.
* Initialize description and categories on the existing blocks.
2024-07-19 11:10:16 -05:00
Toran Bruce Richards
f833fa3624 feat: Update CreateMediumPostBlock to use secret value for author_id
This commit updates the `CreateMediumPostBlock` class in `create_medium_post.py` to use the secret value for the `author_id` parameter. Previously, it was using the plain value, which caused the value to be sent incorrectly to the API.
2024-07-19 14:52:02 +01:00
Aarushi
e6f9870f2e feat(blocks) Add ollama integration (#7505)
* add ollama integration

* address review comments & formatting
2024-07-19 11:27:48 +01:00
Bently
6e319a6881 Feat(Builder): Decrease the delay before a tooltip opens (#7478)
Make tooltip show in 10 ms
2024-07-19 09:21:34 +01:00
Nicholas Tindle
64edf12c31 fix(server): code.py as a filename overshadows an internal python file (#7496) 2024-07-19 10:30:54 +07:00
Nicholas Tindle
e1795b8216 fix(server): add create medium post test missing params (#7497) 2024-07-19 10:28:43 +07:00
Nicholas Tindle
057d0848ef fix(server): various linting errors (#7498) 2024-07-19 10:28:21 +07:00
Bently
2dc673614f feat(doc): Update node creation docs (#7462)
* feat(doc): Update node creation docs

* small fixes

* fix formatting

* remove mention of registering a block

* Update docs/content/server/new_blocks.md

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-07-18 20:01:40 -05:00
Toran Bruce Richards
24e08d57ef Update README.md 2024-07-19 00:46:17 +01:00
Toran Bruce Richards
bd540b5cc4 tweak(builder): Replace erroneous mentions of "Properties" to "Output" (#7489) 2024-07-19 00:42:22 +01:00
Toran Bruce Richards
6d192429a6 feat(blocks): Add Medium Post block (#7494)
* feat: Add CreateMediumPostBlock to create Medium posts

* feat: Add medium_api_key to Secrets class in settings.py

* feat: Update medium post block to work with latest system.

* feat: Add medium_author_id field to Secrets class in settings.py

* run isort

* run black
2024-07-19 00:26:32 +01:00
Toran Bruce Richards
314a24ab8f fix(blocks): resolve duplicate ID in ObjectLookupBlock - basic.py 2024-07-18 23:58:19 +01:00
Toran Bruce Richards
ff962d8d88 Merge branch 'master' of https://github.com/Significant-Gravitas/AutoGPT 2024-07-18 23:56:09 +01:00
Toran Bruce Richards
5e5182e236 feat: Add CreateMediumPostBlock to create Medium posts 2024-07-18 22:54:13 +01:00
Nicholas Tindle
04dcd230cd feat(builder): allow deletion of nodes and edges via del key (#7483) 2024-07-18 22:45:28 +01:00
Nicholas Tindle
c8b46109fe feat(builder, server): hide secrets from the UI and mark them as secrets in the api (#7490)
* feat(server): add json_extra marking some fields as secret

* devx(builder): add a launch.json for debugging

* feat(builder): hide secret strings

---------

Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
2024-07-18 16:30:11 -05:00
Toran Bruce Richards
c00caa4bcf tweak(Builder): Remove unnecessary node output heading in CustomNode component (#7487)
feat: Remove unnecessary node output heading in CustomNode component
2024-07-18 21:43:47 +01:00
Bently
e382dcf823 feat(blocks): Adds node to get weather from openweathermap (#7382)
* Add node for openweathermap

* fix naming

* Rename GetOpenweatherMapWeather.py to getopenweathermapweather.py

* fix naming

* fix conflicts

* fix conflicts

* Updates to node + moved to search.py

* small cleanup
2024-07-18 21:36:09 +01:00
Toran Bruce Richards
27e6c3a95d feat(block): Add support for GPT-4O Mini model in LLM block (#7480)
feat: Add support for GPT-4O Mini model in LLM block
2024-07-18 19:02:36 +01:00
Bently
aaf650ee23 feat(builder): Fix message covering navbar on < lg screen size (#7474)
* Remove excess styling from message box
* Replace "node" with "block" in message (-> "Get started by adding a block")
2024-07-18 16:46:28 +02:00
Reinier van der Leer
4c003d6e20 fix(builder): Make detail view on /monitor obey grid
Unwrap the detail view element and style it directly instead
2024-07-18 04:12:51 +02:00
Reinier van der Leer
8264d7bf5a feat(builder): Importing/exporting Agents and Templates (#7466)
Builder:
* Add download button to agent info view
   - Add download button to `FlowInfo`
   - Add `exportAsJSONFile(..)` function to lib/utils.ts

* Add Create button + menu to /monitor page
   - Add "Create | v" split button to Agent list
   - Add list of templates to Create menu
   - Add "Import from file" option + dialog
      - Create `AgentImportForm` component
         - Install `Form`, `Label`, `Switch` components from shad/cn UI
      - Install `Dialog` component from shad/cn

* Support saving/editing Templates
   - Add `templateID` query parameter to `/build`
   - Use `templateID` query parameter in `AgentImportForm` redirect if imported as template
   - Make `FlowEditor` suitable for saving/editing templates
      - Add `template` (boolean) parameter to `FlowEditor` component
      - Add conditions to all `createGraph` or `updateGraph` calls, to use `createTemplate`/`updateTemplate` if applicable
      - Add "Save as Template" button, visible if the graph is new (unsaved)
      - Hide "Save & Run Agent" button when editing a template

* Add template endpoints to `AutoGPTServerAPI` client
   - Add `listTemplates()`
   - Add `getTemplate(id, version?)`
   - Add `getTemplateAllVersions(id)`
   - Add `createTemplate(templateCreateBody)`
   - Add `updateTemplate(id, template)`

* fix inner alignment of `<Input type="file">` elements

Server:
* fix(server): Fix return of `create_graph` for templates
2024-07-18 13:19:56 +01:00
Reinier van der Leer
37b7053e14 feat(server): Add API prefix /api to prevent route collisions with frontend (#7472)
- Add prefix `/api` to `APIRouter` in server.py
- Update API client in Builder
   - Update default `AGPT_SERVER_URL` in .env.template
   - Update default `baseUrl` in `AutoGPTServerAPI` constructor
2024-07-18 07:16:58 -05:00
Reinier van der Leer
354e626965 feat(dx): Add Builder and Server to auto-labeler 2024-07-18 00:19:38 +02:00
Reinier van der Leer
90371e1781 fix(builder): Remove legacy global styling from globals.css
This global styling was clashing with the theme of shad/cn and making text unreadable.
2024-07-18 00:06:52 +02:00
Reinier van der Leer
e128bfaf5f refactor(builder): Clean up AutoGPTServerAPI implementation (#7468)
- Abstract request implementation out of individual endpoints
- Rename Flow -> Graph (in type, method, and variable names)
2024-07-17 21:51:03 +02:00
Kate Silverstein
62c420e26f feat(forge/llm): Add LlamafileProvider (#7091)
* Add minimal implementation of `LlamafileProvider`, a new `ChatModelProvider` for llamafiles. It extends `BaseOpenAIProvider` and only overrides methods that are necessary to get the system to work at a basic level.

* Add support for `mistral-7b-instruct-v0.2`. This is the only model currently supported by `LlamafileProvider` because this is the only model I tested anything with.

* Add instructions to use AutoGPT with llamafile in the docs at `autogpt/setup/index.md`
* Add helper script to get it running quickly at `scripts/llamafile/serve.py`

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-07-17 15:56:55 +02:00
Krzysztof Czerwinski
97a5582c34 feat(agent_builder): Human-readable titles for blocks and fields (#7439)
Display human readable names for blocks and fields. `title` from schema is used if available, otherwise `beautifyString(name)`.
2024-07-17 14:44:41 +01:00
Zamil Majdy
78b84289cb feat(rnd): Add code-formatter & linting on AutoGPT server (#7458)
### Background

Add formatter & linter command.
Tools: ruff --> isort --> black --> pyright.

### Changes 🏗️

Introduced:
* `poetry run format`
* `poetry run lint`

`poetry run lint` will be executed on CI.
2024-07-17 11:54:29 +01:00
Krzysztof Czerwinski
9e22409d66 feat(agent_builder): Add block input fields description tooltip (#7437)
- Renamed `Schema` to `BlockSchema` and moved to `lib/types.ts`
- Add `SchemaTooltip` component that renders markdown tooltip for node fields
- Add `SecretField` function (which uses `BlockSecret` as value) that replaces `BlockFieldSecret` functionality for models
- Rename `get` to `get_secret_value` to make name clearer and inline with pydantic `Secret` types
- Add shadcn tooltip
- Add `react-markdown` dependency
2024-07-17 10:54:43 +01:00
Zamil Majdy
e7c075a521 feat(doc): Remove excessive docs for AutoGPT server (#7457) 2024-07-17 14:22:13 +07:00
Krzysztof Czerwinski
555e113706 feat(agent_builder, agent_server): Add customizable placeholders for input fields (#7451)
- Add `SchemaField` that works like Pydantic `Field` but allows to add extra json schema values. This PR adds `placeholder` entry but it could be extended with other data.
- Render `placeholder` inside input fields if available.
- Restyle placeholders so they are visually distinct from user-entered values
2024-07-16 20:08:43 +01:00
Bently
420e6cae2f feat(autogpt_builder): Fix Read API base URL from .env (#7455) 2024-07-16 16:28:24 +01:00
Toran Bruce Richards
920f931a21 feat(blocks): Add summariser block for recursive text summarization functionality (#7431)
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-07-16 17:51:37 +07:00
Toran Bruce Richards
e874318832 feat(blocks): Add WebSearch & WebScrapper block for searching the web with Jina Reader (#7445)
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-07-16 15:32:23 +07:00
Toran Bruce Richards
cb4b96a70c feat(server): Add DictionaryLookup block for looking up values in a dictionary (#7427)
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-07-16 15:23:12 +07:00
Toran Bruce Richards
03ea4c2690 fix(server): Fix bug in time comparison logic in RedditGetPostsBlock (#7426)
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-07-16 14:35:51 +07:00
Zamil Majdy
e70e613f73 feat(rnd): Refactor Block testing infra and Add Block auto-generation graph usecase (#7405)
### Background

The main scope of this change is enhancing the system capability (by fixing bug, correcting execution behaviour) to allow for creating a graph with a loop, to allow the use case of block auto-generation agent.

### Changes 🏗️

* Main changes: Add block_autogen.py (block auto-generation agent graph example).
* Refactor on test boilerplate: introduced `util/test` for initiating a server, and waiting graph execution.
* Removing unnecessary db lookup and duplicated codes used for sending execution updates on agent executor.
* Removed redundant code on test and cli code.
* Moved block test execution helper into the main code (so blockinstallerblock can use it).
* Eliminate the need of explicitly add a module into the `AVAILABLE_BLOCKS` list, any block class under the `block` folder will be auto-discovered.
* Few patches on the existing blocks.
2024-07-15 21:41:18 -05:00
Toran Bruce Richards
854f6dcaec Update README.md 2024-07-15 22:31:30 +01:00
Toran Bruce Richards
ea5ba9d193 Update README.md 2024-07-15 22:31:19 +01:00
Toran Bruce Richards
da14957fce Update README.md 2024-07-15 22:29:03 +01:00
Toran Bruce Richards
629f575dde Delete rnd/AutoGPT Server Setup Tutorial.mp4 (#7452) 2024-07-15 22:18:49 +01:00
Toran Bruce Richards
8883d7db53 Create README.md in rnd folder 2024-07-15 22:17:37 +01:00
Toran Bruce Richards
a6063e1550 Add files via upload 2024-07-15 22:06:57 +01:00
Toran Bruce Richards
e311847fa8 Update autogpt_server README.md 2024-07-15 20:26:44 +01:00
Bently
d673bf741a feat(autogpt_builder): Add websocket support to replace polling (#7449)
feat(autogpt_builder): Add websocket support
2024-07-15 20:18:23 +01:00
Swifty
110e093e7b feat(autogpt_server, autogpt_builder): Add Agent Versioning & Templates functionality (#7376)
1. Add graph versioning functionality:
   - Add `version`, `isActive` fields in the `AgentGraph` model
      - Add `agentGraphVersion` field in related models
   - Amend & add API endpoints for graph versioning (see below)
      - Amend & add data layer functions (`autogpt_server.data`) to support new operations & data schema

2. Add graph template functionality:
   - Add `isTemplate` fields in the `AgentGraph` model
   - Add `GraphMeta` model for template/graph metadata
   - Add API endpoints for template management (see below)
      - Amend & add data layer functions (`autogpt_server.data`) to support new operations & data schema

3. Enhance graph creation:
   - Amended `create_graph` route to handle template-based graph creation

4. Code refactoring:
   - Improved import statements
   - Enhanced error handling in graph creation

5. Minor improvements:
   - Add validator to auto-assign `Graph.id` if not set

## API Changes

New endpoints:
- `GET /templates`: Retrieve all templates (metadata only)
- `POST /templates`: Create a new template
- `PUT /graphs/{graph_id}`: Create a new version of a graph
- `GET /templates/{graph_id}`: Get a specific template
- `PUT /templates/{graph_id}`: Create a new version of a graph template
- `GET /graphs/{graph_id}/versions`: Get all versions of a graph
- `GET /templates/{graph_id}/versions`: Get all versions of a graph template
- `GET /graphs/{graph_id}/versions/{version}`: Get a specific graph version
- `PUT /graphs/{graph_id}/versions/active`: Set active graph version

Modified endpoints:
- `POST /graphs`: Now supports creating graphs directly from templates
- `GET /graphs/{graph_id}`: Add `version` query parameter
- `GET /graphs/{graph_id}/executions`: Add `graph_version` query parameters

## UI changes
- Improve `/build` / `FlowEditor` save mechanism
   - Implement updating current agent instead of creating a new agent on every save
   - Add check to only save a new version if local graph has been edited
      - Add `deepEquals` function to lib/utils.ts
- Add version indicators and selector on `/monitor`
  ![image](https://github.com/user-attachments/assets/742a66ee-4d12-4129-981d-fa6399e717fa)
   - Add shad/cn `DropdownMenu` component
- Update `AutoGPTServerAPI` client
   - Update input/output types with added attributes (see above)
   - Add parameter `version` to `getFlow`
   - Add parameter `flowVersion?` to `listFlowRunIDs`
   - Add endpoint `updateFlow(flowID, FlowUpdateable)`
   - Add endpoint `createFlow(fromTemplateID, templateVersion)` (overload)
   - Add endpoint `getFlowAllVersions(id)`
   - Add endpoint `setFlowActiveVersion(flowID, version)`
2024-07-15 20:26:00 +02:00
Toran Bruce Richards
93b6e0ee51 feat(blocks): Add support for additional LLM providers to LLM Block (#7434)
This commit adds support for the following models:

```python
# OpenAI Models
GPT4O = "gpt-4o"
GPT4_TURBO = "gpt-4-turbo"
GPT3_5_TURBO = "gpt-3.5-turbo"

# Anthropic models
CLAUDE_3_5_SONNET = "claude-3-5-sonnet-20240620"
CLAUDE_3_HAIKU = "claude-3-haiku-20240307"

# Groq models
LLAMA3_8B = "llama3-8b-8192"
LLAMA3_70B = "llama3-70b-8192"
MIXTRAL_8X7B = "mixtral-8x7b-32768"
GEMMA_7B = "gemma-7b-it"
GEMMA2_9B = "gemma2-9b-it"
```

Every model has been tested with a single LLM block and is confirmed to be working in that setup.
2024-07-15 20:30:56 +07:00
Bently
450f120510 feat(autogpt_builder): Fixes to wikipedia block (#7435) 2024-07-15 11:10:16 +07:00
Bently
2355d56801 feat(Builder): Updates to Nodes UI (#7414)
Updates to Nodes UI
2024-07-14 13:52:57 +01:00
Toran Bruce Richards
d3dae2264d tweak(docs): Replace all instances of "Node" with "Block". (#7416)
Replace all instances of "Node" with "Block" in the doccumentation.
2024-07-13 22:04:24 +01:00
Toran Bruce Richards
58313d9ae7 tweak(docs): Make link to The AutoGPT Server more prominant in docs navbar. (#7402) 2024-07-13 21:48:51 +01:00
Toran Bruce Richards
9e7dd4be74 tweak(rnd): Update AutoGPT logo file to be larger (#7408) 2024-07-13 21:08:09 +01:00
Krzysztof Czerwinski
6550bdc10c feat(rnd): AutoGPT Agent wrapper for Agent Server (#7365)
- Add `autogpt` and `forge` dependency to the `autogpt_server`
- Add `AutoGPTAgentBlock` that initializes and runs a single agent loop on execution
- Add `BlockAgent` that inherits from `autogpt` `Agent` and is a thin extension on the agent that allows to disable components
- Add `OutputComponent` that adds `output` command for the agent
2024-07-13 19:47:29 +01:00
Nicholas Tindle
0b9f3be6b8 feat(docs): add server new node docs (#7395)
Co-authored-by: Bently <27962737+Bentlybro@users.noreply.github.com>
2024-07-12 08:59:35 -05:00
Reinier van der Leer
a2d8d9bac9 feat(autogpt_builder/monitor): Monitor page v0.2 (#7385)
- Improve responsive grid layout
  - Remove `container` class from `<main>` to utilize full screen width

- Improve detail views & add view for run details
  - Make flow run list entries selectable
  - Create `FlowInfo` and `FlowRunInfo` components
  - Improve layout of `FlowRunsStats`

- Improve ScrollableLegend spacing & styling
  - Hide scroll bar of scrollable legend
  - Center legend items if there is space left
  - Round icons
  - Vertically align icons with labels
  - FIX: Add condition to not display legend items for series with `legendType="none"`

- Add periodic 5s refresh of non-terminal flow run statuses
  - Split off `refreshFlowRuns(flowID)` from `fetchFlowsAndRuns()`
  - Add effect to run `refreshFlowRuns` every 5 seconds

- Improve and expand FlowRun info
  - Add `FlowRun.totalRunTime`: sum of the individual execution durations of all nodes
  - Add `FlowRun.endTime`
  - Use `NodeExecutionResult.add_time` instead of `start_time` as `FlowRun.startTime`

- Sort Flows by last executed

- Add icons to navbar items & hide unused items Backtrack and Explore

- Change UI mentions of "(Agent) Flow" to "Agent"
2024-07-12 14:56:48 +02:00
Bently
b7096e01fb feat(Builder): Adds node to send messages to discord webhook (#7381)
* Adds core files for discord node

* fix naming

* Rename DiscordSendMessage.py to discordsendmessage.py

* update naming again

* fix conflicts

* fix imports
2024-07-12 11:58:11 +01:00
Krzysztof Czerwinski
bffb92bfbc fix(agent, forge): Fix Pydantic v2 protected namespace model_ warnings (#7340)
Rename `model_*` fields to `llm_*`
2024-07-12 12:05:03 +02:00
Bently
2ecce27653 feat(Builder): Adds node to get summary from wikipedia (#7384)
* adds node to get summary from wikipedia

* update name

* Fix naming again
2024-07-12 09:51:56 +01:00
Zamil Majdy
1089551869 feat(builder): Add service-level creds access for agent blocks (#7373)
### Background

Credentials for blocks could only be defined through the block input. The scope of this change is providing system-wide that becomes the default value for these input blocks.

### Changes 🏗️

* Add system-wide credential support for agent blocks `BlockFieldSecret`.
* Update llmcall & reddit block to adopt `BlockFieldSecret`.
2024-07-12 15:41:55 +07:00
Aarushi
58af7f9466 feat(autogpt_builder) Remove saving of execution data into sink node (#7383)
remove saving of execution data into sink node
2024-07-12 01:44:11 +02:00
Aarushi
b89609fd16 feat(autogpt_builder) Add logic for node disconnection (#7386)
add logic for node disconnection
2024-07-11 23:33:21 +01:00
Reinier van der Leer
dcfc3a4dad fix(autogpt_builder): Restore node input presets when loading a flow (#7379)
- Assign `node.input_default` to `hardcodedValues` in `FlowEditor:loadFlow(..)`
2024-07-11 18:37:04 +01:00
Nicholas Tindle
7cf6d3ff79 feat(dx): add a code-workspace for vscode (#7285)
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-07-11 19:24:35 +02:00
Toran Bruce Richards
f4f164ac15 chore(rnd): Update animation direction for customnode.css to "ping-pong" (#7377) 2024-07-11 16:09:02 +01:00
Bently
cd9d041fe5 feat(builder): add button for showing/hiding optional inputs (#7375)
add button for showing/hiding optional inputs in nodes
2024-07-11 15:14:07 +01:00
Bently
0fb8a84382 fix to make monitor use env (#7371)
fix to make it use env
2024-07-10 17:18:59 +01:00
Aarushi
a408da8317 aarushikansal/flow stats scroll legend (#7370)
* feat(agent_builder): Add shad/cn + Radix Icons + Tailwind

* move favicon.ico to static folder

* delete empty custominput.css

* feat(agent_builder): Add basic app layout with nav

* add timeline chart to Monitor page and improve overall mock-up functionality

* add some (mock) stats to the overview

* monitor/page.tsx: Switch from mock data to API & reorder file

* undo out-of-scope changes to Flow.tsx and .css files

* fix linting issue in `FlowRunsTimeline`

* wip scrollable

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
Co-authored-by: Swifty <craigswift13@gmail.com>
2024-07-10 18:07:07 +02:00
Reinier van der Leer
976ff04cce feat(autogpt_builder): Initial Monitor page implementation (#7335)
* feat(agent_builder): Add shad/cn + Radix Icons + Tailwind

* move favicon.ico to static folder

* delete empty custominput.css

* feat(agent_builder): Add basic app layout with nav

* add timeline chart to Monitor page and improve overall mock-up functionality

* add some (mock) stats to the overview

* monitor/page.tsx: Switch from mock data to API & reorder file

* undo out-of-scope changes to Flow.tsx and .css files

* fix linting issue in `FlowRunsTimeline`

---------

Co-authored-by: Aarushi <aarushik93@gmail.com>
Co-authored-by: Swifty <craigswift13@gmail.com>
2024-07-10 18:04:51 +02:00
Swifty
3c91038089 tweak(ui): Switch from modal.css to tailwindcss classes (#7369)
* reverts dark theme for now

* change "Show/Hide nodes" button to be "Icon"

* swap over to light mode + fix sizing

* fix color for agent name + description text

* Change navbar to white

* Added darkmode tag for the navbar

* Added dark mode text color

* Changed to tailwind classes

---------

Co-authored-by: Bentlybro <tomnoon9@gmail.com>
2024-07-10 18:04:02 +02:00
Swifty
d4b441932d tweak(ui): Tweaked light mode color (#7366)
* reverts dark theme for now

* change "Show/Hide nodes" button to be "Icon"

* swap over to light mode + fix sizing

* fix color for agent name + description text

* Change navbar to white

* Added darkmode tag for the navbar

* Added dark mode text color

---------

Co-authored-by: Bentlybro <tomnoon9@gmail.com>
2024-07-10 18:02:06 +02:00
Bently
14ddb915bf feat(autogpt_builder): swapping to white theme for the layout (#7358)
* reverts dark theme for now

* change "Show/Hide nodes" button to be "Icon"

* swap over to light mode + fix sizing

* fix color for agent name + description text

* update icon
2024-07-10 18:01:07 +02:00
Aarushi
d6cbb48609 feat(agpt_builder) Fix data persistance on agent execution (#7363)
* fixing issue with data vanishing when executing agent

* fix rebasing

* add unique key

* reset to neutral & failed colours
2024-07-10 12:47:55 +01:00
Swifty
3789b00479 feat(autogpt_server): Expose rest api via websocket (#7350)
* Add in websocket event types

* adding in api endpoints

* Updated ws messages
2024-07-10 10:54:18 +01:00
Swifty
f94e81f48b feat(builder) Add save Agent functionality (#7361)
Add save functionality
2024-07-10 10:01:12 +01:00
Zamil Majdy
e10c4ee4cd fix(doc): Fix Auto GPT server Running The Server doc (#7360) 2024-07-10 10:31:52 +02:00
Reinier van der Leer
81dee568cb feat(autogpt_builder): Add basic layout with nav (#7317)
* feat(agent_builder): Add shad/cn + Radix Icons + Tailwind

* move favicon.ico to static folder

* delete empty custominput.css

* feat(agent_builder): Add basic app layout with nav

* Revert unwanted changes

* Fix /build + Flow layout issues

- Add `className` passthrough to `Flow` component
- Fix /build page layout

* unfix build/page.tsx indentation for git tracking

---------

Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
2024-07-09 17:33:12 +01:00
Bently
7929f1a4ac Reads data from .env (#7357) 2024-07-09 17:20:31 +01:00
Bently
0a28c72bad Fix issue with node inputs (#7356) 2024-07-09 16:21:13 +01:00
Toran Bruce Richards
b9861a5308 fix(autogpt_builder): Update AutoGPT logo in page component (#7354)
feat(autogpt_builder): Update AutoGPT logo in page component
2024-07-09 16:10:13 +01:00
Zamil Majdy
af3a2bb5f5 fix(doc): Fix Auto GPT server Running The Server doc (#7355) 2024-07-09 16:09:43 +01:00
Bently
2f174837bd Add input for agent name & description (#7351) 2024-07-09 15:44:36 +01:00
Aarushi
b30eaf653a feat(autogpt_builder) Remove submit button (#7353)
remove submit button
2024-07-09 15:23:36 +01:00
Zamil Majdy
d9c9b22886 feat(rnd): Add Agent Block sample/test input output for auto-generated unit testing for block (#7310)
Sample test input and output on the block can serve as documentation and auto-generated unit-testing code for the agent block.

What's within the scope of this change:
Adding the fields for block test (input, output, mocks), and its execution.

What's still outside the scope:
Handling of mock and stub for a block using sensitive credentials or network calls or 3rd-party connections.
2024-07-09 13:08:42 +02:00
Zamil Majdy
ff71b0beb7 fix(rnd): Avoid expensive call of get_service_client on block execution (#7349) 2024-07-09 13:07:57 +02:00
Swifty
57cc8b69e9 fix(agent_server): Fix async issue with executor integration test (#7348)
Fix execution completed check
2024-07-09 17:09:44 +07:00
Aarushi
7ce0c655d0 feat(autogpt_builder) Hook up execution progress animation to live execution data (#7347)
* hooked up animation to actual execution data

* remove console log
2024-07-09 09:32:38 +01:00
Bently
1e755f9e8d feat(agent_builder): Updates to Builder GUI + Nodes (#7345)
* Updates to Builder GUI + Nodes

* fix apiUrl back to local host
2024-07-08 21:33:07 +01:00
Swifty
f9bedb0fd9 fix(autogpt_server): Changed inconstant timestamps to all use UTC (#7343)
* Changed timestamps to utc

* made other datetime.now timezone aware
2024-07-08 17:09:38 +02:00
Swifty
a32bc72314 feast(agent server) Add populate db command (#7342)
* Add populate db command

* Added in a reddit graph creation command
2024-07-08 17:09:20 +02:00
Reinier van der Leer
227092b669 feat(autogpt_builder): Enable loading an existing flow (#7338)
- Add `flowID` query parameter
- Add logic to load a flow from the server into the builder
2024-07-07 01:39:05 +02:00
Reinier van der Leer
39556a71cc feat(autogpt_builder): Improve server error handling in AutoGPTServerAPI 2024-07-06 01:03:23 -06:00
Reinier van der Leer
1fb8c1adac fix(autogpt_builder): Fix date conversion in AutoGPTServerAPI client
Explicitly parse dates in JSON response object in `getFlowExecutionInfo(..)`
2024-07-06 01:01:41 -06:00
Swifty
37e1780d76 feat(agent server): Added websocket communication (#7291)
* Refactor on the link structure and API

* Refactor on the link structure and API

* Cleanup IDS

* Remove run_id

* Update block interface

* Added websockets dependency

* Adding routes

* Adding in websocket code

* Added cli to test the websocket

* Added an outline of the message formats I plan on using

* Added webscoket message types

* Updated poetry lock

* Adding subscription logic

* Updating subscription mechanisms

* update cli

* Send updates to server

* Get single execution data

* Fix type hints and renamed function

* add callback function and type hints

* fix type hints

* Updated manager to use property

* Added in websocket updates

* Added connection manager tests

* Added tests for ws_api

* trying to work around process issues

* test formatting

* Added a create and execute command for the cli

* Updated send format

* websockets command working

* cli update

* Added model.py

* feat: Update server.py and manager.py

- Initialize blocks in AgentServer lifespan context
- Remove unnecessary await in AgentServer get_graph_blocks
- Fix type hinting in manager.py
- Validate input data in validate_exec function

* fix tests

* feat: Add autogpt_server.blocks.sample and autogpt_server.blocks.text modules

This commit adds the `autogpt_server.blocks.sample` and `autogpt_server.blocks.text` modules to the project. These modules contain blocks that are used in the execution of the Autogpt server. The `ParrotBlock` and `PrintingBlock` classes are imported from `autogpt_server.blocks.sample`, while the `TextFormatterBlock` class is imported from `autogpt_server.blocks.text`. This addition enhances the functionality of the server by providing additional blocks for text processing and sample operations.

* fixed circular import issue

* Update readme

---------

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-07-05 17:02:26 +02:00
Reinier van der Leer
0df2199c42 feat(autogpt_server): Add GET /graphs/{graph_id}/executions endpoint (#7330)
* feat(autogpt_builder): Add `AutoGPTServerAPI` client

* migrate API calls in Flow.tsx to new API client

* feat(autogpt_server): Add `/graphs/{graph_id}/executions` endpoint

In `data/execution.py`:
- Add `list_executions` function
- Rename `get_executions` to `get_execution_results`

In `server/server.py`:
- Add route
- Add `AgentServer.list_graph_runs`
- Rename `AgentServer.get_executions` to `get_run_execution_results`

* feat(autogpt_builder): Add `listFlowRunIDs` endpoint to `AutoGPTServerAPI` client

* Move `Schema` to `types.ts` and rename to `ObjectSchema`
2024-07-05 10:51:27 +01:00
Reinier van der Leer
200800312a feat(autogpt_builder): Add AutoGPTServerAPI client (#7328)
- Add fully typed `AutoGPTServerAPI` client in lib/autogpt_server_api.ts
- Migrate API calls in `Flow.tsx` to new API client
2024-07-05 11:03:59 +02:00
Reinier van der Leer
b7a90ce768 fix(autogpt_builder): Unignore lib/ and add lib/utils.ts 2024-07-04 17:40:59 -06:00
Reinier van der Leer
f359ed0983 feat(agent_builder): Add shad/cn UI library (#7316)
- Add shad/cn + Radix Icons + Tailwind
- move favicon.ico to static folder
- delete empty custominput.css

---------

Co-authored-by: Bentlybro <tomnoon9@gmail.com>
2024-07-05 08:14:45 +02:00
Aarushi
6456285753 feat(autogpt_builder) Update custom node to handle deeply nested structures (#7319)
* feat(rnd): Add type hint and strong pydantic type validation for block input/output + add reddit agent-blocks.

* feat(rnd): Add type hint and strong pydantic type validation for block input/output + add reddit agent-blocks.

* Fix reddit block

* Fix serialization

* Eliminate deprecated class property

* Remove RedditCredentialsBlock

* Cache jsonschema computation, add dictionary construction

* Add dict_split and list_split to output, add more blocks

* Add objc_split for completeness, int both input and output

* Update reddit block

* Add reddit test (untested)

* Resolved json issue on pydantic

* Add creds check on client

* Add dict <--> pydantic object flexibility

* Fix error retry

* Skip reddit test

* Code cleanup

* Chang prompt

* Make this work

* Fix linting

* Hide input_links and output_links from Node

* Add docs

* updating UI to handle deeply nested data structures for reddit usecase

* changing expected key in reddit post to comment

---------

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-07-04 17:54:41 +01:00
Zamil Majdy
833944e228 feat(rnd): Add strong pydantic type & composite data extraction for Block input/output schema + add reddit agent-blocks (#7288)
* feat(rnd): Add type hint and strong pydantic type validation for block input/output + add reddit agent-blocks.

* feat(rnd): Add type hint and strong pydantic type validation for block input/output + add reddit agent-blocks.

* Fix reddit block

* Fix serialization

* Eliminate deprecated class property

* Remove RedditCredentialsBlock

* Cache jsonschema computation, add dictionary construction

* Add dict_split and list_split to output, add more blocks

* Add objc_split for completeness, int both input and output

* Update reddit block

* Add reddit test (untested)

* Resolved json issue on pydantic

* Add creds check on client

* Add dict <--> pydantic object flexibility

* Fix error retry

* Skip reddit test

* Code cleanup

* Chang prompt

* Make this work

* Fix linting

* Hide input_links and output_links from Node

* Add docs

---------

Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
2024-07-04 11:37:28 +01:00
Reinier van der Leer
2c4afd4458 Migrate autogpt/agents/prompt_strategies/code_flow.py to Pydantic v2 2024-07-04 01:07:16 -06:00
Reinier van der Leer
8b1d416de3 Merge branch 'master' into zamilmajdy/code-validation 2024-07-04 01:05:40 -06:00
Reinier van der Leer
db0e726954 fix(agent, benchmark): Specify path_type=Path for CLI path options/arguments
Without `path_type=Path`, an option/argument with `type=click.Path()` will return a `str`.
2024-07-03 15:21:04 -06:00
Krzysztof Czerwinski
08612cc3bf refactor(agent, forge): Move tests from autogpt to forge (#7247)
- Move `autogpt/tests/vcr_cassettes` submodule to `forge/tests/vcr_cassettes`
- Remove not needed markers from `pyproject.toml`: `"requires_openai_api_key", "requires_huggingface_api_key"`
- Update relevant GitHub workflows

Moved relevant tests from `autogpt/tests` to appropiate directories:
- Component tests to their respective component dirs
- `autogpt/tests/unit/test_web_search.py` → `forge/components/web/test_search.py`
- `autogpt/tests/unit/test_git_commands.py` → `forge/components/git_operations/test_git_operations.py`
- `autogpt/tests/unit/test_file_operations.py` → `forge/components/file_manager/test_file_manager.py`
- `autogpt/tests/integration/test_image_gen.py` → `forge/components/image_gen/test_image_gen.py`
- `autogpt/tests/integration/test_web_selenium.py` → `forge/components/web/test_selenium.py`
- `autogpt/tests/integration/test_execute_code.py` → `forge/components/code_executor/test_code_executor.py`
- `autogpt/tests/unit/test_s3_file_storage.py` → `forge/file_storage/test_s3_file_storage.py`
- `autogpt/tests/unit/test_gcs_file_storage.py` → `forge/file_storage/test_gcs_file_storage.py`
- `autogpt/tests/unit/test_local_file_storage.py` → `forge/file_storage/test_local_file_storage.py`
- `autogpt/tests/unit/test_json.py` → `forge/json/test_parsing.py`
- `autogpt/tests/unit/test_logs.py` → `forge/logging/test_utils.py`
- `autogpt/tests/unit/test_url_validation.py` → `forge/utils/test_url_validator.py`
- `autogpt/tests/unit/test_text_file_parsers.py` → `forge/utils/test_file_operations.py`

- (Re)moved dependencies from `autogpt/pyproject.toml` that were only used in these test files.

Also:
- Added `load_env_vars` fixture to `forge/conftest.py`
- Fixed a type error in `forge/components/web/test_search.py`
- Merged `autogpt/.gitattributes` into root `.gitattributes`

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-07-04 02:09:01 +02:00
Reinier van der Leer
7415e24fc3 fix(forge): Add google-api-python-client-stubs and fix type error (#7303)
- Add `google-api-python-client-stubs` dev dependency
- Add version specification to `google-api-python-client` dependency
- Fix type error (by ignoring it) in forge/components/web/search.py
2024-07-03 23:26:37 +02:00
Dimitri Brooks
ecb054af56 feat: Add support for Claude 3.5 Sonnet (#7301)
add support for Claude 3.5 Sonnet
2024-07-03 16:02:14 +02:00
Krzysztof Czerwinski
39f70b0c83 docs(agent, forge): Update component configuration docs (#7232) 2024-07-03 09:50:38 +01:00
Reinier van der Leer
7f6b7d6d7e remove unused import in forge/llm/providers/openai.py 2024-07-02 13:05:53 -06:00
Reinier van der Leer
736ac778cc Merge branch 'master' into zamilmajdy/code-validation 2024-07-02 13:05:31 -06:00
Krzysztof Czerwinski
7cb4d4a903 feat(forge, agent, benchmark): Upgrade to Pydantic v2 (#7280)
Update Pydantic dependency of `autogpt`, `forge` and `benchmark` to `^2.7`
[Pydantic Migration Guide](https://docs.pydantic.dev/2.7/migration/)

- Migrate usages of now-deprecated functions to their replacements
- Update `Field` definitions
  - Ellipsis `...` for required fields is deprecated
  - `Field` no longer supports extra `kwargs`, replace use of this feature with field metadata
- Replace `Config` class for specifying model configuration with `model_config = ConfigDict(..)`
- Removed `ModelContainer` in `BaseAgent`, component configuration dict is now directly serialized using Pydantic v2 helper functions
- Forked `agent-protocol` and updated `packages/client/python` for Pydantic v2 support: https://github.com/Significant-Gravitas/agent-protocol

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-07-02 20:45:32 +02:00
Aarushi
8feaced92e (rnd) Add support for multiple, dynamic inputs (#7296)
multi dynamic inputs
2024-07-02 09:56:33 +01:00
Reinier van der Leer
38eafdbb66 Update CodeFlowPromptStrategy with upstream changes (#7223) 2024-07-02 04:29:55 +02:00
Reinier van der Leer
6d9f564dc5 Merge branch 'master' into zamilmajdy/code-validation 2024-07-01 20:16:31 -06:00
Reinier van der Leer
97e4cceb94 feat(agent, forge): Markdown-formatted history -> message history (#7228)
- Implement message based history in `ActionHistoryComponent`
- Make non-summarized message count configurable (`ActionHistoryComponent.full_message_count`)
- Run `ActionHistoryComponent` after `SystemComponent` so that history messages are last in the prompt
- Omit final instruction message if prompt already contains assistant messages
- Filter `raw_message` from `ActionProposal.schema()`

---------

Co-authored-by: Krzysztof Czerwinski <kpczerwinski@gmail.com>
2024-07-02 03:47:55 +02:00
Reinier van der Leer
2fa4fd23af fix(agent): Make build dependencies optional to unbreak install (#7298)
* Create optional `build` dependency group
* Move `cx-freeze` dependency to `build` dependency group

To include the `build` group when installing dependencies, run `poetry install --with=build`.

Fixes #7297 (`cx-freeze` dependency install fails after #7271)
2024-07-02 02:08:02 +02:00
angeousta
976ea7cd3c fix readme (broken link) (#7293)
Update README.md
2024-07-01 09:44:46 +02:00
Bently
d5ab83aa34 Updating api calls in AutoGPT builder (#7275)
* update api endpoints

* get multi-node working + fix node output

* updated multi-node running + re-add "wire" on rebuild

* Fix node data mapping

* removed getStatusValue
2024-06-28 10:39:26 +01:00
Reinier van der Leer
cbae8b5c14 chore(agent, forge, benchmark): Clean up dependencies (#7286)
* Remove unused dependencies
* Move dependencies for moved code from `autogpt` to `forge`
* Loosen dependency for `uvicorn` to improve compatibility
2024-06-28 02:21:36 +02:00
Aarushi
854080f7af ci(builder): Add CI for AutoGPT Builder (#7267)
Add a simple Node/NPM linting workflow for `rnd/autogpt_builder/`

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-06-28 01:30:34 +02:00
Reinier van der Leer
3e675123d7 Merge branch 'master' into zamilmajdy/code-validation 2024-06-27 14:12:19 -06:00
Reinier van der Leer
fbb3891e79 chore(forge, agent, benchmark): Update pytest-asyncio to v0.23.x
Resolves #7283
2024-06-27 14:09:36 -06:00
Reinier van der Leer
4d8ee65ca7 fix(pre-commit): Add benchmark/poetry.lock to "Typecheck - Benchmark" trigger file pattern 2024-06-27 14:05:12 -06:00
Aarushi
6093acc813 Add more functionality to Nodes (#7278)
updating node behaviour
2024-06-27 17:03:10 +01:00
Nicholas Tindle
785a40ff9d feat(server, autogpt): Add Example files and update build option (#7271) 2024-06-27 09:56:21 -05:00
Zamil Majdy
2bc22c5450 feat(rnd): Add support for dynamic input as list for AgentServer Block (#7268)
On AgentServer, To create a Block like StringFormatterBlock or LllmCallBlock, we need some way to dynamically link input pins and aggregate them into a single list input. This will give a better experience for the user to construct an input and link it from the output of the other nodes. The scope of this change is adding support for that in the least intrusive way.

Proposal
To differentiate the input list name and its singular entry we are using the $_<index> prefix. For example:
For the input items: list[int], you can set a pin items with values like [1,2,3,4]. But you can also add input pins like items_$_0 or items_$_4 with values 1 or 2, which will be appended to the items input in alphabetical order.
The execution engine will guarantee to wait for the execution until all the input pin value is produced, so input pin with list input will produce fix-sized list.
2024-06-27 21:51:34 +07:00
Aarushi
cdc658695f Add reactflow component in AutoGPT builder (#7270)
* Getting started with nextjs

* fix linting

* remove gitignore for package.json

* pulling in reactflow components

* updating css

* use environment variables

* clean up css / ui a lil

* Fixed nodes/run button animation

so they are always visible

---------

Co-authored-by: Bentlybro <tomnoon9@gmail.com>
2024-06-27 10:14:25 +01:00
Aarushi
dd960f9306 Add support for nextjs based app (#7266)
* Getting started with nextjs

* fix linting

* remove gitignore for package.json
2024-06-27 10:02:54 +01:00
Krzysztof Czerwinski
6e1c9d44a4 Update Agent Server README.md 2024-06-26 19:41:12 +02:00
Zamil Majdy
26bcb26bb7 feat(rnd): Refactor AgentServer Node Input/Output Relation & Block output interface (#7231)
### Background

The current implementation of AgentServer doesn't allow for a single pin to be connected to multiple nodes, this will be problematic when you have a single output node that needs to be propagated into many nodes. Or multiple nodes that possibly feed the data into a single pin (first come first serve).

This infra change is also part of the preparation for changing the `block` interface to return a stream of output instead of a single output.  Treating blocks as streams requires this capability.

### Changes 🏗️

* Update block run interface from returning `(output_name, output_data)` to `Generator[(output_name, output_data)]`
* Removed `agent` term in the API, replace it with `graph` for consistency.
* Reintroduced `AgentNodeExecutionInputOutput`. `AgentNodeExecution` input & output will be a list of `AgentNodeExecutionInputOutput` which describes the input & output data of its execution. Making an execution has 1-many relation to its input output data.
* Propagating the relation and block interface change into the execution engine.
2024-06-26 12:41:55 +02:00
Nicholas Tindle
f04ddceacf docs(forge): Update and rename QUICKSTART.md to FORGE-QUICKSTART.md (#7215) 2024-06-25 19:03:05 -05:00
Reinier van der Leer
37cc047656 lint-fix + minor refactor 2024-06-25 09:55:13 -07:00
Reinier van der Leer
9f804080ed address feedback: pass commands getter to CodeFlowExecutionComponent(..) 2024-06-25 09:30:26 -07:00
Reinier van der Leer
680fbf49aa Merge branch 'master' into zamilmajdy/code-validation 2024-06-24 20:42:52 -07:00
Bently
3e01b19d6f chore(forge): Update duckduckgo-search to v6.1.7 (#7254)
This should (for now) mitigate the RateLimitErrors that people have been experiencing.
---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-06-25 03:24:10 +02:00
Zamil Majdy
9f1e521857 feat(rnd): Add AutoGPT server scheduling service (#7226)
### Background

Agent execution should be able to be triggered in a recurring manner.
This PR introduced an ExecutionScheduling service, a process responsible for managing the execution schedule and triggering its execution based on a predefined cron expression.

### Changes 🏗️

* Added `scheduler.py` / `ExecutionScheduler` implementation.
* Added scheduler test.
* Added `AgentExecutionSchedule` table and its logical model & prisma queries.
* Moved `add_execution` from API server to `execution_manager`
2024-06-24 09:41:02 +07:00
Zamil Majdy
d9226888b2 feat(rnd): Add node metadata on Agent Server Node object (#7237) 2024-06-21 17:50:50 +01:00
Zamil Majdy
210d7738b9 feat(rnd): Add IPC support on autogpt_server (#7212)
### Background

This PR adds support on IPC on autogpt_server.
To make this happen, there are a couple of refactoring efforts being made (will be described in the `Changes` section).
Currently, there are three independent processes:

```
AgentServer ----> ExecutionManager
    | 
     --> ExecutionScheduler
```


### Changes 🏗️

* Added Pyro5 for IPC support.
* Introduced `AppService`: a class to construct an independent process that can expose a method to other running processes (this is analogous to a microservice).
* Introduced `AppProcess`: used by `AppService` a class for creating a child process that can be executed in the background.
* Adapting existing codebase to user `AppService`.
2024-06-19 22:49:47 +07:00
Krzysztof Czerwinski
901dadefc3 Merge branch 'master' into zamilmajdy/code-validation 2024-06-19 13:05:40 +02:00
Krzysztof Czerwinski
c19ab2b24f feat(forge): Component-specific configuration (#7170)
Remove many env vars and use component-level configuration that could be loaded from file instead.

### Changed

- `BaseAgent` provides `serialize_configs` and `deserialize_configs` that can save and load all component configuration as json `str`. Deserialized components/values overwrite existing values, so not all values need to be present in the serialized config.
- Decoupled `forge/content_processing/text.py` from `Config`
- Kept `execute_local_commands` in `Config` because it's needed to know if OS info should be included in the prompt
- Updated docs to reflect changes
- Renamed `Config` to `AppConfig`

### Added

- Added `ConfigurableComponent` class for components and following configs:
  - `ActionHistoryConfiguration`
  - `CodeExecutorConfiguration`
  - `FileManagerConfiguration` - now file manager allows to have multiple agents using the same workspace
  - `GitOperationsConfiguration`
  - `ImageGeneratorConfiguration`
  - `WebSearchConfiguration`
  - `WebSeleniumConfiguration`
- `BaseConfig` in `forge` and moved `Config` (now inherits from `BaseConfig`) back to `autogpt`
- Required `config_class` attribute for the `ConfigurableComponent` class that should be set to configuration class for a component
`--component-config-file` CLI option and `COMPONENT_CONFIG_FILE` env var and field in `Config`. This option allows to load configuration from a specific file, CLI option takes precedence over env var.
- Added comments to config models

### Removed

- Unused `change_agent_id` method from `FileManagerComponent`
- Unused `allow_downloads` from `Config` and CLI options (it should be in web component config if needed)
- CLI option `--browser-name` (the option is inside `WebSeleniumConfiguration`)
- Unused `workspace_directory` from CLI options
- No longer needed variables from `Config` and docs
- Unused fields from `Config`: `image_size`, `audio_to_text_provider`, `huggingface_audio_to_text_model`
- Removed `files` and `workspace` class attributes from `FileManagerComponent`
2024-06-19 09:14:01 +01:00
Reinier van der Leer
02dc198a9f fix(agent): Fix resumption from mid-cycle state in CLI mode (#7224)
When an agent is resumed from a mid-cycle state (having made a proposal but not executed it yet), we need to use the previously determined `current_episode.action` proposal instead of calling `agent.propose_action()` again.
2024-06-18 19:30:24 +02:00
Reinier van der Leer
227cf41612 fix(agent, forge): Make LLM API key check provider-agnostic (#7220)
* Rename `assert_config_has_openai_api_key` to `assert_config_has_required_llm_api_keys`
* Make OpenAI credential check conditional (only if an OpenAI model is selected in the config)
* Implement checks for Groq and Anthropic credentials
* Use API calls for Groq and OpenAI credential checks to make sure the keys are valid
2024-06-14 20:56:03 +02:00
Reinier van der Leer
66f373fb57 docs: Update CONTRIBUTING.md
- Add reference to Code Guidelines
- Reorder list of directives to more logical order
2024-06-14 07:45:14 -07:00
Nicholas Tindle
8f3ed733b9 chore(rnd): Fix warning during server tests (#7213) 2024-06-14 06:56:53 -05:00
Nicholas Tindle
e204491c6c Merge branch 'master' into zamilmajdy/code-validation 2024-06-13 17:33:44 -05:00
Krzysztof Czerwinski
9f71cd2437 feat(forge): Unbreak forge agent (#7196)
Revert some changes to fix forge agent and enable components support.
- Rename forge `Agent` to `ProtocolAgent`
- Bring back and update `forge/app.py` and `forge/agent/forge_agent.py`
- `ForgeAgent` inherits from `BaseAgent`, supports component execution and runs the same pipelines as autogpt Agent
- Update forge version from 0.1.0 to 0.2.0
- Update code comments
2024-06-12 13:45:00 +01:00
Nicholas Tindle
6ec708c771 ci(server): Agent Server CI (#7193) 2024-06-12 00:29:23 +07:00
Zamil Majdy
af3febd79f feat(rnd): Add missing code on execution logic for AutoGPT Server (#7209)
Add missing changes from previous commit
2024-06-11 16:15:52 +02:00
SwiftyOS
60e0d4c530 fix(rnd): fixed cli repeated star cmd quality of life 2024-06-11 13:10:53 +02:00
SwiftyOS
4aeae53a61 fixed typo 2024-06-11 12:29:13 +02:00
SwiftyOS
d5c4eca739 Check if pid exists 2024-06-11 12:27:19 +02:00
SwiftyOS
1e4ef7b313 chore(benchmark): delete notebooks 2024-06-11 11:30:46 +02:00
Swifty
fd18877dae feat(rnd): CLI to Run and Stop the Server (#7195) 2024-06-11 11:21:34 +02:00
Nicholas Tindle
c754ecd5d1 fix(docs): bad link from Options to built in components config (#7207) 2024-06-10 17:57:29 +01:00
Zamil Majdy
e688cc31f0 feat(rnd): Implement agent block execution logic for AutoGPT Server (#7194)
### Background

This PR implements the main logic of the block execution engine for AutoGPT-Server.
An integration test is added to test the behavior.

*What you can do now with this PR*:
You can manually create a graph, by using the existing blocks as nodes (or write your own). Then execute the graph with an input.

*What you can't do yet*:
Listen to the graph execution result/update (you can follow the `AgentNodeExecution` table result, though).

### Changes 🏗️
* Split `data.py` (model file) into three modules:
    * `execution`: a model for node execution.
    * `graph`: a model for graph structure.
    * `block`: a model for agent block/component.
* Implemented executor main logic
* Simplify db structure:
    * Remove `AgentBlockInputOutput` in favor of `inputSchema` & `outputSchema` using serialized json/dict structure.
    * Remove `id` on `AgentBlock` in favor of using name (class name of the block) as its identifier.
    * Added `constantInput` column for `AgentNode` for hard-coded input/block configuration. Hence, removing`executionStateData` on `AgentNodeExecution`.
    * Rename AgentNodeLink input/output to source/sink to avoid confusion
* Change multithreading to multiprocessing, to allow the use of multiple `prisma` asynchronous client.
2024-06-10 19:30:34 +07:00
Nicholas Tindle
b803e42189 feat(docs): add example uses and description of autogpt to the readme (#7205) 2024-06-10 13:08:55 +01:00
Zamil Majdy
3597f801a7 Merge branch 'master' of github.com:Significant-Gravitas/AutoGPT into zamilmajdy/code-validation 2024-06-10 13:05:05 +07:00
Zamil Majdy
b59862c402 Address comment 2024-06-10 13:04:54 +07:00
Reinier van der Leer
04769c54e4 docs: Update CONTRIBUTING.md
- Add links to roadmap
- Disable links to kanban board (which currently is not in active use)
- Clarify instruction to not submit broken code
2024-06-09 23:43:25 +02:00
Reinier van der Leer
8f18aebf90 Update wiki links to new location (Nexus/wiki -> AutoGPT/wiki) 2024-06-09 23:13:25 +02:00
github-actions[bot]
8e5535157f feat(frontend): Update frontend build in master (#7203)
Update frontend build based on commit 8f43a346e9

Co-authored-by: Pwuts <12185583+Pwuts@users.noreply.github.com>
2024-06-08 18:55:01 -05:00
Reinier van der Leer
8f43a346e9 fix(frontend): Sync request models up with forge.agent_protocol (#7202)
Frontend broke in #7171 because of changes to the request models in `forge.agent_protocol`. This PR unbreaks it.

Changes:
- Make `input` required on `TaskRequestBody` and `StepRequestBody`
- Amend `toJson()` on `TaskRequestBody` and `StepRequestBody` to omit attributes with `null` value
2024-06-08 17:09:01 -05:00
Reinier van der Leer
81bac301e8 fix type issues 2024-06-08 23:44:45 +02:00
Reinier van der Leer
a9eb49d54e Merge branch 'master' into zamilmajdy/code-validation 2024-06-08 21:52:36 +02:00
Reinier van der Leer
f2cb553c9a chore(agent, forge, benchmark): Update pyright to v1.1.366 2024-06-08 21:48:25 +02:00
Reinier van der Leer
4c17277539 chore(agent, forge): Update duckduckgo-search to v5.3.1 2024-06-08 21:44:39 +02:00
Reinier van der Leer
2c6e1eb4c8 fix type issue in test_code_flow_strategy.py 2024-06-08 21:38:22 +02:00
Reinier van der Leer
3e8849b08e fix linting and type issues 2024-06-08 21:32:10 +02:00
Reinier van der Leer
111e8585b5 feat(forge/llm): allow async completion parsers 2024-06-08 21:29:35 +02:00
Reinier van der Leer
8144d26cef fix type issues 2024-06-08 21:02:44 +02:00
Reinier van der Leer
e264bf7764 forge.llm.providers.schema + code_flow_executor lint-fix and cleanup 2024-06-08 15:28:52 +02:00
Reinier van der Leer
6dd0975236 clean up & improve @command decorator
- add ability to extract parameter descriptions from docstring
- add ability to determine parameter JSON schemas from function signature
- add `JSONSchema.from_python_type` factory
2024-06-08 15:05:45 +02:00
Reinier van der Leer
c3acb99314 clean up forge.command.command 2024-06-08 15:01:00 +02:00
Reinier van der Leer
0578fb0246 fix async issues with code flow execution 2024-06-08 02:03:22 +02:00
Reinier van der Leer
731d0345f0 implement annotation expansion for non-builtin types 2024-06-08 02:01:20 +02:00
Reinier van der Leer
b4cd735f26 fix name collision with type in Command.return_type 2024-06-07 12:57:30 +02:00
Reinier van der Leer
6e715b6c71 simplify function header generation 2024-06-07 12:56:41 +02:00
Krzysztof Czerwinski
2cd914d366 chore(agent): Remove LogCycleHandler (#7192)
- Remove no longer needed LogCycleHandler class and its usage in Agent
2024-06-06 11:47:30 +01:00
Swifty
39084192ff fix(agent server): Update file layout for autogpt server (#7190) 2024-06-05 12:53:54 +02:00
Nicholas Tindle
23dfdad454 feat(autogpt,autogpt_server): Build AutoGPT's Constituent Parts for deployment (#7188) 2024-06-05 12:14:08 +07:00
Zamil Majdy
4de0fd8cbd feat(db): Initialize Database Schema for AutoGPT server (#7168)
### Background

Introduced initial database schema for AutoGPT server.
It currently consists of 7 tables:

* `AgentGraph`: This model describes the Agent Graph/Flow (Multi Agent System).
    * `AgentNode`: This model describes a single node in the Agent Graph/Flow (Multi Agent System).
        * `AgentNodeLink`: This model describes the link between two AgentNodes.
        * `AgentNodeExecution`: This model describes the execution of an AgentNode.
* `AgentBlock`: This model describes a component that will be executed by the AgentNode (all the details required, like name, code, input/output).
    * `AgentBlockInputOutput`: This model describes the output (produced event) or input (consumed event) of an AgentBlock.
* `FileDefinition`: This model describe a file that can be used as input/output of an AgentNodeExecution.

### Changes 🏗️

* Add Prisma
* Add sqlite3
* Initialize database.
2024-06-05 12:09:58 +07:00
Swifty
e3a5663a05 fix(agent server): Updated function names and type checking (#7185)
* fix agent server

* renamed functions

* simplified dir naming
2024-06-04 11:02:38 +02:00
SwiftyOS
246bc850a1 deleted nextgenautogpt 2024-06-04 09:56:42 +02:00
Reinier van der Leer
fcca4cc893 clarify execute_code_flow 2024-06-03 22:00:34 +02:00
Reinier van der Leer
5c7c276c10 Merge branch 'master' into zamilmajdy/code-validation 2024-06-03 21:43:59 +02:00
Reinier van der Leer
319232568a fix+docs(agent): Update LLM access instructions & remove GPT-specific flags (#7183)
* Update instructions to set up OpenAI / GPT-4 access
* Add instructions to set up Anthropic access
* Add instructions to set up Groq access
* Remove GPT-specific `--gpt3only`, `--gpt4only` CLI flags and related logic
* Remove duplicate config instructions from docker setup page, replace it by a link to the standard setup instructions
2024-06-03 08:51:46 -05:00
SwiftyOS
f71d97dd48 restored nextgenautogpt 2024-06-03 11:42:18 +02:00
Zamil Majdy
7a932cdf00 feat(rnd): add FastAPI support to existing project outline (#7165)
### Background

###### Project Outline
Currently, the project mainly consists of these components:

*agent_api*
A component that will expose API endpoints for the creation & execution of agents.
This component will make connections to the database to persist and read the agents.
It will also trigger the agent execution by pushing its execution request to the ExecutionQueue.

*agent_executor*
A component that will execute the agents.
This component will be a pool of processes/threads that will consume the ExecutionQueue and execute the agent accordingly. 
The result and progress of its execution will be persisted in the database.

###### How to test
Execute `poetry run app`. 
Access the swagger page `http://localhost:8000/docs`, there is one API to trigger an execution of one dummy slow task, you fire the API a couple of times and see the `agent_executor` executes the multiple slow tasks concurrently by the pool of Python processes.
The pool size is currently set to `5` (hardcoded in app.py, the code entry point).

##### Changes 🏗️

* Initialize FastAPI for the AutoGPT server project.
* Reduced number of queues to 1 and abstracted into `ExecutionQueue` class.
* Reduced the number of main components into two `api` and `executor`.
2024-06-02 23:39:01 -05:00
Reinier van der Leer
4e76768bc9 refactor(forge/llm): Create BaseOpenAIProvider -> deduplicate GroqProvider & OpenAIProvider implementation (#7178)
- Add `_BaseOpenAIProvider`, `BaseOpenAIChatProvider`, and `BaseOpenAIEmbeddingProvider`, which implement the shared functionality of OpenAI-like providers, e.g. `GroqProvider` and `OpenAIProvider`
- (Re)move as much code as possible from `GroqProvider` and `OpenAIProvider` by rebasing them on `BaseOpenAI(Chat|Embedding)Provider`

Also:
- Rename `get_available_models()` to `get_available_chat_models()` on `BaseChatModelProvider`
- Add `get_available_models()` to `BaseModelProvider`
- Add `get_available_embedding_models()` to `BaseEmbeddingModelProvider`
- Move common `fix_failed_parse_tries` config attribute into base `ModelProviderConfiguration`
2024-06-03 01:29:24 +02:00
RainRat
cb9ad6f64d fix typos (#7123)
* fix typos in various places

* Revert changes to NOTICES

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-05-31 11:16:23 +02:00
Reinier van der Leer
16df151977 fix(agent): Disable profile generator -> speed up agent setup (#7121)
* Add default AutoGPT profile to ai_profile.py & disable profile generator

* Disable custom AI profile generation in agent_protocol_server.py
   - Replace `generate_agent_for_task` by `create_agent`
   - Make `ai_profile` parameter on `create_agent` optional (use default `AIProfile` if not passed)

* Generalize example call in profile_generator.py
   Currently it's specified in an OpenAI-specific format, which might adversely affect performance with other providers.

* Remove dead `AIProfile.api_budget` attribute

* Remove `agent.ai_profile` and `agent.directives` attributes, and replace usages with `agent.state.*`
   This prevents potential state inconsistency between `agent` and `agent.state` when other values are assigned to `agent.ai_profile` and `agent.directives`
2024-05-31 10:34:33 +02:00
rekwet
f67c2147a7 feat(docs): Update QUICKSTART.md (#7104)
Updated the grammar and sentence construction of the Agent Start section.
2024-05-30 22:58:08 -05:00
Reinier van der Leer
738c8ffff0 fix(benchmark): Improve output and debug logging of pytest evals 2024-05-30 17:16:17 +02:00
Reinier van der Leer
f107ff8cf0 Set up unified pre-commit + CI w/ linting + type checking & FIX EVERYTHING (#7171)
- **FIX ALL LINT/TYPE ERRORS IN AUTOGPT, FORGE, AND BENCHMARK**

### Linting
- Clean up linter configs for `autogpt`, `forge`, and `benchmark`
- Add type checking with Pyright
- Create unified pre-commit config
- Create unified linting and type checking CI workflow

### Testing
- Synchronize CI test setups for `autogpt`, `forge`, and `benchmark`
   - Add missing pytest-cov to benchmark dependencies
- Mark GCS tests as slow to speed up pre-commit test runs
- Repair `forge` test suite
  - Add `AgentDB.close()` method for test DB teardown in db_test.py
  - Use actual temporary dir instead of forge/test_workspace/
- Move left-behind dependencies for moved `forge`-code to from autogpt to forge

### Notable type changes
- Replace uses of `ChatModelProvider` by `MultiProvider`
- Removed unnecessary exports from various __init__.py
- Simplify `FileStorage.open_file` signature by removing `IOBase` from return type union
  - Implement `S3BinaryIOWrapper(BinaryIO)` type interposer for `S3FileStorage`

- Expand overloads of `GCSFileStorage.open_file` for improved typing of read and write modes

  Had to silence type checking for the extra overloads, because (I think) Pyright is reporting a false-positive:
  https://github.com/microsoft/pyright/issues/8007

- Change `count_tokens`, `get_tokenizer`, `count_message_tokens` methods on `ModelProvider`s from class methods to instance methods

- Move `CompletionModelFunction.schema` method -> helper function `format_function_def_for_openai` in `forge.llm.providers.openai`

- Rename `ModelProvider` -> `BaseModelProvider`
- Rename `ChatModelProvider` -> `BaseChatModelProvider`
- Add type `ChatModelProvider` which is a union of all subclasses of `BaseChatModelProvider`

### Removed rather than fixed
- Remove deprecated and broken autogpt/agbenchmark_config/benchmarks.py
- Various base classes and properties on base classes in `forge.llm.providers.schema` and `forge.models.providers`

### Fixes for other issues that came to light
- Clean up `forge.agent_protocol.api_router`, `forge.agent_protocol.database`, and `forge.agent.agent`

- Add fallback behavior to `ImageGeneratorComponent`
   - Remove test for deprecated failure behavior

- Fix `agbenchmark.challenges.builtin` challenge exclusion mechanism on Windows

- Fix `_tool_calls_compat_extract_calls` in `forge.llm.providers.openai`

- Add support for `any` (= no type specified) in `JSONSchema.typescript_type`
2024-05-28 05:04:21 +02:00
Reinier van der Leer
2c13a2706c fix(agent, forge): Update tiktoken for GPT-4o support
and remove `tiktoken` from autogpt/pyproject.toml since it isn't a direct dependency anymore
2024-05-27 13:10:19 +02:00
Nicholas Tindle
46c1762fb0 feat(forge/llm): Add basic support for GPT-4o (#7169)
* Add `gpt-4o`
* Add `gpt-4o-2024-05-13`

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-05-24 22:35:48 +02:00
Krzysztof Czerwinski
4e02f7ddb5 feat(forge): Add mount method to FileStorage & execute code in mounted workspace (#7115)
* Add `FileStorage.mount()` method, which mounts (part of) the workspace to a local path
  * Add `watchdog` library to watch file changes in mount
* Amend `CodeExecutorComponent`
  * Amend `execute_python_file` to execute Python files in a workspace mount
  * Amend `execute_python_code` to create temporary .py file in workspace instead of as a local file
  * Add support for `Path` argument to `filename` parameter on `execute_python_file`

* Fix `test_execute_python_code` (by making it async)
2024-05-24 21:34:22 +02:00
Reinier van der Leer
edcbbbce25 feat(forge/llm): Add GroqProvider (#7130)
* Add `GroqProvider` in `forge.llm.providers.groq`
  * Add to `llm.providers.multi`
  * Add `groq` dependency (v0.8.0)

* Update AutoGPT docs & config template
  * Update .env.template
  * Update docs
2024-05-24 16:34:51 +02:00
Krzysztof Czerwinski
cdae98d36b fix(ci): Fix cli and CI (#7166)
- Add a special case for cli to handle autogpt and forge agent
- Remove forge agent from smoke test ci
2024-05-22 17:18:00 +01:00
Reinier van der Leer
5292736779 fix(agent): Unbreak docker builds after repo restructure (#7164)
- Move `autogpt/Dockerfile` to `Dockerfile.autogpt`
  - Write new selective `.dockerignore` (in repo root) to keep build context clean
  - Amend `autogpt/docker-compose.yml` and all `autogpt-docker-*.yml` workflows accordingly

- Include `forge/` in docker build context so it can be used as a path dependency

- Include `frontend/` in docker builds
2024-05-22 18:11:16 +02:00
Reinier van der Leer
e16d58af0c mark docs/_javascript/** as linguist-vendored 2024-05-22 16:44:14 +02:00
Reinier van der Leer
f80bc0a523 fix marking frontend builds as linguist-generated to exclude from language stats 2024-05-22 16:38:56 +02:00
Swifty
a5ee640935 feat(rnd): Add template of the next gen autogpt project (#7162)
* feat(rnd): Add template of the next gen autogpt project

* fix(rnd): fix typo

* fix(rnd): typo

* Added multi-processor arch

* feat(rnd) add bi-direction communication

* Updated project structure
2024-05-22 14:36:38 +02:00
Krzysztof Czerwinski
4c325724ec refactor(autogpt, forge): Remove autogpts directory (#7163)
- Moved `autogpt` and `forge` to project root
- Removed `autogpts` directory
- Moved and renamed submodule `autogpts/autogpt/tests/vcr_cassettes` to `autogpt/tests/vcr_cassettes`
- When using CLI agents will be created in `agents` directory (instead of `autogpts`)
- Renamed relevant docs, code and config references from `autogpts/[forge|autogpt]` to `[forge|autogpt]` and from `*../../*` to `*../*`
- Updated `CODEOWNERS`, GitHub Actions and Docker `*.yml` configs
- Updated symbolic links in `docs`
2024-05-22 13:08:54 +01:00
Krzysztof Czerwinski
3475aaf384 refactor(agent): Remove unused autogpt code (#7112)
Remove unused `autogpt` code and reorganize its file structure.

* Moved:
  * `autogpt/agent_manager/agent_manager.py` to `autogpt/agents/agent_manager.py`, so the dir `agent_manager` was removed
  * `dump_prompt` from `autogpt.core.runner.client_lib.logging.helpers` to `forge/llm/prompting/utils.py`
  * `coroutine` decorator from `autogpt.core.runner.client_lib.utils` to `autogpt/app/utils.py`
* Removed within `autogpt`:
  * Memory-related code from multiple files (not used), including `memory/*`
  * Memory-related config entries/env vars: `memory_backend`, `memory_index`, `redis_host`, `redis_port`, `redis_password`, `wipe_redis_on_start`
  * `core` files, from failed re-arch:
    * `*.md` docs
    * `core/ability/*`
    * `core/agent/*`
    * `core/memory/*`
    * `core/planning/*`
    * `core/plugin/*`
    * `core/workspace/*`
    * `core/runner/*` (`dump_prompt` and `coroutine` were moved)
  * Related tests
* Updated relevant docs
2024-05-22 09:43:15 +01:00
Krzysztof Czerwinski
bcc5282aba refactor(forge): Clean forge (#7117)
Remove unused `forge` code and improve structure of `forge`.

* Put all Agent Protocol stuff together in `forge.agent_protocol`
  * ... including `forge.agent_protocol.database` (was `forge.db`)
* Remove duplicate/unused parts from `forge`
  * `forge.actions`, containing old commands; replaced by `forge.components` from `autogpt`
  * `forge/agent.py` (the old one, `ForgeAgent`)
  * `forge/app.py`, which was used to serve and run the `ForgeAgent`
  * `forge/db.py` (`ForgeDatabase`), which was used for `ForgeAgent`
  * `forge/llm.py`, which has been replaced by new `forge.llm` module which was ported from `autogpt.core.resource.model_providers`
  * `forge.memory`, which is not in use and not being maintained
  * `forge.sdk`, much of which was moved into other modules and the rest is deprecated
  * `AccessDeniedError`: unused
  * `forge_log.py`: replaced with `logging`
  * `validate_yaml_file`: not needed
  * `ai_settings_file` and associated loading logic and env var `AI_SETTINGS_FILE`: unused
  * `prompt_settings_file` and associated loading logic and env var `PROMPT_SETTINGS_FILE`: default directives are now provided by the `SystemComponent`
    * `request_user_double_check`, which was only used in `AIDirectives.load`
  * `TypingConsoleHandler`: not used
2024-05-21 19:18:47 +01:00
Zamil Majdy
ae63aa8ebb Merge remote-tracking branch 'origin/zamilmajdy/code-validation' into zamilmajdy/code-validation 2024-05-20 22:39:47 +07:00
Zamil Majdy
fdd9f9b5ec Log fix 2024-05-20 22:39:30 +07:00
Zamil Majdy
a825aa8515 Merge branch 'master' into zamilmajdy/code-validation 2024-05-20 16:53:52 +02:00
Swifty
2cca4fa47f clean(benchmark): Remove Depreciated Challenges (#7144)
* Remove depreciated challanges

* Update license and pyproject.toml
2024-05-20 15:01:36 +02:00
Zamil Majdy
ae43136c2c Fix linting 2024-05-20 18:48:44 +07:00
Zamil Majdy
c8e16f3fe1 Fix linting 2024-05-20 18:42:36 +07:00
Zamil Majdy
3a60504138 isort 2024-05-20 18:21:17 +07:00
Zamil Majdy
dfa77739c3 Remove unnecessary changes 2024-05-20 18:14:39 +07:00
Zamil Majdy
9f6e25664c Debug Log changes 2024-05-20 18:11:53 +07:00
Zamil Majdy
3c4ff60e11 Add unit tests 2024-05-20 18:09:16 +07:00
Zamil Majdy
47eeaf0325 Revert dumb changes 2024-05-20 17:07:55 +07:00
Zamil Majdy
81ad3cb69a Merge conflicts 2024-05-20 17:00:25 +07:00
Zamil Majdy
834eb6c6e0 Some quality polishing 2024-05-20 15:56:18 +07:00
Zamil Majdy
fb802400ba Add return type 2024-05-17 17:10:54 +02:00
Zamil Majdy
922e643737 Fix Await fiasco 2024-05-17 00:57:29 +02:00
Zamil Majdy
7b5272f1f2 Fix Await fiasco 2024-05-17 00:50:11 +02:00
Zamil Majdy
ea134c7dbd Benchmark test 2024-05-16 20:09:10 +02:00
Zamil Majdy
f7634524fa More prompt engineering 2024-05-16 19:53:42 +02:00
Krzysztof Czerwinski
e8d7dfa386 refactor(agent, forge): Move library code from autogpt to forge (#7106)
Moved from `autogpt` to `forge`:
- `autogpt.config`          -> `forge.config`
- `autogpt.processing`      -> `forge.content_processing`
- `autogpt.file_storage`    -> `forge.file_storage`
- `autogpt.logs`            -> `forge.logging`
- `autogpt.speech`          -> `forge.speech`
- `autogpt.agents.(base|components|protocols)`  -> `forge.agent.*`
- `autogpt.command_decorator`                   -> `forge.command.decorator`
- `autogpt.models.(command|command_parameter)`  -> `forge.command.(command|parameter)`
- `autogpt.(commands|components|features)`      -> `forge.components`
- `autogpt.core.utils.json_utils`           -> `forge.json.parsing`
- `autogpt.prompts.utils`                   -> `forge.llm.prompting.utils`
- `autogpt.core.prompting.(base|schema|utils)`    -> `forge.llm.prompting.*`
- `autogpt.core.resource.model_providers`   -> `forge.llm.providers`
- `autogpt.llm.providers.openai` + `autogpt.core.resource.model_providers.utils`
                                            -> `forge.llm.providers.utils`
- `autogpt.models.action_history:Action*`   -> `forge.models.action`
- `autogpt.core.configuration.schema`       -> `forge.models.config`
- `autogpt.core.utils.json_schema`          -> `forge.models.json_schema`
- `autogpt.core.resource.schema`            -> `forge.models.providers`
- `autogpt.models.utils`                    -> `forge.models.utils`
- `forge.sdk.(errors|utils)` + `autogpt.utils.(exceptions|file_operations_utils|validators)`
                        -> `forge.utils.(exceptions|file_operations|url_validator)`
- `autogpt.utils.utils` -> `forge.utils.const` + `forge.utils.yaml_validator`

Moved within `forge`:
- forge/prompts/* -> forge/llm/prompting/*

The rest are mostly import updates, and some sporadic removals and necessary updates (for example to fix circular deps):
- Changed `CommandOutput = Any` to remove coupling with `ContextItem` (no longer needed)
- Removed unused `Singleton` class
- Reluctantly moved `speech` to forge due to coupling (tts needs to be changed into component)
- Moved `function_specs_from_commands` and `core/resource/model_providers` to `llm/providers` (resources were a `core` thing and are no longer relevant)
- Keep tests in `autogpt` to reduce changes in this PR
- Removed unused memory-related code from tests
- Removed duplicated classes: `FancyConsoleFormatter`, `BelowLevelFilter`
- `prompt_settings.yaml` is in both `autogpt` and `forge` because for some reason doesn't work when placed in just one dir (need to be taken care of)
- Removed `config` param from `clean_input`, it wasn't used and caused circular dependency
- Renamed `BaseAgentActionProposal` to `ActionProposal`
- Updated `pyproject.toml` in `forge` and `autogpt`
- Moved `Action*` models from `forge/components/action_history/model.py` to `forge/models/action.py` as those are relevant to the entire agent and not just `EventHistoryComponent` + to reduce coupling
- Renamed `DEFAULT_ASK_COMMAND` to `ASK_COMMAND` and `DEFAULT_FINISH_COMMAND` to `FINISH_COMMAND`
- Renamed `AutoGptFormatter` to `ForgeFormatter` and moved to `forge`

Includes changes from PR https://github.com/Significant-Gravitas/AutoGPT/pull/7148
---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-05-16 00:37:53 +02:00
Zamil Majdy
0eccbe1483 Prompt change 2024-05-15 21:04:52 +02:00
Zamil Majdy
0916df4df7 Fix async fiasco 2024-05-15 19:30:29 +02:00
Zamil Majdy
22e2373a0b Add code flow as a loop 2024-05-15 17:10:51 +02:00
Zamil Majdy
40426e4646 Merge master 2024-05-14 23:36:31 +02:00
Zamil Majdy
4f81246fd4 Fix poetry install issue on ARM64 & python 3.12 (#7145) 2024-05-14 09:10:55 -05:00
Zamil Majdy
ef1fe7c4e8 Update notebook 2024-05-11 12:12:30 +02:00
SwiftyOS
4fe62b8063 new frontend build as ci is broke 2024-05-11 09:22:59 +02:00
SwiftyOS
b3967fd597 remove leaderboard 2024-05-11 09:15:09 +02:00
SwiftyOS
1f05881283 fix: typo 2024-05-11 08:45:51 +02:00
SwiftyOS
a9afb3cbff removed git requirement from cli 2024-05-11 08:41:52 +02:00
Reinier van der Leer
ca7ca226ff one_shot_flow.ipynb + edits to make it work 2024-05-10 20:03:40 +02:00
Zamil Majdy
ed5f12c02b Add code validation 2024-05-10 16:43:53 +02:00
Reinier van der Leer
c562b3b6a3 unbreak ./run agent create
"If we had done this in Swift it would've never happened" ~Craig Swift

                ____
              / . .\
              \  ---<
               \  /
       ________/ /
    -=:___________/
2024-05-10 12:53:57 +02:00
Reinier van der Leer
b0cbf711dc feat(agent): Persist AgentContext in Agent.state (#7125)
Persist the agent's `AgentContext` so that it works in rehydrated agent instances. This makes context usable in the `AgentProtocolServer`, where the agent instance is loaded and destroyed for every step.

- Make `AgentContext` a Pydantic model
- Add `context` parameter to `ContextComponent.__init__` so we can pass in an existing instance
- Add `context: AgentContext` to `AgentSettings` so it is persisted
- Add `type` attribute to `ContextItem` implementations as a discriminator
- Rename `ContextItem` base class to `BaseContextItem` and make new `ContextItem` type alias (union of the implementation types)
2024-05-10 09:30:12 +02:00
Reinier van der Leer
7e02cfdc9f fix(agent): Fix type propagation of Command and @command when used on methods (#7124) 2024-05-09 11:39:09 +02:00
Swifty
34fdbaa26b Remove arena (#7134)
* remove arena

* refactor: Remove Arena intake workflow

* Remove all mention of the arena

* remove evo.ninja
2024-05-09 11:36:40 +02:00
Swifty
818d391284 Remove arena submission from cli (#7137) 2024-05-09 11:27:16 +02:00
Reinier van der Leer
08c32a7a12 lint: Fix linting errors in git_log_to_release_notes.py 2024-05-07 18:53:19 +02:00
Reinier van der Leer
56104bd047 feat(agent/core): Allow list[ChatMessage] in dump_prompt 2024-05-07 16:43:28 +02:00
Reinier van der Leer
2ef5cd7d4c fix(agent): Swap target files and symlinks of component documentation to make package buildable
Documentation files were in docs/content/AutoGPT/components, symlinks in autogpts/autogpt/autogpt/(agents|commands).
Chef doesn't allow symlinks that point to locations outside of package dir.
Replacing the documentation files with symlinks, and symlinks with the actual documentation files, should fix this.
2024-05-07 13:44:31 +02:00
Reinier van der Leer
74b3aae5c6 fix(agent/docs): Fix symlinks to component-based agent docs 2024-05-07 13:35:58 +02:00
Reinier van der Leer
e9b3b5090c lint(agent): Add flake8 to pre-commit checks 2024-05-07 13:30:10 +02:00
Reinier van der Leer
9bac6f4ce2 feat(agent/scripts): Add git_log_to_release_notes.py
This script asks the user to choose two git refs, and then writes release notes for the diff between those two refs.
2024-05-04 20:55:42 +02:00
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
Nicholas Tindle
78d83bb3ce Create .pr_agent.toml 2024-05-04 09:38:37 -05:00
Reinier van der Leer
d57ccf7ec9 fix(agent): Fix open_file and open_folder commands
They weren't ported properly to the new component-based architecture: the `@sanitize_path` decorator was removed, causing path handling issues.
2024-05-02 02:41:03 +02:00
Reinier van der Leer
ada2e19829 refactor(agent)!: Use Pydantic models for Agent process output (#7116)
* Introduce `BaseAgentActionProposal`, `OneShotAgentActionProposal`, and `AssistantThoughts` models to replace `ThoughtProcessResponse`, `DEFAULT_RESPONSE_SCHEMA`
* Refactor and clean up code because now we don't need to do as much type checking everywhere
* Tweak `OneShot` response format instruction

Granular:

* `autogpt.agents.prompt_strategies.one_shot`
  * Replace ThoughtProcessResponse`, `DEFAULT_RESPONSE_SCHEMA` and parsing logic by `AssistantThoughts` and `OneShotAgentActionProposal`
  * (TANGENTIAL) Move response format instruction into main system prompt message
  * (TANGENTIAL) Adjust response format instruction

* `autogpt.agents.base`
  * Add `BaseAgentActionProposal` base model -> replace `ThoughtProcessOutput`
  * Change signature of `execute` method to accept `BaseAgentActionProposal` instead of separate `command_name` and `command_args`
  * Add `do_not_execute(proposal, feedback)` abstract method, replacing `execute("human_feedback", ..., feedback)`

* Move `history` definition from `BaseAgentSettings` to `AgentSettings` (the only place where it's used anyway)

* `autogpt.models`
  * Add `.utils` > `ModelWithSummary` base model
  * Make the models in `.action_history` (`Episode`, `EpisodicActionHistory`) generic with a type parameter for the type of `Episode.action`

* `autogpt.core.resource.model_providers.schema`
  * Add `__str__` to `AssistantFunctionCall` which pretty-prints the function call

All other changes are a direct result of the changes above.

## BREAKING CHANGE:
* Due to the change in `autogpt.models.action_history`, the application after this change will be unable to load/resume agents from before this change and vice versa.
* The `additional_output` field in the response of `execute_step` has changed slightly:
  * Type of `.thoughts.plan` has changed from `str` to `list[str]`
  * `.command` -> `.use_tool`
  * `.command.args` -> `.use_tool.arguments`
2024-05-02 00:43:11 +02:00
Reinier van der Leer
a7c7a5e18b fix(agent): Fix execute_python_file on local storage
It's still broken for remote/cloud storage.
2024-04-30 15:26:41 +02:00
Reinier van der Leer
180de0c9a9 feat(agent/core): Support referenced types in JSONSchema.from_dict 2024-04-30 12:23:15 +02:00
Reinier van der Leer
8f0d5c73b3 fix(agent/core): Format parse errors for log statement in OpenAIProvider.create_chat_completion 2024-04-30 11:59:34 +02:00
王苏云
3b00e8229c Fix ImportError for validate_yaml_file function (#7110)
* Fix ImportError for validate_yaml_file function

* Fix ImportError for validate_yaml_file function

---------

Co-authored-by: suyun <sylearn@foxmail.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-04-29 10:41:30 -05:00
Krzysztof Czerwinski
e97726cde3 fix(autogpt): Revert line in poetry.lock (#7113)
Revert line in `poetry.lock` to from before https://github.com/Significant-Gravitas/AutoGPT/pull/7097
2024-04-29 17:37:20 +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
Reinier van der Leer
0014e2ac14 fix(agent): Update .env.template to match changes in 370615e 2024-04-26 19:25:33 +02:00
Reinier van der Leer
370615e5e4 feat(agent): Add support for new gpt-4-turbo model and set as default SMART_LLM 2024-04-26 19:15:00 +02:00
Reinier van der Leer
f93c743d03 fix(agent): Fix OneShotAgentPromptStrategy parser when using functions/tools API
Also:
- Improve error message when the LLM doesn't call any tools
2024-04-24 18:59:13 +02:00
Reinier van der Leer
6add645597 fix(agent): Expand failure check in json_loads(..)
Not only check if the resulting object is `demjson3.undefined`, but also `demjson3.syntax_error`.
2024-04-24 18:57:50 +02:00
Reinier van der Leer
bdda3a6698 fix(agent): Omit EventHistory progress message if empty
Also add a heading to the progress section
2024-04-24 18:56:43 +02:00
Reinier van der Leer
126aacb2e3 feat(agent/cli): Speed up loading of saved agents
O(n) to O(1) by removing individual `.exists(dir / "state.json")` calls and using `.list_files()` instead of `.list_folders()`
2024-04-24 18:54:24 +02:00
Reinier van der Leer
1afc8e40df chore(agent): Update duckduckgo-search to v5.3.0 2024-04-24 17:57:32 +02:00
Reinier van der Leer
9543e5d6ac fix(agent): Fix crash when LOG_FORMAT=structured_google_cloud
Another piece of fallout from cf00c33 - fix(agent): Fix debug logging & amend configure_logging for easier use
2024-04-24 13:56:35 +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
Nicholas Tindle
fd3f8fa5fc fix(agent/setup): Fix installing ONNXRuntime on macOS on some architectures (#7022)
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-04-23 12:35:56 +02:00
Fullstop000
86bdbb82b1 fix(agent): Support OpenAI Project API keys (#7099)
Amend regex expression in config.py that OpenAI API keys are validated against

Signed-off-by: Fullstop000 <fullstop1005@gmail.com>
2024-04-23 12:29:12 +02:00
Reinier van der Leer
898317c16c fix(agent): Full fix for CLI breakage introduced in cf00c33 2024-04-22 23:54:08 +02:00
Krzysztof Czerwinski
0704404344 fix(agent): Logging hotfix (#7096)
Fix cf00c33f90
2024-04-22 20:24:11 +02: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
6ff02677d2 fix(agent/core): Set OpenAIProvider._configuration.retries_per_request to 7 by default
10 was too much, caused multi-minute timeouts between retries
2024-04-22 18:46:28 +02:00
Reinier van der Leer
4db4ca08b2 refactor(agent): Tweak model_providers.schema for easier use
- Set default values for `ProviderBudget` / `ModelProviderBudget` fields
- Remove redundant field redefinitions on `ModelProviderBudget` class
- Change `ModelProviderUsage.update_usage(..)` and `ModelProviderBudget.update_usage_and_cost(..)` signatures for easier use
- Change `ModelProviderBudget.usage` from `ModelProviderUsage` to `defaultdict[str, ModelProviderUsage]` for per-model usage tracking
- Fix `ChatModelInfo`/`EmbeddingModelInfo` `service` attribute: rename from `llm_service` to match base class and fix types.
  This makes it unnecessary to specify the `service` field when creating a `ChatModelInfo` or `EmbeddingModelInfo` object.
- Use `defaultdict(ModelProviderBudget)` for task budget tracking in agent_protocol_server.py
2024-04-22 18:40:48 +02:00
Reinier van der Leer
7bb7c30842 feat(agent/core): Add max_output_tokens parameter to create_chat_completion interface 2024-04-22 17:47:15 +02:00
Reinier van der Leer
35ebb10378 refactor(agent): Add ChatModelProvider.get_available_models() and remove ApiManager 2024-04-22 17:44:49 +02:00
Reinier van der Leer
b77451bb3a fix(agent/tests): Remove useless tests in test_config.py 2024-04-22 17:26:02 +02:00
Reinier van der Leer
cf00c33f90 fix(agent): Fix debug logging & amend configure_logging for easier use 2024-04-22 17:14:22 +02:00
Reinier van der Leer
61adf58f4f lint(agent): Remove unused os import in file_storage/s3.py 2024-04-21 22:22:10 +02:00
Reinier van der Leer
452df39a52 feat(agent/core): Allow zero-argument instantiation of OpenAIProvider 2024-04-18 21:35:11 +02:00
Reinier van der Leer
49a08ba7db refactor(agent): Remove redundant parsing functions in config classes
Pydantic has built-in typecasting logic, so converting to Python builtin types and enums is done automatically.
2024-04-18 20:01:39 +02:00
Reinier van der Leer
7082e63b11 refactor(agent): Refactor & improve create_chat_completion (#7082)
* refactor(agent/core): Rearrange and split up `OpenAIProvider.create_chat_completion`
   - Rearrange to reduce complexity, improve separation/abstraction of concerns, and allow multiple points of failure during parsing
   - Move conversion from `ChatMessage` to `openai.types.ChatCompletionMessageParam` to `_get_chat_completion_args`
   - Move token usage and cost tracking boilerplate code to `_create_chat_completion`
   - Move tool call conversion/parsing to `_parse_assistant_tool_calls` (new)

* fix(agent/core): Handle decoding of function call arguments in `create_chat_completion`
   - Amend `model_providers.schema`: change type of `arguments` from `str` to `dict[str, Any]` on `AssistantFunctionCall` and `AssistantFunctionCallDict`
   - Implement robust and transparent parsing in `OpenAIProvider._parse_assistant_tool_calls`
   - Remove now unnecessary `json_loads` calls throughout codebase

* feat(agent/utils): Improve conditions and errors in `json_loads`
   - Include all decoding errors when raising a ValueError on decode failure
   - Use errors returned by `return_errors` instead of an error buffer
   - Fix check for decode failure
2024-04-16 10:38:49 +02:00
Reinier van der Leer
d7f00a996f feat(agent): Improve feedback in create_chat_completion parse-fix mechanism
Include error type in feedback message
2024-04-12 20:13:15 +02:00
Reinier van der Leer
cf033504c2 refactor(agent/utils): Clean up JSONSchema.validate_object signature & docstring 2024-04-12 20:11:20 +02:00
Krzysztof Czerwinski
e866a4ba04 fix(agent): Make Agent.save_state behave like save as (#7025)
* Make `Agent.save_state` behave like "save as"
   - Leave previously saved state untouched
   - Save agent state in new folder corresponding to new `agent_id`
   - Copy over workspace contents to new folder

* Add `copy` method to `FileStorage`

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-04-12 12:41:02 +02:00
Reinier van der Leer
90f3c5e2d9 fix(ci): Disable annoying "PR too big" auto-message 2024-04-10 17:49:31 +02:00
Krzysztof Czerwinski
fb8ed0b46b fix(agent, forge): Conform web_search.py to duckduckgo_search v5 (#7046)
Update web_search command for both autogpt and forge to adjust for breaking change in v5 of duckduckgo_search,
update duckduckgo_search to ^5.0.0

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-03-25 21:10:13 +01:00
Krzysztof Czerwinski
12640f7092 fix(agent, forge): Conform web_search.py to duckduckgo_search v5 (#7045)
Update `web_search` command for both autogpt and forge to adjust for breaking change in v5 of `duckduckgo_search`
2024-03-25 19:50:26 +01:00
Reinier van der Leer
5f9cc585b1 fix(agent): Fix type issue in test_s3_file_storage.py 2024-03-22 17:09:31 +01:00
Krzysztof Czerwinski
262771a69c fix(agent): Fix check when loading an existing agent (#7026)
Now the check also ensures the chosen agent number is within proper range
2024-03-22 14:55:49 +01:00
Matheus Oliveira
a1ffe15142 security(agent): Replace unsafe pyyaml loader with SafeLoader (#7035)
Co-authored-by: pixeebot[bot] <104101892+pixeebot[bot]@users.noreply.github.com>
2024-03-22 14:45:07 +01:00
Reinier van der Leer
30bc761391 ci(agent): Add macOS on M1 to AutoGPT CI matrix (#7041)
Use a `macos-14` runner to cover macOS on M1/arm64

- Add `macos-arm64` to `platform-os` matrix, and map it to `macos-14` runner
2024-03-22 14:26:16 +01:00
Reinier van der Leer
2a0e087461 ci(agent): Disable Python dependency caching on Windows
On Windows, unpacking cached dependencies takes longer than just installing them with `poetry install`. :')
2024-03-22 14:15:43 +01:00
Reinier van der Leer
828b81e5ef ci(agent): Fix Python dependency caching on macOS 2024-03-22 14:13:22 +01:00
Reinier van der Leer
fe3f835b3e fix(cli): Add timeout to agent start command
- Add `timeout` parameter (default 30) to `wait_until_conn_ready(..)` function
- Apply `isort` and `black` formatting
2024-03-22 13:25:23 +01:00
Reinier van der Leer
6dd76afad5 test(agent): Fix VCRpy request header filter for cross-platform cassette reuse (#7040)
- Move filtering logic from tests/vcr/__init__.py to tests/vcr/vcr_filter.py
- Ignore all `X-Stainless-*` headers for cassette matching, e.g. `X-Stainless-OS` and `X-Stainless-Runtime-Version`
- Remove deprecated OpenAI proxy logic
- Reorder methods in vcr_filter.py for readability
2024-03-22 13:08:15 +01:00
Reinier van der Leer
20041d65bf ci(agent): Fix Docker CI for PR runs from forks (vol. 2)
- Fix docker image tag format error when `secrets.DOCKER_USER` is not set
2024-03-22 12:57:29 +01:00
Krzysztof Czerwinski
028d2c319f feat(autogpt): Handle OpenAI API key exceptions gracefully (#6992)
* Better handle no API keys or invalid ones
* Handle exception and exit when invalid key is provided
* Handle any APIError exception when trying to get OpenAI models and exit

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-03-22 12:55:40 +01:00
Reinier van der Leer
9e39937072 ci(agent): Fix Docker CI for PR runs from forks
- Disable 'Log in to Docker hub' step for `pull_request` runs
2024-03-22 12:50:58 +01:00
Reinier van der Leer
07a3c1848c test(agent): Update VCRpy cassettes
Add new entries for `test_dalle`
2024-03-22 11:24:29 +01:00
Reinier van der Leer
dde0c70a81 ci(agent): Matrix CI tests across Linux, macOS and Windows (#7029)
* Matrix the AutoGPT Python CI's `test` job across Ubuntu, macOS and Windows

   - Set up MinIO in a step rather than specifying it under `jobs[test].services`, because services are only supported on Linux runners

   - Add Windows version of step to install Poetry

   - Add macOS compatibility patches to 'Install Poetry (Unix)' and `setup_git_auth` steps
  
   **Caveats:**
   - **No Docker on macOS or Windows**
      * Windows comes with Docker but only supports running Windows containers, while we're mainly interested in using Linux containers for code execution and/or running auxiliary services.
      * [The macOS runner doesn't come with Docker](https://github.com/actions/runner-images/issues/17). Setting it up is possible but takes ~3-4 minutes, and the performance of the Colima engine is poor: a `docker pull` that takes 2 seconds on Linux takes 45 seconds on macOS.

   - **No S3 service available on Windows**
   It seems that running a background process [isn't possible on Windows](https://github.com/actions/runner/issues/598#issuecomment-2011890429), and neither is running Linux-based Docker containers.

* Add `autogpt-agent` and OS-specific flags to Codecov upload step

* Improve caching of Python dependencies in CI by changing the cache key
   - Include hash of `poetry.lock` instead of `pyproject.toml` in key
   - Remove date component from key; it was included to avoid getting stuck to old cached versions of packages when we were still using `requirements.txt`. With `poetry.lock` that is no longer a concern.

* Fix skip check in test_s3_file_storage.py
2024-03-21 21:15:46 +01:00
Krzysztof Czerwinski
76d6e61941 feat(agent): Implement more fault tolerant json_loads function (#7016)
* Implement syntax fault tolerant `json_loads` function using `dem3json`
   - Add `dem3json` dependency

* Replace `json.loads` by `json_loads` in places where malformed JSON may occur

* Move `json_utils.py` to `autogpt/core/utils`

* Add tests for `json_utils`

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-03-21 18:11:36 +01:00
Reinier van der Leer
bca50310f6 fix(agent): Add check for Linux container support to is_docker_available 2024-03-20 21:46:09 +01:00
Reinier van der Leer
632686cfa5 fix(agent): Replace PromptToolkit with click.prompt
- Replace `session.prompt_async(..)` with `click.prompt(..)` in `clean_input` (autogpt/app/utils.py)
- Convert `clean_input` back to a synchronous function (and amend its usages accordingly)
- Remove `prompt-toolkit` dependency

This mitigates issues crashes in some shell environments on Windows.
2024-03-20 17:51:10 +01:00
Reinier van der Leer
1262b72f5c feat(agent): Allow boolean values for available param on @command 2024-03-20 17:24:11 +01:00
Reinier van der Leer
e985f7c105 test(agent): Add skip statements to test_execute_code.py for when Docker is not available 2024-03-20 17:23:14 +01:00
Reinier van der Leer
596487b9ad fix(agent): Windows-proof file_operations
Make file_operations and test_file_operations behave more consistently between Unix and Windows
2024-03-20 17:13:47 +01:00
Reinier van der Leer
a7c0440e9b fix(agent): Fix and windows-proof scan_plugins
- Improve error output for failure to load plugin
- Fix logic to determine qualified module name
- Use `importlib` rather than `__import__` magic function

This unbreaks `scan_plugins` on Windows.
2024-03-20 17:10:03 +01:00
Reinier van der Leer
03ffb50dcf ci(docs): Fix Netlify build ignore check 2024-03-20 11:49:41 +01:00
Krzysztof Czerwinski
e201f57861 feat(autogpt/cli): Display info if code execution is enabled (#6997)
Display if code execution is enabled or not on CLI startup, depending if Docker is available.
2024-03-18 20:09:56 +01:00
Krzysztof Czerwinski
fea62a77bc feat(autogpt/cli): Check if port is available before running server (#6996) 2024-03-16 12:10:43 +01:00
Sukka
dfad535dea fix(docs): Replace polyfill.io by Cloudflare mirror (#6952) 2024-03-15 13:01:30 +01:00
Nicholas Tindle
fa14865163 docs: Redirect AutoGPT users from Forge tutorial with warning (#7014)
Update forge/get-started.md
2024-03-15 11:38:52 +01:00
Krzysztof Czerwinski
ef35028ecb fix(autogpt/cli): Loop until non-empty task is provided by the user (#6995) 2024-03-14 18:06:58 +01:00
Reinier van der Leer
fb97e15e4b lint(agent): Remove unused import in autogpt/agents/base.py 2024-03-13 20:56:45 +01:00
Reinier van der Leer
da4f013a5d fix(agent): Fix & improve agent self-termination and resumption mechanism
- Add `AgentFinished` exception (subclass of `AgentTerminated`)
- Raise `AgentFinished` instead of `AgentTerminated` in `finish` method
- Remove resumption patch from PR #6990 in `BaseAgent`
- Clean up implementation of `finish` in `AgentProtocolServer`
- Add resumption mechanism in `run_auto_gpt` (main.py)
2024-03-13 20:42:12 +01:00
Krzysztof Czerwinski
fd2c26188f fix(agent): Handle action_history-related exceptions gracefully (#6990)
Fix resume-related exceptions

- CLI: prevent resumed agent to register action on already existing one
- Server: prevent trying to json() command without result
2024-03-12 23:05:30 +01:00
Krzysztof Czerwinski
89cf0154f4 feat(autogpt/forge): Send exception details in agent protocol endpoints (#7005)
Send exception details in agent protocol endpoints

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-03-12 17:39:03 +01:00
Krzysztof Czerwinski
cb1297ec74 fix(autogpt): Fix GCS and S3 root path issue (#7010)
Fix root path issue
2024-03-12 17:34:12 +01:00
Krzysztof Czerwinski
37904a0f80 feat(agent): Fully abstracted file storage access with FileStorage (#6931)
* Rename `FileWorkspace` to `FileStorage`
   - `autogpt.file_workspace` -> `autogpt.file_storage`
   - `LocalFileWorkspace` -> `LocalFileStorage`
   - `S3FileWorkspace` -> `S3FileStorage`
   - `GCSFileWorkspace` -> `GCSFileStorage`

* Rename `WORKSPACE_BACKEND` to `FILE_STORAGE_BACKEND`
* Rename `WORKSPACE_STORAGE_BUCKET` to `STORAGE_BUCKET`

* Rewrite `AgentManager` to use `FileStorage` rather than direct local file access
* Rename `AgentManager.retrieve_state(..)` method to `load_agent_state`
* Add docstrings to `AgentManager`

* Create `AgentFileManagerMixin` to replace `AgentFileManager`, `FileWorkspaceMixin`, `BaseAgent.attach_fs(..)`
* Replace `BaseAgentSettings.save_to_json_file(..)` method by `AgentFileManagerMixin.save_state()`
* Replace `BaseAgent.set_id(..)` method by `AgentFileManagerMixin.change_agent_id(..)`
* Remove `BaseAgentSettings.load_from_json_file(..)`
* Remove `AgentSettings.agent_data_dir`

* Update `AgentProtocolServer` to work with the new `FileStorage` system and `AgentFileManagerMixin`

* Make `agent_id` and `file_storage` parameters for creating an Agent:
   - `create_agent`, `configure_agent_with_state`, `_configure_agent`, `create_agent_state` in `autogpt.agent_factory.configurators`
   - `generate_agent_for_task` in `autogpt.agent_factory.generators`
   - `Agent.__init__(..)`
   - `BaseAgent.__init__(..)`
   - Initialize and pass in `file_storage` in `autogpt.app.main.run_auto_gpt(..)` and `autogpt.app.main.run_auto_gpt_server(..)`

* Add `clone_with_subroot` to `FileStorage`
* Add `exists`, `make_dir`, `delete_dir`, `rename`, `list_files`, `list_folders` methods to `FileStorage`

* Update `autogpt.commands.file_operations` to use `FileStorage` and `AgentFileManagerMixin` features

* Update tests for `FileStorage` implementations and usages
* Rename `workspace` fixture to `storage`
   * Update conftest.py
2024-03-11 22:26:14 +01:00
Joyce
6c18627b0f Create Security Policy (#6900)
* Create SECURITY.md

Signed-off-by: Joyce <joycebrum@google.com>

* Update SECURITY.md

Signed-off-by: Joyce <joycebrum@google.com>

* Update SECURITY.md

Signed-off-by: Joyce <joycebrum@google.com>

* Update SECURITY.md

Signed-off-by: Joyce <joycebrum@google.com>

---------

Signed-off-by: Joyce <joycebrum@google.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-03-09 13:20:06 -06:00
Reinier van der Leer
d5aa8d373b Update QUICKSTART.md
* Clarify instructions for entering the Arena
* Clarify that entering the Arena is optional
* Remove indent from top level content
2024-03-05 11:16:44 +01:00
Toran Bruce Richards
7bf31dad35 Update README.md
Adds dark-theme support to star-history graph.
2024-03-03 15:25:36 +00:00
Reinier van der Leer
29d390d54d ci: Disable annoying auto-message discouraging big PRs 2024-03-01 12:28:00 +01:00
Reinier van der Leer
b69f0b2cd0 fix(ci/arena): Fix requesting manual review
Three times the charm, right?
2024-03-01 12:22:05 +01:00
Reinier van der Leer
0308fb45be fix(ci/arena): Fix requesting manual review 2024-03-01 11:44:27 +01:00
Reinier van der Leer
0325370fed fix(ci/arena): Fix requesting manual review 2024-03-01 11:41:49 +01:00
Reinier van der Leer
1e4bd0388f fix(ci/arena): Skip checking file against itself for duplicates 2024-03-01 11:34:47 +01:00
Reinier van der Leer
d1b06f0be3 fix(ci/arena): Improve output format 2024-03-01 11:27:26 +01:00
Reinier van der Leer
3e40b35ef1 fix(ci/arena): Reverse check for pr.mergeable 2024-03-01 11:23:14 +01:00
Reinier van der Leer
70873906b7 fix(ci/arena): Make check for pr.mergeable more specific 2024-03-01 11:20:54 +01:00
Reinier van der Leer
f93a8a93b4 fix(ci/arena): Fix error accessing context & improve log output readability 2024-03-01 11:19:31 +01:00
Reinier van der Leer
4121d3712d fix(ci/arena): Fix syntax & formatting errors 2024-03-01 11:07:54 +01:00
Reinier van der Leer
4546dfdf17 feat(ci/arena): Add logging and debug output to workflow script 2024-03-01 11:02:41 +01:00
Reinier van der Leer
4011294da0 ci(arena): Fix arena-intake workflow
Sorry folks, it's been a while since I wrote javascript :')
2024-03-01 10:41:34 +01:00
Reinier van der Leer
48f6f83f05 ci(arena): Fix arena-intake workflow 2024-03-01 10:35:28 +01:00
Reinier van der Leer
51f5808430 ci: Add 'Arena intake' workflow to automatically check 'entering the arena' PRs 2024-03-01 00:27:10 +01:00
Reinier van der Leer
695049bfa3 ci: Auto-label PRs based on the scope of their diff 2024-02-29 19:38:04 +01:00
Reinier van der Leer
40f98f0f38 chore: Change agbenchmark to directory dependency in autogpt and forge (#6946)
Poetry recently released v1.8.x containing a fix for the issue we were having earlier:
https://github.com/python-poetry/poetry/issues/8548

This means unavailable optional directory dependencies no longer break the docker build.
2024-02-29 19:17:16 +01:00
Reinier van der Leer
c26c79c34c fix(benchmark/reports): Resolve error in format.py on attempt.cost is None 2024-02-29 19:01:47 +01:00
Krzysztof Czerwinski
2c96f6125f feat(agent): Catch & disallow duplicate commands in LLM response parser (#6937)
Raise in `parse_and_process_response` if the proposed operation is the same as the last executed one.
2024-02-29 18:51:13 +01:00
Reinier van der Leer
5047fd9fce lint(agent): Fix linting error in api_manager.py 2024-02-29 18:42:16 +01:00
edwardsp
50e5ea4e54 fix(agent/llm): Fix support for AzureOpenAI (#6927)
* Fix unmasking of `azure_endpoint` in `OpenAICredentials.get_api_access_kwargs()`
* Amend `ApiManager.get_models` to use `AzureOpenAI` client when `api_type` is set to `azure`

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-02-29 18:35:06 +01:00
Reinier van der Leer
ce45c9b267 fix(agent/security): Make CORS more restrictive and configurable
* By default, allow requests originating from http://localhost:{AP_SERVER_PORT} instead of all origins
* Allow configuring allowed CORS origins through `AP_SERVER_CORS_ALLOWED_ORIGINS`
2024-02-28 21:14:49 +01:00
Krzysztof Czerwinski
1881f4f7cd feat(agent): Gracefully handle failure to load non-existing agent (#6938) 2024-02-28 19:18:57 +01:00
Krzysztof Czerwinski
30762c211e fix(agent/execute_code): Disable code execution commands when Docker is unavailable (#6888) 2024-02-28 19:16:02 +01:00
Elias Hohl
5090f55eba fix(agent/security): Mitigate shell injection vulnerabilities (#6903)
* Mitigate shell injection in `MacOSTTS._speech` implementation

* Mitigate shell command control bypassing in `execute_shell` and `execute_shell_popen` commands
   - Improve implementation and docstring of `validate_command` function

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-02-27 13:31:23 +01:00
Reinier van der Leer
1f1e8c9f7d Update CODEOWNERS 2024-02-22 17:26:46 +01:00
Reinier van der Leer
e44ca4185a fix(frontend): Unbreak ChatInputField
Fix specification of `onSubmitted` hook in the `TextField`.
2024-02-21 02:09:23 +01:00
Reinier van der Leer
8fd2e48c1b fix(ci/frontend): Add trigger on push including workflow file 2024-02-21 02:04:13 +01:00
Reinier van der Leer
69ccb185e8 fix(ci/frontend): Add and fix trigger on workflow file 2024-02-21 02:02:41 +01:00
Reinier van der Leer
a88e833831 ci: Revise Frontend CI
- Rename build-frontend.yml to frontend-ci.yml
- Add a `pull_request` trigger
- Disable committing and pushing to a `frontend_build_{hash}` branch
- (Re)enable auto-creating a pull request for the new frontend build
2024-02-21 02:00:33 +01:00
Reinier van der Leer
64f48df62d chore(agent/llm): Update model alias gpt-3.5-turbo -> gpt-3.5-turbo-0125 2024-02-20 17:13:51 +01:00
Reinier van der Leer
0f5490075b fix(ci/benchmark): Install benchmark dependencies
Otherwise `poetry -C benchmark run benchmark/reports/format.py` fails.
2024-02-20 16:56:47 +01:00
Reinier van der Leer
d5f2bbf093 fix(benchmark/reports): Make format.py executable 2024-02-20 14:50:32 +01:00
Reinier van der Leer
7dd97f2f74 fix(agent/browser): Print descriptive error if ChromeDriver install fails
We have been seeing `AttributeError: 'NoneType' object has no attribute 'split'` in Sentry.
According to https://github.com/SergeyPirogov/webdriver_manager/issues/649, this occurs
when Chrome is not installed, or when no suitable ChromeDriver version is available for
the installed version of Chrome.
Instead of the `AttributeError`, we can print a better message for the agent and user to help them fix the issue.

---
Co-authored-by: kcze <kpczerwinski@gmail.com>
2024-02-20 14:04:15 +01:00
Reinier van der Leer
8e464c53a8 fix(agent/llm): Include id in tool_calls in prompt
OpenAI requires the `id` property on tool calls in assistant messages.
We weren't storing it in the `AssistantChatMessage` that is created from the LLM's response,
causing an error when adding those messages back to the prompt.

Fix:
* Add `id` to `AssistantToolCall` and `AssistantToolCallDict` types in model_providers/schema.py
* Amend `_tool_calls_compat_extract_calls` to generate an ID for extracted tool calls

---
Co-authored-by: kcze <kpczerwinski@gmail.com>
2024-02-20 13:28:57 +01:00
Reinier van der Leer
7689a51f53 fix(autogpt/llm): Omit AssistantChatMessage.tool_calls if no tool calls are present
OpenAI likes neither `tool_calls=[]` nor `tool_calls=None`. If no `tool_calls` are in the message, the key must be omitted.

This partially reverts commit 67bafa6302.

---

Co-authored-by: kcze <kpczerwinski@gmail.com>
2024-02-20 13:04:55 +01:00
Reinier van der Leer
c8a40727d1 fix(ci/benchmark): Specify poetry env path for report conversion step 2024-02-20 12:10:49 +01:00
Albert Örwall
4ef912d734 fix(benchmark/challenges): Improve spec and eval of TicTacToe challenge
* In challenge specification, specify `subprocess.PIPE` for `stdin` and `stderr` for completeness
* Additional tweak: let Pytest load only the current file when running the test file as a script

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-02-20 11:52:59 +01:00
Thunder Drag
49a6d68200 fix(agent/setup): Fix revising constraints and best practices (#6777)
In a `for item in list` loop, removing items from the list while iterating causes it to skip over the next item. Fix: refactor `interactively_revise_ai_settings` routine to use while loop for iterating over constraints, resources, and best practices.

---------

Co-authored-by: Kripanshu Jindal <polaris@Polaris.local>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-02-20 11:06:30 +01:00
Ethan Presberg
6cfe229332 feat(frontend): Allow sending a message with the enter key (#6378)
This has not yet been tested due to an issue with compiling on WSL. This was the fix suggested by Pwuts.
2024-02-20 10:49:37 +01:00
Reinier van der Leer
1079d71699 fix(ci/benchmark): Unbreak "Push reports to data branch" step
The `report_subfolder` variable was being populated with two identical lines, because there will be two untracked files in the folder, resulting in the same dirname.
This caused later commands using that variable to fail. Fix is to `sort -u` before storing the value to `report_subfolder`.
2024-02-20 10:35:14 +01:00
Reinier van der Leer
e104427767 feat(ci/benchmark): Generate step summary from benchmark report 2024-02-19 17:13:41 +01:00
Reinier van der Leer
bfd479a50b feat(benchmark): Add reports/format.py script to convert report.json to markdown 2024-02-19 17:13:05 +01:00
Reinier van der Leer
fb63bf4425 chore: Update agbenchmark dependency for agent and forge 2024-02-19 17:11:19 +01:00
Reinier van der Leer
3a17011129 feat(benchmark): Include Steps in Report 2024-02-19 17:08:24 +01:00
Reinier van der Leer
c339c6b54f chore: Update agbenchmark dependency for agent and forge 2024-02-18 17:37:03 +01:00
Reinier van der Leer
7f71d6d9fd debug(benchmark): Improve TestResult validation error output format 2024-02-18 17:10:14 +01:00
Reinier van der Leer
784e2bbb1c fix(ci/benchmark): Mitigate VCS conflicts with files in data branch
`agbenchmark` currently creates files like success_rate.json in the base REPORTS_FOLDER, which causes conflicts in the last step of the benchmark workflow.
To prevent issues, these files must be removed prior to switching to the data branch.
2024-02-17 18:09:44 +01:00
Reinier van der Leer
959377f54c fix(ci/benchmark): Add set +e because we expect (some) challenges to fail 2024-02-17 15:56:55 +01:00
Reinier van der Leer
6bc83e925c chore: Update agbenchmark dependency for agent and forge 2024-02-17 15:56:33 +01:00
Reinier van der Leer
4ede773f5a debug(benchmark): Add more debug code to pinpoint cause of rare crash
Target: https://github.com/Significant-Gravitas/AutoGPT/actions/runs/7941977633/job/21684817491
2024-02-17 15:48:57 +01:00
Reinier van der Leer
d5ad719757 ci: Allow telemetry for non-push events, as long as it's on master
Also disable telemetry for AutoGPT's unit/integration tests.
2024-02-17 15:12:43 +01:00
Reinier van der Leer
1ca9b9fa93 ci: Fix setting/passing TELEMETRY_* environment variables 2024-02-17 14:26:03 +01:00
Reinier van der Leer
15024fb5a1 chore: Update agbenchmark dependency for agent and forge 2024-02-17 14:18:02 +01:00
Reinier van der Leer
fa4bdef17c ci: Update actions to newest versions
- `actions/stale` -> `v9`
- `actions/cache` -> `v4`
- `actions/checkout` -> `v4`
- `actions/setup-node` -> `v4`
- `docker/login-action` -> `v3`
- `actions/setup-python` -> `v5`
- `codecov/codecov-action` -> `v4`
- `actions/upload-artifact` -> `v4`
- `subosito/flutter-action` -> `v2`
- `docker/build-push-action` -> `v5`
- `docker/setup-buildx-action` -> `v3`
2024-02-17 13:59:13 +01:00
Reinier van der Leer
e2b519ef3b debug(benchmark): Make sure TestResult validator error output is sufficient to debug 2024-02-17 13:36:17 +01:00
Reinier van der Leer
09c307d679 debug(benchmark): Add log statement to validator on TestResult
Validation errors don't mention the values causing the error, making it hard to debug. This happened a few times in autogpts-benchmark.yml, so let's put this log statement here until we figure out what makes it crash.
2024-02-17 13:32:22 +01:00
Reinier van der Leer
880c8e804c fix(ci/benchmark): Allow workflow to continue regardless of challenge outcomes 2024-02-17 11:52:26 +01:00
Reinier van der Leer
5f0764b65c chore: Update agbenchmark dependency for agent and forge 2024-02-16 19:07:37 +01:00
Reinier van der Leer
63e6014b27 fix(benchmark): Fix TestResult.fail_reason assignment condition
The condition must be the same as for `success`, because otherwise it causes a crash when `call.excinfo` evaluates to `False` but is not `None`.
2024-02-16 19:05:00 +01:00
Reinier van der Leer
83fcd9ad16 chore: Update agbenchmark dependency for agent and forge 2024-02-16 18:44:58 +01:00
Reinier van der Leer
f9792ed7f3 fix(benchmark): Unbreak -N/--attempts option 2024-02-16 18:43:37 +01:00
Reinier van der Leer
d6ab470c58 Rename autogpts-benchmark-nightly.yml to autogpts-benchmark.yml 2024-02-16 18:32:50 +01:00
Reinier van der Leer
666a5a8777 feat(agent/serve): Report task cost through Step.additional_output
- Added `task_cumulative_cost` and `task_total_cost` attributes to the `Step.additional_output` in the `AgentProtocolServer.execute_step` endpoint.
- Updated `agbenchmark` dependency in Agent and Forge
2024-02-16 18:19:04 +01:00
Reinier van der Leer
21f1e64559 feat(benchmark): Get agent task cost from Step.additional_output 2024-02-16 18:10:46 +01:00
Reinier van der Leer
752bac099b feat(benchmark/report): Add and record TestResult.n_steps
- Added `n_steps` attribute to `TestResult` type
- Added logic to record the number of steps to `BuiltinChallenge.test_method`, `WebArenaChallenge.test_method`, and `.reports.add_test_result_to_report`
2024-02-16 17:53:19 +01:00
Reinier van der Leer
a5de79beb6 ci(benchmark): Add nightly benchmark workflow
Added autogpts-benchmark-nightly.yml, which will run every night at 02:00 UTC with a selection of challenges.
2024-02-16 17:41:58 +01:00
Reinier van der Leer
483c01b681 lint(benchmark): Remove unnecessary pass statement in __main__.py 2024-02-16 17:27:56 +01:00
Reinier van der Leer
992b8874fc chore: Update agbenchmark dependency for agent and forge 2024-02-16 17:22:58 +01:00
Reinier van der Leer
2a55efb322 fix(benchmark): Include WebArenaSiteInfo.additional_info (e.g. credentials) in task input
Without the `additional_info`, it is impossible to get past the login page on challenges where that is necessary.
2024-02-16 17:20:44 +01:00
Reinier van der Leer
23d58a3cc0 feat(benchmark/cli): Add challenge list, challenge info subcommands
- Add `challenge list` command with options `--all`, `--names`, `--json`
   - Add `tabular` dependency
   - Add `.utils.utils.sorted_by_enum_index` function to easily sort lists by an enum value/property based on the order of the enum's definition
- Add `challenge info [name]` command with option `--json`
   - Add `.utils.utils.pretty_print_model` routine to pretty-print Pydantic models
- Refactor `config` subcommand to use `pretty_print_model`
2024-02-16 15:17:11 +01:00
Reinier van der Leer
70e345b2ce refactor(benchmark): load_webarena_challenges
- Reduce duplicate and nested statements
- Add `skip_unavailable` parameter

Related changes:
- Add `available` and `unavailable_reason` attributes to `ChallengeInfo` and `WebArenaChallengeSpec`
- Add `pytest.skip` statement to `WebArenaChallenge.test_method` to make sure unavailable challenges are not run
2024-02-16 15:11:48 +01:00
Reinier van der Leer
650a701317 chore: Update agbenchmark dependency for agent and forge 2024-02-15 18:19:06 +01:00
Reinier van der Leer
679339d00c feat(benchmark): Make report output folder configurable
- Make `AgentBenchmarkConfig.reports_folder` directly configurable (through `REPORTS_FOLDER` env variable). The default is still `./agbenchmark_config/reports`.
- Change all mentions of `REPORT_LOCATION` (which fulfilled the same function at some point in the past) to `REPORTS_FOLDER`.
2024-02-15 18:07:45 +01:00
Reinier van der Leer
fd5730b04a feat(agent/telemetry): Distinguish between production and dev environment based on VCS state
- Added a helper function `.app.utils.vcs_state_diverges_from_master()`. This function determines whether the relevant part of the codebase diverges from our `master`.
- Updated `.app.telemetry._setup_sentry()` to determine the default environment name using `vcs_state_diverges_from_master`.
2024-02-15 16:00:30 +01:00
Reinier van der Leer
b7f08cd0f7 feat(agent/telemetry): Enable performance tracing & update opt-in prompt accordingly 2024-02-15 14:46:36 +01:00
Reinier van der Leer
8762f7ab3d fix(forge): Make watchfiles pattern more specific to prevent unwanted (breaking) reloads
This fixes the issue of changes in artifacts triggering an application reload (which caused connection errors for in-progress requests).
2024-02-15 13:42:38 +01:00
Reinier van der Leer
a9b7b175ff fix(agent/profile_generator): Improve robustness by leveraging create_chat_completion's parse handling 2024-02-15 11:48:07 +01:00
Reinier van der Leer
52b93dd84e fix(cli/agent start): Wait for applications to finish starting before returning
- Added a helper function `wait_until_conn_ready(port)` to wait for the benchmark and agent applications to finish starting
- Improved the CLI's own logging (within the `agent start` command)
2024-02-15 11:26:26 +01:00
Reinier van der Leer
6a09a44ef7 lint(agent): Fix telemetry.py linting error & formatting 2024-02-14 23:31:35 +01:00
Toran Bruce Richards
32a627eda9 Add Privacy Policy link to telementry opt-in. 2024-02-14 16:42:34 +00:00
Reinier van der Leer
67bafa6302 fix(autogpt/llm): AssistantChatMessage.tool_calls default [] instead of None
OpenAI ChatCompletion calls fail when `tool_calls = None`. This issue came to light after 22aba6d.
2024-02-14 14:34:04 +01:00
Reinier van der Leer
6017eefb32 ci: Enable telemetry in CI runs on master 2024-02-14 12:03:54 +01:00
Reinier van der Leer
ae197fc85f feat(agent/telemetry): Distinguish between users
This allows us to get a much better sense of how many users actually experience issues, and how issue occurrence is distributed among users.
2024-02-14 11:50:45 +01:00
Reinier van der Leer
22aba6dd8a fix(agent/llm): Include bad response in parse-fix prompt in OpenAIProvider.create_chat_completion
Apparently I forgot to also append the response that caused the parse error before throwing it back to the LLM and letting it fix its mistake(s).
2024-02-14 11:20:31 +01:00
Reinier van der Leer
88bbdfc7fc ci: Pick 3 challenges to run with --mock in smoke test CI 2024-02-14 02:30:03 +01:00
Reinier van der Leer
d0c9b7c405 lint(benchmark): Remove unused imports 2024-02-14 01:34:30 +01:00
Reinier van der Leer
e7698a4610 chore(agent): Update forge and agbenchmark dependencies 2024-02-14 01:32:28 +01:00
Reinier van der Leer
ab05b7ae70 chore(forge): Update agbenchmark dependency 2024-02-14 01:27:07 +01:00
Reinier van der Leer
327fb1f916 fix(benchmark): Mock mode, python evals, --attempts flag, challenge definitions
- Fixed `--mock` mode
   - Moved interrupt to beginning of the step iterator pipeline (from `BuiltinChallenge` to `agent_api_interface.py:run_api_agent`). This ensures that any finish-up code is properly executed after executing a single step.
   - Implemented mock mode in `WebArenaChallenge`

- Fixed `fixture 'i_attempt' not found` error when `--attempts`/`-N` is omitted

- Fixed handling of `python`/`pytest` evals in `BuiltinChallenge`

- Disabled left-over Helicone code (see 056163e)

- Fixed a couple of challenge definitions
   - WebArena task 107: fix spelling of months (Sepetember, Octorbor *lmao*)
   - synthesize/1_basic_content_gen (SynthesizeInfo): remove empty string from `should_contain` list

- Added some debug logging in agent_api_interface.py and challenges/builtin.py
2024-02-14 01:05:34 +01:00
Reinier van der Leer
bb7f5abc6c fix(agent/text_processing): Fix extract_information LLM response parsing
OpenAI's newest models return JSON with markdown fences around it, breaking the `json.loads` parser.

This commit adds an `extract_list_from_response` function to json_utils/utilities.py and uses this function to replace `json.loads` in `_process_text`.
2024-02-13 18:28:17 +01:00
Reinier van der Leer
393d6b97e6 feat(agent): Add Sentry integration for telemetry
* Add Sentry integration for telemetry
   - Add `sentry_sdk` dependency
   - Add setup logic and config flow using `TELEMETRY_OPT_IN` environment variable
      - Add app/telemetry.py with `setup_telemetry` helper routine
      - Call `setup_telemetry` in `cli()` in app/cli.py
      - Add `TELEMETRY_OPT_IN` to .env.template
      - Add helper function `env_file_exists` and routine `set_env_config_value` to app/utils.py
         - Add unit tests for `set_env_config_value` in test_utils.py
      - Add prompt to startup to ask whether the user wants to enable telemetry if the env variable isn't set

* Add `capture_exception` statements for LLM parsing errors and command failures
2024-02-13 18:10:52 +01:00
Reinier van der Leer
3b8d63dfb6 chore(agent): Update autogpt-forge and agbenchmark dependencies to propagate dependency updates
This also indirectly updates `python-multipart` and fixes "python-multipart vulnerable to Content-Type Header ReDoS" https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/57
2024-02-13 13:24:24 +01:00
Reinier van der Leer
6763196d78 chore(forge): Update agbenchmark dependency 2024-02-13 12:44:17 +01:00
Reinier van der Leer
e1da58da02 chore(forge): Update aiohttp, fastapi, and python-multipart dependencies to mitigate vulnerabilities
Addressed vulnerabilities:

- python-multipart vulnerable to Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/56
   Dependants:
   - FastAPI Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/52
   - Starlette Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/49

- aiohttp is vulnerable to directory traversal - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/45
- aiohttp's HTTP parser (the python one, not llhttp) still overly lenient about separators - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/42
2024-02-13 12:38:36 +01:00
Reinier van der Leer
91cec515d4 chore(benchmark): Update python-multipart dependency to mitigate vulnerability
- python-multipart vulnerable to Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/55
2024-02-13 12:36:00 +01:00
Reinier van der Leer
cc585a014f chore(agent): Update aiohttp and fastapi dependencies to mitigate vulnerabilities
Addressed vulnerabilities:

- python-multipart vulnerable to Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/57
   Dependants:
   - FastAPI Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/54
   - Starlette Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/50

- aiohttp is vulnerable to directory traversal - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/44
- aiohttp's HTTP parser (the python one, not llhttp) still overly lenient about separators - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/41
2024-02-13 12:30:12 +01:00
Reinier van der Leer
e641cccb42 chore(benchmark): Update aiohttp and fastapi dependencies to mitigate vulnerabilities
Addressed vulnerabilities:

- python-multipart vulnerable to Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/55
   Dependants:
   - FastAPI Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/53
   - Starlette Content-Type Header ReDoS - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/48

- aiohttp is vulnerable to directory traversal - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/46
- aiohttp's HTTP parser (the python one, not llhttp) still overly lenient about separators - https://github.com/Significant-Gravitas/AutoGPT/security/dependabot/43
2024-02-13 12:21:52 +01:00
Mahdi Karami
cc73d4104b fix(forge): incorrect import 'sdk' in .actions.finish (#6822) 2024-02-13 11:02:03 +01:00
Reinier van der Leer
250552cb3d fix(agent/tests): Update test_config.py:test_initial_values 2024-02-12 13:26:47 +01: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
7bf9ba5502 chore(agent/llm): Update OpenAI model info
- Add `text-embedding-3-small` and `text-embedding-3-large` as `EMBEDDING_v3_S` and `EMBEDDING_v3_L` respectively
- Add `gpt-3.5-turbo-0125` as `GPT3_v4`
- Add `gpt-4-1106-vision-preview` as `GPT4_v3_VISION`
- Add GPT-4V models to info map
- Change chat model info mapping to derive info for aliases (e.g. `gpt-3.5-turbo`) from specific versions instead of the other way around
2024-02-12 13:17:20 +01:00
Reinier van der Leer
14c9773890 ci(agent): Add GIT_REVISION label to Docker builds 2024-02-12 12:31:04 +01:00
Reinier van der Leer
39fddb1214 fix(agent): Fix application of extra_request_headers in OpenAIProvider 2024-02-12 12:21:30 +01:00
Reinier van der Leer
fe0923ba6c feat(agent/web): Add browser extensions to deal with cookie walls and ads (#6778)
* Add `_sideload_chrome_extensions` subroutine to `open_page_in_browser` in web_selenium.py
   * Sideloads uBlock Origin and I Still Don't Care About Cookies, downloading them if necessary
* Add 2-second delay to `open_page_in_browser` to allow time for handling cookie walls
2024-02-02 18:30:37 +01:00
Reinier van der Leer
dfaeda7cd5 lint(agent/tests): Fix line length in test_utils.py 2024-02-02 18:29:28 +01:00
Reinier van der Leer
9b7fee673e fix(agent/tests): Update test_utils.py:test_extract_json_from_response* in accordance with 956cdc7
Commit 956cdc7 "fix(agent/json_utils): Decode as JSON rather than Python objects" broke these unit tests because they generated "JSON" by stringifying a Python object.
2024-02-02 18:21:19 +01:00
Reinier van der Leer
925269d17b lint(agent): Fix line length in docstring of EpisodicActionHistory.handle_compression 2024-02-02 17:43:42 +01:00
Fernando Navarro Páez
266fe3a3f7 fix(forge): Fix "no module named 'forge.sdk.abilities'" (#6571)
Fixes #6537
2024-02-01 11:23:35 +01:00
Reinier van der Leer
66e0c87894 feat(agent): Add history compression to increase longevity and efficiency
* Compress steps in the prompt to reduce token usage, and to increase longevity when using models with limited context windows
* Move multiple copies of step formatting code to `Episode.format` method
* Add `EpisodicActionHistory.handle_compression` method to handle compression of new steps
2024-01-31 17:51:45 +01:00
Reinier van der Leer
55433f468a feat(agent/web): Improve read_webpage information extraction abilities
* Implement `extract_information` function in `autogpt.processing.text` module. This function extracts pieces of information from a body of text based on a list of topics of interest.
* Add `topics_of_interest` and `get_raw_content` parameters to `read_webpage` commmand
   * Limit maximum content length if `get_raw_content=true` is specified
2024-01-31 15:08:08 +01:00
Reinier van der Leer
956cdc77fa fix(agent/json_utils): Decode as JSON rather than Python objects
* Replace `ast.literal_eval` with `json.loads` in `extract_dict_from_response`

This fixes a bug where boolean values could not be decoded because of their required capitalization in Python.
2024-01-31 14:15:02 +01:00
Reinier van der Leer
83a0b03523 fix(agent/prompting): Fix representation of (optional) command parameters in prompt 2024-01-31 14:10:22 +01:00
Reinier van der Leer
25b9e290a5 fix(agent/json_utils): Make extract_dict_from_response more robust
* Accommodate for both ```json and ```JSON blocks in responses
2024-01-29 15:03:09 +01:00
Reinier van der Leer
ab860981d8 feat(agent/llm): Add support for gpt-4-0125-preview
* Add `gpt-4-0125-preview` model to OpenAI model list
* Add `gpt-4-turbo-preview` alias to OpenAI model list
2024-01-29 11:22:32 +01:00
Reinier van der Leer
a0cae78ba3 feat(benchmark): Add -N, --attempts option for multiple attempts per challenge
LLMs are probabilistic systems. Reproducibility of completions is not guaranteed. It only makes sense to account for this, by running challenges multiple times to obtain a success ratio rather than a boolean success/failure result.

Changes:
- Add `-N`, `--attempts` option to CLI and `attempts_per_challenge` parameter to `main.py:run_benchmark`.
- Add dynamic `i_attempt` fixture through `pytest_generate_tests` hook in conftest.py to achieve multiple runs per challenge.
- Modify `pytest_runtest_makereport` hook in conftest.py to handle multiple reporting calls per challenge.
- Refactor report_types.py, reports.py, process_report.ty to allow multiple results per challenge.
   - Calculate `success_percentage` from results of the current run, rather than all known results ever.
   - Add docstrings to a number of models in report_types.py.
   - Allow `None` as a success value, e.g. for runs that did not render any results before being cut off.
- Make SingletonReportManager thread-safe.
2024-01-22 17:16:55 +01:00
Reinier van der Leer
488f40a20f feat(benchmark): JungleGym WebArena (#6691)
* feat(benchmark): Add JungleGym WebArena challenges
   - Add `WebArenaChallenge`, `WebArenaChallengeSpec`, and other logic to make these challenges work
   - Add WebArena challenges to Pytest collection endpoint generate_test.py

* feat(benchmark/webarena): Add hand-picked selection of WebArena challenges
2024-01-19 20:34:04 +01:00
Reinier van der Leer
05b018a837 fix(benchmark/report): Fix and clean up logic in update_challenges_already_beaten
- `update_challenges_already_beaten` incorrectly marked challenges as beaten if it was present in the report file but set to `false`
2024-01-19 19:52:09 +01:00
Reinier van der Leer
fc37ffdfcf feat(agent/llm/openai): Include compatibility tool call extraction in LLM response parse-fix loop 2024-01-19 19:23:17 +01:00
Reinier van der Leer
8c65f3c748 fix(agent/serve): Fix task cost tracking persistence in AgentProtocolServer
- Pydantic shallow-copies models when they are passed into a parent model, meaning they can't be updated through the original reference. This commit adds a fix for the resulting cost persistence issue.
2024-01-19 19:20:05 +01:00
Reinier van der Leer
354106be7b feat(agent/llm): Add cost tracking and logging to AgentProtocolServer 2024-01-19 17:31:59 +01:00
Reinier van der Leer
9e4dfd8058 fix(benchmark): Fix challenge input artifact upload 2024-01-19 17:29:53 +01:00
Reinier van der Leer
faf5f9e5a4 fix(agent): Fix extract_dict_from_response flakiness
- The `extract_dict_from_response` function, which is supposed to reliably extract a JSON object from an LLM's response, positively discriminated objects defined on a single line, causing issues.
2024-01-19 15:49:32 +01:00
Reinier van der Leer
e4687e0f03 fix(agent): Fix "ChatModelResponse not subscriptable" errors in summarize_text and QueryLanguageModel ability
- `summarize_text` and `QueryLanguageModel.__call__` still tried to access `response["content"]`, which isn't possible since upgrading to the OpenAI v1 client library.
2024-01-19 15:45:31 +01:00
Reinier van der Leer
c5b17851e0 fix(agent): Handle artifact modification properly
- When an Artifact's file is modified by the agent, set its `agent_created` attribute to `True` instead of registering a new Artifact
- Update the `autogpt-forge` dependency to the newest version, in which `AgentDB.update_artifact` has been implemented
2024-01-19 12:08:59 +01:00
Reinier van der Leer
b238abac52 feat(forge/db): Add AgentDB.update_artifact method 2024-01-19 11:41:40 +01:00
Reinier van der Leer
9012ff4db2 refactor(benchmark): Interface & type consoledation, and arch change, to allow adding challenge providers
Squashed commit of the following:

commit 7d6476d329
Author: Reinier van der Leer <pwuts@agpt.co>
Date:   Tue Jan 9 18:10:45 2024 +0100

    refactor(benchmark/challenge): Set up structure to support more challenge providers

    - Move `Challenge`, `ChallengeData`, `load_challenges` to `challenges/builtin.py` and rename to `BuiltinChallenge`, `BuiltinChallengeSpec`, `load_builtin_challenges`
    - Create `BaseChallenge` to serve as interface and base class for different challenge implementations
    - Create `ChallengeInfo` model to serve as universal challenge info object
    - Create `get_challenge_from_source_uri` function in `challenges/__init__.py`
    - Replace `ChallengeData` by `ChallengeInfo` everywhere except in `BuiltinChallenge`
    - Add strong typing to `task_informations` store in app.py
    - Use `call.duration` in `finalize_test_report` and remove `timer` fixture
    - Update docstring on `challenges/__init__.py:get_unique_categories`
    - Add docstring to `generate_test.py`

commit 5df2aa7939
Author: Reinier van der Leer <pwuts@agpt.co>
Date:   Tue Jan 9 16:58:01 2024 +0100

    refactor(benchmark): Refactor & rename functions in agent_interface.py and agent_api_interface.py

    - `copy_artifacts_into_temp_folder` -> `copy_challenge_artifacts_into_workspace`
    - `copy_agent_artifacts_into_folder` -> `download_agent_artifacts_into_folder`
    - Reorder parameters of `run_api_agent`, `copy_challenge_artifacts_into_workspace`; use `Path` instead of `str`

commit 6a256fef4c
Author: Reinier van der Leer <pwuts@agpt.co>
Date:   Tue Jan 9 16:02:25 2024 +0100

    refactor(benchmark): Refactor & typefix report generation and handling logic

    - Rename functions in reports.py and ReportManager.py to better reflect what they do
       - `get_previous_test_results` -> `get_and_update_success_history`
       - `generate_single_call_report` -> `initialize_test_report`
       - `finalize_reports` -> `finalize_test_report`
       - `ReportManager.end_info_report` -> `SessionReportManager.finalize_session_report`
    - Modify `pytest_runtest_makereport` hook in conftest.py to finalize the report immediately after the challenge finishes running instead of after teardown
       - Move result processing logic from `initialize_test_report` to `finalize_test_report` in reports.py
    - Use `Test` and `Report` types from report_types.py where possible instead of untyped dicts: reports.py, utils.py, ReportManager.py
    - Differentiate `ReportManager` into `SessionReportManager`, `RegressionTestsTracker`, `SuccessRateTracker`
    - Move filtering of optional challenge categories from challenge.py (`Challenge.skip_optional_categories`) to conftest.py (`pytest_collection_modifyitems`)
    - Remove unused `scores` fixture in conftest.py

commit 370d6dbf5d
Author: Reinier van der Leer <pwuts@agpt.co>
Date:   Tue Jan 9 15:16:43 2024 +0100

    refactor(benchmark): Simplify models in report_types.py

    - Removed ForbidOptionalMeta and BaseModelBenchmark classes.
    - Changed model attributes to optional: `Metrics.difficulty`, `Metrics.success`, `Metrics.success_percentage`, `Metrics.run_time`, and `Test.reached_cutoff`.
    - Added validator to `Metrics` model to require `success` and `run_time` fields if `attempted=True`.
    - Added default values to all optional model fields.
    - Removed duplicate imports.
    - Added condition in process_report.py to prevent null lookups if `metrics.difficulty` is not set.
2024-01-18 15:19:06 +01:00
Reinier van der Leer
f2595af362 refactor(agent/openai): Upgrade OpenAI library to v1
- Update `openai` dependency from ^v0.27.10 to ^v1.7.2
- Update poetry.lock
- Update code for changed endpoints and new output types of OpenAI library
- Replace uses of `AssistantChatMessageDict` by `AssistantChatMessage`
   - Update `PromptStrategy`, `BaseAgent`, and all of their subclasses accordingly
- Update `OpenAIProvider`, `OpenAICredentials`, azure.yaml.template, .env.template and test_config.py to work with new separate `AzureOpenAI` client
- Remove `_OpenAIRetryHandler` and implement retry mechanism with `tenacity`
- Rewrite pytest fixture `cached_openai_client` (renamed from `patched_api_requestor`) for OpenAI v1 library
2024-01-17 20:11:13 +01:00
Reinier van der Leer
39fd1d6be1 lint(forge): black . and isort . 2024-01-16 16:30:37 +01:00
Reinier van der Leer
f0ede64ded chore(forge): Upgrade OpenAI client lib and LiteLLM from v0 to v1
* Update `openai` dependency from `^0.27.8` to `^1.7.2`
* Update `litellm` dependency from `^0.1.821` to `^1.17.9`
* Migrate llm.py from OpenAI module-level client to client instance
* Update return types in llm.py for new OpenAI and LiteLLM versions
   * Also remove `Exception` as a return type because they are raised, not returned
   * Update tutorials/003_crafting_agent_logic.md accordingly

Note: this changes the output types of the functions in `forge.llm`: `chat_completion_request`, `create_embedding_request`, `transcribe_audio`
2024-01-16 16:14:52 +01:00
Reinier van der Leer
0a4185a919 chore(benchmark): Upgrade OpenAI client lib from v0 to v1 2024-01-16 15:49:46 +01:00
Reinier van der Leer
056163ee57 refactor(benchmark): Disable Helicone integrations
We want to upgrade the OpenAI library, but `helicone` does not support `openai@^1.0.0`, so we're disabling the Helicone integration for now.
2024-01-16 15:38:47 +01:00
Reinier van der Leer
797c5bbc13 fix(agent/workspace): Fix GCS workspace binary file upload 2024-01-16 14:20:54 +01:00
Nicholas Tindle
97023b9a3c feat(agent/server): Make port configurable, add documentation for Agent Protocol DB and port config (#6569)
* docs: Add documentation on how to use Agent Protocol in the template

- Added documentation on how to use Agent Protocol and its settings in the `.env.template` file.
- An explanation is provided for the `AP_SERVER_PORT` and `AP_SERVER_DB_URL` settings.
- This change aims to improve the understanding and usage of Agent Protocol in the project.

* docs: Update usage.md with information about configuring the API port

- Update the documentation for the `serve` mode in `usage.md`
- Add information about configuring the port for the API server using the `AP_SERVER_PORT` environment variable.

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-01-12 14:41:43 +01:00
Or Arbel
48a2186cf3 fix(forge): cast port to int (#6643)
When executing `port = os.getenv("PORT", 8000)` if the port is being fetched from a `.env` file it is fetched as a string.

This caused an error: `TypeError: 'str' object cannot be interpreted as an integer`
2024-01-12 11:24:40 +01:00
Reinier van der Leer
25cc6ad6ae AGBenchmark codebase clean-up (#6650)
* refactor(benchmark): Deduplicate configuration loading logic

   - Move the configuration loading logic to a separate `load_agbenchmark_config` function in `agbenchmark/config.py` module.
   - Replace the duplicate loading logic in `conftest.py`, `generate_test.py`, `ReportManager.py`, `reports.py`, and `__main__.py` with calls to `load_agbenchmark_config` function.

* fix(benchmark): Fix type errors, linting errors, and clean up CLI validation in __main__.py

   - Fixed type errors and linting errors in `__main__.py`
   - Improved the readability of CLI argument validation by introducing a separate function for it

* refactor(benchmark): Lint and typefix app.py

   - Rearranged and cleaned up import statements
   - Fixed type errors caused by improper use of `psutil` objects
   - Simplified a number of `os.path` usages by converting to `pathlib`
   - Use `Task` and `TaskRequestBody` classes from `agent_protocol_client` instead of `.schema`

* refactor(benchmark): Replace `.agent_protocol_client` by `agent-protcol-client`, clean up schema.py

   - Remove `agbenchmark.agent_protocol_client` (an offline copy of `agent-protocol-client`).
      - Add `agent-protocol-client` as a dependency and change imports to `agent_protocol_client`.
   - Fix type annotation on `agent_api_interface.py::upload_artifacts` (`ApiClient` -> `AgentApi`).
   - Remove all unused types from schema.py (= most of them).

* refactor(benchmark): Use pathlib in agent_interface.py and agent_api_interface.py

* refactor(benchmark): Improve typing, response validation, and readability in app.py

   - Simplified response generation by leveraging type checking and conversion by FastAPI.
   - Introduced use of `HTTPException` for error responses.
   - Improved naming, formatting, and typing in `app.py::create_evaluation`.
   - Updated the docstring on `app.py::create_agent_task`.
   - Fixed return type annotations of `create_single_test` and `create_challenge` in generate_test.py.
   - Added default values to optional attributes on models in report_types_v2.py.
   - Removed unused imports in `generate_test.py`

* refactor(benchmark): Clean up logging and print statements

   - Introduced use of the `logging` library for unified logging and better readability.
   - Converted most print statements to use `logger.debug`, `logger.warning`, and `logger.error`.
   - Improved descriptiveness of log statements.
   - Removed unnecessary print statements.
   - Added log statements to unspecific and non-verbose `except` blocks.
   - Added `--debug` flag, which sets the log level to `DEBUG` and enables a more comprehensive log format.
   - Added `.utils.logging` module with `configure_logging` function to easily configure the logging library.
   - Converted raw escape sequences in `.utils.challenge` to use `colorama`.
   - Renamed `generate_test.py::generate_tests` to `load_challenges`.

* refactor(benchmark): Remove unused server.py and agent_interface.py::run_agent

   - Remove unused server.py file
   - Remove unused run_agent function from agent_interface.py

* refactor(benchmark): Clean up conftest.py

   - Fix and add type annotations
   - Rewrite docstrings
   - Disable or remove unused code
   - Fix definition of arguments and their types in `pytest_addoption`

* refactor(benchmark): Clean up generate_test.py file

   - Refactored the `create_single_test` function for clarity and readability
      - Removed unused variables
      - Made creation of `Challenge` subclasses more straightforward
      - Made bare `except` more specific
   - Renamed `Challenge.setup_challenge` method to `run_challenge`
   - Updated type hints and annotations
   - Made minor code/readability improvements in `load_challenges`
   - Added a helper function `_add_challenge_to_module` for attaching a Challenge class to the current module

* fix(benchmark): Fix and add type annotations in execute_sub_process.py

* refactor(benchmark): Simplify const determination in agent_interface.py

   - Simplify the logic that determines the value of `HELICONE_GRAPHQL_LOGS`

* fix(benchmark): Register category markers to prevent warnings

   - Use the `pytest_configure` hook to register the known challenge categories as markers. Otherwise, Pytest will raise "unknown marker" warnings at runtime.

* refactor(benchmark/challenges): Fix indentation in 4_revenue_retrieval_2/data.json

* refactor(benchmark): Update agent_api_interface.py

   - Add type annotations to `copy_agent_artifacts_into_temp_folder` function
   - Add note about broken endpoint in the `agent_protocol_client` library
   - Remove unused variable in `run_api_agent` function
   - Improve readability and resolve linting error

* feat(benchmark): Improve and centralize pathfinding

   - Search path hierarchy for applicable `agbenchmark_config`, rather than assuming it's in the current folder.
   - Create `agbenchmark.utils.path_manager` with `AGBenchmarkPathManager` and exporting a `PATH_MANAGER` const.
   - Replace path constants defined in __main__.py with usages of `PATH_MANAGER`.

* feat(benchmark/cli): Clean up and improve CLI

   - Updated commands, options, and their descriptions to be more intuitive and consistent
   - Moved slow imports into the entrypoints that use them to speed up application startup
   - Fixed type hints to match output types of Click options
   - Hid deprecated `agbenchmark start` command
   - Refactored code to improve readability and maintainability
   - Moved main entrypoint into `run` subcommand
   - Fixed `version` and `serve` subcommands
   - Added `click-default-group` package to allow using `run` implicitly (for backwards compatibility)
   - Renamed `--no_dep` to `--no-dep` for consistency
   - Fixed string formatting issues in log statements

* refactor(benchmark/config): Move AgentBenchmarkConfig and related functions to config.py

   - Move the `AgentBenchmarkConfig` class from `utils/data_types.py` to `config.py`.
   - Extract the `calculate_info_test_path` function from `utils/data_types.py` and move it to `config.py` as a private helper function `_calculate_info_test_path`.
   - Move `load_agent_benchmark_config()` to `AgentBenchmarkConfig.load()`.
   - Changed simple getter methods on `AgentBenchmarkConfig` to calculated properties.
   - Update all code references according to the changes mentioned above.

* refactor(benchmark): Fix ReportManager init parameter types and use pathlib

   - Fix the type annotation of the `benchmark_start_time` parameter in `ReportManager.__init__`, was mistyped as `str` instead of `datetime`.
   - Change the type of the `filename` parameter in the `ReportManager.__init__` method from `str` to `Path`.
   - Rename `self.filename` with `self.report_file` in `ReportManager`.
   - Change the way the report file is created, opened and saved to use the `Path` object.

* refactor(benchmark): Improve typing surrounding ChallengeData and clean up its implementation

   - Use `ChallengeData` objects instead of untyped `dict` in  app.py, generate_test.py, reports.py.
   - Remove unnecessary methods `serialize`, `get_data`, `get_json_from_path`, `deserialize` from `ChallengeData` class.
   - Remove unused methods `challenge_from_datum` and `challenge_from_test_data` from `ChallengeData class.
   - Update function signatures and annotations of `create_challenge` and `generate_single_test` functions in generate_test.py.
   - Add types to function signatures of `generate_single_call_report` and `finalize_reports` in reports.py.
   - Remove unnecessary `challenge_data` parameter (in generate_test.py) and fixture (in conftest.py).

* refactor(benchmark): Clean up generate_test.py, conftest.py and __main__.py

   - Cleaned up generate_test.py and conftest.py
      - Consolidated challenge creation logic in the `Challenge` class itself, most notably the new `Challenge.from_challenge_spec` method.
      - Moved challenge selection logic from generate_test.py to the `pytest_collection_modifyitems` hook in conftest.py.
   - Converted methods in the `Challenge` class to class methods where appropriate.
   - Improved argument handling in the `run_benchmark` function in `__main__.py`.

* refactor(benchmark/config): Merge AGBenchmarkPathManager into AgentBenchmarkConfig and reduce fragmented/global state

   - Merge the functionality of `AGBenchmarkPathManager` into `AgentBenchmarkConfig` to consolidate the configuration management.
   - Remove the `.path_manager` module containing `AGBenchmarkPathManager`.
   - Pass the `AgentBenchmarkConfig` and its attributes through function arguments to reduce global state and improve code clarity.

* feat(benchmark/serve): Configurable port for `serve` subcommand

   - Added `--port` option to `serve` subcommand to allow for specifying the port to run the API on.
   - If no `--port` option is provided, the port will default to the value specified in the `PORT` environment variable, or 8080 if not set.

* feat(benchmark/cli): Add `config` subcommand

   - Added a new subcommand `config` to the AGBenchmark CLI, to display information about the present AGBenchmark config.

* fix(benchmark): Gracefully handle incompatible challenge spec files in app.py

   - Added a check to skip deprecated challenges
   - Added logging to allow debugging of the loading process
   - Added handling of validation errors when parsing challenge spec files
   - Added missing `spec_file` attribute to `ChallengeData`

* refactor(benchmark): Move `run_benchmark` entrypoint to main.py, use it in `/reports` endpoint

   - Move `run_benchmark` and `validate_args` from __main__.py to main.py
   - Replace agbenchmark subprocess in `app.py:run_single_test` with `run_benchmark`
   - Move `get_unique_categories` from __main__.py to challenges/__init__.py
   - Move `OPTIONAL_CATEGORIES` from __main__.py to challenge.py
   - Reduce operations on updates.json (including `initialize_updates_file`) outside of API

* refactor(benchmark): Remove unused `/updates` endpoint and all related code

   - Remove `updates_json_file` attribute from `AgentBenchmarkConfig`
   - Remove `get_updates` and `_initialize_updates_file` in app.py
   - Remove `append_updates_file` and `create_update_json` functions in agent_api_interface.py
   - Remove call to `append_updates_file` in challenge.py

* refactor(benchmark/config): Clean up and update docstrings on `AgentBenchmarkConfig`

   - Add and update docstrings
   - Change base class from `BaseModel` to `BaseSettings`, allow extras for backwards compatibility
   - Make naming of path attributes on `AgentBenchmarkConfig` more consistent
   - Remove unused `agent_home_directory` attribute
   - Remove unused `workspace` attribute

* fix(benchmark): Restore mechanism to select (optional) categories in agent benchmark config

* fix(benchmark): Update agent-protocol-client to v1.1.0

   - Fixes issue with fetching task artifact listings
2024-01-02 22:23:09 +01:00
Himanshu Mittal
b8238c2228 [Documentation Update] Updating Using and Creating Abilities to use Action Annotations (#6653)
Changing ability documentation
2024-01-02 16:32:18 +01:00
Reinier van der Leer
45c8476e67 fix(agent/release): Add gitpython as a direct dependency
gitpython was installed as an indirect dependency via agbenchmark. The release builds don't contain agbenchmark and thus also lack the gitpython package, which breaks the image.
2023-12-14 16:13:55 +01:00
Reinier van der Leer
21d4ce8d4b fix(agent/release): Move auto-gpt-plugin-template to regular dependencies
- Move `auto-gpt-plugin-template` from dev dependencies to regular dependencies in `pyproject.toml`.
- Fixes #6566 - No module named 'auto_gpt_plugin_template'.
2023-12-14 13:31:57 +01:00
Reinier van der Leer
efb5fed462 feat(agent/logging): Log warning when action raises error
- Add logging to capture errors raised during execution of actions in the Agent
- Move `fmt_kwargs` function from `agent_protocol_server.py` to `logs/utils.py`
2023-12-14 02:38:48 +01:00
Reinier van der Leer
167fea3f1e test: Speed up test_gcs_file_workspace
- Change the GCS workspace fixture to module level so it is only built and torn down once. This saves 30-40s on a test run.
2023-12-14 02:31:05 +01:00
Reinier van der Leer
5107c6bbb9 lint: Remove unused os import in file_operations_utils.py 2023-12-14 02:27:40 +01:00
Reinier van der Leer
e428130e4a fix(agent/file_operations): Fix read_file command in GCS and S3 workspaces
- Update the `read_file` function in `file_operations.py` to pass the file's extension to the `decode_textual_file` function.
- Modify the `decode_textual_file` function in `file_operations_utils.py` to accept the file extension as an argument.
- Update the `content` property in the `FileContextItem` class in `context_item.py` to pass the file's extension to the `decode_textual_file` function.
- Update the `test_parsers` function in `test_text_file_parsers.py` to pass the file extension to the `decode_textual_file` function.
2023-12-14 02:07:22 +01:00
Reinier van der Leer
5978031f7a lint: Remove unused import in autogpt/core/utils/json_schema.py 2023-12-13 22:53:27 +01:00
Reinier van der Leer
0e94c7b5fc fix(agent/tty): Fix finish command in TTY mode
- Prevent the Agent from treating `AgentTerminated` like it would any other exception raised by a command.
- The agent should raise AgentTerminated exception to exit the loop.
2023-12-13 22:50:02 +01:00
Reinier van der Leer
acf4df9f87 fix: Implement self-correction for invalid LLM responses
- Fix the parsing of invalid LLM responses by appending an error message to the prompt and allowing the LLM to fix its mistakes.
- Update the `OpenAIProvider` to handle the self-correction process and limit the number of attempts to fix parsing errors.
- Update the `BaseAgent` to profit from the new pasing and parse-fixing mechanism.

This change ensures that the system can handle and recover from errors in parsing LLM responses.

Hopefully this fixes #1407 once and for all.
2023-12-13 22:48:07 +01:00
Reinier van der Leer
6b0d0d4dc8 ci: Reset cassettes for test_dalle 2023-12-13 22:06:00 +01:00
Reinier van der Leer
1bed3c6056 ci: Fix docker release workflow
- Update autogpt-docker-release.yml to correctly sanitize image tags
- This unbreaks the release workflow
2023-12-13 21:41:03 +01:00
Reinier van der Leer
d41963d5fa chore: Bump version to 0.5.0 and update bulletin
- Updated the quick links and user guide URLs in the bulletin
- Released v0.5.0 with cloud-readiness, a new UI, support for the newest Agent Protocol version, and other improvements

See the release notes on Github for more details: https://github.com/Significant-Gravitas/AutoGPT/releases
2023-12-13 19:55:08 +01:00
Reinier van der Leer
9e9142aa8e refactor(agent): Reduce log spam in Agent Protocol mode
- Removed unnecessary print_attribute calls in configurators.py and configurator.py files
- Consolidated printing of configuration attributes in main.py for improved readability and reduced log spam in Agent Protocol mode
2023-12-13 19:47:46 +01:00
Reinier van der Leer
bdc4c38d04 chore(agent): Update dependencies
- Update dependencies
- Remove `markdown` dependency after it became unused in d95e3b5b
2023-12-13 18:31:17 +01:00
Reinier van der Leer
967338193e fix(agent/file_workspace): Fix workspace initialization and listing behavior in GCS and S3 file workspaces
- Update GCSFileWorkspace.initialize() to handle cases where the bucket doesn't exist and create it if necessary
- Add logging to S3FileWorkspace.initialize() and GCSFileWorkspace.initialize()
- Update GCSFileWorkspace.list() and S3FileWorkspace.list() to correctly handle nested paths and return the relative paths of files
- Fix tests for GCSFileWorkspace and S3FileWorkspace to account for the changes in initialization and listing behavior
- Fix S3FileWorkspace.open_file() to correctly switch between binary and text mode
- Added tests to verify the fixes in workspace initialization and listing behavior
2023-12-13 18:07:25 +01:00
Reinier van der Leer
d820239a7c chore(autogpt): Update duckduckgo-search to v4.0.0
- Fixes #6553 (`web_search` command not working)
- v3.x.x of the duckduckgo-search library no longer works, so updating to v4.0.0 unbreaks the `web_search` command
2023-12-13 15:52:33 +01:00
Reinier van der Leer
2e457753d0 chore(forge): Update duckduckgo-search to v4.0.0
- v3.x.x of the duckduckgo-search library no longer works, so updating to v4.0.0 unbreaks the search functionality
2023-12-13 15:47:14 +01:00
Nicholas Tindle
b33f4cca6b Add dependencies required to use PostgreSQL (#6558)
feat: Add dependencies required to use PostgreSQL

- Added psycopg2-binary version 2.9.9 to the dependencies in pyproject.toml
- Updated the poetry.lock file with the new package information
2023-12-12 19:06:50 -06:00
Reinier van der Leer
d95e3b5b54 refactor(agent/file_operations): Refactor file opening/reading and parsing
- Update the signature of `FileWorkspace.open_file` and fix implementations in every workspace backend
- Replace `open()` with `workspace.open_file` in the `read_file` command to use the workspace's file opening functionality
- Fix the parametrization of the `test_text_file_parsers` test to correctly test text file parsers
2023-12-12 17:41:55 +01:00
Reinier van der Leer
198a0ecad6 fix(agent/file_operations): Fix path processing in file_operations.py and across workspace backend implementations
- Adjusted path processing and use of `agent.workspace` in the file_operations.py module to prevent double path resolution.
- Updated the `is_duplicate_operation` and `log_operation` functions in file_operations.py to use the `make_relative` argument of the `sanitize_path_arg` decorator.
- Refactored the `write_to_file`, `list_folder`, and `list_files` functions in file_operations.py to accept both string and Path objects as the path argument.
- Modified the GCSFileWorkspace and S3FileWorkspace classes in the file_workspace module to ensure that the root path is always an absolute path.

This commit addresses issues with path processing in the file_operations.py module and across different workspace backend implementations. The changes ensure that relative paths are correctly converted to absolute paths where necessary and that the file operations logic functions consistently handle path arguments as strings or Path objects. Additionally, the GCSFileWorkspace and S3FileWorkspace classes now enforce that the root path is always an absolute path.
2023-12-12 15:29:25 +01:00
Reinier van der Leer
3e19da1258 refactor: Remove X- prefix from API request headers
- Remove X- prefix from X-AutoGPT-UserID, X-AP-TaskID, and X-AP-StepID headers
- Refactor literal references to "ask_user" to `ask_user.__name__` in AgentProtocolServer
2023-12-12 10:52:18 +01:00
Reinier van der Leer
b083d3245d ci/cd: Strip autogpt- from tag name for Docker release 2023-12-11 15:47:30 +01:00
Reinier van der Leer
b9d7dd1514 ci/cd: Only run AutoGPT Docker Release workflow on releases linked to autogpt-* tag
- Add a condition to the job in autogpt-docker-release.yml to only run on `refs/tags/autogpt-`
2023-12-11 15:34:32 +01:00
Reinier van der Leer
f3faa47814 build: Reduce AutoGPT Docker image size
- Removed firefox-esr package to reduce image size
- Added --no-cache flag to poetry install steps
- Removed source code files after installation to reduce image size
2023-12-08 15:43:36 +01:00
Reinier van der Leer
2d4e16d5e1 fix(agent): Fix type issues with agent ID and apply_overrides_to_ai_settings
- Fix type annotation for `agent_id` in `BaseAgentSettings` class
- Add assertion to ensure `agent_id` is not an empty string in `AgentManager.get_agent_dir()` method
- Change type of `override_name` and `override_role` to be optional in `apply_overrides_to_ai_settings()` function
2023-12-08 14:13:59 +01:00
Reinier van der Leer
fadfea2046 feat(agent/serve): Add StepID header to outgoing LLM requests
- Update `AgentProtocolServer` to include `X-AP-StepID` header in outgoing LLM requests.
2023-12-08 13:54:31 +01:00
Reinier van der Leer
6b19b78f87 feat(agent/serve): Add TaskID and UserID headers to outgoing LLM requests
- Update `AgentProtocolServer` to include `X-AP-TaskID` and `X-AutoGPT-UserID` headers in outgoing requests for Agent Protocol tasks.
- Modify `ModelProvider` and `OpenAIProvider` to allow configuring extra headers to be added to all outgoing requests.
- Fix the type of the `task_id` parameter in `AgentProtocolServer.get_task`
2023-12-08 13:41:37 +01:00
Reinier van der Leer
f734bdb314 fix(forge): Change task_id parameter on AgentDB.get_task from int to str
The `task_id` parameter was incorrectly typed as `int`: the database column is type `String`.
2023-12-08 13:20:20 +01:00
Reinier van der Leer
a17f752705 fix(agent): Fix artifact download method & response
- Update the return type of the `AgentProtocolServer.get_artifact` method to `StreamingResponse`.
- Fix the Content-Disposition header in the response to include quotes around the filename.
2023-12-08 12:36:51 +01:00
Reinier van der Leer
05321c9dce chore(agent): Update forge dependency 2023-12-08 12:17:56 +01:00
Reinier van der Leer
20cf4cce92 fix(forge): Initialize TaskRequestBody.additional_input as None
The `additional_input` field was being initialized as `{}`, which points to the same object for every instance of `TaskRequestBody`.
2023-12-08 12:14:40 +01:00
Reinier van der Leer
55fee0471f fix(agent): Fix setup script
- Remove `poetry install` that caused uninstall+reinstall of benchmark packages on every run
2023-12-08 12:10:07 +01:00
Reinier van der Leer
e2f760aef4 chore: Update forge dependency
- Update forge.sdk.schema import to forge.sdk.model in agent_protocol_server.py
- Update poetry.lock with new forge dependency reference
2023-12-08 01:06:06 +01:00
Reinier van der Leer
8b27f2c47b fix(forge/db): Fix persistence of Step.additional_input and Step.additional_output
- Fixed the persistence issue of additional_input and additional_output in the Step class in `forge.sdk`. The additional_input and additional_output attributes were not typed and initialized properly.
2023-12-08 00:54:38 +01:00
Reinier van der Leer
8985b7b01b fix(agent/serve): Fix artifact creation
- Link agent-created artifacts to the corresponding step
- Mark agent-created artifacts as such
2023-12-07 16:24:14 +01:00
Reinier van der Leer
1f40d72081 feat(agent/workspace): Add GCS and S3 FileWorkspace providers (#6485)
* refactor: Rename FileWorkspace to LocalFileWorkspace and create FileWorkspace abstract class
  - Rename `FileWorkspace` to `LocalFileWorkspace` to provide a more descriptive name for the class that represents a file workspace that works with local files.
  - Create a new base class `FileWorkspace` to serve as the parent class for `LocalFileWorkspace`. This allows for easier extension and customization of file workspaces in the future.
  - Update import statements and references to `FileWorkspace` throughout the codebase to use the new naming conventions.

* feat: Add S3FileWorkspace + tests + test setups for CI and Docker
  - Added S3FileWorkspace class to provide an interface for interacting with a file workspace and storing files in an S3 bucket.
  - Updated pyproject.toml to include dependencies for boto3 and boto3-stubs.
  - Implemented unit tests for S3FileWorkspace.
  - Added MinIO service to Docker CI to allow testing S3 features in CI.
  - Added autogpt-test service config to docker-compose.yml for local testing with MinIO.

* ci(docker): tee test output instead of capturing

* fix: Improve error handling in S3FileWorkspace.initialize()
  - Do not tolerate all `botocore.exceptions.ClientError`s
  - Raise the exception anyways if the error is not "NoSuchBucket"

* feat: Add S3 workspace backend support and S3Credentials
  - Added support for S3 workspace backend in the Autogpt configuration
  - Added a new sub-config `S3Credentials` to store S3 credentials
  - Modified the `.env.template` file to include variables related to S3 credentials
  - Added a new `s3_credentials` attribute on the `Config` class to store S3 credentials
  - Moved the `unmasked` method from `ModelProviderCredentials` to the parent `ProviderCredentials` class to handle unmasking for S3 credentials

* fix(agent/tests): Fix S3FileWorkspace initialization in test_s3_file_workspace.py
  - Update the S3FileWorkspace initialization in the test_s3_file_workspace.py file to include the required S3 Credentials.

* refactor: Remove S3Credentials and add get_workspace function
  - Remove `S3Credentials` as boto3 will fetch the config from the environment by itself
  - Add `get_workspace` function in `autogpt.file_workspace` module
  - Update `.env.template` and tests to reflect the changes

* feat(agent/workspace): Make agent workspace backend configurable
  - Modified `autogpt.file_workspace.get_workspace` function to either take a workspace `id` or `root_path`.
  - Modified `FileWorkspaceMixin` to use the `get_workspace` function to set up the workspace.
  - Updated the type hints and imports accordingly.

* feat(agent/workspace): Add GCSFileWorkspace for Google Cloud Storage
  - Added support for Google Cloud Storage as a storage backend option in the workspace.
  - Created the `GCSFileWorkspace` class to interface with a file workspace stored in a Google Cloud Storage bucket.
  - Implemented the `GCSFileWorkspaceConfiguration` class to handle the configuration for Google Cloud Storage workspaces.
  - Updated the `get_workspace` function to include the option to use Google Cloud Storage as a workspace backend.
  - Added unit tests for the new `GCSFileWorkspace` class.

* fix: Unbreak use of non-local workspaces in AgentProtocolServer
  - Modify the `_get_task_agent_file_workspace` method to handle both local and non-local workspaces correctly
2023-12-07 14:46:08 +01:00
Thomas Runyon
fdd7f8e5f9 Update import path in agent_protocol.py (#6512)
Update agent_protocol.py

Fixed import location of models
2023-12-07 08:44:07 +01:00
SwiftyOS
2c4184b81e Forge: Moved memory and llm out of the sdk 2023-12-06 15:34:08 +01:00
SwiftyOS
ccb700d00a deleted extra files 2023-12-06 15:31:20 +01:00
Swifty
78f5ff17e6 Add GCSWorkspace Implementation to Forge (#6510)
* Added gcs workspace implementation

* Renamed abilites to actions (#6511)

* Renamed abilites to actions

* formatting

* schema to model
2023-12-06 15:30:21 +01:00
SwiftyOS
4c495ce1b0 Remove unnecessary code in cli.py 2023-12-06 14:25:38 +01:00
Reinier van der Leer
c47f81a3e0 chore: Replace deprecated PyPDF2 with pypdf
- Replace deprecated PyPDF2 with successor pypdf to get rid of deprecation warnings and keep receiving updates.
2023-12-05 18:41:52 +01:00
Reinier van der Leer
ffeb45eda3 refactor: Replace deprecated logger.warn calls with logger.warning
- Replaced all instances of logger.warn with logger.warning to get rid of deprecation warnings.
2023-12-05 18:41:12 +01:00
SwiftyOS
0d91006e0b removed entering the arena from the getting started tutorial 2023-12-05 18:00:05 +01:00
Auto-GPT-Bot
a38ddc395b Update cassette submodule 2023-12-05 15:30:16 +00:00
Reinier van der Leer
7b05245286 refactor(agent/config): Modularize Config and revive Azure support (#6497)
* feat: Refactor config loading and initialization to be modular and decentralized

   - Refactored the `ConfigBuilder` class to support modular loading and initialization of the configuration from environment variables.
   - Implemented recursive loading and initialization of nested config objects.
   - Introduced the `SystemConfiguration` base class to provide common functionality for all system settings.
   - Added the `from_env` attribute to the `UserConfigurable` decorator to provide environment variable mappings.
   - Updated the `Config` class and its related classes to inherit from `SystemConfiguration` and use the `UserConfigurable` decorator.
   - Updated `LoggingConfig` and `TTSConfig` to use the `UserConfigurable` decorator for their fields.
   - Modified the implementation of the `build_config_from_env` method in `ConfigBuilder` to utilize the new modular and recursive loading and initialization logic.
   - Updated applicable test cases to reflect the changes in the config loading and initialization logic.

   This refactor improves the flexibility and maintainability of the configuration loading process by introducing modular and recursive behavior, allowing for easier extension and customization through environment variables.

* refactor: Move OpenAI credentials into `OpenAICredentials` sub-config

   - Move OpenAI API key and other OpenAI credentials from the global config to a new sub-config called OpenAICredentials.
   - Update the necessary code to use the new OpenAICredentials sub-config instead of the global config when accessing OpenAI credentials.
   - (Hopefully) unbreak Azure support.
      - Update azure.yaml.template.
   - Enable validation of assignment operations on SystemConfiguration and SystemSettings objects.

* feat: Update AutoGPT configuration options and setup instructions

   - Added new configuration options for logging and OpenAI usage to .env.template
   - Removed deprecated configuration options in config/config.py
   - Updated setup instructions in Docker and general setup documentation to include information on using Azure's OpenAI services

* fix: Fix image generation with Dall-E

   - Fix issue with image generation with Dall-E API

Additional user context: This commit fixes an issue with image generation using the Dall-E API. The code now correctly retrieves the API key from the agent's legacy configuration.

* refactor(agent/core): Refactor `autogpt.core.configuration.schema` and update docstrings

   - Refactor the `schema.py` file in the `autogpt.core.configuration` module.
   - Added docstring to `SystemConfiguration.from_env()`
   - Updated docstrings for functions `_get_user_config_values`, `_get_non_default_user_config_values`, `_recursive_init_model`, `_recurse_user_config_fields`, and `_recurse_user_config_values`.
2023-12-05 16:28:23 +01:00
Reinier van der Leer
03eb921ca6 Roll back cassette updates 2023-12-05 16:25:36 +01:00
Reinier van der Leer
47dc5ad220 fix(test): Fix test that was being skipped because of missing async marker
- Fix a test case in test_web_selenium.py that was failing due to a missing `pytest.mark.asyncio`
2023-12-05 15:34:57 +01:00
Reinier van der Leer
b73fa47089 fix: Exclude Cookie header from VCR matching
- Exclude Cookie header from VCR matching to prevent cache misses caused by CloudFlare cookies.
2023-12-05 15:33:47 +01:00
Reinier van der Leer
775a27eea0 refactor: Modify instruction in prompt for increased JSON output reliability
- Update the instruction in the prompt strategy to ensure the response is pure JSON.
- Remove unnecessary text and make the instruction clearer.
- Also update the error logging to include the received JSON content.

This commit refactors the code in the `one_shot.py` file and the `utilities.py` file.
2023-12-05 15:21:04 +01:00
Reinier van der Leer
b8b792e844 ci: Fix issue in Docker CI
* Stop Docker CI pushing images from PR workflow runs
2023-12-03 17:35:03 +01:00
Auto-GPT-Bot
b1419e856c Update cassette submodule 2023-12-02 14:41:59 +00:00
Reinier van der Leer
760e0a0816 fix: Fix agent poetry env usage in pre-commit hook
- Update the pytest command in the .pre-commit-config.yaml file to use Poetry run instead of directly running pytest in the autogpts/autogpt directory.
2023-12-02 15:39:22 +01:00
Reinier van der Leer
ef35702c4b refactor: Reduce breakage in vector memory module and split MemoryItem class
- Refactored the `MemoryItem` class in the `autogpt.memory.vector.memory_item` module to improve code organization and readability.
- Split the `MemoryItem` class into two separate classes: `MemoryItem` and `MemoryItemFactory`.
- Modified the `get_embedding` function in the `autogpt.memory.vector.utils` module to accept an `EmbeddingModelProvider` for creating embeddings.
- Updated the usage of the `get_embedding` function in the `MemoryItem` class to pass the `embedding_provider` parameter.
- Updated the imports in the affected modules.
2023-12-02 15:38:19 +01:00
Reinier van der Leer
6d439f4f63 fix: Fix check for optional dependencies in check_requirements.py
- Modify check_requirements.py to correctly handle optional dependencies
- Skip optional dependencies when iterating through dependence group dependencies in check_requirements.py
2023-12-02 14:20:11 +01:00
Auto-GPT-Bot
dedab125e1 Update cassette submodule 2023-12-02 13:18:45 +00:00
Reinier van der Leer
6743636996 fix: Fix poetry env issues with the agent's entrypoint scripts
- Update autogpt.bat to use `poetry install` instead of `%PYTHON_CMD% -m poetry install`
- Update autogpt.sh to use `poetry install` instead of `$PYTHON_CMD -m poetry install`
- Use `poetry run` to execute the `autogpt` command in both scripts
2023-12-02 14:15:18 +01:00
Reinier van der Leer
4bcfe72485 fix: fix VCR submodule reference
- Update the reference to the VCR submodule in the autogpt tests
- Previous reference: 1896d8ac12ff1d27b7e9e5db6549abc38b260b40
- New reference: 9996f1d104a1e4f33c1e10aa664d01ea78db2a06
2023-12-02 13:57:50 +01:00
Reinier van der Leer
2c70059c2d fix(agent): Fix setup and run scripts
- Updated the `run` script to also check if `$OPENAI_API_KEY` is empty before copying `.env.example` and prompting the user to set API keys.
- Modified the `setup` script to install `--extras benchmark` separately from the initial `poetry install` command.
- Added `POETRY_INSTALLER_PARALLEL=false` flag to prevent conflicts between `forge` and `agbenchmark` during installation.
2023-12-02 13:48:45 +01:00
Reinier van der Leer
5ca48de07f fix(agent/tests): Fix code execution tests
- Add unique agent ID to mock agent in `conftest.py`
2023-12-02 13:27:36 +01:00
Reinier van der Leer
38f436aa6d test: fix test_huggingface_fail_request_with_delay
- Fix failing test_huggingface_fail_request_with_delay by adding mock API key to agent configuration.
2023-12-02 13:15:23 +01:00
Reinier van der Leer
ba8f83d09d fix: Fix get_current_git_branch test
- Use `InvalidGitRepositoryError` instead of generic `Exception` in `test_get_current_git_branch_failure` to accurately simulate a failure scenario.
2023-12-02 07:02:14 +01:00
Reinier van der Leer
fc429408a3 fix: Update isort config 2023-12-02 06:54:14 +01:00
Reinier van der Leer
e44d70d6d3 fix: Fix pre-commit config for pytest
- Modify the entry command to change directories before running pytest
2023-12-02 06:23:25 +01:00
Reinier van der Leer
fe96f6d783 refactor: Disable mypy and autoflake in CI and pre-commit hook
- Commented out the mypy and autoflake checks in the CI workflow and pre-commit config files.
- The intention is to enable the mypy check again later.
2023-12-02 06:11:51 +01:00
Reinier van der Leer
c072c7d008 refactor: Move isort and mypy configuration into pyproject.toml
- Deleted .isort.cfg and mypy.ini
- Updated pyproject.toml to include isort and mypy configuration
2023-12-02 06:10:45 +01:00
Reinier van der Leer
d938c2595e refactor(agent): Fix all trivial linting errors
* Fix all but one flake8 linting errors
  * Remove unused imports
  * Wrap strings that are too long
  * Add basic autogpts/autogpt/.flake8
* Delete planning_agent.py
* Delete default_prompts.py
* Delete _test_json_parser.py
* Refactor the example function call in AgentProfileGeneratorConfiguration from a string to an object
* Rewrite/update docstrings here and there while I'm at it
* Minor change to the description of the `open_file` command
* Use `user-agent` from config in web_selenium.py
* Delete hardcoded ABILITIES from core/planning/templates.py
* Delete duplicate and superseded test from test_image_gen.py
* Fix parameter definitions in mock_commands.py
* Delete code analysis blocks from test_spinner.py, test_url_validation.py
2023-12-02 05:42:10 +01:00
Reinier van der Leer
604217a957 fix(agent/docker): Fix venv issue fix for Docker build on Google Cloud 2023-12-01 10:39:43 +01:00
Reinier van der Leer
207201d907 fix: Fix venv issue with Docker build on Google Cloud
See also https://stackoverflow.com/a/70340377
2023-11-30 18:39:42 +01:00
Reinier van der Leer
3ad7a2cfaa fix: Fix URL validation test
- Modify the test_url_validation_fails_local_path function to remove the specific match parameter and raise the ValueError without any match requirement.
2023-11-30 18:03:32 +01:00
Reinier van der Leer
6c69e16f31 fix: Fix CI failing tests
- Update `test_config.py` to check if `config.smart_llm` starts with "gpt-4"
- Delete `test_retry_provider_openai.py` as it is no longer needed
- Update `test_url_validation.py` to properly test local file URLs
- Update `test_web_search.py` to assert against expected parts of output
2023-11-30 17:56:05 +01:00
Reinier van der Leer
a771b2c6c1 ci: Push dev build in Docker CI if tests succeed
- Added Docker Hub authentication in the CI workflow
- Added a new step to push the dev build to Docker Hub
2023-11-30 17:45:09 +01:00
Reinier van der Leer
99fe114502 refactor: Make Agent Protocol server DB URL configurable
- Refactor the `run_auto_gpt_server` function to make the Agent Protocol server database URL configurable.
- Use the `os.getenv` method to retrieve the database URL from the environment variable `AP_SERVER_DB_URL`.
2023-11-30 17:26:16 +01:00
Reinier van der Leer
ca6e9e5e34 lint: Address linting issues from #5458
- Fixed linting issues in `json_utils/utilities.py` and `test_json_utils.py`
2023-11-30 17:20:42 +01:00
Reinier van der Leer
ae1e030824 feat: Implement LoggingConfig and structured logging
- Created a new `LoggingConfig` class to represent the logging configuration in the `Config` class.
- Created a new `LogFormatName` enum to represent the available log formats: 'simple', 'debug', and 'structured_google_cloud'.
- Modified the `configure_logging` function to also accept an unpacked `LoggingConfig` object for arguments.
- Updated the `configure_logging` function to use the appropriate log format based on the log level.
- Added a `StructuredLoggingFormatter` class to handle formatting for structured logs.
- Updated the import statements and usages of `configure_logging` etc. in relevant modules to reflect the changes.
- Updated the `config` fixture in the unit tests to include the new logging configuration attributes.
- Updated the CLI with new parameters for log level and format.
- Reordered the parameters of the CLI.
- Removed memory related parameter from CLI.
2023-11-30 17:12:58 +01:00
Reinier van der Leer
c65d6f7ff8 refactor: Remove unused debug argument from plugin setup helpers
- Remove the unused debug argument from the functions `inspect_zip_for_modules`, `initialize_openai_plugins`, `instantiate_openai_plugin_clients`, and `scan_plugins`.
- The debug argument was not being used in these functions and was unnecessary.
2023-11-30 16:17:31 +01:00
Jordan Ellis
0e332c0c12 feat: add evo.ninja (setup only) (#6379) 2023-11-27 17:29:32 +01:00
Reinier van der Leer
e70a6129cf docs: Add workspace information to AutoGPT user guide
- Added information about the workspace folder in the AutoGPT user guide
- Clarified that files outside the workspace folder are inaccessible unless RESTRICT_TO_WORKSPACE is set to False. Provided a warning against disabling RESTRICT_TO_WORKSPACE unless in a sandbox environment.
2023-11-25 18:06:05 +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
Reinier van der Leer
6ed833368a chore: Delete broken and deprecated data ingestion script 2023-11-25 15:36:47 +01:00
Samuel Walker
04d3817863 docs(frontend): Add note for Linux users to instructions (#6284)
Add a note for users on linux with chromium for building the frontend file
2023-11-24 20:07:09 +01:00
Reinier van der Leer
9250376ec2 refactor: Improve warning/error output in project CLI
- Refactor the warning and error messages in the CLI to provide clearer instructions and improve user experience.
2023-11-24 19:16:40 +01:00
Reinier van der Leer
d8bafa9e1b docs: Fix broken links in AutoGPT+Docker guide 2023-11-24 19:01:25 +01:00
Reinier van der Leer
1ce82372fd refactor: Rename Agent's entrypoint to autogpt.sh
- Renamed `run.sh` to `autogpt.sh` for consistent naming and easier command usage.
- Updated relevant documentation to reflect the new entrypoint name.
2023-11-24 18:59:21 +01:00
Reinier van der Leer
6d14f314d7 docs: Change absolute URL to relative link in AutoGPT+Docker guide 2023-11-24 18:55:46 +01:00
Reinier van der Leer
aaee6d2cbb fix: Adjust Docker setup and update documentation
- Adjusted the Docker setup for AutoGPT to expose the full CLI and allow access to the Agent Protocol Server's port.
- Updated the AutoGPT+Docker guide in the documentation to reflect the changes.

Changes made:
- In the `Dockerfile`, removed the `--install-plugin-deps` option from the `ENTRYPOINT` command.
- In the `docker-compose.yml` file, added the `ports` section to expose port `8000`.
- In the `pyproject.toml` file, changed the `run` script to `autogpt.app.cli:cli`.
- In the `docker.md` file, added instructions for the new Docker setup and updated the configuration steps.
2023-11-24 18:50:42 +01:00
Balázs Varga
155718aa69 fix(docker build): Changed agbenchmark dependency to git reference (#6274)
* Fix docker build.
  Changing agbenchmark dependency as git reference instead of folder reference.
2023-11-24 17:26:06 +01:00
Reinier van der Leer
2b4c0f5394 meta: Add todo list for sections to write in AutoGPT dev setup guide 2023-11-24 16:37:23 +01:00
Reinier van der Leer
6c14dd4ba0 fix: Correct markup on homepage of docs 2023-11-24 15:53:08 +01:00
Reinier van der Leer
c25b47e3a5 fix: Fix description of CLI --no-setup flag
- Update the description of the `--no-setup` flag in the CLI `start` command to accurately reflect its functionality.
2023-11-24 15:49:03 +01:00
Reinier van der Leer
9f20c027bf docs: Add section about project CLI to documentation
- Added a new section to the documentation about the project CLI
- Provided an overview of the CLI and its usage
- Included common commands and their descriptions
2023-11-24 15:48:31 +01:00
Reinier van der Leer
58341a9396 docs: Fix small errors and markup issues in documentation
- Updated the link to OpenAI API key page in the setup guide
- Fixed formatting issues in the usage guide
- Updated the link to the `.env.template` file in the usage guide
- Fixed formatting and wording issues in the index page
2023-11-24 15:45:54 +01:00
Reinier van der Leer
bdbf51b012 docs: Add mention of path to agent user guide 2023-11-23 15:10:06 +01:00
Reinier van der Leer
32f301d85e docs: Fix broken link in navbar 2023-11-23 15:05:56 +01:00
Reinier van der Leer
24008e8741 docs: Streamline documentation for getting started (#6335)
* README.md
  - Mark evo.ninja as hackathon winner and new Current Best Agent.
  - Remove hackathon banner.
  - Rewrite sections about Forge, Benchmark, UI, Agent Protocol.
  - Add sections about Leaderboard and CLI.
  - Add quick links for improved user navigation, including links to documentation, contributing guidelines, and quickstart guide.
  - Remove Quickstart.

* docs.agpt.co
  - Removed links to outdated pages from navbar.
  - Added quick links to several pages.
  - Refactored and updated titles in docs site navbar for better readability and consistency.
  - Rewrite intros on homepage to be more clear and professional and less cringe-worthy.
  - Fix broken links.
  - Rewrote setup and usage guides for AutoGPT Agent.
    - Removed mentions of Azure support, except in the Docker guide.
  - Added page with general information about AutoGPT.

* CONTRIBUTING.md
  - Make CONTRIBUTING.md more friendly and accessible: added link to public kanban board, encouraged collaboration, removed section about net-negative PRs.

* autogpt/README.md
  - Update description of AutoGPT to mention "modern Large Language Models" instead of GPT-4.
  - Add quick links for improved user navigation, including links to documentation and contributing guidelines.
  - Add features and setup guide: Agent Protocol, UI features, setup instructions, configuration options, Quickstart, CLI instructions, Agent Protocol server instructions, additional resources (wiki, project board, roadmap), and a note on sustainable development.
  - Update links: documentation, setup instructions.
  - Remove outdated Twitter accounts section.
2023-11-23 14:59:17 +01:00
Reinier van der Leer
84afbf6b45 fix: Update URL validation to allow non-local domains
- Modify the check_local_file_access function to only check for local file prefixes and return True if the URL starts with any of them.
- Remove the section of code that parsed the URL and checked if the hostname was in a list of local domains.

This change fixes the URL validation in the validators.py file. Previously, only local domains were allowed. After the change, non-local domains are allowed again.

(Note: this change was made in response to PR #5318 where the validation was modified to allow more local domains, but also accidentally to block any non-local domain.
2023-11-23 10:45:14 +01:00
Reinier van der Leer
1ba917a3e2 refactor: Remove unnecessary sections from AutoGPT agent README
- Removed Discord, GitHub stars, and Twitter follow badges
- Removed funding and sponsor sections
- Removed contributor and sponsor avatars
- Removed unnecessary line breaks and div tags
2023-11-22 18:11:18 +01:00
Kiran
d27a5b7f49 Fix typo and broken link in no-git setup (#6324)
* Fix typo in heading

* Update link to system requirements

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-11-21 13:24:20 +01:00
Anatolii Kmetiuk
84f6694066 Include poetry install step in dockerless agent setup instructions (#6203)
Without that step, there is an error:
"ModuleNotFoundError: No module named
'auto_gpt_plugin_template'"

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2023-11-21 11:28:10 +01:00
Reinier van der Leer
712b2db3ef Delete unused ai_settings.yml 2023-11-21 11:02:43 +01:00
Reinier van der Leer
b106a61352 Clean up & fix GitHub workflows (#6313)
* ci: Mitigate security issues in autogpt-ci.yml

- Remove unnecessary pull_request_target paths and related variables and config
- Set permissions for contents to read only

* ci: Simplify steps in autogpt-ci.yml workflow using GitHub CLI

- Simplify step in 'autogpt-ci.yml' by using GitHub CLI instead of API for adding label and comment functionality
- Replace curl command with 'gh issue edit' to add "behaviour change" label to the pull request
- Replace gh api command with 'gh issue comment' to leave a comment about the changed behavior of AutoGPT in the pull request

* ci: Fix issues in workflows

- Move environment variable definition to top level in benchmark-ci.yml (because the other job also needs it)
- Removed invalid 'branches: [hackathon]' restriction in hackathon.yml workflow
- Removed redundant 'ref' and 'repository' fields in the 'checkout' step of both workflows.

* ci: Delete legacy benchmarks.yml workflow

* ci: Add triggers for CI workflows

- Add triggers to run CI workflows when they are edited.
- Update the paths for the CI workflows in the trigger configuration.

* fix: Fix benchmark lint error

- Removed unnecessary blank lines in report_types.py
- Fixed string quotes in challenge.py to maintain consistency

* fix: Update task description in password generator data.json

- Update task description in `data.json` file for the password generator challenge to clarify the input requirements and error handling.
- This change is made in an attempt to make the Benchmark CI pass.

* fix: Fix PasswordGenerator challenge in CI

- Fix the behavior of the reference password_generator.py to align with the task description
- Use default password length 8 instead of a random length in the generate_password function
- Retrieve the password length from the command line arguments if "--length" is provided, else set it to 8
2023-11-21 10:58:54 +01:00
Aaron
874000624d Allow AutoGPT to access local web hosts (#5318)
Update validators.py

allow ports to be used in host names. e.g. localhost:8888. 
(Note: code generated by ChatGPT.)
2023-11-16 15:31:22 +01:00
HawkClaws
6664eec8ce Improve the accuracy of the extract_dict_from_response method's JSON extraction (#5458) 2023-11-16 15:19:09 +01:00
SwiftyOS
787c71a9de update benchmarking workflow 2023-11-16 14:49:09 +01:00
Reinier van der Leer
c4494d8c02 fix: Add data directory to lint exclusion list
- Add data directory to exclusion list in `.flake8` configuration file
- Ignore agent-generated python files while linting in `pyproject.toml` file
2023-11-16 14:36:08 +01:00
Reinier van der Leer
0b3aea92d1 fix: Improve parsing of JSON in LLM responses
- Ignored any content preceding the first opening brace in the response
- Updated `utilities.py` file in the `autogpt` package
2023-11-16 14:33:16 +01:00
八马嗷嗷嗷
58292d59bc songyalei entering the arena (#6259) 2023-11-16 11:51:57 +01:00
Craig
d33e7f8ba9 Susan entering the arena (#6107) 2023-11-16 11:51:43 +01:00
Kiran
22fb0f7bbf fix(cli): resolve warning caused by \w in regular string (#6236) 2023-11-16 10:23:25 +01:00
Reinier van der Leer
60264d65db Add fridge, project management labels to do-not-stale list for issues 2023-11-16 10:14:59 +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
SwiftyOS
0719780c91 Allowed all for CORS added autogpt to the arena 2023-11-15 10:53:11 +01:00
SwiftyOS
fa357dd139 fix: Fixing Benchmarking
- Importing missing metadata field in Test class in report_types.py
- Adding GAIA categories 1, 2, and 3 in data_types.py
2023-11-09 10:00:50 +01:00
Reinier van der Leer
6c84035c7e Disable hybrid mode in AutoGPT by default
- Update `big_brain` attribute in `BaseAgentConfiguration` to default to `True`.
- This change disables hybrid mode in AutoGPT, making it use the configured smart LLM for thinking.
2023-11-08 10:11:40 -06:00
Reinier van der Leer
345ff6f88d feat: Add support for new models and features from OpenAI's November 6 update (#6147)
* feat: Add support for new models and features from OpenAI's November 6 update
  - Updated the `OpenAIModelName` enum to include new GPT-3.5 Turbo and GPT-4 models
  - Added support for the `GPT3_v3` and `GPT4_v3` models in the `OPEN_AI_CHAT_MODELS` dictionary
  - Modified the `OpenAIProvider` class to handle the new models and features
  - Updated the schema definitions in the `schema.py` module to include `AssistantToolCall` and `AssistantToolCallDict` 
models
  - Updated the `AssistantChatMessage` and `AssistantChatMessageDict` models to include the `tool_calls` field
  - Refactored the code in various modules to handle the new tool calls and function arguments

  Added support for the new models and features introduced with OpenAI's latest update. This commit allows the system to utilize the `GPT3_v3` and `GPT4_v3` models and includes all necessary modifications to the codebase to handle the new models and associated features.

* Fix validation error in LLM response handling

* fix: Fix profile generator in-prompt example for functions compatibility mode
  - Updated the in-prompt example in the profile generator to be compatible with functions compatibility mode.
  - Modified the example call section to correctly reflect the structure of function calls.
2023-11-07 17:34:11 -06:00
bsenst
578087ec96 fix typos (#5608)
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2023-11-07 17:22:05 -06:00
Surav Shrestha
ad305fd019 docs: fix typos in markdown files (#5871)
* docs: fix typos in QUICKSTART.md

* docs: fix typos in autogpts/autogpt/autogpt/core/ARCHITECTURE_NOTES.md

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2023-11-07 17:16:33 -06:00
Reinier van der Leer
a2dc4b1834 refactor: Delete dead legacy code from autogpt.llm.providers.openai 2023-11-07 16:52:16 -06:00
Reinier van der Leer
7a7a144690 refactor: Tweak prompts & improve AutoGPT agent step output
- Make minor adjustments to prompts in the OneShotAgentPromptConfiguration class
- Enhance the output format of the execute_result in AgentProtocolServer
- Update the key name from "criticism" to "self_criticism" in print_assistant_thoughts function
- Modify the output format of the web search results in the web_search function
2023-11-07 16:51:32 -06:00
Reinier van der Leer
0bd776dde5 fix: Prevent AutoGPT crashes when LLM does not use a command
- Updated `agent.py` to check if `command_name` exists before registering an action in `event_history`.
- Updated `agent_protocol_server.py` to handle the scenario when `execute_command` is not provided by LLM.
- Updated `main.py` to check if `command_name` exists before executing the command and logging the result.
2023-11-07 16:48:54 -06:00
rummsi1337
25c6d019fe Fix for agent_name regex (#6108)
The improved regex was introduced with
https://github.com/Significant-Gravitas/AutoGPT/pull/6096

However, there seems to be an issue with the updated regex;
The uppercase meta-character `\W` only matches non-word characters,
i.e. everything that is NOT [A-Za-z0-9_].
What you actually want is to use the lowercase `\w` character.

Co-authored-by: Simon Rummert <09.milieu.motes@icloud.com>
2023-11-06 10:26:15 +01:00
Filip
17fa807279 AGENT_JARVIS entering the arena (#6118) 2023-11-06 10:24:05 +01:00
Yasien Dwieb
5c53907895 autogptagent entering the arena (#6119) 2023-11-06 10:23:49 +01:00
JawadAbu
fb74e0615e Ahmad entering the arena (#6121)
Co-authored-by: Ahmad <ahmad.majdouba@epfl.ch>
2023-11-06 10:23:28 +01:00
QingHu1227
2e29a681e7 qinghu3 entering the arena (#6124) 2023-11-06 10:23:12 +01:00
Craig
37a62de458 Fixed typo in registry.py (#6127) 2023-11-06 10:22:54 +01:00
yang song
e2809b582f bingoTesting entering the arena (#6125) 2023-11-06 10:22:13 +01:00
hunteraraujo
a1d6087814 Comment change 2023-11-04 10:53:32 -07:00
stargatejy
0b55de62dc MangoAgent-4 entering the arena (#5989) 2023-11-03 11:35:40 +01:00
Qi Z
86f2d0ada3 Q entering the arena (#5990) 2023-11-03 11:27:10 +01:00
warlockee
0866d23481 WarlockAgent entering the arena (#5992) 2023-11-03 11:26:50 +01:00
Lewis Peel
580481d4f7 Orange entering the arena (#5993) 2023-11-03 11:26:29 +01:00
LFarmbot
10aaeac836 SaveAsPDF2 entering the arena (#5994) 2023-11-03 11:26:05 +01:00
Thiago Marafon
abdf449aa5 TMarafon entering the arena (#5995) 2023-11-03 11:25:45 +01:00
Abdul-Mujeeb Aliu
c8fde2d4a4 podcast_agent entering the arena (#5996) 2023-11-03 11:25:27 +01:00
gentaag
8e4d545994 YOU entering the arena (#6003) 2023-11-03 11:24:40 +01:00
gentaag
df415d1ce6 N entering the arena (#6005) 2023-11-03 11:24:06 +01:00
Luka Dumančić
4be8a563c7 agent2 entering the arena (#6007) 2023-11-03 11:23:51 +01:00
Nameless8243
a0432c7aa1 agentSmith entering the arena (#6012) 2023-11-03 11:23:22 +01:00
Amah Ajavon
52b935de90 ArtistManagerGPT entering the arena (#6013) 2023-11-03 11:22:53 +01:00
mtx-light
e39d56781f coder_first entering the arena (#6015) 2023-11-03 11:22:24 +01:00
mtx-light
818186bddc autocoder entering the arena (#6016) 2023-11-03 11:22:06 +01:00
SwiftyOS
5bf00cf247 build: Remove poetry.lock and pyproject.toml
- Removed poetry.lock and pyproject.toml as they are generated files and should not be included in the repository.
2023-11-03 11:20:29 +01:00
Tianxiang(Ivan) Liu
e738a0d733 ivangpt_agent entering the arena (#6021)
* ivangpt_agent entering the arena

* setup autogpt
2023-11-03 11:18:56 +01:00
mvuthegoat
e9f2f9e5ed lilAgent entering the arena (#6023)
* lilAgent entering the arena

* lilAgent entering the arena

---------

Co-authored-by: Minh Vu <mvu@MacBook-Pro-cua-Minh.local>
2023-11-03 11:18:21 +01:00
ces-sonnguyen
914981831a CES-GPT entering the arena (#6027) 2023-11-03 11:18:00 +01:00
jiarung
9c6fde9499 houxe entering the arena (#6028) 2023-11-03 11:17:43 +01:00
Yanniswein
1b524bd5d4 Jean-Michel entering the arena (#6029) 2023-11-03 11:17:27 +01:00
Windii
4850dde27e LbAgent entering the arena (#6030)
Co-authored-by: liubiao <liubiao@youkia.net>
2023-11-03 11:17:05 +01:00
NAN
f01679c4f6 NanAutoGPT entering the arena (#6031) 2023-11-03 11:16:42 +01:00
Rafał Skórka
a90e9e75c1 SkorkobaniecAgent entering the arena (#6035) 2023-11-03 11:16:03 +01:00
Michael Schumacher
569cc10153 Derpmaster entering the arena (#6037) 2023-11-03 11:15:20 +01:00
milog1994
a329e75748 Arena submission project master2 (#6038)
* project_assitant entering the arena

* project_master entering the arena

* project_master2 entering the arena

* Delete arena/project_master2.json
2023-11-03 11:15:06 +01:00
Denis Zuev
e01c082bb8 FLASH entering the arena (#6039) 2023-11-03 11:14:46 +01:00
Windii
ec815f50bf TheAgent entering the arena (#6041)
Co-authored-by: liubiao <liubiao@youkia.net>
2023-11-03 11:14:18 +01:00
Windii
179a62c530 TestLbAgent entering the arena (#6042)
Co-authored-by: liubiao <liubiao@youkia.net>
2023-11-03 11:13:56 +01:00
seeseesky
1bd2a4b426 TEST_TPK entering the arena (#6043) 2023-11-03 11:13:42 +01:00
popperxu
5666c09815 xtest entering the arena (#6044)
Co-authored-by: popperxu <poppperxu@foxmail.com>
2023-11-03 11:13:27 +01:00
hmslsky
50789b2558 sky entering the arena (#6053) 2023-11-03 11:11:49 +01:00
Cyber Ninja
02c2f55b06 ChrisGPT entering the arena (#6055) 2023-11-03 11:11:22 +01:00
Cyber Ninja
290073dd60 tiffGPT entering the arena (#6056) 2023-11-03 11:11:08 +01:00
Exstor
ec9eed6722 agent_2 entering the arena (#6057) 2023-11-03 11:10:49 +01:00
dawn
a662040043 my_gpt entering the arena (#6061)
Co-authored-by: dawnchen123 <114214413@qq.com>
2023-11-03 11:10:29 +01:00
David
15a5cc8b17 davidtestagent entering the arena (#6064)
Co-authored-by: davidning <davidning@tencent.com>
2023-11-03 11:10:13 +01:00
Filip Zorić
83c1a296da MarketResearcherEduRob entering the arena (#6065) 2023-11-03 11:09:51 +01:00
David
9137eb474c davidtest1 entering the arena (#6066)
Co-authored-by: davidning <davidning@tencent.com>
2023-11-03 11:09:31 +01:00
Hugo Mastromauro da Silva
82fecfae1b CodeAutoGPT entering the arena (#6069) 2023-11-03 11:09:11 +01:00
daviddhc20120601
7cd4666b8e medical-agent entering the arena (#6084) 2023-11-03 11:08:57 +01:00
Andrew Bourguignon
0c351aeac0 Add AKBAgent.json for benchmarking (#6072) 2023-11-03 11:08:17 +01:00
Nikolaj Løvenhardt Petersen
434c6e17b3 url-to-lead entering the arena (#6077) 2023-11-03 11:07:53 +01:00
QingquanBao
a9fdf91fe5 AI entering the arena (#6080) 2023-11-03 11:07:39 +01:00
Filip
33080833ef AGENT_GORDON entering the arena (#6082) 2023-11-03 11:07:19 +01:00
Evgenii
aef512e49e Improvement of the regular expression (#6096) 2023-11-03 11:07:03 +01:00
Yashas Reddy
f7340e83cc sgpt entering the arena (#6087) 2023-11-03 11:06:05 +01:00
Eslam Fakhry
e970fdff17 MyFistAgent entering the arena (#6091) 2023-11-03 11:05:40 +01:00
Gaurav Genani
2e1afa0b97 GPTTest entering the arena (#6092) 2023-11-03 11:05:22 +01:00
Esaias Westberg
095d3191b8 arbetsformedlingen entering the arena (#6094) 2023-11-03 11:04:51 +01:00
momokrunic
9c5fdb03b7 TeslaBot entering the arena (#6099) 2023-11-03 11:01:18 +01:00
a0balaton
04f7ac880f bait entering the arena (#6102) 2023-11-03 11:01:02 +01:00
jianglonghui
7f44946746 happy_guy entering the arena (#6104) 2023-11-03 11:00:38 +01:00
wangyijunlyy
9482187c20 wyjagent entering the arena (#6105) 2023-11-03 11:00:17 +01:00
myncow
1aa8d094dc CONNECTBOT entering the arena (#6058)
Co-authored-by: Armin Hamp <ap_hamp@claris.com>
2023-11-03 10:59:58 +01:00
xiazaiba7
d9ec0ac3ad gpt_for_beans entering the arena (#6088) 2023-11-02 09:24:17 +01:00
SwiftyOS
78e92234d6 updated frontend build 2023-11-01 12:28:04 +01:00
Swifty
6a698749e4 Update frontend build (#6068)
Co-authored-by: GitHub Action <action@github.com>
2023-11-01 12:23:47 +01:00
hunteraraujo
bc61ea35b5 Update frontend build (#6063)
Co-authored-by: GitHub Action <action@github.com>
2023-10-31 19:49:14 -07:00
hunteraraujo
9021d8392d feat: Add support for temporary chat message
- Added logic to display a temporary chat message while waiting for the response from the agent.
- When a user sends a message, a temporary chat message is created and displayed.
- Implemented a method to remove the temporary chat message when the response is received or in case of an error.
- Updated the UI to invoke the method for adding a temporary chat message when the send button is pressed.

Feedback:
- This change improves the user experience by allowing them to see their own message immediately while waiting for the response from the agent.
2023-10-31 19:39:56 -07:00
hunteraraujo
94d5d94547 Merge branch 'master' of github.com:Significant-Gravitas/Auto-GPT 2023-10-31 17:39:39 -07:00
hunteraraujo
688ba62db7 feat: Add isWaitingForAgentResponse property to TaskViewModel
- Added a boolean property `isWaitingForAgentResponse` to the `TaskViewModel` class to track whether a task is being created and waiting for a response from the agent.
- When a task is being created, we set `isWaitingForAgentResponse` to `true` and notify the listeners.
- When the task creation process is completed (successfully or not), `isWaitingForAgentResponse` is set to `false` and listeners are notified.
- Updated the `ChatView` class to listen to changes in `TaskViewModel.isWaitingForAgentResponse` to show the loading indicator conditionally.
2023-10-31 16:59:36 -07:00
hunteraraujo
09ad60f98d Update frontend build (#6059)
Co-authored-by: GitHub Action <action@github.com>
2023-10-31 16:37:10 -07:00
hunteraraujo
2f187a853e refactor: Refactor agent message tile rendering logic
- Updated the regular expression pattern to include matching fenced code blocks in addition to headers.
- Set the `dotAll` parameter to `true` to match across multiple lines in the regular expression.
- Wrapped the message container with a `SingleChildScrollView` widget to enable scrolling when the message content exceeds the available space.
- Implemented logic to conditionally render the message as markdown or selectable text based on the value of `hasMarkdown`.
- Modified the `MarkdownStyleSheet` to customize the appearance of blockquotes and code blocks.
- Updated the child widget of the message container to reflect the changes.
2023-10-31 16:33:45 -07:00
Reinier van der Leer
c65b71d51d feat: Re-use Docker container for code execution
- Create a unique container name based on agent ID
- Check if the container with the name exists, otherwise create a new container
- If the container is not running, start it; otherwise, restart it
- Execute the code in the container
- Return the output of the code execution

This change enables reusing the same container for consecutive code execution commands, allowing for iterative changes to the execution environment.

Note: This change also includes handling the case where the Docker image is not found locally by pulling it from Docker Hub. The image used in this case is "python:3-alpine".
2023-10-31 00:03:23 -07:00
hunteraraujo
c3569d1842 Merge branch 'master' of github.com:Significant-Gravitas/Auto-GPT 2023-10-30 16:29:29 -07:00
hunteraraujo
d3c58081ec Update TestAgent.json 2023-10-30 16:29:15 -07:00
Reinier van der Leer
653fc5851d fix: Fix serialization error caused by ignored field in ErrorInfo object
- Change `ErrorInfo` class attribute `_repr` to `repr` for consistent serialization
- Update `__repr__` method to return `self.repr` instead of `self._repr`
2023-10-30 16:10:40 -07:00
Reinier van der Leer
fc1d73ba60 fix: Serialize Exception objects in ActionErrorResult
- Replaced `error` field in `ActionErrorResult` with `ErrorInfo` model.
- Implemented `ErrorInfo` model with necessary fields (`args`, `message`, `exception_type`, `_repr`).
- Added `from_exception` method to `ErrorInfo` model to create an instance from an Exception object.
- Updated `ActionErrorResult.from_exception` method to utilize `ErrorInfo.from_exception`.
- Ensured that `ActionErrorResult` is now fully serializable and won't cause crashes.
- Made necessary changes in code comments and documentation.

This commit fixes crashes caused by attempted serialiation of `AgentException` objects in the `ActionHistory` (as part of `ActionErrorResult`s). To this end, it introduces a new `ErrorInfo` model to encapsulate information about the exception, including the exception type, message, arguments, and representation. The `from_exception` method is added to both `ActionErrorResult` and `ErrorInfo` to create an `ActionErrorResult` object from an exception, extracting the relevant information.
2023-10-30 15:52:56 -07:00
SwiftyOS
d9fbd26b85 fix: Update agent creation logic and error message
- Update the logic for checking if an agent name already exists to be case-insensitive.
- Update the error message when an agent with the same name already exists to specify that the name should be unique regardless of case.
2023-10-30 15:36:14 +01:00
Silen Naihin
2bd05827f9 Merge branch 'master' of https://github.com/Significant-Gravitas/Auto-GPT 2023-10-27 08:17:05 -07:00
Silen Naihin
bbdb113f4e deleting test agent 2023-10-27 08:16:41 -07:00
Merwane Hamadi
5ff3f2dbbb Hackathon CI: use agbenchmark instead of mock 2023-10-27 07:44:02 -07:00
Merwane Hamadi
bd496066dc Hackathon CI: change name of folder 2023-10-27 07:27:43 -07:00
Merwane Hamadi
336e78eca0 Update Hackathon CI 2023-10-27 07:21:29 -07:00
SwiftyOS
4109dca3f7 feat: Add webdriver-manager package
- Added the  package to the project dependencies
- The  package is used to automatically manage drivers for different browsers
2023-10-27 14:35:28 +02:00
Oğuzhan BOZKURT
22ba2459c9 hodri entering the arena (#5985) 2023-10-27 13:49:52 +02:00
seeseesky
f4985395a9 test-tpk entering the arena (#5979) 2023-10-27 12:24:36 +02:00
Jordan Ellis
68edb184cd Update evo-ninja.json (#5966)
Co-authored-by: Swifty <craigswift13@gmail.com>
2023-10-27 12:23:55 +02:00
Luis
6c0575233f Arena submission aware agent (#5965)
Submit
2023-10-27 12:22:47 +02:00
warlockee
026b632f8f autogpt_warlock entering the arena (#5976)
Co-authored-by: erikl <erikl@Eriks-MacBook-Pro.local>
2023-10-27 12:19:11 +02:00
MoWitheSmileyFace
405adee71d Drench entering the arena (#5977) 2023-10-27 12:18:50 +02:00
aixiaoxin
11fbbc6df6 aixiaoxin entering the arena (#5982) 2023-10-27 12:17:30 +02:00
ezirmusitua
52106e8280 WRITER entering the arena (#5984) 2023-10-27 12:17:03 +02:00
JasonD
0f44c9db50 AutoGenius entering the arena (#5972)
Co-authored-by: Dyson <dyson@bituniverse.org>
2023-10-27 12:16:34 +02:00
merwanehamadi
21b809794a Update hackathon.yml (#5975) 2023-10-26 13:47:36 -07:00
Reinier van der Leer
6f66376bb8 AutoGPT: require function call if only 1 function is given 2023-10-26 12:02:15 -07:00
Reinier van der Leer
6678f6bd72 AutoGPT: Fix showing of task input in UI 2023-10-26 11:49:28 -07:00
Merwane Hamadi
5fd82c7f15 Add CI for the hackathon and fix TestAgent.json 2023-10-26 08:27:47 -07:00
illyx1
8f1b9fc670 illynetV2 entering the arena (#5971) 2023-10-26 15:27:41 +02:00
illyx1
0e408053e2 illyx1 entering the arena (#5970) 2023-10-26 15:06:48 +02:00
Howard-Cheung
1a6ca503a5 zczc entering the arena (#5969) 2023-10-26 15:05:37 +02:00
bigfatball
ab2a618335 Add Mary.json (#5875)
Co-authored-by: Anthony <tony@DESKTOP-6SR9O93>
2023-10-26 12:43:36 +02:00
SwiftyOS
19175badee Updated commit hash of entries 2023-10-26 12:29:21 +02:00
SwiftyOS
6c9152a95c Removed variants of testagent to avoid path collision 2023-10-26 11:15:50 +02:00
fraven01
3e366d8de0 TESTAGENT entering the arena (#5884) 2023-10-26 11:06:39 +02:00
xhjxhj001
ebf2ff3ceb ai_assistant entering the arena (#5886) 2023-10-26 11:06:23 +02:00
Ruttanard Ruttanapan
586660d6e0 DE entering the arena (#5963) 2023-10-26 11:05:52 +02:00
EthanF
c481d51c59 research_analyst entering the arena (#5895) 2023-10-26 11:04:55 +02:00
EthanF
7d89d90851 ra entering the arena (#5897) 2023-10-26 11:04:39 +02:00
EthanF
b3486c1696 ra1 entering the arena (#5898) 2023-10-26 11:04:26 +02:00
Daniel Leidisch
1e66e01849 QuantumQuill entering the arena (#5899) 2023-10-26 11:04:13 +02:00
Erland Lewin
c4df3b7074 Pelle entering the arena (#5900) 2023-10-26 11:04:00 +02:00
Victor Leduc
03acf625c5 victor2-0 entering the arena (#5903) 2023-10-26 11:03:25 +02:00
Marvin Plummeridge
e3f2eb4c1d test1 entering the arena (#5904) 2023-10-26 11:03:09 +02:00
Marvin Plummeridge
f26702734e cssupdater entering the arena (#5906) 2023-10-26 11:02:44 +02:00
Pho
decc99da48 set entering the arena (#5911) 2023-10-26 11:02:19 +02:00
sebabetz
c50e441323 avengaGPT entering the arena (#5912) 2023-10-26 11:01:59 +02:00
Uday Sagar
da2ccdfd2e agentgpt entering the arena (#5913) 2023-10-26 11:01:33 +02:00
KapitanFernand
1918601b9f Zoidberg entering the arena (#5917) 2023-10-26 10:59:15 +02:00
Cao Yanfei
5c9f3bee30 project_review entering the arena (#5918)
Co-authored-by: caoyanfei <caoyanfei@dycjr.com>
2023-10-26 10:58:34 +02:00
stargatejy
2efd082525 MangoAI entering the arena (#5919) 2023-10-26 10:58:17 +02:00
Hanzhang
5336352ce9 liuzh entering the arena (#5920) 2023-10-26 10:58:03 +02:00
emptykid
f872586073 xq_agent entering the arena (#5921)
Co-authored-by: xiaoqiang <qiang0902@126.com>
2023-10-26 10:57:31 +02:00
linggong2023
d36cf2b116 linggong entering the arena (#5922) 2023-10-26 10:57:06 +02:00
prashanthi-instalily
0c940535bf mygent entering the arena (#5923) 2023-10-26 10:56:18 +02:00
Rui Geng
f11cc545f3 LegalAgent entering the arena (#5931) 2023-10-26 10:55:59 +02:00
sn0wdown
b6cfb67a28 beyond entering the arena (#5932) 2023-10-26 10:55:11 +02:00
ltzmaxwell
af6c2b98e9 ltzAgent entering the arena (#5933) 2023-10-26 10:54:39 +02:00
ghd9201
6eb8c0eb0c MoTS entering the arena (#5934) 2023-10-26 10:54:21 +02:00
asasasheshou
538786ba71 zcb entering the arena (#5935) 2023-10-26 10:53:47 +02:00
Fang Bokun
1ebaa6d03d FcsummerGPT entering the arena (#5936) 2023-10-26 10:53:21 +02:00
Cary
b497c2186e ZoeyGPT entering the arena (#5937) 2023-10-26 10:53:02 +02:00
Veronica
4b9f0bc288 justwondering entering the arena (#5938)
* justwondering entering the arena

* justwondering updating the arena

* justwondering updating arena
2023-10-26 10:52:43 +02:00
Hamburg
2db6ae3a09 minister_agent entering the arena (#5940)
Co-authored-by: 增益 <daimian.dm@autonavi.com>
2023-10-26 10:50:57 +02:00
Jinho Choi
8eccfd7faf actor_tester entering the arena (#5941) 2023-10-26 10:50:34 +02:00
mariepop13
6fb7ebc6c7 IncredibubbleTea entering the arena (#5949) 2023-10-26 10:49:29 +02:00
zlipknot
f9227b0797 zlipknot_1 entering the arena (#5950) 2023-10-26 10:49:15 +02:00
zlipknot
8c8cd15280 zlipknot_test_agent_4 entering the arena (#5951) 2023-10-26 10:48:51 +02:00
AgentService
3a7e83898f SmartAgent entering the arena (#5953) 2023-10-26 10:48:30 +02:00
AgentService
21c7cb51d6 MyAgent entering the arena (#5954) 2023-10-26 10:48:13 +02:00
Moiz Sajid
91964ed256 MyExampleAgent entering the arena (#5955) 2023-10-26 10:47:58 +02:00
Enrico-Franke
149ab3c7b5 Mira entering the arena (#5956) 2023-10-26 10:47:38 +02:00
Pablo R. López
702cde7546 PAgentAI entering the arena (#5957) 2023-10-26 10:47:22 +02:00
zhang yuan
87cacacd72 lawk entering the arena (#5958) 2023-10-26 10:47:07 +02:00
gensy421
d118edac20 ag1 entering the arena (#5959) 2023-10-26 10:46:49 +02:00
skadai
add6c6aa7c chengshu entering the arena (#5960)
Co-authored-by: sk <shuangkai.chang@recurvedata.com>
2023-10-26 10:46:27 +02:00
illyx1
4e5f4cc0de illynet entering the arena (#5961) 2023-10-26 10:46:12 +02:00
stargatejy
89d333f3bb MangoAgent-3 entering the arena (#5944) 2023-10-25 18:08:59 +02:00
CC
ab362f96c3 ccace entering the arena (#5880) 2023-10-23 11:20:51 +02:00
WENJUN ZHANG
90082b46ff miniAgent entering the arena (#5877) 2023-10-23 11:20:35 +02:00
chenxu
4edc791633 metware entering the arena (#5876) 2023-10-23 11:20:19 +02:00
zaheerahmad33
30a2286aaa zaheer entering the arena (#5874) 2023-10-23 11:20:00 +02:00
Dmytro Gnatyshyn
e289f8f8ab first-agent entering the arena (#5872) 2023-10-23 11:19:46 +02:00
Hubert S
9823f9e795 autogpt-hackathon2 entering the arena (#5870) 2023-10-23 11:19:29 +02:00
Asif Iqbal
7364f2ec2a career-agent entering the arena (#5869) 2023-10-23 11:19:13 +02:00
Hubert S
8261c0c3a2 autogpt_hackathon1 entering the arena (#5867) 2023-10-23 11:18:52 +02:00
Matthew
44d4800b2c 480bot entering the arena (#5866) 2023-10-23 11:18:37 +02:00
ggonza156
0b6c409dc6 gaby_agent entering the arena (#5865) 2023-10-23 11:17:59 +02:00
Ariel Kwiatkowski
a44d169416 AutoGPT-ariel entering the arena (#5864) 2023-10-23 11:17:39 +02:00
Nicholas Tindle
b4ee485906 Rename autogpts/autogpt/CITATION.cff to CITATION.cff (#5785)
* Rename autogpts/autogpt/CITATION.cff to CITATION.cff

* Update CITATION.cff
2023-10-22 13:25:05 -05:00
Reinier van der Leer
16e266c65f Set up CI for development branch; deprecate stable branch 2023-10-21 15:46:53 -07:00
Danny Febrero
eda21d5192 business entering the arena (#5861) 2023-10-21 09:19:47 -07:00
CC
115f9f7f5e CCAgent entering the arena (#5860) 2023-10-21 09:19:30 -07:00
Ishan Girdhar
b0bf039a61 AlphaCISO entering the arena (#5857) 2023-10-21 09:19:16 -07:00
easn
4ecf940674 easn entering the arena (#5856) 2023-10-21 09:19:01 -07:00
Tomohide Hirakawa
0f54c65d5d stefan entering the arena (#5854) 2023-10-21 09:18:31 -07:00
Silen Naihin
415b4ceed1 Merge branch 'master' of https://github.com/Significant-Gravitas/Auto-GPT 2023-10-20 21:13:13 -07:00
Silen Naihin
e5e0c4bf9d reverting new challenges 2023-10-20 21:13:09 -07:00
Sarah Grevy Gotfredsen
03e56fece5 akela entering the arena (#5851) 2023-10-20 13:09:01 -07:00
mitch11223
32300906c9 kingmitch entering the arena (#5848) 2023-10-20 10:21:22 -07:00
vleonidas
643846eb04 analystgpt entering the arena (#5847) 2023-10-20 10:12:23 -07:00
Silen Naihin
825c3adf62 case sensitivity, updating challenges 2023-10-20 08:26:29 -07:00
hunteraraujo
0e51b12d61 Merge branch 'master' of github.com:Significant-Gravitas/Auto-GPT 2023-10-20 08:08:04 -07:00
hunteraraujo
82434a248c Disable markdown as it causes crash for some responses 2023-10-20 08:07:27 -07:00
Silen Naihin
d29785e66d Merge branch 'master' of https://github.com/Significant-Gravitas/Auto-GPT 2023-10-20 07:21:44 -07:00
Silen Naihin
09f6a37292 fix capitalization, rename 2023-10-20 07:21:41 -07:00
FIresInWind
ef52c2f73a woohoo_agent entering the arena (#5825) 2023-10-20 07:04:49 -07:00
emads7
fc22dd01c9 LAWYER_EMAD entering the arena (#5826) 2023-10-20 07:04:35 -07:00
Jovan Kanevche
eab4275cd7 UniAgent entering the arena (#5828) 2023-10-20 07:04:20 -07:00
Brad Anderson
c38809a71a contentstrategy entering the arena (#5830) 2023-10-20 07:04:02 -07:00
gabenitez
62a9510d61 MyExample entering the arena (#5831) 2023-10-20 07:03:44 -07:00
Luis
de2473d076 AwareAgent entering the arena (#5832) 2023-10-20 07:03:30 -07:00
Jay Zhang
d14f27ac7d YoudaoAutoGPT entering the arena (#5833) 2023-10-20 07:03:16 -07:00
Jay Zhang
3ffef50dfc ZJgpt entering the arena (#5834) 2023-10-20 07:02:48 -07:00
ugyuji
b4dd0c6d94 UGYUJI entering the arena (#5835) 2023-10-20 07:02:34 -07:00
Umar-Azam
fc8622689d ResearchAgent entering the arena (#5837) 2023-10-20 07:02:20 -07:00
Andy Wong
6b5cef218f WYC entering the arena (#5839) 2023-10-20 07:02:06 -07:00
magic.chen
4acc2f5e15 devagent entering the arena (#5841) 2023-10-20 07:01:50 -07:00
albags
9cabd16bc9 agsCehAgent entering the arena (#5827) 2023-10-20 07:01:28 -07:00
xpineda
3dc73e67ab Bagi_agent entering the arena (#5842) 2023-10-20 07:00:21 -07:00
LinYushen
baafadac69 hello entering the arena (#5843) 2023-10-20 06:59:59 -07:00
xpineda
6cee22585e Pumu2_agent entering the arena (#5844) 2023-10-20 06:59:46 -07:00
Nilllas
b77450fc3e testAgent entering the arena (#5845) 2023-10-20 06:59:10 -07:00
SwiftyOS
dae6ee2c47 Removed unfinished tutorials 2023-10-20 14:27:07 +02:00
hunteraraujo
2187f66149 Show error toast for 5xx error 2023-10-20 00:20:46 -07:00
hunteraraujo
27ff99a9a5 Check for inline code blocks in agent step 2023-10-20 00:15:20 -07:00
hunteraraujo
952f181377 Stop continuous mode when agent returns isLast 2023-10-20 00:13:12 -07:00
hunteraraujo
9219bfba0e add Markdown detection and rendering
- Implement `containsMarkdown` function to identify messages with Markdown
- Utilize `flutter_markdown` package to render detected Markdown content
- Enhance chat UI to conditionally display plain text or formatted Markdown
2023-10-19 22:19:09 -07:00
hunteraraujo
17d93421e7 Add flutter_markdown dependency 2023-10-19 22:13:15 -07:00
MittenCrab
052802ff8d zhizhi entering the arena (#5821)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-19 17:48:01 -07:00
Nadeem Shabir
8ef4098a1f NadeemAgent entering the arena (#5824)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-19 17:46:59 -07:00
Silen Naihin
655bc8b08e fix data challenges 2023-10-19 17:42:24 -07:00
Silen Naihin
7ddef39918 scrape synthesize challenge additions 2023-10-19 17:39:09 -07:00
Reinier van der Leer
b4588f6425 Fix typo in exceptions.py (#5813)
Fix typo in exceptions.py
2023-10-19 10:22:21 -07:00
Donald Nwokoro
4b1e8f6e8b Improved Documentation for Windows Users (#5410)
This commit introduces enhancements to the project's documentation, specifically targeted at Windows users who may encounter issues post installing WSL. The added content aims to facilitate a smoother setup experience by providing clear and concise solutions to common problems encountered during the installation process.

Main Changes:
- Instructions on updating WSL for resolving initial setup issues.
- Solutions to fix ‘FileNotFoundError’ or ‘No such file or directory’ errors by addressing line-ending discrepancies between Windows and Unix/Linux systems.
- Recommendations to store project files within the WSL file system for avoiding issues related to path translations and permissions.

These changes are derived from personal experiences and are intended to prevent Windows users from spending additional time troubleshooting issues already resolved, allowing them to have a more consistent development environment setup.

Lastly, a big shout-out to the developers and contributors for their ongoing efforts and commitment to maintaining and improving this project. Your hard work is greatly appreciated by the community!
2023-10-19 12:20:32 +02:00
Isayah Culbertson
2bbc3b9cbc updated CLI-USAGE.md agents command to current agent command (#5805) 2023-10-19 12:08:04 +02:00
Rafał Łazicki
9b3c6dec62 docs: fix typo in QUICKSTART.md (#5700) 2023-10-19 12:05:41 +02:00
bsenst
1559b5dfdd fix typo (#5715) 2023-10-19 12:05:20 +02:00
Mike DuPont
9ae284e885 typo Heisenberg.json (#5720)
fix json
2023-10-19 12:04:56 +02:00
SnowYoung
2529753684 stockAgent entering the arena (#5816) 2023-10-19 12:04:19 +02:00
hongzzz
a07d36d769 ASSISTANT entering the arena (#5714) 2023-10-19 12:04:02 +02:00
Shrikrishna Khose
01d4534726 icode entering the arena (#5713) 2023-10-19 12:03:43 +02:00
Rogerio Hirooka
77f88b81c3 Lirum entering the arena (#5711)
Co-authored-by: rogerioth <rogerioh@gmail.com>
2023-10-19 12:02:43 +02:00
Sergii Gromovyi
e4547b0045 Lab49Agent entering the arena (#5704)
Co-authored-by: Sergii Gromovyi <sergii@futureproof.technology>
2023-10-19 12:02:24 +02:00
bigsml
16073ababa aiaudit entering the arena (#5698) 2023-10-19 12:01:01 +02:00
Heng Wang
7c2f1eb03e bot01 entering the arena (#5697)
Co-authored-by: arthur-heng <wh22113210554@gmail.com>
2023-10-19 12:00:44 +02:00
J. Park
1a7a504e17 AgentJPark entering the arena (#5696)
Co-authored-by: username <email@email.com>
2023-10-19 12:00:23 +02:00
Victor Shneer
31490003d2 AutoTDD entering the arena (#5693)
Co-authored-by: Victor Shneer <victors@magnadint.com>
2023-10-19 12:00:06 +02:00
Anders Andersen
93149a34b7 AndersLensway entering the arena (#5689) 2023-10-19 11:59:49 +02:00
beavishead
3ccbcf9239 babe_perphorator_ entering the arena (#5688) 2023-10-19 11:59:32 +02:00
Davon Dong
4a2b492e92 xmly entering the arena (#5683)
Co-authored-by: jason <jason.dong@ximalaya.com>
2023-10-19 11:59:20 +02:00
aodrasa
93edbc41d0 aWOL entering the arena (#5680) 2023-10-19 11:59:08 +02:00
cislerk
1e50f8584c cislerk2 entering the arena (#5679) 2023-10-19 11:58:47 +02:00
andresSintec
2a3cd0dce4 yarbis entering the arena (#5675) 2023-10-19 11:58:32 +02:00
alexsoshnikov
9217262b39 newAgent entering the arena (#5674)
Co-authored-by: alexsoshnikov <a.soshnikov@it-only.ru>
2023-10-19 11:58:17 +02:00
onewesong
0549472372 fst entering the arena (#5672) 2023-10-19 11:58:06 +02:00
Jon Ng
284ae8dcc6 AUTO_GPT_JON001 entering the arena (#5671) 2023-10-19 11:57:52 +02:00
leobusar
3aa92c082a chatgpt_taller entering the arena (#5668) 2023-10-19 11:52:19 +02:00
Tianyu Guo (Ti)
9be8412f23 researchGPT entering the arena (#5665) 2023-10-19 11:52:03 +02:00
Daniil Lebedev
abf435e843 CYNO_AGENT entering the arena (#5664)
Co-authored-by: Dr1yl <lebedev@cyno.one>
2023-10-19 11:51:47 +02:00
Maanvitha Gongalla
b1ee7b63d2 autoai entering the arena (#5655)
Co-authored-by: maanvithag <mgongall@iu.edu>
2023-10-19 11:51:30 +02:00
Ty
dd9e53d450 dndagent entering the arena (#5717) 2023-10-19 11:51:01 +02:00
webgeeksai
a7f6cea57f webgeek entering the arena (#5719)
Co-authored-by: webgeeksai <stive.wg@gmail.com>
2023-10-19 11:50:40 +02:00
John
64a3b89cf7 momo entering the arena (#5815) 2023-10-19 11:50:19 +02:00
TheoLawrence86
2a87c9f15f TLGPT entering the arena (#5653)
Co-authored-by: gumb0jones <131682508+gumb0jones@users.noreply.github.com>
2023-10-19 11:43:43 +02:00
Alessandro Galetto
8a134630fc rachael entering the arena (#5627) 2023-10-19 11:43:12 +02:00
MissingDLL
50a1c35429 jarvis2 entering the arena (#5629) 2023-10-19 11:42:58 +02:00
Andrew Morgan
db1692fbbe wedding-planner entering the arena (#5634) 2023-10-19 11:42:36 +02:00
Kaiming Liu
42d1fa8523 operationAgent entering the arena (#5639) 2023-10-19 11:42:18 +02:00
Hubert S
54c672b097 autogpt_hackathon entering the arena (#5641) 2023-10-19 11:41:56 +02:00
Jeff Tang
569a869e84 aiwowo entering the arena (#5645) 2023-10-19 11:41:36 +02:00
Andrei Leca
9e499ce782 HMD2 entering the arena (#5648) 2023-10-19 11:41:16 +02:00
Luyao Zhang
064f364f65 JackGPT entering the arena (#5649) 2023-10-19 11:41:04 +02:00
kylaro
e19b847553 autogbd entering the arena (#5651) 2023-10-19 11:40:48 +02:00
vidhatanand
5ca85a00df RFPScanner entering the arena (#5652) 2023-10-19 11:40:38 +02:00
Daniel Santiago Sandoval Higuera
3f23ab6348 theone entering the arena (#5633) 2023-10-19 11:39:58 +02:00
Sebastian
f62651ff3f foobar entering the arena (#5603) 2023-10-19 11:37:11 +02:00
Norman Lopez
9af173032c RAGOptimizer entering the arena (#5610) 2023-10-19 11:36:53 +02:00
YuiChan04233
6683662bc0 Yui3 entering the arena (#5613) 2023-10-19 11:36:34 +02:00
Norman Lopez
191d45a755 MOBILE entering the arena (#5615) 2023-10-19 11:36:19 +02:00
Wiradjuri
e01fdec00e chappyAi entering the arena (#5620) 2023-10-19 11:34:50 +02:00
Manuel Soria
c4e612608c HACKATHON entering the arena (#5601)
Co-authored-by: Manuel Soria <manuel.soria@greyscaleai.com>
2023-10-19 11:34:10 +02:00
PaperMoose
c2e7be60b0 info-retrieval entering the arena (#5607) 2023-10-19 11:33:24 +02:00
simonfunk
e585ede4de CreaitorMarketing entering the arena (#5611) 2023-10-19 11:33:03 +02:00
Merlimar
2cf27de3d5 Zeus entering the arena (#5614) 2023-10-19 11:32:45 +02:00
Wiradjuri
cafe910132 chappigpt entering the arena (#5619) 2023-10-19 11:32:29 +02:00
Chengjiang
b5f7e0a463 a_reverent_heart entering the arena (#5621) 2023-10-19 11:32:10 +02:00
Manuel Soria
66c4b54de2 MANU entering the arena (#5600)
Co-authored-by: Manuel Soria <manuel.soria@greyscaleai.com>
2023-10-19 11:29:14 +02:00
ATheorell
83d4be7a33 gpt-engineer entering the arena (#5415) 2023-10-19 11:27:42 +02:00
Sergey Mordvinov
0192c1e252 GameSoundGPT entering the arena (#5725) 2023-10-19 11:25:26 +02:00
Yulian
3ea3bcc5cf rename arena agent (hackathonishe -> dive2code) (#5731)
Update and rename hackathonishe.json to dive2code.json
2023-10-19 11:25:05 +02:00
Hanhan0831
a2248ea22e han entering the arena (#5730) 2023-10-19 11:24:29 +02:00
Tim Skaggs
a36d99226c TRAVIS entering the arena (#5732) 2023-10-19 11:24:15 +02:00
Ankit Desai
8fc12b9d19 AgentKD entering the arena (#5733) 2023-10-19 11:24:02 +02:00
Jack
347aa095e5 date-buffer entering the arena (#5735) 2023-10-19 11:23:34 +02:00
徐向阳
f78edf0c11 XXY entering the arena (#5737) 2023-10-19 11:23:19 +02:00
Barnyard
a2fc295a20 assistant1 entering the arena (#5770) 2023-10-19 11:22:46 +02:00
jianhuanggo
516e39b211 letstest entering the arena (#5771)
Co-authored-by: Jian Huang <jianhuanggo@gmail.com>
2023-10-19 11:22:34 +02:00
jianhuanggo
4689a59e3c letst entering the arena (#5772)
Co-authored-by: Jian Huang <jianhuanggo@gmail.com>
2023-10-19 11:22:17 +02:00
ricowong0730
167c4f699d RosterAgent entering the arena (#5776)
Co-authored-by: Rico Wong <rico.wong@fwd.com>
2023-10-19 11:21:32 +02:00
tablc
0438df97ba lcdegpt entering the arena (#5777) 2023-10-19 11:21:15 +02:00
Woody
fa4c9a08b3 eddy entering the arena (#5779) 2023-10-19 11:20:47 +02:00
zhaojianchn
833a8cbb9f ZhaoJianAutoGPT entering the arena (#5780) 2023-10-19 11:20:30 +02:00
Mažylis
84f045c234 Adtractive_Agent entering the arena (#5781)
Co-authored-by: aivaras-mazylis <aivaras.mazylis@gmail.com>
2023-10-19 11:20:10 +02:00
norn93
4118cbbe1d GeorgeGPT entering the arena (#5783) 2023-10-19 11:19:55 +02:00
Tianyu Guo (Ti)
430b553264 researchGPT2 entering the arena (#5784) 2023-10-19 11:19:41 +02:00
Jade Cong
a78689a865 JarvisAgent entering the arena (#5789) 2023-10-19 11:19:23 +02:00
Neil Jones
f7129de8b8 jonesyboi entering the arena (#5793)
Co-authored-by: neilrjones <njones@geturgently.com>
2023-10-19 11:19:06 +02:00
martinpeng
ee026cd40d martingpt entering the arena (#5797) 2023-10-19 11:18:19 +02:00
Bary Levy
1dcd719d96 engineer entering the arena (#5798) 2023-10-19 11:17:59 +02:00
YoshiyaTatemoto
47fe55067e my_fx_agent entering the arena (#5799)
Co-authored-by: 立元 義也 <yos7H7iya@YoshiyaMBP.bai.ne.jp>
2023-10-19 11:17:43 +02:00
Carlos J. Ramirez
bf20ae0c09 FynAgent entering the arena (#5801) 2023-10-19 11:17:25 +02:00
Kumar Shivang
d7c7ded784 shivi entering the arena (#5589) 2023-10-19 11:16:39 +02:00
keli
b38712bc6d baby_agent entering the arena (#5814) 2023-10-19 11:16:02 +02:00
Ikko Eltociear Ashimine
e8d16d6823 Fix typo in exceptions.py
occured -> occurred
2023-10-19 14:41:20 +09:00
GUI Chi
1a30d00194 MyTestAgent entering the arena (#5804)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-18 16:49:17 -07:00
Maxime Letemple
39ababef89 Marx entering the arena (#5806)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-18 16:48:41 -07:00
Sarah Grevy Gotfredsen
a151a2efcb AutoGPT2 entering the arena (#5808) 2023-10-18 16:48:18 -07:00
Reinier van der Leer
e9b64adae9 Lint AutoGPT 2023-10-17 21:23:43 -07:00
Reinier van der Leer
8dbcdc28ed AutoGPT: Fix error handling in AgentProtocolServer.execute_step 2023-10-17 21:23:05 -07:00
Reinier van der Leer
d617c3fa2f AutoGPT: Use watchdog to mitigate empty commands 2023-10-17 21:22:44 -07:00
Reinier van der Leer
21a014790f AutoGPT: Prompt tweaks 2023-10-17 21:22:23 -07:00
Silen Naihin
344ef3bf8b fixing password gen and revenue retrieval 2 challenges 2023-10-17 20:28:49 -07:00
Reinier van der Leer
4fd3df9b87 Unbreak core.prompting.utils:json_loads :') 2023-10-17 19:56:09 -07:00
Reinier van der Leer
e0a9341fc0 AutoGPT: Enable hybrid mode by default 2023-10-17 19:48:00 -07:00
Reinier van der Leer
cd0df40a4f AutoGPT: Make core.prompting.utils:json_loads slightly more robust 2023-10-17 19:47:25 -07:00
Reinier van der Leer
7a7e1578d3 .gitignore agbenchmark_config data 2023-10-17 19:33:24 -07:00
Reinier van der Leer
c8fbb5153a AutoGPT: Fix context sharing between agent 2023-10-17 19:30:57 -07:00
Reinier van der Leer
07e8603345 Fix AutoGPT dependence on forge (vol. 2) 2023-10-17 18:56:59 -07:00
Reinier van der Leer
62df429ffa AutoGPT: Fix artifact creation & downloading 2023-10-17 18:37:56 -07:00
Reinier van der Leer
b1f1f7aa05 Fix AutoGPT forge dependency 2023-10-17 18:35:46 -07:00
PaperMoose
d173dd772d Tutorial improvement (#5736)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-17 17:52:33 -07:00
Reinier van der Leer
bceb66f3b0 AutoGPT: Implement Agent Protocol (#5612) 2023-10-17 17:43:55 -07:00
Reinier van der Leer
ae9fc68b37 Remove references to legacy challenges 2023-10-17 17:31:23 -07:00
Reinier van der Leer
18352d834e Merge branch 'master' into autogpt/agent-protocol 2023-10-17 17:20:54 -07:00
Reinier van der Leer
6a05e11239 AutoGPT: Fix decorator typings 2023-10-17 17:20:21 -07:00
Reinier van der Leer
fc9689b000 Fix setup tests 2023-10-17 17:07:51 -07:00
Reinier van der Leer
3cc8b2abf7 Fix web_search tests 2023-10-17 17:07:37 -07:00
Reinier van der Leer
7e7365eac2 Fix file_operations tests 2023-10-17 17:07:15 -07:00
Reinier van der Leer
129483b21c Disable broken memory tests 2023-10-17 17:06:33 -07:00
Reinier van der Leer
03992b3232 Abandon tests/challenges in favor of benchmark 2023-10-17 17:06:15 -07:00
Reinier van der Leer
9dc059fa3a lint 2023-10-17 16:34:19 -07:00
Reinier van der Leer
4a3f052b3a Bodge BaseAgent.file_manager type to get rid of type errors everywhere 2023-10-17 16:33:30 -07:00
Reinier van der Leer
7efd62233e Fix profile generator in-prompt example 2023-10-17 16:12:05 -07:00
Reinier van der Leer
11eeaeb4b9 AutoGPT: Fix artifact download 2023-10-17 15:56:56 -07:00
Reinier van der Leer
8adfca5fb7 AutoGPT: Fix artifact upload 2023-10-17 15:50:55 -07:00
Reinier van der Leer
fac52a6bc6 AutoGPT: Handle Agent self-termination gracefully 2023-10-17 15:44:35 -07:00
Reinier van der Leer
fff7667c68 AutoGPT: Save step output to DB 2023-10-17 15:35:38 -07:00
Reinier van der Leer
27e362c6ea AutoGPT: Fix file ops (vol. 2) 2023-10-17 14:36:33 -07:00
Reinier van der Leer
b75b41250b Merge branch 'master' into autogpt/agent-protocol 2023-10-17 13:23:50 -07:00
Reinier van der Leer
24cd8e3eeb AutoGPT: Fix file ops 2023-10-17 13:23:19 -07:00
Reinier van der Leer
69094139bf AutoGPT: accept "y" as input for proceeding with action 2023-10-17 13:08:23 -07:00
Reinier van der Leer
70f617ddd6 Debug AIDirectives validation 2023-10-17 13:01:50 -07:00
Reinier van der Leer
2660e5ec8c Fix AutoGPT agbenchmark config 2023-10-17 12:36:14 -07:00
Reinier van der Leer
12d959f780 Update AutoGPT .dockerignore to include nested .venv and __pycache__ 2023-10-17 12:15:04 -07:00
Reinier van der Leer
57751a7780 Merge branch 'master' into autogpt/agent-protocol 2023-10-17 11:49:03 -07:00
Reinier van der Leer
8cf246bb9e Unbreak benchmark-ci.yml 2023-10-17 11:48:40 -07:00
Reinier van der Leer
2fc7c62a36 Fix AutoGPT docker build 2023-10-17 11:48:04 -07:00
Reinier van der Leer
53c2b26dde AGBenchmark v0.0.10 compatible? 2023-10-17 11:34:05 -07:00
Reinier van der Leer
648fac7e8a Merge branch 'master' into autogpt/agent-protocol 2023-10-17 11:09:00 -07:00
Reinier van der Leer
eb7eb37e65 Add AutoGPT agent to autogpts-ci.yml 2023-10-17 11:08:17 -07:00
Reinier van der Leer
0bd5d4420e Unbreak autogpts-ci.yml 2023-10-17 10:47:43 -07:00
Reinier van der Leer
799ee19334 Merge branch 'master' into autogpt/agent-protocol 2023-10-17 10:43:37 -07:00
Reinier van der Leer
10aececc6a Fix subproject dependency compatibility 2023-10-17 10:36:05 -07:00
Reinier van der Leer
7f3ca0b76a Forge: add output fields to DB StepModel (#5759)
* Forge: add output fields to `StepModel` and `AgentDB.update_step`

* Forge: fix `AgentDB.get_step` parameter types
2023-10-17 10:17:16 -07:00
Reinier van der Leer
ce1353bdc5 Update dependencies 2023-10-17 09:47:19 -07:00
Sunil
cba90e20e9 LinuzGPT entering the arena (#5739)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-17 09:43:12 -07:00
Reinier van der Leer
1eadc64dc0 Fix AutoGPT Docker cache purge workflow 2023-10-16 22:32:55 -07:00
Reinier van der Leer
3ae376c584 Fix AutoGPT dependencies (step 3) 2023-10-16 18:07:10 -07:00
Reinier van der Leer
0f555693f7 Fix AutoGPT Docker build 2023-10-16 17:52:35 -07:00
Reinier van der Leer
ec8d42a477 Fix AutoGPT dependencies (step 2) 2023-10-16 17:48:07 -07:00
Reinier van der Leer
abb77fc5b1 Fix AutoGPT dependencies (step 1) 2023-10-16 17:46:50 -07:00
Reinier van der Leer
aa9e219fe3 Unbreak AutoGPT CLI 2023-10-16 16:14:01 -07:00
Reinier van der Leer
374b02845a Merge branch 'master' into autogpt/agent-protocol 2023-10-16 16:02:03 -07:00
Reinier van der Leer
265255120b AutoGPT: lint 2023-10-16 15:59:11 -07:00
Reinier van der Leer
a558c9fd04 AutoGPT: Clean up CLI prompts 2023-10-16 15:58:06 -07:00
Reinier van der Leer
0278873fb5 Remove double milliseconds field from AutoGPT log format 2023-10-16 15:50:44 -07:00
Reinier van der Leer
f01588f927 Mark poetry.lock as generated 2023-10-16 15:49:50 -07:00
Reinier van der Leer
e75073b495 AutoGPT: Improve output format of web commands 2023-10-16 15:49:19 -07:00
Reinier van der Leer
eb57d1f405 AutoGPT/server: Fix & improve step output format 2023-10-16 15:45:41 -07:00
Reinier van der Leer
0c04bf56df Add AutoGPT serve subcommand to run Agent Protocol server 2023-10-16 15:26:56 -07:00
Reinier van der Leer
65a7e2b257 Fix AutoGPT saving and resuming 2023-10-16 15:14:35 -07:00
smaxaddington
546e08a5cf MyFirstAgent entering the arena (#5743)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 11:04:29 -07:00
Khelil
3d312fd405 billy entering the arena (#5744)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 11:02:57 -07:00
jcartes
5a3851fd66 xt0m-GPT entering the arena (#5746)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 11:02:28 -07:00
Cagdas Bas
f2446e4a66 AutoTestGenerator entering the arena (#5747)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 11:01:39 -07:00
PZON2
540178d079 testGPT entering the arena (#5749)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 11:01:05 -07:00
paul726
ed65f75b68 web_developer entering the arena (#5750)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 11:00:07 -07:00
Pavel Sukhachev
839fde4d7f robot entering the arena (#5752)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 10:58:48 -07:00
Pedro Lima
d656e3d9e9 dev_agent entering the arena (#5754)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 10:56:41 -07:00
Agustin Herrera
9c358e4a14 dda entering the arena (#5755)
Co-authored-by: Agustin Herrera <aiherrrera1@uc.cl>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 10:56:11 -07:00
Vivek Mohan
c0fda8d37d TraceLLMAgent entering the arena (#5757)
Co-authored-by: vm.ashling <vivek.m@ashling.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 10:55:38 -07:00
miaowacao
a81de65912 teacher entering the arena (#5764)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 10:55:00 -07:00
Zeen Zeng
6aaf1b92f5 zze entering the arena (#5765)
Co-authored-by: zengzeen.zengze <zengzeen.zengze@bytedance.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 10:54:08 -07:00
Nikhil Mishra
76e15ee1ba Auto entering the arena (#5766) 2023-10-16 10:52:57 -07:00
Jimcau
837b071525 Raslebot entering the arena (#5767)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 10:52:31 -07:00
Janek Dijkstra
454e761f98 ExampleAgent entering the arena (#5768)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 10:51:54 -07:00
十三
9ea973e9e9 UmaruAgent entering the arena (#5769)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-16 10:51:20 -07:00
sanjeevsaara
2f79caa6b9 searchagent entering the arena (#5758) 2023-10-15 19:53:57 -07:00
Reinier van der Leer
04d7deeae3 Merge branch 'master' into autogpt/agent-protocol 2023-10-15 17:26:33 -07:00
Reinier van der Leer
521305f8e9 Fix typing of @coroutine decorator 2023-10-14 15:22:04 -07:00
Reinier van der Leer
b30b61340f Delete & ignore accidentally committed stuff from data/ 2023-10-14 13:55:41 -07:00
Silen Naihin
74ee69daf1 Update data.json 2023-10-14 08:04:37 -07:00
Silen Naihin
7896f7676a Update README.md remove use stable 2023-10-14 07:10:12 -07:00
Reinier van der Leer
c5cbea00ab Add AgentProtocolServer 2023-10-13 21:02:34 -07:00
Reinier van der Leer
6fdc56a610 Use FileWorkspace methods in commands.file_operations 2023-10-13 21:01:15 -07:00
Reinier van der Leer
0ceaa5b753 lint 2023-10-13 20:52:57 -07:00
Reinier van der Leer
0c2d564c33 Rename Workspace -> FileWorkspace; expand interface 2023-10-13 20:51:06 -07:00
Reinier van der Leer
e6b21bdd57 Remove duplicate RESPONSE_SCHEMA from OneShotAgentPromptStrategy 2023-10-13 20:45:07 -07:00
merwanehamadi
93e3ec36ed Update test.py (#5721) 2023-10-13 06:56:52 -07:00
rayzh-lab
38790a27ed da-agent entering the arena (#5706)
Co-authored-by: zhaolei08 <zhaolei08@kuaishou.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-12 07:24:56 -07:00
Evan Lynch
bd93ec5cc0 Jarvis entering the arena (#5707) 2023-10-12 07:24:00 -07:00
Thom
766796ae1e Verkiezingsprogrammas entering the arena (#5690)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-11 09:07:41 -07:00
Kevin Boudot
704e332bee smith entering the arena (#5692) 2023-10-11 09:07:04 -07:00
hunteraraujo
57bcbdf45c Refactor LeaderboardSubmissionDialog to use SharedPreferencesService 2023-10-10 23:19:35 -07:00
hunteraraujo
dbec110bac Refactor ChatInputField to use SharedPreferencesService 2023-10-10 18:39:24 -07:00
hunteraraujo
8245433d7f Refactor TaskViewModel to use SharedPreferencesService 2023-10-10 15:33:52 -07:00
hunteraraujo
8972132eb0 Refactor SettingsViewModel to use SharedPreferencesService 2023-10-10 14:54:33 -07:00
hunteraraujo
0eb476c3fa Refactor TaskService to use SharedPreferencesService 2023-10-10 12:35:34 -07:00
hunteraraujo
fc915d0469 Merge branch 'master' of github.com:Significant-Gravitas/Auto-GPT 2023-10-10 12:34:28 -07:00
hunteraraujo
860f985e87 Add SharedPreferencesService to dependency injection system 2023-10-10 12:17:37 -07:00
cislerk
0856f68061 CISLERK entering the arena (#5677) 2023-10-10 12:14:58 -07:00
hunteraraujo
9b8094329d Add SharedPreferencesService 2023-10-10 11:12:43 -07:00
hunteraraujo
c77ade5b2f Gate test suites from the task view based off isDeveloperModeEnabled flag 2023-10-09 11:30:58 -07:00
merwanehamadi
4841d31179 fix label csv (#5656) 2023-10-09 09:22:36 -07:00
merwanehamadi
3bd8ae4843 Forge/workshop (#5654)
* Added basic memory

* Added action history

* Deleted placeholder files

* adding memstore

* Added web search ability

* Added web search and reading web pages

* remove agent.py changes

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: SwiftyOS <craigswift13@gmail.com>
2023-10-09 08:32:52 -07:00
Swifty
f77d383a9f Update README.md (#5647) 2023-10-09 00:12:11 -07:00
hunteraraujo
51ebe2407d Integrate TaskQueueViewModel throughout application 2023-10-08 22:34:52 -07:00
hunteraraujo
a7e27d1a64 Remove duplicate functionality from SkillTreeViewModel 2023-10-08 22:33:21 -07:00
hunteraraujo
7e5bdac2a0 Add TaskQueueViewModel for managing benchmark tasks and leaderboard submissions 2023-10-08 22:28:57 -07:00
Dan Hamilton
027054ae02 buddy entering the arena (#5638)
Co-authored-by: Dan Hamilton <dhamilton@xtminc.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-08 19:18:32 -07:00
MissingDLL
2d865cc9e6 jarvis3 entering the arena (#5630)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-08 19:15:56 -07:00
Hadjer Benmeziane
f3328513f3 NASAssistant2 entering the arena (#5632)
Co-authored-by: Hadjer-Benmeziane <hadjer.benmeziane@ibm.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-08 19:15:14 -07:00
Reinier van der Leer
ad0c3ebf07 Implement functions API compatibility mode for older OpenAI models 2023-10-08 18:05:08 -07:00
Reinier van der Leer
aae650fe3a Implement Resuming AutoGPT Agents
* Add AgentManager
2023-10-08 18:02:54 -07:00
SwiftyOS
b52aba4ef5 inverted setup param 2023-10-08 11:39:38 -07:00
Reinier van der Leer
36e2dae6b0 Add AgentFactory and replace AI Goals by AI Directives + Task 2023-10-08 10:13:23 -07:00
Reinier van der Leer
12656646ae Move misc printing functions from app.main to app.utils 2023-10-08 09:54:55 -07:00
Reinier van der Leer
34352afd53 Create AgentFileManager
* Remove references to (broken) vector memory

* Move workspace setup to `WorkspaceMixin.attach_fs` hook

* Move directives into `BaseAgentSettings`
2023-10-08 01:14:54 -07:00
Reinier van der Leer
2b8d91fb1b Merge branch 'master' into autogpt/agent-protocol 2023-10-07 19:11:27 -07:00
Reinier van der Leer
e99e9b6181 AutoGPT/plugins: Support full parameter defs for plugin commands 2023-10-07 19:10:18 -07:00
Reinier van der Leer
0b709a4393 Rename AIConfig to AIProfile 2023-10-07 18:14:52 -07:00
Reinier van der Leer
34f2229479 AutoGPT: Clean up paths in config 2023-10-07 17:35:34 -07:00
Reinier van der Leer
69de6c0467 Merge branch 'master' into autogpt/agent-protocol 2023-10-07 15:13:56 -07:00
Reinier van der Leer
683257b697 AutoGPT: Fix prompt state pollution 2023-10-07 15:09:43 -07:00
Swifty
a00d880a3f caud entering the arena (#5599)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-07 09:23:56 -07:00
Ashish Soni
63161b357b WiseAgent entering the arena (#5563)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-07 09:18:53 -07:00
Bryan Ritchie
7003d21f09 ParalegalAgent entering the arena (#5577)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-07 09:17:15 -07:00
Cesar Brazon
6432445add evo-ninja entering the arena (#5584)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-07 09:16:33 -07:00
SwiftyOS
7a33af387e updated git attributes 2023-10-07 08:39:13 -07:00
Michael Winkler
27fff76ec3 NumberOne entering the arena (#5560) 2023-10-07 08:15:27 -07:00
red thing
a3fee97bcb jaxbob1 entering the arena (#5564) 2023-10-07 08:15:16 -07:00
Brian Mwangi
d1313cd782 Melang entering the arena (#5572) 2023-10-07 08:15:11 -07:00
Daniel Santiago Sandoval Higuera
d742108967 thebestagent entering the arena (#5573) 2023-10-07 08:15:03 -07:00
Huarada
338eb9c594 RONNIN entering the arena (#5576) 2023-10-07 08:14:58 -07:00
Andrei Leca
2c4c435072 CurieAssistant entering the arena (#5580) 2023-10-07 08:14:47 -07:00
Mikhail Gostev
5d1ef4d3d4 piGPT entering the arena (#5582) 2023-10-07 08:14:43 -07:00
Yewen Xu
dfc17a067d LHRobot entering the arena (#5587) 2023-10-07 08:14:33 -07:00
Kumar Shivang
fa1f077aaf ShiviBot entering the arena (#5588) 2023-10-07 08:14:29 -07:00
Periklis Papanikolaou
ca1c5c0b40 admariner entering the arena (#5597) 2023-10-07 08:14:10 -07:00
hunteraraujo
b2d53d8d18 Introduce TestOption Enum for Enhanced Test Selection Clarity (#5586) 2023-10-06 16:13:33 -07:00
hunteraraujo
0f2126e6f0 Implement Artifact Class for Enhanced Data Handling (#5585) 2023-10-06 14:55:47 -07:00
hunteraraujo
a615eda205 Update incorrect docstring - "uri" to "relative_path" 2023-10-06 13:42:28 -07:00
merwanehamadi
abf88fe509 Fix password generator (#5581) 2023-10-06 12:55:48 -07:00
merwanehamadi
a7c11a994b Frontend ci (#5579)
* Fix agbenchmark client

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Add frontend ci

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-10-06 12:20:01 -07:00
merwanehamadi
1d80969b7f Fix agbenchmark client (#5578)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-10-06 12:02:59 -07:00
DataDruid
47eb5124fa burt entering the arena (#5554)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-06 09:40:14 -07:00
Alphons Jaimon
c2c60969af codebutler entering the arena (#5553)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-06 09:28:50 -07:00
bsenst
9501c2c6b1 fritzgpt entering the arena (#5552)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-06 09:26:10 -07:00
Somni
4212ea7327 AquaAgent entering the arena (#5551)
Co-authored-by: Somni <sleepdragon@moofa.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-06 09:23:38 -07:00
Varun565
8ae39a95db v-gpt entering the arena (#5550)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-06 09:22:32 -07:00
Elvis Chan
c6541ea128 ekc911_agent entering the arena (#5549)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-06 09:21:05 -07:00
hunteraraujo
9e353e09b5 Update frontend build (#5570)
Co-authored-by: GitHub Action <action@github.com>
2023-10-05 23:53:02 -07:00
hunteraraujo
bc10845cb5 Include pop ups + change auth flow for github codespace 2023-10-05 23:50:21 -07:00
hunteraraujo
f810264c65 Update frontend build (#5569)
Co-authored-by: GitHub Action <action@github.com>
2023-10-05 22:35:25 -07:00
hunteraraujo
5e6b348685 Swap out pop up auth for redirect (#5568) 2023-10-05 22:32:54 -07:00
hunteraraujo
8ae9b75150 Update frontend build (#5567)
Co-authored-by: GitHub Action <action@github.com>
2023-10-05 22:09:58 -07:00
hunteraraujo
35efc897df Enhanced OAuth 2.0 Implementation with Dynamic Redirect URIs and Popup Authentication (#5566)
* Set custom parameter redirect URI

* Red border

* Blue border
2023-10-05 22:07:32 -07:00
Joe H
bd1de98c84 bigman entering the arena (#5540)
Co-authored-by: Joe H <hello@joeholmes.dev>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-05 15:02:41 -07:00
SwiftyOS
1bebb2f5c0 forge - Added autogpt exceptions 2023-10-05 13:46:56 -07:00
Neil Martin
d7e4c6ed00 FactoryGPT entering the arena (#5534)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-05 13:33:32 -07:00
SwiftyOS
e9240d0dd7 forge - Switched to using litellm to support more llms 2023-10-05 13:28:17 -07:00
merwanehamadi
bcb24c1a58 Fix challenges (#5561)
Fix challenges and CI

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-10-05 10:59:50 -07:00
Swifty
bef8203da2 Added setup command refactored memstore (#5555)
* forge -  restructured memstore

* Stopped setup from being ran as defualt when running an agent
2023-10-05 10:13:59 -07:00
Swifty
3b7d83a1a6 Update frontend build (#5556) 2023-10-05 09:25:16 -07:00
Matt Sinnock
a55ed27679 od_agent_1 entering the arena (#5547)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-04 18:47:19 -07:00
chenzino
bc4257dc1e chenzo entering the arena (#5545)
Co-authored-by: Austin Schwartz <aschwartz@college.harvard.edu>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-04 18:46:55 -07:00
Jafar Albadarneh
73ef89e03a Bravo06 entering the arena (#5543) 2023-10-04 16:17:27 -07:00
Yifeng Qiu
828027f236 Pacific entering the arena (#5538) 2023-10-04 16:17:17 -07:00
Isayah Culbertson
f04ef7c20d UTC-Crew entering the arena (#5535) 2023-10-04 16:17:13 -07:00
Kaio Magalhães
4f2699f86d AUTO_ENGINEER entering the arena (#5533) 2023-10-04 16:17:00 -07:00
MF-YT-1300
9823768e95 prometheus entering the arena (#5531)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-04 16:16:09 -07:00
Arromal Jamuna Jayan
eb213be9d9 KnowledgeExtractor entering the arena (#5528)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-04 16:15:45 -07:00
hunteraraujo
7f89b8aae8 Update frontend build (#5541)
Co-authored-by: GitHub Action <action@github.com>
2023-10-04 11:36:23 -07:00
hunteraraujo
f97fc0dd3d Add GitHub Repository Validation to Leaderboard Submission Dialog (#5539) 2023-10-04 11:32:45 -07:00
hunteraraujo
1bd85cbc09 Update frontend build (#5522)
Co-authored-by: GitHub Action <action@github.com>
2023-10-03 22:41:02 -07:00
hunteraraujo
45c15fc8c6 Enhanced Test Execution Flexibility (#5521)
Refactor UI and Logic for Task Queue and Test Suite Button
2023-10-03 22:34:22 -07:00
hunteraraujo
da6311fb1e Fix UI Overlap Issue in TaskQueueView
This commit addresses a UI issue where the ListView items were overlapping with the Positioned widget in the TaskQueueView. The Positioned widget has been replaced with a more flexible layout using a Column widget to ensure proper spacing and positioning of elements on the screen. The ListView now takes up all available space above the buttons, preventing any overlap and enhancing the user experience.
2023-10-03 22:05:21 -07:00
hunteraraujo
6bd3136fe0 Add new stack data structure 2023-10-03 21:56:26 -07:00
NeonN3mesis
f227d5adb1 Fixed stacking prompt instructions (#5520)
fixed issue with prompt instruction stacking

prompt instructions were stacking making the agent eventually return an error because the prompt was full of repeating instructions
2023-10-04 06:16:08 +02:00
nawaljunaid
f81b466c9a nawalj entering the arena (#5514)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 18:40:00 -07:00
hunteraraujo
72c54be164 Update frontend build (#5516)
Co-authored-by: GitHub Action <action@github.com>
2023-10-03 15:08:47 -07:00
hunteraraujo
0d5c2a98c0 Implement Redirect Authentication for Google and GitHub Sign-In (#5515) 2023-10-03 12:51:49 -07:00
George Haws
a41b5ea4a9 Heisenberg entering the arena (#5460)
Co-authored-by: Albert Örwall <albert@platform24.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:38:10 -07:00
Tianxu Jia
c75214acb8 myGPT entering the arena (#5498)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:36:36 -07:00
Piotr
de7bc83076 mljar-agent entering the arena (#5499)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:36:10 -07:00
razorhasbeen
265abea0f6 MEGATRON entering the arena (#5500)
Co-authored-by: razorhasbeen <carlfredrik.linne@gmail.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:35:45 -07:00
razorhasbeen
4653ac32e0 Bunny entering the arena (#5503)
Co-authored-by: razorhasbeen <carlfredrik.linne@gmail.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:35:10 -07:00
uknowWho
2caf1e112e EmbeddedAg entering the arena (#5505)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:34:32 -07:00
Tessa Clement
d2e56c568f Tessa_AutoGPT_agent entering the arena (#5506)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:34:09 -07:00
merwanehamadi
507d8994e6 Put both a pretty image AND a basic link for the discord call to action (#5513) 2023-10-03 11:33:32 -07:00
Echo
af339a119f Update Discord invite (#5507) 2023-10-03 11:32:11 -07:00
Ed Mosqueda
8db4debcc4 HuitzilAiAgent entering the arena (#5509)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:28:38 -07:00
Tomas Taylor
e37d538ca2 MindwareGPT entering the arena (#5508)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:28:13 -07:00
bosaeed
c63c514feb bosaeed_agent entering the arena (#5510)
Co-authored-by: Abdullah Jaber <boasaeed4@gmail.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-03 11:27:41 -07:00
merwanehamadi
c7a9ac3bf7 Fix custom_python not being copied (#5512) 2023-10-03 11:24:16 -07:00
Faran Butt
3374fd1818 faran entering the arena (#5501)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-03 06:49:59 -07:00
Nimit3-droid
48f0775a1a AppleGPT entering the arena (#5504) 2023-10-03 06:49:09 -07:00
Jose Manuel Langarica
d8d7fc4858 mrSabelotodo entering the arena (#5485)
Co-authored-by: Swiftyos <craigswift13@gmail.com>
2023-10-03 12:53:40 +02:00
Tianxu Jia
18c70bf3f7 my_AutoGPT entering the arena (#5492)
Co-authored-by: Swiftyos <craigswift13@gmail.com>
2023-10-03 12:53:19 +02:00
Shadowless422
f2e4bf208b Alfred entering the arena (#5497)
Co-authored-by: Swiftyos <craigswift13@gmail.com>
2023-10-03 12:51:42 +02:00
SwiftyOS
7351b8fee6 Added link in quickstart 2023-10-03 12:50:27 +02:00
SwiftyOS
11cb40af88 Update git stats 2023-10-03 12:45:28 +02:00
Reinier van der Leer
5ae18dcd00 AutoGPT: Improve function scopes and data flow in app.main and config
* Move TTS related config into TTSConfig
2023-10-02 20:59:29 -06:00
Albert Örwall
949ab477a8 Correct create_game method definition in the challenge input (#5460)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-02 16:07:18 -07:00
Jason Zvaniga
d39bec8163 gipity entering the arena (#5479)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-10-02 16:04:09 -07:00
merwanehamadi
2a036894b6 Add pycharm debug to dev dependencies (#5483) 2023-10-02 16:03:50 -07:00
merwanehamadi
d46c5b10f1 List tasks: inform of pydantic errors (#5482) 2023-10-02 15:50:45 -07:00
merwanehamadi
3291a921ad Put back reload mode (#5481)
* Fix benchmark CI

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Put back reload mode

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-10-02 15:10:56 -07:00
Reinier van der Leer
563df6ca3a AutoGPT: Fix plugin commands accumulating 2023-10-02 16:41:18 -05:00
merwanehamadi
a30cbcc2ce Fix benchmark ci (#5478)
Fix benchmark CI

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-10-02 12:41:32 -07:00
merwanehamadi
163ab75379 Fix AutoGPTs-CI (#5477)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-10-02 12:05:04 -07:00
merwanehamadi
e2e74a6a5b Revert hot reload (#5476)
* Revert "Hot reload mode (#5475)"

This reverts commit 846cfc005d.

* Revert changes hot reload
2023-10-02 11:50:04 -07:00
merwanehamadi
846cfc005d Hot reload mode (#5475)
Hot reload mode
2023-10-02 11:15:11 -07:00
merwanehamadi
80487bc4b1 add load_dotenv (#5474) 2023-10-02 10:56:56 -07:00
Yulian
75116ff6b9 hackathonishe entering the arena (#5470)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-02 10:46:14 -07:00
Markus Garnitz
a29fe9ff66 SaasWebDev entering the arena (#5469)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-02 10:45:47 -07:00
StefanWan-Durham
eee93fc581 Miao entering the arena (#5467)
Co-authored-by: StefanWan_Durham <fan.wan@durham.ac.uk>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-02 10:45:10 -07:00
Aphelios
3bac20a8d6 misslu entering the arena (#5465)
Co-authored-by: linzhu.zz <linzhu.zz@alibaba-inc.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-02 10:44:43 -07:00
Rahul A R
1403578911 DevOpsAgent entering the arena (#5464)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-02 10:44:04 -07:00
AdrianSilaghi
aba155de7f TestAgent entering the arena (#5462)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-02 10:43:18 -07:00
merwanehamadi
2be14cab3e Correct revenue retrieval challenge (#5471) 2023-10-02 09:52:59 -07:00
bsenst
062d286c23 Fix typos in forge/agent.py (#5449)
* Create FRITZLABS.md

* Delete FRITZLABS.md

* fix typos

Co-authored-by: Swiftyos <craigswift13@gmail.com>
2023-10-02 10:16:27 +02:00
Anthony
ef8688b1a4 trend_agent entering the arena (#5455)
Co-authored-by: Swiftyos <craigswift13@gmail.com>
2023-10-02 10:15:46 +02:00
Alex Worden
6682653ddd Update 003_crafting_agent_logic.md (#5456)
Fix a typo and remove redundant banter
2023-10-02 10:15:10 +02:00
Akira Tetsuka
b4db69d8ba robita entering the arena (#5461)
Co-authored-by: Swiftyos <craigswift13@gmail.com>
2023-10-02 10:14:04 +02:00
Vincent
82f15f9b0e TheAgency entering the arena (#5457)
Co-authored-by: Swiftyos <craigswift13@gmail.com>
2023-10-02 10:13:39 +02:00
Omar ALHory
7ec92d8c06 proudgpt entering the arena (#5454)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 16:03:47 -07:00
Dawn Kelly
1f1abcdc57 MojoBurrito entering the arena (#5448)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 16:03:20 -07:00
Baptistecaille
87dcc6933c Baptiste entering the arena (#5446)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 16:02:39 -07:00
sampatkalyan
501d0f77af Maharathi entering the arena (#5444)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 16:02:12 -07:00
merwanehamadi
8252a2fa8f Correct Battleship Challenge (#5450)
* Update abstract_class.py

* Update abstract_class.py
2023-10-01 13:53:46 -07:00
Muhammad Dabeer
3da29eae45 Brillante-AI entering the arena (#5443)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 11:19:22 -07:00
helloworld4774
f08075c22b hall_oto entering the arena (#5442) 2023-10-01 11:18:40 -07:00
Nivek92
f864eb39df test entering the arena (#5439)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 09:05:21 -07:00
Aleksander Petrushkin
0706ba502c personal-al-website entering the arena (#5437)
Co-authored-by: aapetrushkin <aapetrushkin@avito.ru>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 09:03:32 -07:00
Chaoran Wang
68563f34af umiuni_agent entering the arena (#5436)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 09:03:06 -07:00
Yoon Hogeon
c663105fcb byl entering the arena (#5435)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 09:02:42 -07:00
Ch0daboy
a250cbaf12 NoobSupreme entering the arena (#5433)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 09:02:02 -07:00
Sourabh singh
1699240936 SouAgent entering the arena (#5432)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 09:01:19 -07:00
mohammed-radha-LightRing
019b907985 Light_Agent entering the arena (#5431)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 09:00:41 -07:00
Tammam Kbeili
26cf7c2e3f job_apply entering the arena (#5428)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 08:59:17 -07:00
Tianbin
dbfe623be9 raindrop entering the arena (#5427)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 08:58:15 -07:00
Dawn Kelly
14e4bc2435 MojoBurrito entering the arena (#5425)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 08:56:59 -07:00
Ahmad Alaziz
faf530a49a ChadGPT entering the arena (#5423)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-10-01 08:56:34 -07:00
hekolcu
86c21f9ef4 HekolcuAutoGPT entering the arena (#5421) 2023-10-01 08:55:52 -07:00
beisdog
a0fba5d1f1 DavidsAgent entering the arena (#5413)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 21:27:57 -07:00
zyt329
369f3fc169 Yutan_agent entering the arena (#5411)
Co-authored-by: Yutan Zhang <ytzh@ucdavis.edu>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 21:26:16 -07:00
Mert Kaan Gül
b1ae3f9032 SmartGPT entering the arena (#5412)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 21:25:30 -07:00
Zhaoming Yin
59c3193e02 gen_fuzz entering the arena (#5407)
Co-authored-by: Zhaoming Yin <zhaomingyin@google.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 21:24:14 -07:00
dyabel
55e935431e dy_agent2 entering the arena (#5316)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 21:23:04 -07:00
Ikko Eltociear Ashimine
d6abb27db6 Fix typo in QUICKSTART.md (#5345)
Intially -> Initially
2023-09-29 18:50:21 +02:00
Sergey Volkov
5c6db98b4a Arena submission potato (#5372)
* potato entering the arena

* potato arena update
2023-09-29 18:49:55 +02:00
Peter Harrington
a65b11aff2 gpt-eng-forge entering the arena (#5348) 2023-09-29 18:49:34 +02:00
ATheorell
5e27fef0e4 gpt-dev-engineer-agent entering the arena (#5383) 2023-09-29 18:49:12 +02:00
variavista
ca0496ce0a frankgarcia entering the arena (#5373)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-09-29 18:48:22 +02:00
Fabian Aichele
cd08eeb774 RagsToRiches entering the arena (#5377)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-09-29 18:47:45 +02:00
Corey Petty
b195431357 monthly_summary entering the arena (#5351) 2023-09-29 18:47:07 +02:00
Aniruddha Adhikary (Ani)
bfaf56fee3 BanglaSgAgent entering the arena (#5360)
Co-authored-by: Aniruddha Adhikary <aniruddha-adhikary@users.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 09:46:44 -07:00
박종원
443fa1c832 AntlerTestGPT entering the arena (#5342)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-09-29 09:46:12 -07:00
KleinerCodeDrago
fd008654be RandomVampirePictureBot entering the arena (#5399)
Co-authored-by: KleinerCodeDrago <allthestuffilove@protonmail.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 09:46:09 -07:00
Vishnu B
74bfef5f0b decision-maker entering the arena (#5379)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 09:45:28 -07:00
Vannhanhk12
40b3be22dc NHAN_BOT entering the arena (#5374)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-09-29 09:44:45 -07:00
talumo
92d3eaa706 Stragegy_Steve entering the arena (#5385) 2023-09-29 18:44:25 +02:00
Jonathan Balloch
416093ab69 Granger entering the arena (#5401)
* .github_access_token added to git ignore

* Granger entering the arena
2023-09-29 18:44:10 +02:00
Kyan Nai
62b19706cd EnglishTestpaperAgent entering the arena (#5391) 2023-09-29 18:43:43 +02:00
IgorCIS
2d74998483 GG entering the arena (#5356)
Co-authored-by: igorzilla <dylan@swellmadeit.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 09:43:31 -07:00
Kenneth Yu
24613a498b Hypeman entering the arena (#5362)
Co-authored-by: Kenneth Yu <Kenneth Yu>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 09:42:45 -07:00
Josh Yorko
9bd7bc0db9 JoshAgent1 entering the arena (#5387) 2023-09-29 18:42:08 +02:00
IkuOhama
3848b32e1c iku2 entering the arena (#5366)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 09:41:52 -07:00
miguelcas12
fd13ba0a6a tdev entering the arena (#5347) 2023-09-29 18:41:17 +02:00
Zack Bradshaw
1bce889532 swarms entering the arena (#5364)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-09-29 09:40:51 -07:00
dyabel
3811ac1323 dy_agent entering the arena (#5315)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-09-29 09:40:16 -07:00
Zhaoming Yin
af9008c81c fuzz_gen entering the arena (#5403) 2023-09-29 18:39:04 +02:00
Albert Örwall
c5028b3ce8 ghostcoder entering the arena (#5404) 2023-09-29 18:38:29 +02:00
SwiftyOS
76c321d6b1 Updated tutorial series links 2023-09-29 15:52:56 +02:00
Swifty
cb1e36d916 Update frontend build (#5396)
Co-authored-by: GitHub Action <action@github.com>
2023-09-29 14:03:31 +02:00
SwiftyOS
e71943f83b change the index url for the tutorials 2023-09-29 13:50:18 +02:00
SwiftyOS
2640fc85cf Frontend - Added link to tutorials 2023-09-29 13:36:58 +02:00
SwiftyOS
4840dd25a3 Updated stop command to kill the benchmark server as well 2023-09-29 11:03:52 +02:00
Swifty
91435136d5 Update frontend build (#5393)
Co-authored-by: GitHub Action <action@github.com>
2023-09-29 10:37:00 +02:00
hunteraraujo
cbdb6ac0bf Add _throwawayFocusNode to allow continuous mode to work after dialog 2023-09-29 00:22:00 -07:00
hunteraraujo
d91236deda Fix bug where benchmarks are not showing chat convo 2023-09-28 23:59:14 -07:00
hunteraraujo
8c58df706a Show helpful toast if someone hits a 404 2023-09-28 23:43:02 -07:00
hunteraraujo
88a4d1a0dd Update _leaderboardBaseUrl to point at prod leaderboard 2023-09-28 22:37:40 -07:00
hunteraraujo
1f367618ed Remove hard coded benchmark category 2023-09-28 19:40:23 -07:00
merwanehamadi
0e804e27dd Add more data challenges (#5390)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-28 19:30:08 -07:00
hunteraraujo
ab2a49c8d2 Show loading state when running benchmark or waiting for agent response 2023-09-28 13:09:26 -07:00
hunteraraujo
f3210fba96 Add _isWaitingForAgentResponse Property to ChatViewModel
A new property named _isWaitingForAgentResponse has been introduced to the ChatViewModel class to track the loading state when waiting for the agent's response. This boolean property is set to true when a chat message is being sent and reverts to false upon completion, whether successful or not. The notifyListeners() method is invoked to update the UI accordingly. This enhancement facilitates the display of a loading indicator, offering users visual feedback during the wait time for agent responses.
2023-09-28 13:09:05 -07:00
hunteraraujo
a438619177 Add LoadingIndicator for Async Operations
Implemented a new LoadingIndicator widget that displays a pulsating gradient line, giving users visual feedback during asynchronous operations such as API calls. The indicator animates a gradient from white to AppColors.primaryLight and back to the grey background color, signifying the loading state.
2023-09-28 12:54:13 -07:00
hunteraraujo
61653d122f Update _leaderboardBaseUrl to point at dev leaderboard 2023-09-28 12:12:42 -07:00
SwiftyOS
959e1304d1 forge - Added unified run command 2023-09-28 18:38:55 +02:00
SwiftyOS
e374e51663 forge, remove helicone from .env.example 2023-09-28 15:50:51 +02:00
SwiftyOS
4f15b1c582 Fix pathing issues 2023-09-28 12:29:03 +02:00
SwiftyOS
ece0f9189f Check if filename is already in relative path 2023-09-28 12:03:30 +02:00
SwiftyOS
f0087ab80a fix artifact bug 2023-09-28 12:01:02 +02:00
SwiftyOS
5360313271 Fixed CORS and proxy timeout issues 2023-09-28 11:39:15 +02:00
Swifty
ca65dfc4fa Update frontend build (#5376)
Co-authored-by: GitHub Action <action@github.com>
2023-09-28 11:00:26 +02:00
hunteraraujo
41f0b472c0 Remove dark mode toggle until implementation is completed 2023-09-28 00:00:07 -07:00
hunteraraujo
ee55b85945 Fix bug where we are not passing benchmark input 2023-09-27 23:43:44 -07:00
hunteraraujo
a555e936c4 Increase task steps page size 2023-09-27 23:30:55 -07:00
hunteraraujo
d2f64a1163 Fix bug where AgentMessageTile are being reused inappropriately 2023-09-27 23:01:06 -07:00
hunteraraujo
b04f4e0f55 Added Artifact Handling for Chat Messages
- Enhanced the `Chat` model to include an `artifacts` field to hold associated artifacts.
- Updated the `AgentMessageTile` widget to display the number of artifacts and added functionality to trigger artifact downloads upon button press.
- Introduced a method in `ChatViewModel` to leverage the `ChatService` for artifact downloads.
2023-09-27 22:37:06 -07:00
hunteraraujo
c814fc4edd Remove debug banner 2023-09-27 21:36:49 -07:00
hunteraraujo
3329e6bc4a Fix bug when tasks are appearing in reverse chronological order 2023-09-27 21:00:34 -07:00
hunteraraujo
c739e049c3 Fixed bug where task list did not update when creating new task 2023-09-27 20:27:21 -07:00
merwanehamadi
37fbb52d19 Add more challenges + cleanup (#5368)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-27 17:58:58 -07:00
Reinier van der Leer
5acb5ad9b7 AutoGPT: Remove color codes in file log output 2023-09-27 20:50:18 -04:00
Reinier van der Leer
d466689c94 AutoGPT: Move all the Agent's prompt generation code into a PromptStrategy (#5363)
* AutoGPT: fix execution of async commands

* AutoGPT: Move all the Agent's prompt building code into OneShotAgentPromptStrategy

* Remove generic type annotations from PromptStrategy

* Fix tests

* Fix lint
2023-09-27 20:42:46 -04:00
Reinier van der Leer
747f27d26f AutoGPT: unbreak Docker CI 2023-09-27 20:33:57 -04:00
hunteraraujo
f5f92cb67b Merge branch 'master' of github.com:Significant-Gravitas/Auto-GPT 2023-09-27 17:26:22 -07:00
hunteraraujo
39e4b7e03f Fix bug where failed benchmark is not being added to test suite 2023-09-27 17:26:19 -07:00
Reinier van der Leer
10b7af08be AutoGPT: Fix challenges & plugin tests 2023-09-27 19:50:25 -04:00
Reinier van der Leer
5496a82043 AutoGPT: Prevent the linter from breaking check_requirements.py 2023-09-27 18:59:33 -04:00
hunteraraujo
0847505add Dismiss leaderboard submission pop up after submitting 2023-09-27 15:46:54 -07:00
hunteraraujo
122c996714 Add helpful print statements and fix isURL validation 2023-09-27 15:46:05 -07:00
hunteraraujo
105b80101e Update Leaderboard Submission Dialog to Pass Parameters to ViewModel
This commit updates the Leaderboard Submission Dialog to pass the team name, repository URL, and commit SHA as parameters to the submitToLeaderboard function in the SkillTreeViewModel. These changes ensure that the dialog and the ViewModel are aligned in terms of parameter requirements, facilitating efficient and accurate leaderboard submissions.
2023-09-27 15:33:11 -07:00
hunteraraujo
ec03170e6e Refactor benchmark data models with placeholder values 2023-09-27 15:16:34 -07:00
hunteraraujo
e4d84dad0a Enhance SkillTreeViewModel with Benchmark Runs Tracking and Leaderboard Submission
This commit incorporates significant enhancements to the SkillTreeViewModel, introducing the ability to track current benchmark runs and submit results to the leaderboard. A new list, `currentBenchmarkRuns`, is introduced to store each benchmark run object during a specific benchmark session. This list is reset to an empty state when initiating a new benchmark.

Changes made:
- Introduced `currentBenchmarkRuns` to track ongoing benchmark runs, ensuring real-time data availability.
- Enhanced `runBenchmark` method to populate `currentBenchmarkRuns` with benchmark run objects as the benchmark progresses.
- Implemented `submitToLeaderboard` method, accepting parameters `teamName`, `repoUrl`, and `agentGitCommitSha`, and updating each run object with this information. All runs share a common UUID generated at the beginning of the submission process.

These enhancements ensure that benchmark run data is readily available and organized, facilitating a streamlined process for submitting well-structured data to the leaderboard. It fosters a more interactive and informative user experience, offering insights into each benchmark run's progress and outcomes.
2023-09-27 15:14:48 -07:00
hunteraraujo
9c1b55b9fb Integrate UriUtility in LeaderboardSubmissionDialog for URL Validation
This commit integrates the newly created UriUtility class into the LeaderboardSubmissionDialog. The isURL method from UriUtility is used to add an additional layer of validation for the GitHub repository URL input field. It ensures that users enter a valid URL format before submitting their leaderboard entries.

Changes made:
- Integrated UriUtility’s isURL method in the _validateAndSubmit function of the LeaderboardSubmissionDialog.
- Added a specific error message "Invalid URL format" to inform users when the entered URL does not meet the validation criteria.
- Updated the state management to reflect the URL validation status and re-render the dialog with appropriate error messages when necessary.

With this integration, the application now provides real-time feedback on the validity of the entered URL, enhancing user experience and data integrity by ensuring that only valid URLs are submitted to the leaderboard.
2023-09-27 15:11:27 -07:00
hunteraraujo
52c0929e3b Add UriUtility Class for URL Validation
This commit introduces the UriUtility class to the codebase. This utility class contains a static method, isURL, used for validating URLs. The method checks for common URL validation criteria, ensuring that the input string adheres to the standard URL format. It verifies that the URL is non-empty, does not contain invalid characters, is not a mailto link, can be parsed as a URI, and has both a scheme and a host. Additional validations include checks on user info and port numbers.

Changes made:
- Created UriUtility class with isURL static method for URL validation.
- Included validations for empty strings, invalid characters, mailto links, scheme, host, user info, and port numbers.
- The utility will be utilized in forms and other areas where URL validation is necessary.

This enhancement improves the robustness of URL validation across the application, ensuring that only valid URLs are processed and stored.
2023-09-27 15:10:14 -07:00
merwanehamadi
793ff1c163 Add data challenges (#5361)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-27 10:47:34 -07:00
SwiftyOS
6f289e6dfa Renamed wip tutorials to wip 2023-09-27 17:17:04 +02:00
SwiftyOS
1bcd402e1c forge - updated readme 2023-09-27 17:16:38 +02:00
SwiftyOS
3109fa583b forge - tutorial 3 adding images 2023-09-27 17:10:07 +02:00
SwiftyOS
4360527b43 forge - adding rest of tutorial 3 2023-09-27 16:52:19 +02:00
merwanehamadi
e0aa11f4d7 Duplicate tasks created (#5358)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-27 07:41:51 -07:00
SwiftyOS
a14aadd914 forge - added prompt engine tutorial section 2023-09-27 12:51:31 +02:00
SwiftyOS
8f8b7d9ecd forge - updating tutorial 3 2023-09-27 12:37:52 +02:00
SwiftyOS
b32125d0ad forge: simplified sample step code 2023-09-27 11:55:03 +02:00
hunteraraujo
c94835432e Update LeaderboardService to use PUT instead of POST 2023-09-27 00:12:45 -07:00
hunteraraujo
5f4454737d Added PUT method support to RestApiUtility
Enhanced the RestApiUtility class to support HTTP PUT requests. The new method, `put`, allows for updating data at a specified endpoint. This addition provides more comprehensive CRUD operations for the API interactions, ensuring the client can perform updates when necessary.
2023-09-27 00:12:17 -07:00
hunteraraujo
dc4ca47bc7 Implement full pagination support for task fetching
Refactored the TaskService and TaskViewModel classes to fully support paginated fetching of tasks. The solution fetches tasks page by page until all tasks have been retrieved, accommodating the API's pagination mechanism. Renamed `listAllTasks` to `fetchTasksPage` to better reflect its purpose and introduced a new method, `fetchAllTasks`, to handle the paginated fetching logic.
2023-09-27 00:11:24 -07:00
hunteraraujo
5df70eabd8 Adjust spacing + sizes of social icons 2023-09-26 20:18:29 -07:00
hunteraraujo
2d64647543 Update SideBarView with socials 2023-09-26 19:58:30 -07:00
hunteraraujo
193278fb53 Add image assets 2023-09-26 19:48:21 -07:00
hunteraraujo
654f3dff06 Add URL launcher dependency 2023-09-26 19:26:47 -07:00
hunteraraujo
1b9ec31d84 Add tooltip for LeaderboardSubmissionButton 2023-09-26 16:34:15 -07:00
hunteraraujo
efe1b3e0eb Update TaskQueueView with TestSuiteButton and LeaderboardSubmissionButton
Integrated both the TestSuiteButton and LeaderboardSubmissionButton in the TaskQueueView. Added conditions to disable the LeaderboardSubmissionButton based on benchmark running status and if the benchmarkStatusMap is empty. The onPressed logic for both buttons has been integrated as per requirements.
2023-09-26 16:28:52 -07:00
hunteraraujo
d056793309 Add placeholder submitToLeaderboard 2023-09-26 16:13:38 -07:00
hunteraraujo
79f96c8f91 Introduce LeaderboardSubmissionButton widget
Added a new LeaderboardSubmissionButton widget to facilitate user submissions to the leaderboard. The button is styled consistently with other application buttons and features an emoji trophy icon to indicate leaderboard submissions. It provides a mechanism for disabling submissions based on certain conditions.
2023-09-26 16:03:27 -07:00
hunteraraujo
2605cd04d4 Add TestSuiteButton
Introduced a new reusable TestSuiteButton widget. It provides flexibility for positioning and is intended for initiating the test suite in the TaskQueueView.
2023-09-26 15:59:56 -07:00
hunteraraujo
6365071bb4 Add LeaderboardSubmissionDialog with SharedPreferences support
Introduce the LeaderboardSubmissionDialog widget which allows users to submit their team name, GitHub repo URL, and commit SHA for leaderboard consideration.

Features:
- Field validation: Ensure that all required fields are filled before submission.
- SharedPreferences integration: Save the user's last submission values and auto-populate the fields with these values when the dialog is shown next time.

This enhancement provides a smoother user experience by reducing repetitive data entry for subsequent leaderboard submissions.
2023-09-26 15:41:51 -07:00
hunteraraujo
389131f2ab Add ContinuousModeDialog and integrate with ChatInputField
- Introduced a new dialog, ContinuousModeDialog, to inform users about the repercussions of the continuous mode.
- Integrated ContinuousModeDialog with ChatInputField. The dialog is shown when the fast-forward icon is clicked, based on the user's shared preferences.
- Leveraged shared preferences to remember if the user has chosen not to see the dialog again.
- Enhanced the ChatInputField to handle different states and user interactions related to continuous mode.
2023-09-26 14:25:20 -07:00
Tower
cf630e4f2c pipeline entering the arena (#5333) 2023-09-26 12:51:06 +02:00
Sergey Volkov
7203627483 potato entering the arena (#5335) 2023-09-26 12:50:47 +02:00
monsterooo
66d010a458 sql entering the arena (#5336) 2023-09-26 12:50:33 +02:00
Sampson2016
577ea41143 bot entering the arena (#5340)
Co-authored-by: 宋林海 <songlinhai@corp.netease.com>
2023-09-26 12:49:38 +02:00
Fredrik Sewén
08b0d34a4e northfork entering the arena (#5338) 2023-09-26 12:48:52 +02:00
ArunKR
6aa9bd3f7b AskOpie entering the arena (#5334) 2023-09-26 12:48:05 +02:00
Timothy Zhang
8ee59101db evlyn entering the arena (#5332)
* Merge branch 'master' of /Users/timothy/maimai/project/Auto-GPT with conflicts.

* evlyn entering the arena

---------

Co-authored-by: zhangting <zhangting@taou.com>
2023-09-26 12:47:52 +02:00
Althaf
bf21938bcc AgGPT entering the arena (#5330) 2023-09-26 12:47:38 +02:00
Abdullah Elsayed
1a2cd8e057 evo entering the arena (#5329) 2023-09-26 12:47:16 +02:00
Matthew Cornfield
a492573970 Job_GPT entering the arena (#5322) 2023-09-26 12:46:17 +02:00
ddNTP
74e61b08b8 webagent entering the arena (#5275)
Co-authored-by: luowenpei <luowenpei@baidu.com>
2023-09-26 12:45:58 +02:00
Murilo Eduardo dos Santos
dad3deccd3 Eduardo entering the arena (#5321) 2023-09-26 12:45:39 +02:00
Erlend Jones
600d95aa41 Portalen entering the arena (#5304) 2023-09-26 12:45:11 +02:00
ramirez3rg
dc03a32e9c YoutubePost_agent entering the arena (#5291) 2023-09-26 12:44:59 +02:00
uply23333
c136fe226c uply entering the arena (#5290)
Co-authored-by: 林永平 <linyongping01@corp.netease.com>
2023-09-26 12:44:45 +02:00
Ada Lovecraft
e808c027a9 QA_AGENT entering the arena (#5272) 2023-09-26 12:43:51 +02:00
colour-me-bibi
7ac647f3b6 WeatherInformer entering the arena (#5259)
Co-authored-by: Benjamin Foreman <bibi@Benjamins-MacBook-Air.local>
2023-09-26 12:43:34 +02:00
Swifty
77d0516674 Update frontend build (#5341)
Co-authored-by: GitHub Action <action@github.com>
2023-09-26 12:41:10 +02:00
SwiftyOS
3b909d2fd2 updated github instructions 2023-09-26 12:39:53 +02:00
hunteraraujo
3d4307a848 Added SkillTreeType enum and implemented dropdown selection in SkillTreeView
- Introduced a new `SkillTreeType` enum to represent different skill tree categories: General, Coding, Data, and Scrape/Synthesize.
- Extended the `SkillTreeType` enum to provide associated string values and JSON file names for each category.
- Refactored the `SkillTreeViewModel` to reload the skill tree data based on the selected category.
- Enhanced `SkillTreeView` by adding a positioned dropdown in the top-left corner to allow users to select and load different skill tree categories dynamically.
2023-09-25 23:08:24 -07:00
hunteraraujo
4a8da53d85 Add centralized color constants for light and dark modes
Introduced a `AppColors` class to house all color constants provided by the design team. This class segregates colors into light and dark modes, ensuring easy and consistent theming throughout the application. The centralized approach simplifies updates and ensures color consistency across the app.
2023-09-25 20:06:17 -07:00
hunteraraujo
bec207568a Add userExperienceIterationTwo feature flag utility
Added a FeatureFlags utility class to manage feature toggling within the application. This initial commit introduces a flag for the userExperienceIterationTwo feature, allowing for controlled testing and phased rollout as development progresses. The flag can be manually adjusted as needed.
2023-09-25 19:30:26 -07:00
Silen Naihin
075529ddc9 update read me dates + tutorials 2023-09-25 10:18:07 -07:00
Siddharth Sarda
cc65efa86c accidental-agent entering the arena (#5271) 2023-09-25 13:05:52 +02:00
Swifty
f34486a15a Update frontend build (#5323)
Co-authored-by: GitHub Action <action@github.com>
2023-09-25 13:01:37 +02:00
hunteraraujo
470cfa6c4e Fix issue with decoding metrics JSON 2023-09-24 22:30:37 -07:00
hunteraraujo
a6446ce43e Fix leaderboard URL 2023-09-24 22:30:17 -07:00
hunteraraujo
77ae0f490d Update hintText 2023-09-24 22:11:57 -07:00
hunteraraujo
72cbfd4d96 Conditionally show skill tree toggle based off isDeveloperModeEnabled 2023-09-24 22:09:45 -07:00
hunteraraujo
41a4ff828c Clean up settings view 2023-09-24 22:01:50 -07:00
hunteraraujo
da8b9d58ac Refactor Settings and Task Views for API Base URL Management
- Deprecated `ApiSettingsViewModel` in favor of enhancing `SettingsViewModel`.
- Moved the API Base URL field from `TaskView` to `SettingsView` to centralize configuration.
- Integrated `RestApiUtility` dependency into `SettingsViewModel` to ensure consistent URL management across the app.
2023-09-24 21:41:12 -07:00
hunteraraujo
ffa76c3a19 Integrated continuousModeSteps from SettingsViewModel into ChatViewModel
Refactored the ChatViewModel's sendChatMessage method to utilize the continuousModeSteps setting from the SettingsViewModel. This allows the continuous chat mode to honor the user's preference from the settings. Also introduced an optional currentStep parameter with a default value, enabling better control over the progression of continuous mode.
2023-09-24 17:15:36 -07:00
hunteraraujo
9463fbbe2b Refactor SettingsView to Accept External ViewModel
Changed the architecture of the SettingsView to align with the existing pattern in the application. Instead of creating its own instance of SettingsViewModel, the view now accepts an external viewModel as a parameter. This ensures consistency across the application and allows for better modularity and reusability of components.
2023-09-24 13:31:47 -07:00
hunteraraujo
9bd06cefdd Change color of settings app bar 2023-09-24 12:13:05 -07:00
hunteraraujo
a09d2a581f Enhance SettingsViewModel with State Persistence and Sign Out
This commit enriches the `SettingsViewModel` by integrating state persistence functionality and a sign-out method, thus ensuring a more robust and user-friendly settings feature.

Key Enhancements:
1. **State Persistence**:
   - Leveraging the `shared_preferences` package, the app now stores and retrieves user preferences related to app settings, ensuring consistency across app restarts.
   - Preferences like Dark Mode, Developer Mode, Base URL, and Continuous Mode Steps are persistently stored and loaded when the ViewModel is initialized.

2. **Sign Out Method**:
   - A `signOut` method has been introduced in the ViewModel, utilizing the `AuthService` to facilitate user sign-out processes.
   - This addition allows for seamless integration of sign-out functionality within the settings interface, granting users the ability to easily terminate sessions.

3. **SettingsView Enhancement**:
   - The `SettingsView` has been adapted to incorporate a UI element invoking the `signOut` method, enhancing user interaction within the settings environment.

This enhancement not only bolsters the resilience and usability of the app’s settings but also lays down a structured approach for potential future additions to user preferences and settings-related functionalities.
2023-09-23 21:51:07 -07:00
hunteraraujo
4c0349a6a8 Integrate SettingsView into MainLayout
This commit integrates the newly created `SettingsView` into the `MainLayout`, allowing users to access and interact with the settings through the main user interface of the app. When the user selects the settings tab from the `SideBarView`, the `SettingsView` is displayed alongside the `ChatView`, maintaining consistent layout aesthetics with other views like `TaskView`.

Key Changes:
- A new condition has been added in the `ValueListenableBuilder` within the `MainLayout` to check if the selected view is `'SettingsView'`.
- When `'SettingsView'` is selected, `SettingsView` is rendered with the same width as `TaskView`, and `ChatView` is displayed next to it.
- The state of the skill tree is reset when navigating to `SettingsView` to ensure a clean state.

This integration ensures a seamless user experience, allowing users to navigate and configure app settings easily and efficiently from the main layout of the app.
2023-09-22 23:36:12 -07:00
hunteraraujo
9d1b235472 Add Settings Tab to SideBarView
This commit augments the `SideBarView` by introducing a new `IconButton` that represents a tab for the newly created `SettingsView`. This enhancement allows users to navigate to the settings page directly from the sidebar, improving accessibility to app configuration options.

Key Changes:
- A new `IconButton` with a settings icon has been added to the sidebar’s `Column` widget.
- Selecting the settings tab updates the `selectedViewNotifier.value` to `'SettingsView'`, indicating the user's intent to navigate to the settings page.
- Visual feedback is provided by altering the color of the settings icon based on whether the settings tab is currently selected.

This addition ensures seamless integration of the `SettingsView` into the existing navigation structure, enabling users to easily configure app settings.
2023-09-22 23:24:37 -07:00
merwanehamadi
20b40061e2 Update TROUBLESHOOTING.md 2023-09-22 17:49:39 -07:00
merwanehamadi
98b32c6276 Remove troubleshooting for Authentication 2023-09-22 17:48:53 -07:00
merwanehamadi
8f8e157abe Add way to troubleshoot poetry 2023-09-22 17:46:21 -07:00
merwanehamadi
fa9fc18e22 Validate skill tree so the UI never breaks (#5306)
Validate skill tree to prevent it from breaking the UI

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-22 17:32:05 -07:00
hunteraraujo
ecc8d9430c Enhance Hierarchy Population to Support Nodes with Multiple Parents
This commit refines the `populateSelectedNodeHierarchy` method in the `SkillTreeViewModel` to accurately represent nodes that possess multiple parent nodes, ensuring a comprehensive and non-redundant representation of the entire hierarchy leading back to the root nodes.

Modifications and Features:
- The method now employs recursion to traverse all possible paths back to the root nodes from a selected node, capturing every unique node in the hierarchies.
- A `Set` is utilized to monitor and ensure that each node is only added once to the `_selectedNodeHierarchy` list, eliminating the possibility of duplicates.
- The finalized `_selectedNodeHierarchy` list is constructed such that the root of the tree is the last item in the list, providing a more logical representation of the hierarchy.

These enhancements ensure a more accurate and efficient representation of the skill tree structure, particularly in scenarios where nodes have multiple parents, facilitating better navigation and interaction within the skill tree.
2023-09-22 17:26:47 -07:00
hunteraraujo
078559182a Merge branch 'master' of github.com:Significant-Gravitas/Auto-GPT 2023-09-22 16:20:11 -07:00
hunteraraujo
45819e68d0 Use SugiyamaAlgorithm instead of BuchheimWalkerAlgorithm for skill tree 2023-09-22 16:20:04 -07:00
merwanehamadi
8f41dbe27d Rename Auto-GPT to AutoGPT (#5301)
* Rename to AutoGPT

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Update autogpts/autogpt/BULLETIN.md

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* Update BULLETIN.md

* Update docker-compose.yml

* Update autogpts/forge/tutorials/001_getting_started.md

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* Update autogpts/autogpt/tests/unit/test_logs.py

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update introduction.md

* Update plugins.md

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2023-09-22 15:49:29 -07:00
hunteraraujo
bb627442d4 Implement SettingsView for User Configurable Settings
This commit introduces the `SettingsView` class, which is responsible for rendering the user interface for the settings feature of the app. This View is associated with the `SettingsViewModel` for state management and logic.

Features Represented in this View:
- Dark Mode: A switch to enable or disable Dark Mode.
- Developer Mode: A switch to enable or disable Developer Mode.
- Base URL: A text field to input and configure the Base URL.
- Continuous Mode Steps: User-friendly '+' and '-' buttons allowing users to configure the number of steps for continuous mode.

The `SettingsView` utilizes the Flutter `ListView` to display various settings options, providing an intuitive and user-friendly experience. It employs reactive state management using the `Provider` package, ensuring that any state changes in the associated ViewModel are reflected immediately in the View. Proper documentation and comments have been added for better code readability and maintenance.
2023-09-22 14:41:41 -07:00
hunteraraujo
5d00457d79 Add SettingsViewModel for Managing Settings State
This commit introduces the `SettingsViewModel` class, part of the MVVM architecture, responsible for managing the state and business logic for the settings feature of the app. This ViewModel is associated with the `SettingsView`.

Features Managed by this ViewModel:
- Dark Mode: Toggle the state of Dark Mode and notify listeners.
- Developer Mode: Toggle the state of Developer Mode and notify listeners.
- Base URL: Update the state of Base URL and notify listeners.
- Continuous Mode Steps: Increment and decrement the number of Continuous Mode Steps and notify listeners.

Each change in the state is followed by a notification to the listeners to rebuild the UI components that depend on this state, ensuring a reactive UI. To-do comments have been added where the state needs to be persisted or synchronized with a server.
2023-09-22 14:40:11 -07:00
hunteraraujo
18333fbc7c Temporarily allow null values in benchmark data models 2023-09-22 13:48:03 -07:00
merwanehamadi
a0e383f4d9 Fix skill tree (#5303)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-22 13:09:57 -07:00
Silen Naihin
6fb7baf789 Update README.md
change agent protocol link
2023-09-22 09:10:40 -07:00
SwiftyOS
ca644f8be0 forge - Added image for 3rd tutorial 2023-09-22 17:44:11 +02:00
SwiftyOS
ea1e381003 forge - added draft 3rd tutorial 2023-09-22 17:40:23 +02:00
SwiftyOS
4fd1d4b426 forge - added tutorial images 2023-09-22 16:30:00 +02:00
merwanehamadi
6a776d10b7 Create TROUBLESHOOTING.md (#5300) 2023-09-22 07:14:59 -07:00
Donald Nwokoro
ce3ab44609 Corrected Typo on QUICKSTART.md (#5294)
Hello, I just fixed a little typo. Love the work you guys do ;)

Co-authored-by: Swifty <craigswift13@gmail.com>
2023-09-22 15:15:17 +02:00
SwiftyOS
6705a6be08 Updating the 2nd tutorial 2023-09-22 15:07:33 +02:00
SwiftyOS
06ee9eb744 forge - updated the readme 2023-09-22 15:07:11 +02:00
SwiftyOS
4acccc0b8d forge - updating agent blueprint tutorial 2023-09-22 13:11:08 +02:00
SwiftyOS
135bf18d65 Updated the readme with links to the tutorial series 2023-09-22 12:28:14 +02:00
SwiftyOS
945400ab4e Updated the first tutorial 2023-09-22 12:09:33 +02:00
SwiftyOS
6cc148d2ad changed to linguist-generated 2023-09-22 10:17:48 +02:00
SwiftyOS
77f3940e22 removed frontend build from code stats 2023-09-22 10:12:50 +02:00
Swifty
7542cdffb5 Update frontend build (#5298)
Co-authored-by: GitHub Action <action@github.com>
2023-09-22 10:05:52 +02:00
merwanehamadi
db4ac8d1d8 Update tree_structure.json (#5297) 2023-09-21 20:30:21 -07:00
merwanehamadi
18e576cb53 Structure challenges (#5296) 2023-09-21 20:06:37 -07:00
merwanehamadi
f67a352937 Add categories skill tree (#5295)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-21 17:39:16 -07:00
merwanehamadi
f4e7b1c61c Add eval_id and sync Skill Tree with Frontend(#5287)
Add eval_id to skill tree

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-21 13:36:17 -07:00
merwanehamadi
295787c948 Fix forge not being an autogpt anymore (#5288) 2023-09-21 10:19:45 -07:00
SwiftyOS
447f9963fb Added memory papers 2023-09-21 18:21:36 +02:00
SwiftyOS
e6206c0ed6 Added llm tool papers 2023-09-21 18:21:27 +02:00
SwiftyOS
2dd0a61a6e Added planning papers 2023-09-21 18:21:16 +02:00
SwiftyOS
3f1df1684a formatting 2023-09-21 17:43:35 +02:00
SwiftyOS
7373933a18 Formatting changes 2023-09-21 17:26:55 +02:00
SwiftyOS
8c49b84faa added information about directory transversal 2023-09-21 17:18:42 +02:00
SwiftyOS
ec7d3e73d7 reduced matching limit 2023-09-21 17:18:42 +02:00
SwiftyOS
58a183544a simplified system json format 2023-09-21 17:18:42 +02:00
SwiftyOS
d0db337af8 changed chat completion to async 2023-09-21 17:18:42 +02:00
SwiftyOS
01f68601d3 Changed abilities to async 2023-09-21 17:18:42 +02:00
Reinier van der Leer
de527d3fdf AutoGPT: use config and LLM provider from core (#5286) 2023-09-21 17:17:11 +02:00
Reinier van der Leer
c773815c70 Fix AutoGPT CI linters 2023-09-21 17:08:57 +02:00
Reinier van der Leer
8d29f97f46 AutoGPT: Fix Docker CI 2023-09-21 17:06:45 +02:00
Reinier van der Leer
c14762a495 Merge branch 'master' into autogpt/integrate-re-arch 2023-09-21 16:59:20 +02:00
Reinier van der Leer
c1494ba1ef AutoGPT: started replacing monolithic Config by .core.configuration 2023-09-21 16:46:13 +02:00
Reinier van der Leer
7720f6af24 AutoGPT: replace autogpt.llm.* with LLM infrastructure of autogpt.core;
* Removed `autogpt.llm.base` and `autogpt.llm.utils`
* `core` does things async, so `Agent.think()` and `Agent.execute()` are now also async
* Renamed `dump()` and `parse()` on `JSONSchema` to `to_dict()` and `from_dict()`
* Removed `MessageHistory`

* Also, some typo's and linting fixes here and there
2023-09-21 16:38:41 +02:00
SwiftyOS
3f8088b12d add abilities registry to default agent 2023-09-21 16:35:30 +02:00
SwiftyOS
1936eaa425 export llm functions 2023-09-21 16:35:04 +02:00
SwiftyOS
f66c8b6f2f added prompt templates 2023-09-21 16:34:54 +02:00
SwiftyOS
a9c4e6daa8 Added list abiltiies for prompt 2023-09-21 16:34:24 +02:00
SwiftyOS
94c511d0e0 added finish command 2023-09-21 16:34:00 +02:00
SwiftyOS
853add7e86 update registry to require a task_id 2023-09-21 16:01:53 +02:00
SwiftyOS
4de327e0e3 Add more file abilities 2023-09-21 16:01:41 +02:00
Reinier van der Leer
88f0ccfd7e AutoGPT/core: improve model_providers typing and tooling
* Make .schema model names less pedantic

* Rename LanguageModel* objects to ChatModel* or CompletionModel* where appropriate

* Add `JSONSchema` utility class in `core.utils`

* Use `JSONSchema` instead of untyped dicts for `Ability` and `CompletionModelFunction` parameter specification

* Add token counting methods to `ModelProvider` interface and implementations
2023-09-21 15:30:01 +02:00
SwiftyOS
040c6bcd8c Added log messages for task and step creation 2023-09-21 15:21:58 +02:00
SwiftyOS
13c8d81f15 Disabled debug as defualt 2023-09-21 15:21:41 +02:00
SwiftyOS
5c0ddd3a81 Added jinja2 as a requirement 2023-09-21 15:21:18 +02:00
Swifty
12f3a321b7 change to stream respsonse (#5285)
* change to stream respsonse

* Changed default log level to INFO
2023-09-21 14:57:41 +02:00
Reinier van der Leer
618e7606ef Add .flake8 2023-09-21 14:47:54 +02:00
SwiftyOS
a9ad805ba9 updated run benchmark script 2023-09-21 14:44:48 +02:00
Swifty
3f83e20387 Update frontend build (#5282)
Co-authored-by: GitHub Action <action@github.com>
2023-09-21 08:07:15 +02:00
SwiftyOS
186508e75c Removed flutter and chrome from setup as not required 2023-09-21 08:06:26 +02:00
hunteraraujo
62efc6b07e Add Firebase Analytics dependency 2023-09-20 20:40:12 -07:00
hunteraraujo
22ea449850 Integrate LeaderboardService into SkillTreeViewModel
This commit integrates the `LeaderboardService` into `SkillTreeViewModel` to enable benchmark report submissions to the leaderboard. A `BenchmarkRun` object is created from the evaluation response and submitted using the `submitReport` method from `LeaderboardService`.
2023-09-20 19:36:25 -07:00
merwanehamadi
ff4c76ba00 Make agbenchmark a proxy of the evaluated agent (#5279)
Make agbenchmark a Proxy of the evaluated agent

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-20 16:06:00 -07:00
hunteraraujo
1a471b73cd Fix _leaderboardBaseUrl 2023-09-20 14:44:29 -07:00
hunteraraujo
7901c750b6 Extend RestApiUtility to Support Leaderboard Base URL
This commit extends the `RestApiUtility` class to include support for a new leaderboard base URL. A new `ApiType` enum value `ApiType.leaderboard` has been added, and the `_getEffectiveBaseUrl` method has been updated to handle this new type. The leaderboard base URL is "https://leaderboard.vercel.app/".
2023-09-20 14:43:45 -07:00
hunteraraujo
a0512254ca Add LeaderboardService with submitReport Method
This commit adds a new `LeaderboardService` class featuring a `submitReport` method. This method allows for the submission of `BenchmarkRun` objects to the leaderboard via a POST request to the `/api/reports` endpoint. The new service uses the `ApiType.leaderboard` enum value.
2023-09-20 14:38:48 -07:00
hunteraraujo
fe96664afb Update ApiType Enum to Include Leaderboard 2023-09-20 14:31:27 -07:00
SwiftyOS
d4222519eb Added instructions about cloning and changing dir 2023-09-20 22:50:39 +02:00
SwiftyOS
88f0b04015 fixed grammer 2023-09-20 22:50:39 +02:00
hunteraraujo
cfc6180233 Add BenchmarkRun Class to Model Complete Benchmark Runs
This commit introduces the `BenchmarkRun` class, designed to model a complete benchmark run. The class encapsulates all data and sub-models related to a benchmark, providing a centralized object to handle various aspects of a benchmark run.

The `BenchmarkRun` class includes the following sub-models:
- `RepositoryInfo`: Information about the repository and team.
- `RunDetails`: Specific details like the run identifier, command, and timings.
- `TaskInfo`: Information about the task being benchmarked.
- `Metrics`: Performance metrics for the benchmark run.
- `Config`: Configuration settings for the benchmark run.

A `reachedCutoff` field is also included to indicate whether a certain cutoff was reached during the benchmark run.

Methods for serializing and deserializing the object to and from JSON are also provided.
2023-09-20 13:24:19 -07:00
hunteraraujo
311f69b7cf Add RepositoryInfo Class for Benchmark Repository and Team Details
This commit introduces the RepositoryInfo class, designed to encapsulate details about the repository and team associated with a benchmark run.

The class includes the following fields:
- repoUrl: The URL of the repository where the benchmark code resides.
- teamName: The name of the team responsible for the benchmark.
- benchmarkGitCommitSha: The Git commit SHA for the benchmark code.
- agentGitCommitSha: The Git commit SHA for the agent code.

The class supports JSON serialization and deserialization, making it easy to use with Flutter's JSON handling mechanisms.
2023-09-20 13:17:46 -07:00
hunteraraujo
fc193568b9 Add RunDetails class for encapsulating benchmark run information
Added a new Dart class called `RunDetails` to represent specific details related to a benchmark run.

The class includes fields for:
- The unique run identifier (`runId`)
- The command used to initiate the benchmark (`command`)
- The time the benchmark was completed (`completionTime`)
- The time the benchmark started (`benchmarkStartTime`)
- The name of the test being run (`testName`)

Serialization and deserialization methods are also provided for JSON compatibility.
2023-09-20 13:12:03 -07:00
hunteraraujo
afe77bbc4f Add TaskInfo class with serialization and documentation
Added a new TaskInfo class to encapsulate information related to a specific benchmark task.

- The TaskInfo class holds attributes like the data file path, regression status, task categories, task details, expected answer, and description.
- Included methods for JSON serialization and deserialization.
- Added comprehensive documentation to describe the purpose, properties, and methods of the TaskInfo class.
2023-09-20 13:07:54 -07:00
hunteraraujo
50ef7b31eb Add Metrics class with serialization and documentation
Added a new Metrics class to represent key performance metrics of a benchmark test run.

- The Metrics class encapsulates various data points like difficulty, success rate, attempted status, success percentage, cost, and runtime.
- Included serialization and deserialization methods for converting between Metrics objects and JSON.
- Added comprehensive documentation to describe the purpose, properties, and methods of the Metrics class.
2023-09-20 13:04:47 -07:00
hunteraraujo
39f8ae515b Add Config Class for Benchmark Configuration Management
This commit introduces a new `Config` class, designed to manage and store configuration settings related to the benchmark run. The class contains two key fields:

1. `agentBenchmarkConfigPath`: The path to the agent's benchmark configuration file.
2. `host`: The address of the host where the benchmark is running.

The class includes methods for serialization and deserialization, allowing easy conversion between `Config` objects and JSON maps.

Documentation comments have also been added for better code readability and understanding.
2023-09-20 13:00:22 -07:00
SwiftyOS
c72a35e92e Added blueprint of an agent tutorial 2023-09-20 17:29:14 +02:00
SwiftyOS
7e65df3f39 Changed repos stats to run daily 2023-09-20 16:46:03 +02:00
SwiftyOS
4d629960bb renamed skills -> abilities 2023-09-20 16:45:47 +02:00
SwiftyOS
9c4617eefa Added the getting started tutorial 2023-09-20 16:45:32 +02:00
SwiftyOS
b952d0d2e0 Updated server endpoint message 2023-09-20 16:24:18 +02:00
SwiftyOS
55bcb99e91 Edited the cron to run every 90mins 2023-09-20 13:23:35 +02:00
SwiftyOS
6dcee70eab Added repo stats 2023-09-20 12:53:29 +02:00
SwiftyOS
8fdccfa05a Added outline for memory tutorial 2023-09-20 12:41:04 +02:00
SwiftyOS
4f002d66be Added outline for skills tutorial 2023-09-20 12:40:52 +02:00
SwiftyOS
93be3f54e3 Adding outline of the planning tutorial 2023-09-20 11:48:42 +02:00
SwiftyOS
309a6af359 Added outline of benchmarking tutorial 2023-09-20 11:48:05 +02:00
SwiftyOS
585ba1a1fd Add outline of agent overview tutorial 2023-09-20 11:47:36 +02:00
SwiftyOS
c707cec362 Added outline of tutorial 1 2023-09-20 11:46:55 +02:00
SwiftyOS
edcd103958 Added llm functions 2023-09-20 09:57:10 +02:00
Swifty
8897e47691 Update frontend build (#5270)
Co-authored-by: GitHub Action <action@github.com>
2023-09-20 09:53:00 +02:00
hunteraraujo
377d0af228 Refactor SkillTreeViewModel and Update TaskQueueView UI for Task Status (#5269)
* Refactor SkillTreeViewModel and Update TaskQueueView UI for Task Status

* Notify UI when updating benchmark status
2023-09-19 23:30:22 -07:00
hunteraraujo
99035103e0 Rename benchmark_service directory to benchmark 2023-09-19 22:16:58 -07:00
hunteraraujo
525571c32e Enhance runBenchmark with TestSuite Tracking (#5268) 2023-09-19 21:31:02 -07:00
hunteraraujo
80682b41cb Add Early Termination to runBenchmark on Benchmark Failure (#5267) 2023-09-19 20:24:52 -07:00
hunteraraujo
a37b486227 Enhance SkillTreeViewModel to Manage Benchmark Status (#5266)
Enhance SkillTreeViewModel to Manage Benchmark Execution and Status
2023-09-19 20:20:31 -07:00
Reinier van der Leer
0ca003d858 AutoGPT: Deprecate MessageHistory 2023-09-20 02:40:35 +02:00
hunteraraujo
f130aa7972 Correct triggerEvaluation endpoint 2023-09-19 17:19:59 -07:00
hunteraraujo
5afab461ee Refactor Benchmarking Workflow and Introduce New Data Models (#5264)
* New benchmark data models

* Update _benchmarkBaseUrl

* Remove ReportRequestBody

* Update benchmark service methods for proxy approach

* Add eval id to SkillNodeData

* Refactor runBenchmark Method for proxy approach
2023-09-19 17:01:15 -07:00
SwiftyOS
2098e192da Removed additional refs to frontend 2023-09-19 15:09:51 +02:00
SwiftyOS
cc7476656f removed frontend command from the cli 2023-09-19 15:08:26 +02:00
SwiftyOS
fa265fdf25 Updated quickstart 2023-09-19 15:02:06 +02:00
SwiftyOS
08db74b8ee Updated the forge readme 2023-09-19 14:53:53 +02:00
SwiftyOS
aa1a65c59c Updated forge to server the frontend again 2023-09-19 13:24:06 +02:00
Swifty
ccd0eb800b Update frontend build (#5258)
Co-authored-by: GitHub Action <action@github.com>
2023-09-19 13:06:20 +02:00
SwiftyOS
360ce60b83 commened out create PR bit 2023-09-19 13:04:57 +02:00
SwiftyOS
172d256e15 Switched pull request step 2023-09-19 12:57:49 +02:00
SwiftyOS
2c187b66b7 More messing with the action 2023-09-19 12:50:44 +02:00
SwiftyOS
9a94ce31d8 Testing PR creation 2023-09-19 12:44:21 +02:00
SwiftyOS
c7f4bd265d Changed to push to a branch and make a pr 2023-09-19 12:35:04 +02:00
SwiftyOS
de4839b050 Testing build action 2023-09-19 12:11:32 +02:00
SwiftyOS
50842af1e5 Made the action only trigger if the frontend is modified 2023-09-19 12:10:39 +02:00
SwiftyOS
833a37e9a6 Added action to build and commit the frontend 2023-09-19 12:02:50 +02:00
hunteraraujo
bf03dd8739 Refactor runBenchmark in SkillTreeViewModel for New Report Generation Flow
This commit updates the runBenchmark method in the SkillTreeViewModel class to align with the new report generation flow. The updated method does the following:

1. Checks if a benchmark is already running to prevent overlapping runs.
2. Sets a flag to indicate that the benchmark is running and notifies the UI.
3. Reverses the selected node hierarchy for report generation.
4. Loops through each node in the reversed hierarchy to:
  - Generate a unique UUID for each test run.
  - Create a ReportRequestBody object.
  - Call the generateSingleReport method in the BenchmarkService.
  - Update the UI after each single report is generated.

5. After all single reports are generated, it calls the generateCombinedReport method in the BenchmarkService, passing in all the generated UUIDs.

6. Finally, it sets the benchmark running flag to false and notifies the UI.

This change improves the report generation flow and allows for both individual and combined reports.
2023-09-18 19:55:01 -07:00
hunteraraujo
5814c5a365 Change mock property to be required in ReportRequestBody 2023-09-18 19:46:56 -07:00
hunteraraujo
b3d0cf9a22 Add UUID dependency 2023-09-18 19:42:42 -07:00
hunteraraujo
0e069c2679 Add generateCombinedReport Method and Rename Existing Method
This commit introduces two major updates to the BenchmarkService class:

1. Renamed the `generateReport` method to `generateSingleReport` for better clarity and specificity.

2. Added a new method called `generateCombinedReport` that takes a list of test run IDs and generates a combined report by posting to the `/reports/query` endpoint.

These changes aim to improve the modularity and readability of the code, while also extending its functionality to handle combined reports.
2023-09-18 17:15:44 -07:00
hunteraraujo
da9fd926c8 Refactor ReportRequestBody for a single test 2023-09-18 17:09:23 -07:00
merwanehamadi
c09a0e7afa Implement old polling mechanism (#5248)
Implement old polling mechanism

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-18 16:23:06 -07:00
hunteraraujo
8923e79b29 Refactor TaskView to Support Combined Data and Test Suite Detail View
This commit introduces substantial improvements to the TaskView class to accommodate both tasks and test suites in a unified view. It also integrates the TestSuiteDetailView to display test suite details when a test suite is selected.

Key Enhancements:

1. Modified the `initState` method to call `fetchAndCombineData()` from TaskViewModel, thereby populating the combined data source.
2. Replaced the ListView that was rendering tasks with a ListView that can render both tasks and test suites.
3. Introduced conditional rendering for TestSuiteDetailView when a test suite is selected.
4. Updated onTap actions to select and deselect tasks and test suites appropriately.
5. Moved to using a Stack layout to allow overlay of TestSuiteDetailView on top of the existing layout.

This refactor enhances the TaskView's capabilities to manage and display both tasks and test suites, offering a more integrated user experience.
2023-09-18 15:08:22 -07:00
hunteraraujo
93094c7223 Extend TaskViewModel to Support Test Suites and Combined Data Sources
This commit significantly expands the functionalities of TaskViewModel to manage both tasks and test suites in a unified manner. The view model now serves as the primary business logic class that interacts with the UI for task and test suite management.

Key Enhancements:
- Introduced `_testSuites` list to store TestSuite objects.
- Added `combinedDataSource` to hold both tasks and test suites.
- Introduced `selectTestSuite` and `deselectTestSuite` methods for TestSuite selection management.
- Added methods for TestSuite CRUD operations (`addTestSuite`, `fetchTestSuites`, `_saveTestSuitesToPrefs`).
- Created `fetchAndCombineData` method to fetch and combine tasks and test suites into a single list, `combinedDataSource`.

This update provides a more robust and unified approach for managing tasks and test suites, thereby improving the application's modularity and scalability.
2023-09-18 15:03:53 -07:00
hunteraraujo
9f92488443 Add TestSuiteDetailView for Detailed Test Suite Management
This commit introduces a new StatefulWidget, TestSuiteDetailView, to offer a dedicated view for managing and interacting with individual Test Suites.

Key Features:
- Created a TestSuiteDetailView class that takes a TestSuite object and a TaskViewModel as parameters.
- Added an AppBar with a back button for easy navigation.
- Utilized ListView.builder to display a list of tasks that belong to the selected Test Suite.
- Integrated with existing TaskViewModel to select and delete tasks within the Test Suite.
- Included a Provider for the ChatViewModel to update the current task ID when a task is selected.

This new view enhances the user experience by providing a focused interface for managing tasks within individual Test Suites. This facilitates better organization and navigation for the user.
2023-09-18 14:59:26 -07:00
hunteraraujo
3cbe5a84e4 Implement TestSuiteListTile Widget for Displaying Test Suites
This commit adds a new StatelessWidget, TestSuiteListTile, designed to display individual TestSuite items in a list.

Key Features:
- Created a TestSuiteListTile class that takes a TestSuite object and a VoidCallback for the onTap event as parameters.
- Utilized Material Design with custom styling to ensure the tile fits well within the application's UI.
- The tile displays the timestamp of the TestSuite, which serves as its title.
- Included a play arrow icon to indicate that the tile is actionable.
- Utilized MediaQuery to adapt the tile width based on the screen size, capped at a maximum width of 260.

By adding this widget, we improve the UX by providing a consistent and intuitive way to interact with TestSuite objects in the UI.
2023-09-18 14:55:03 -07:00
hunteraraujo
1d735caf40 Add TestSuite Model with Serialization and Deserialization Support
This commit introduces a new class, TestSuite, designed to encapsulate a collection of Task objects under a common timestamp. This will help in grouping tasks that belong to a particular test suite.

Key Features:
- Add a TestSuite class with fields for `timestamp` and a list of `tests` (Task objects).
- Implement `toJson` method for serializing TestSuite objects to JSON-compatible format.
- Implement `fromJson` factory method for deserializing JSON data back into a TestSuite object.

By providing serialization and deserialization support directly in the model, we facilitate easier storage and data exchange for test suites.
2023-09-18 14:41:25 -07:00
hunteraraujo
e446d723ee Extend Task Model to Include Serialization
This commit adds serialization support to the Task model by including a `toJson` method. This will allow easy conversion of Task objects to a JSON-compatible format, facilitating storage or network transmission.
2023-09-18 14:35:34 -07:00
hunteraraujo
e90eb0fd61 Update ApiSettingsViewModel _baseURL 2023-09-18 13:31:48 -07:00
merwanehamadi
79727bd075 Update quick start (#5255)
* Update QUICKSTART.md

* Update QUICKSTART.md

* Update QUICKSTART.md
2023-09-18 13:18:19 -07:00
merwanehamadi
2cf350b783 Agent Protocol v1 (#5254)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-18 11:09:55 -07:00
Reinier van der Leer
6b22abd526 AutoGPT: Convert dataclasses to Pydantic models 2023-09-18 19:07:37 +02:00
SwiftyOS
869682a87d Added windows check in the setup script 2023-09-18 17:57:17 +02:00
SwiftyOS
4e2d48b8bd Added benchmarking to the quickstart 2023-09-18 17:56:45 +02:00
SwiftyOS
7022eda1a3 Updated cli 2023-09-18 17:56:23 +02:00
SwiftyOS
af7c5e0291 Fix test listing 2023-09-18 16:40:30 +02:00
SwiftyOS
c1abe0e85f Added running of the agent section 2023-09-18 16:37:54 +02:00
SwiftyOS
060ba0721f Added another origin for requests to the agent server 2023-09-18 16:33:24 +02:00
Swifty
8b3a915b2f Serving frontend from the forge agent server (#5252) 2023-09-18 16:27:03 +02:00
SwiftyOS
7875cb67ec fixed code block 2023-09-18 12:29:26 +02:00
SwiftyOS
f54e334e0d Added basic quickstart guide 2023-09-18 12:28:37 +02:00
SwiftyOS
e38008879a fixed arena enter command 2023-09-18 12:27:09 +02:00
Slaine Willey
ac36f7bfc7 fix broken link - Readme.md (#5246) 2023-09-18 10:55:01 +02:00
SwiftyOS
95f2621a3f Removed benchmark from docker container 2023-09-18 10:49:08 +02:00
SwiftyOS
6d5f93038b fixed imports in autogpt 2023-09-18 09:47:08 +02:00
Reinier van der Leer
d8f1d34345 AutoGPT: extract core.prompting module out of core.planning 2023-09-18 00:05:06 +02:00
Reinier van der Leer
b6fd54f599 Unbreak AutoGPT 2023-09-17 22:39:26 +02:00
SwiftyOS
3ea9d6a70f simplified the install script add help instruction 2023-09-17 18:41:06 +02:00
Reinier van der Leer
b181733d59 Protect meta issues from being staled 2023-09-17 16:56:49 +02:00
Reinier van der Leer
d5a88d43a7 AutoGPT: fix docker entrypoint 2023-09-17 16:47:57 +02:00
Reinier van der Leer
11920b8fe5 AutoGPT/v2: First pass with small fixes
* Typing fixes & improvements

* Improved console output formatting

* Added support for all OpenAI GPT-3.5-turbo and GPT-4 model versions

* Added token counting functions to ModelProviders
2023-09-17 16:40:56 +02:00
merwanehamadi
f4d319cee4 Refactor benchmark (#5247)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-17 06:55:20 -07:00
hunteraraujo
4463f75756 Fix issue where side bar view is not disabled 2023-09-16 22:19:42 -07:00
hunteraraujo
60ae12dfd5 Implement UI Disable Feature During Benchmark Run
Added a state variable isBenchmarkRunning in SkillTreeViewModel to track the status of benchmark execution. This state variable is used to conditionally disable specific UI components:

- The "Initiate test suite" button in TaskQueueView is disabled during the benchmark.
- All IconButtons in SideBarView are disabled during the benchmark.
- Node selection in SkillTreeView is disabled during the benchmark.

This ensures that the user cannot interact with these components while a benchmark test is running, thereby improving UX and preventing potential issues.
2023-09-16 19:24:54 -07:00
hunteraraujo
11101286a3 Remove comment 2023-09-16 19:02:45 -07:00
hunteraraujo
6b921b5eda Refactor test suite button + rename method to runBenchmark 2023-09-16 18:56:42 -07:00
hunteraraujo
25ce1d6be0 Fix regression with deleting tasks 2023-09-16 17:28:58 -07:00
merwanehamadi
f76d45cd9e Remove start from agbenchmark (#5241)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-16 17:22:49 -07:00
merwanehamadi
4e43e4be78 Update CI pipy (#5240) 2023-09-16 17:00:46 -07:00
merwanehamadi
ece9e85b41 Add agent protocol within agbenchmark (#5239)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-16 15:31:12 -07:00
hunteraraujo
d48eb99669 Pass Real Data to callGenerateReport in TaskQueueView
This commit updates the `TaskQueueView` to pass real data from the `selectedNodeHierarchy` to the `callGenerateReport` method in `SkillTreeViewModel`. An array of test names is constructed from the reversed node hierarchy, and these names are used as the `tests` field in the `ReportRequestBody`.

Note: The `category` field is now an empty string as per the new requirement, and `mock` continues to be set to true.
2023-09-16 15:14:34 -07:00
merwanehamadi
3e612e97de Update version to 0.0.10 (#5238)
Update pyproject.toml
2023-09-16 15:07:53 -07:00
merwanehamadi
098bcb8b8d Add working directory to agbenchmark pipy CI (#5237) 2023-09-16 14:36:35 -07:00
merwanehamadi
5039f25585 Update CI to release agbenchmark to pypi (#5236) 2023-09-16 14:29:55 -07:00
merwanehamadi
cb8cb5f7a3 Update pyproject.toml (#5235) 2023-09-16 14:11:59 -07:00
merwanehamadi
255c6a8f3a Add command to reset environments (#5234) 2023-09-16 14:03:48 -07:00
merwanehamadi
b101fec16b Add ability to run multiple tests (#5233)
Add multiple tests

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-16 13:01:11 -07:00
hunteraraujo
454b78c1ac Integrate callGenerateReport with TaskQueueView's Checkmark Button
This commit integrates the `callGenerateReport` method from `SkillTreeViewModel` into the `TaskQueueView`. Now, when the user clicks the green checkmark button, the `callGenerateReport` method is triggered with hardcoded values for testing purposes.

Note: The implementation is still temporary and will be updated for dynamic behavior in the future.
2023-09-16 11:04:40 -07:00
hunteraraujo
39c0a1c4f8 Merge branch 'master' of github.com:Significant-Gravitas/Auto-GPT 2023-09-16 10:56:49 -07:00
merwanehamadi
991e816ea2 Fix CORS issue (#5232)
* Allow Cors

* Update app.py
2023-09-16 10:56:21 -07:00
SwiftyOS
cbcdcad43c Added ascii art to cli 2023-09-16 19:53:28 +02:00
SwiftyOS
b155508b12 removed swifty arena entry 2023-09-16 19:40:21 +02:00
hunteraraujo
7f5c50dfeb Extend ReportRequestBody to Include "mock" Boolean Field
This commit adds a new boolean field, "mock", to the `ReportRequestBody` class. This additional field is in line with the new requirements to specify whether the report is a mock or not.

The `toJson()` method is also updated to include this new field during serialization.
2023-09-16 10:39:33 -07:00
SwiftyOS
4245a6c4f0 switch check to see if the submission branch exists 2023-09-16 19:37:52 +02:00
SwiftyOS
5bfefd6a12 fixed branch names 2023-09-16 19:06:18 +02:00
SwiftyOS
02bda90a29 Added an update function, instructions on how to make another submission and an update function 2023-09-16 18:51:02 +02:00
SwiftyOS
2211efc800 black formatting 2023-09-16 18:28:26 +02:00
SwiftyOS
7fda0c7884 removed submit command 2023-09-16 18:27:42 +02:00
SwiftyOS
aea21a9694 deleted sync command 2023-09-16 18:24:48 +02:00
SwiftyOS
03abb32cca deleted swifty agent 2023-09-16 18:24:04 +02:00
Reinier van der Leer
dd2078a6f5 Fix root pyproject.toml 2023-09-16 16:51:39 +02:00
merwanehamadi
295702867a Ability to run by categories (#5229)
* Ability to run by categories

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* always use Path.cwd()

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-15 20:04:12 -07:00
hunteraraujo
688cd52be2 Merge branch 'master' of github.com:Significant-Gravitas/Auto-GPT 2023-09-15 14:54:14 -07:00
hunteraraujo
f26ae288d0 Integrate Firebase Authentication and Streamline Auth Flow in main.dart
This commit integrates Firebase Authentication into the application and refactors the `main.dart` file to streamline the user authentication flow. The application will now automatically switch between the main layout and the authentication UI based on the user's sign-in status.

- Added Firebase initialization to the `main()` function for Firebase Authentication.
- Replaced the home page in `MyApp` with a `StreamBuilder` that listens for Firebase auth state changes.
- Based on the auth state, the home page will either show `MainLayout` (if the user is signed in) or `FirebaseAuthView` (if the user is not signed in).
- Added necessary imports for the Firebase and authentication services.
2023-09-15 14:37:15 -07:00
hunteraraujo
4d41584547 Implement FirebaseAuthView for Google and GitHub Sign-In
This commit adds the `FirebaseAuthView` class, a Flutter widget that serves as the UI for user authentication using Google and GitHub. The class uses the `AuthService` to handle the actual sign-in logic.

Features:
- Added an OutlinedButton for Google Sign-In, styled with Google's colors and logo.
- Added an OutlinedButton for GitHub Sign-In, styled with GitHub's colors and logo.
- Integrated the `AuthService` methods for Google and GitHub sign-in.
2023-09-15 14:26:04 -07:00
WilliamEspegren
058e679931 AutoGPT: Improve input prompt appearance (#5211)
Adds space between users input and "Input:"
2023-09-15 23:23:52 +02:00
hunteraraujo
a6541b60fc Add AuthService Class for Google and GitHub Authentication
This commit introduces the AuthService class, which encapsulates the logic for signing in with Google and GitHub using Firebase Authentication. The class provides methods for initiating the OAuth flows for both providers and for signing out the user.

- Implemented `signInWithGoogle()` to handle Google Sign-In.
- Implemented `signInWithGitHub()` to handle GitHub Sign-In via popup.
- Added `signOut()` method for logging out the user.
- Added `getCurrentUser()` method to fetch the currently authenticated user.
2023-09-15 14:20:18 -07:00
hunteraraujo
001b795ea0 Update index.html to support web 2023-09-15 14:17:44 -07:00
hunteraraujo
b7f04b0663 Add GoogleService-Info.plist for iOS 2023-09-15 14:15:30 -07:00
hunteraraujo
80c35e7623 Add google-services.json for android 2023-09-15 14:15:14 -07:00
hunteraraujo
70625f85a3 Add firebase libraries + google/github logo assets 2023-09-15 14:15:00 -07:00
SwiftyOS
7320f9d3f8 updated hash 2023-09-15 21:35:16 +02:00
Swifty
92db8eedd7 swifty entering the arena (#5227)
* swifty entering the arena
2023-09-15 21:29:04 +02:00
SwiftyOS
7bc7cd4671 added swifty agent 2023-09-15 21:27:02 +02:00
SwiftyOS
aff6dc24b1 agents to agent in docs 2023-09-15 21:17:41 +02:00
SwiftyOS
7d2e2344d1 correct pr branch 2023-09-15 21:07:03 +02:00
SwiftyOS
ccd2dcf1f7 changed submision branch to include agent name 2023-09-15 20:38:41 +02:00
SwiftyOS
8958f58eca updated checks 2023-09-15 20:31:00 +02:00
SwiftyOS
54f1098dcf fixed directory name 2023-09-15 20:21:18 +02:00
SwiftyOS
169f7210c1 fix arena path name 2023-09-15 20:13:21 +02:00
SwiftyOS
433526b732 change to check for only staged changes 2023-09-15 20:10:51 +02:00
SwiftyOS
71cb72b3a4 changed to check if there are staged changes 2023-09-15 20:09:18 +02:00
SwiftyOS
2edb59736c Added checks and templates to cli 2023-09-15 20:04:24 +02:00
SwiftyOS
582570639f Added checks to the arean enter commands 2023-09-15 20:02:04 +02:00
SwiftyOS
8f104918a8 update cli 2023-09-15 19:50:25 +02:00
SwiftyOS
cd589e9891 added git commands workflow to cli 2023-09-15 19:44:37 +02:00
merwanehamadi
885f120aa4 Add agbenchmark serve to run command (#5222)
* Add agbenchmark serve to run command

* Update autogpts-ci.yml
2023-09-15 09:31:00 -07:00
Reinier van der Leer
bbb526e6f8 AutoGPT/v2: Disable OpenAI log spam 2023-09-15 13:29:27 +02:00
Reinier van der Leer
77eebbdcaa Update README and unbreak autogpt.core:cli-web 2023-09-15 13:24:46 +02:00
Reinier van der Leer
9bd13c5897 AutoGPT: Enhance log readability of autogpt.core 2023-09-15 13:11:43 +02:00
Reinier van der Leer
5074d696cf AutoGPT: Make autogpt.core play nice with its parent module 2023-09-15 13:10:02 +02:00
merwanehamadi
b4401cd409 add benchmark endpoints mock (#5221)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-15 08:48:12 -07:00
SwiftyOS
a216197e34 changed the start message 2023-09-15 16:43:40 +02:00
SwiftyOS
43fba808a2 Updated docs 2023-09-15 15:44:11 +02:00
SwiftyOS
252d2fead1 removed create new agent script 2023-09-15 15:37:02 +02:00
SwiftyOS
43f6ff6d28 Added cli usage doc 2023-09-15 15:36:18 +02:00
SwiftyOS
74c46bae7a Added cli tool for setting up and running the project 2023-09-15 15:14:06 +02:00
merwanehamadi
19e4af4ce7 Add integrations to the forge (#5220)
Create README.md
2023-09-15 06:04:36 -07:00
SwiftyOS
1a78150b60 added igonoring of reports folder 2023-09-15 13:38:41 +02:00
SwiftyOS
d85b196952 Fixed import error 2023-09-15 13:37:09 +02:00
SwiftyOS
89862289e2 deleted unused files 2023-09-15 10:46:24 +02:00
SwiftyOS
5f95920d66 Added ascii art 2023-09-15 10:41:05 +02:00
SwiftyOS
dce7636798 Updated run script 2023-09-15 10:21:44 +02:00
Reinier van der Leer
42bc3af109 Add pyproject file to autogpt.core 2023-09-15 05:44:39 +02:00
Reinier van der Leer
b21d68a8ab Migrate AutoGPT agent to poetry (#5219)
Inspired by #1102

* Migrate AutoGPT agent to poetry

  Co-authored-by: rickythefox <richard@ginzburg.se>

* Rewrite automatic dependency check (check_requirements.py) for poetry

* Sort dependencies

* Add instructions for poetry to README
2023-09-15 05:18:44 +02:00
hunteraraujo
f3a112fca3 Integrate BenchmarkService into main.dart with Provider
This commit integrates the `BenchmarkService` into the main application setup through the `MultiProvider` in `main.dart`. The changes include:

1. Adding `BenchmarkService` to the list of service providers, allowing it to be accessible throughout the application via dependency injection.

2. Using `ProxyProvider` to ensure `BenchmarkService` gets the `RestApiUtility` instance as a dependency.

3. Modifying the `MyApp` class to fetch the `BenchmarkService` from the provider, making it ready for use in the application's lifecycle.

This addition allows `BenchmarkService` to be centrally managed and readily available for any part of the application that requires benchmark-related functionalities.
2023-09-14 20:12:58 -07:00
hunteraraujo
5ac4b38bda Extend RestApiUtility to Support Multiple Base URLs via ApiType Enum
This commit enhances the `RestApiUtility` class to support multiple base URLs by incorporating an `ApiType` enum parameter in its methods. The changes include:

1. `_agentBaseUrl`: The base URL for the agent-related API calls.
2. `_benchmarkBaseUrl`: A hard-coded base URL for benchmark-related API calls.
3. `_getEffectiveBaseUrl`: A new private method that determines the effective base URL based on the given `ApiType`.

All public methods (`get`, `post`, `getBinary`) have been updated to include an optional `ApiType` parameter, which defaults to `ApiType.agent`. Based on this parameter, `_getEffectiveBaseUrl` is called to decide the base URL for the HTTP request.

This change allows for flexible API calls without the need to instantiate multiple `RestApiUtility` objects for different services.
2023-09-14 20:09:30 -07:00
hunteraraujo
a97e0dbe62 Integrate BenchmarkService into SkillTreeViewModel with Incomplete Methods
This commit extends the `SkillTreeViewModel` to include `BenchmarkService` as a dependency. This integration allows for leveraging benchmark-related API calls within the skill tree logic.

Two new methods have been added to `SkillTreeViewModel`:

1. `callGenerateReport`: This method attempts to call the `generateReport` function from the `BenchmarkService`. Currently, it only prints the API response and is incomplete in terms of full functionality.

2. `callPollUpdates`: Similar to `callGenerateReport`, this method aims to call `pollUpdates` from `BenchmarkService` and prints the API response. This is also incomplete and will require further development.

Both methods are preliminary and will require additional features to become fully functional.
2023-09-14 20:07:18 -07:00
hunteraraujo
16efb96409 Implement BenchmarkService with generateReport and pollUpdates methods
This commit introduces the `BenchmarkService` class, which encapsulates API calls related to benchmarking operations. The class includes two methods:

1. `generateReport`: Takes a `ReportRequestBody` object as input and performs a POST request to the `/reports` URL, serializing the object to JSON format.
2. `pollUpdates`: Accepts a UNIX UTC timestamp as an argument and performs a GET request to the `/updates?last_update_time=<timestamp>` URL.

Both methods use the `RestApiUtility` for making HTTP requests and are designed to work with different base URLs, controlled by the `ApiType` enum.
2023-09-14 20:04:44 -07:00
hunteraraujo
595a892f71 Introduce ApiType enum for API selection
This commit adds a new enum, `ApiType`, to allow dynamic selection between different base URLs for API calls. The enum has two values: `agent` and `benchmark`, corresponding to different services.

The `ApiType` enum is designed to be passed as a parameter to the `RestApiUtility` methods, enabling the utility to decide which base URL to use for HTTP requests.
2023-09-14 20:02:36 -07:00
hunteraraujo
8e25cd2391 Add ReportRequestBody model with JSON serialization
This commit introduces a new Dart class, `ReportRequestBody`, which represents the request body for generating reports in the `BenchmarkService`. The class includes a `toJson` method for easy serialization to JSON format.

- `category`: Specifies the category of the report (e.g., "coding").
- `tests`: A list of tests to be included in the report.
2023-09-14 20:01:05 -07:00
merwanehamadi
a1284336ba Autogpts ci unified for the hackathon (#5218)
AutoGPTs CI parametrized
2023-09-14 09:11:45 -07:00
merwanehamadi
35e0184ca9 AutoGPTs CI (#5216)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-14 08:29:04 -07:00
SwiftyOS
0ee7209c2b Updating forge instructions and fixing version conflict 2023-09-14 17:00:48 +02:00
SwiftyOS
9e6ebf38c7 Updated readme 2023-09-14 16:43:19 +02:00
SwiftyOS
0782aad3bf Added create agent script 2023-09-14 16:36:21 +02:00
merwanehamadi
840d6f6330 Update frontend readme (#5215) 2023-09-14 07:31:52 -07:00
SwiftyOS
5a2833ffb8 moved forge into autogpts 2023-09-14 15:53:55 +02:00
Silen Naihin
e31bf9081f moving paper related data (#5212) 2023-09-13 21:09:20 -07:00
merwanehamadi
6342a77037 Fix SDK client (#5214) 2023-09-13 20:25:58 -07:00
merwanehamadi
4bb86c0cb5 Support agent protocol in benchmark (#5213)
Benchmark/Forge/Agent Protocol
2023-09-13 18:50:39 -07:00
hunteraraujo
3bba27dd3c Integrate JSON-based Skill Tree Initialization in ViewModel
This commit substantially upgrades the SkillTreeViewModel by incorporating asynchronous initialization from a JSON asset. Now, both nodes and edges of the skill tree are dynamically generated based on the JSON data. This not only enhances the modularity of the code but also simplifies the process of updating or modifying the skill tree.

Other improvements include:
- Changed node IDs from integers to strings for better flexibility.
- Added a function to get a node by its ID, improving code reusability.
- Introduced error handling for potential issues during JSON parsing or node retrieval.
- Updated the sibling, level, and subtree separation configurations for the graph view layout.

These changes make the skill tree more dynamic and maintainable, setting the stage for future extensions.
2023-09-13 17:53:24 -07:00
hunteraraujo
a7bb335752 Enhance SkillTreeView with Asynchronous Initialization and Node Mapping
This commit refactors the SkillTreeView class to include asynchronous initialization through FutureBuilder. The new version also replaces the integer-based node IDs with string-based IDs, aligning better with the SkillTreeNode model. The code now clears previous graph nodes and edges before adding new ones, preventing duplication. Additionally, the TreeNodeView component is now populated dynamically with data from the SkillTreeNode model, making the tree view more robust and integrated.
2023-09-13 17:50:53 -07:00
hunteraraujo
01b2892775 Remove comments 2023-09-13 17:47:17 -07:00
hunteraraujo
876fe5a590 Refactor TreeNodeView to Use Stateful Widget and Add Interactivity
This commit updates the TreeNodeView class from a stateless widget to a stateful widget to handle hover interactions. The new version also replaces the old simple text-based representation with a more interactive and visually appealing design that includes icons and hover effects. The SkillTreeNode model is now used to populate the node information, making the TreeNodeView more dynamic and integrated with the rest of the application.
2023-09-13 17:43:32 -07:00
hunteraraujo
b58894ef33 Update TaskQueueView to display node label + description 2023-09-13 17:37:03 -07:00
hunteraraujo
30934f400a Enhance SkillTreeNode Model to Include Additional Attributes
This commit extends the SkillTreeNode class to incorporate new attributes such as 'data', 'label', and 'shape', making the model more comprehensive. The JSON deserialization is also updated to handle optional or missing fields by providing default values, improving the robustness of the model.
2023-09-13 17:32:23 -07:00
hunteraraujo
774ccc4ed2 Refactor SkillNodeData model for robust JSON deserialization
This commit updates the SkillNodeData class to handle optional or missing JSON fields more robustly. Now, the model provides default values for each field, ensuring that the object can be instantiated successfully even if some JSON fields are missing or set to null.
2023-09-13 17:31:00 -07:00
hunteraraujo
3c35cab55e Enhance Info model to handle optional JSON fields gracefully
This commit updates the Info class to provide default values for optional or missing fields in the JSON payload. This ensures that the model can be successfully instantiated even when some JSON fields are absent or set to null.
2023-09-13 17:30:41 -07:00
hunteraraujo
5e2e7a11c3 Update Ground model to handle optional JSON fields
This commit modifies the Ground class to make it more robust against optional or missing fields in the incoming JSON data. Default values have been added to ensure that the model can be instantiated even if some JSON fields are missing or set to null.
2023-09-13 17:29:05 -07:00
hunteraraujo
63b235e7ce Add initial skill tree structure JSON
This commit adds the tree_structure.json file to the assets directory, which contains the initial skill tree structure. This JSON file will serve as the data source for rendering the skill tree nodes and edges in the application.
2023-09-13 17:25:11 -07:00
SwiftyOS
839e045da4 Removed makefile and pyproject 2023-09-13 16:51:58 +02:00
merwanehamadi
144d159695 Add config (#5210)
* Fix API Mode

* Change config forge
2023-09-13 07:37:14 -07:00
merwanehamadi
52c8b53122 Fix API Mode (#5209) 2023-09-13 07:30:46 -07:00
Luke
d319473e3c Fix TestUrlShortener to prevent conflicting test.py file and clarify instructions (#5177) 2023-09-13 06:11:40 -07:00
SwiftyOS
ed172dec19 fixed datetime and changed benchmark defaults for autogpt 2023-09-13 13:47:26 +02:00
SwiftyOS
ab26c07296 changes the file_logger.txt to .log 2023-09-13 12:19:26 +02:00
SwiftyOS
9eb01d85a3 fixed multiple report folder bug 2023-09-13 12:18:04 +02:00
SwiftyOS
d44a4f591d Added ability to keep answers 2023-09-13 11:56:31 +02:00
SwiftyOS
bacd0e5e4e Added answers to the report 2023-09-13 10:40:55 +02:00
merwanehamadi
b2fc8f2a06 Integrate benchmark and autogpt (#5208)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-12 19:30:45 -07:00
Silen Naihin
69dadee416 moving back license, removing unnecessary files 2023-09-12 14:56:33 -07:00
Silen Naihin
436823c2e7 Update README.md
change name of twitter quicklink
2023-09-12 14:51:01 -07:00
hunteraraujo
314cce75b5 Integrate TaskQueueView and Enhance SkillTree Functionality (#5206)
* Add TestQueueView to Main Layout

This commit integrates the TestQueueView into the main layout. The layout now conditionally displays the TestQueueView based on whether a node in the SkillTree is selected.

- TestQueueView appears when a SkillTree node is selected.
- Main layout adjusts to accommodate TestQueueView alongside SkillTreeView and ChatView.
- Implemented responsive layout logic to manage the widths of the different views based on the screen width and the state of the SkillTree.

* Extend SkillTreeViewModel to Track Selected Node Hierarchy

This commit enhances the SkillTreeViewModel to maintain a list of nodes that form a hierarchy from the currently selected node to the root. This allows for more interactive and informative views that can leverage this hierarchical data.

- Added a new property `selectedNodeHierarchy` to keep track of the node hierarchy.
- Modified the `toggleNodeSelection` method to populate or clear `selectedNodeHierarchy` based on node selection.
- Introduced a new method `populateSelectedNodeHierarchy` to build the hierarchy from the selected node to the root.

* Extract skill tree view model reset state to method

* Implement UI enhancements for TaskQueueView

This commit introduces several UI improvements to the TaskQueueView:
- Tiles are padded 20 units from both the leading and trailing edges.
- Tiles now have a white background.
- Added a thin black border to the tiles.
- Incorporated a slight corner radius for the tiles.
- Centered the title and subtitle horizontally within the tiles.
- Added a checkmark button with a tooltip at the bottom-right corner for running a suite of tests.

These changes aim to improve the user experience and visual appeal of the TaskQueueView.

* Make MainLayout a consumer of SkillTreeViewModel
2023-09-12 14:01:32 -07:00
merwanehamadi
a6e195aa06 Update Readme Flutter (#5205) 2023-09-12 12:48:01 -07:00
merwanehamadi
c23278eabd Update README.md 2023-09-12 12:47:09 -07:00
merwanehamadi
14ef3410eb Update Readme Flutter 2023-09-12 12:46:39 -07:00
merwanehamadi
87e972c138 Change agbenchmark folder (#5203) 2023-09-12 12:42:05 -07:00
Merwane Hamadi
cd30e18986 Change agbenchmark folder 2023-09-12 12:40:53 -07:00
merwanehamadi
983130c9ac Fix forgeAgent class (#5204) 2023-09-12 12:36:03 -07:00
Merwane Hamadi
afce057b19 Fix forgeAgent class 2023-09-12 12:34:32 -07:00
merwanehamadi
17246ba086 Benchmark fixes (#5201) 2023-09-12 12:14:03 -07:00
Merwane Hamadi
1b14d304d4 Benchmark changes
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-12 12:13:39 -07:00
Toran Bruce Richards
978a980d72 Update README.md
Replaces Auto-GPT witrh AutoGPT throughout root ReadMe.
2023-09-12 16:10:14 +01:00
SwiftyOS
1281a264f5 more benchmark fixes 2023-09-12 12:47:06 +02:00
SwiftyOS
d3067c83d3 Added documentation 2023-09-12 11:39:22 +02:00
SwiftyOS
cc4706ece0 Added ignore private files 2023-09-12 11:00:30 +02:00
SwiftyOS
255144bf78 Renamed forge module forge from autogpt 2023-09-12 11:00:05 +02:00
SwiftyOS
90f70aca4d Deleted start_benckmark file as it's in __main__.py now 2023-09-12 10:58:22 +02:00
merwanehamadi
8502d9cbe3 benchmark-fix (#5198) 2023-09-11 21:41:20 -07:00
merwanehamadi
049d6c7a35 Merge branch 'master' into benchmark-fix-2 2023-09-11 21:39:57 -07:00
Silen Naihin
c8add70676 read me update for monorepo (#5199) 2023-09-11 21:38:31 -07:00
merwanehamadi
421965c67d Merge branch 'master' into benchmark-fix-2 2023-09-11 21:37:52 -07:00
Silen Naihin
8080fb098e removing right 2023-09-11 21:37:33 -07:00
Merwane Hamadi
c7550ba845 benchmark-fix 2023-09-11 21:37:23 -07:00
Silen Naihin
ba46b25ac2 spelling fix 2023-09-11 21:37:03 -07:00
Silen Naihin
c0a8a91109 fixing top cluttered 2023-09-11 21:35:54 -07:00
Silen Naihin
e5d2563a2e read me updated 2023-09-11 21:34:24 -07:00
Silen Naihin
18e66de8d4 Merge branch 'master' into fix/readme 2023-09-11 19:29:25 -07:00
Silen Naihin
1d10919b91 updating unsafe monitor 2023-09-11 19:21:43 -07:00
Silen Naihin
897d492235 Merge branch 'master' into fix/readme 2023-09-11 19:19:47 -07:00
merwanehamadi
cc24dd50e5 benchmark-fix (#5197) 2023-09-11 18:23:29 -07:00
merwanehamadi
bbed5c5749 Merge branch 'master' into benchmark-fix 2023-09-11 18:23:18 -07:00
Merwane Hamadi
b08a588c4f benchmark-fix 2023-09-11 18:22:50 -07:00
Silen Naihin
3e45f0f569 working basic monitor (#5196) 2023-09-11 18:22:09 -07:00
Silen Naihin
f95a285b59 Merge branch 'master' into feat/monitor 2023-09-11 18:21:52 -07:00
Silen Naihin
39efed59af small data changes 2023-09-11 18:20:03 -07:00
merwanehamadi
91572681a5 Trying to fix the benchmarking (#5194) 2023-09-11 17:42:56 -07:00
Merwane Hamadi
e44fe44605 fix conflict 2023-09-11 17:42:07 -07:00
SwiftyOS
d56b4d3368 Added make file and pyproject.toml 2023-09-11 17:41:28 -07:00
SwiftyOS
ef2107d9c2 Fixing benchmark code 2023-09-11 17:41:28 -07:00
SwiftyOS
c73e90c4e6 Fixing benchmarks 2023-09-11 17:41:27 -07:00
merwanehamadi
bce4bd6755 Add Agent protocol test to the forge (#5195) 2023-09-11 16:17:31 -07:00
Merwane Hamadi
cd4589d4d9 Add CI to the forge
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-11 16:12:44 -07:00
Auto-GPT-Bot
5f82c7533c beebot-20230911151335 2023-09-11 15:13:35 +00:00
Auto-GPT-Bot
a41cfedfe7 mini-agi-20230911081923 2023-09-11 08:19:24 +00:00
Auto-GPT-Bot
0268b42e20 Auto-GPT-20230911080932 2023-09-11 08:09:32 +00:00
Auto-GPT-Bot
45589e833d gpt-engineer-20230911080814 2023-09-11 08:08:14 +00:00
Auto-GPT-Bot
7e7830a1d7 PolyGPT-20230911080731 2023-09-11 08:07:32 +00:00
Auto-GPT-Bot
8790733ab5 babyagi-20230911080705 2023-09-11 08:07:05 +00:00
Auto-GPT-Bot
07fb0deb49 Auto-GPT-Turbo-20230911080702 2023-09-11 08:07:02 +00:00
Auto-GPT-Bot
b290d02688 beebot-20230911080504 2023-09-11 08:05:04 +00:00
hunteraraujo
e1a5a2a481 Clear skill tree state when initializing tree 2023-09-10 15:12:52 -07:00
hunteraraujo
f85dd1b09b Integrate Skill Tree Functionality into Main Application (#5189) 2023-09-10 15:07:54 -07:00
hunteraraujo
19db097709 ChangeNotifierProvider for SkillTreeViewModel 2023-09-10 14:45:37 -07:00
hunteraraujo
60264d68b5 Integrate SkillTreeViewModel into MainLayout 2023-09-10 14:45:21 -07:00
hunteraraujo
70a05ec82a Replace Placeholder SkillTreeView with Full Implementation
This commit replaces the placeholder implementation of the SkillTreeView class with a complete, functional version.

Features:
- Initializes the skill tree from the SkillTreeViewModel during `initState`.
- Dynamically creates Node and Edge objects for GraphView based on ViewModel data.
- Utilizes the TreeNodeView to render individual nodes.
- Integrates node selection functionality from the ViewModel.
- Adds InteractiveViewer for zoom and pan capabilities.

The new SkillTreeView is designed to work closely with SkillTreeViewModel to manage and display the skill tree.
2023-09-10 14:42:15 -07:00
hunteraraujo
90e73b83a1 Implement TreeNodeView with selection functionality
This commit adds the TreeNodeView class, a StatelessWidget responsible for rendering individual nodes in the skill tree.

Features:
- Displays the node ID in the view.
- Uses the Provider package to interact with the SkillTreeViewModel.
- Includes an onTap method to toggle node selection state.
- Updates the UI to reflect the selected state by changing the background color.

The TreeNodeView is designed to work in conjunction with SkillTreeViewModel to manage node selection states.
2023-09-10 14:33:42 -07:00
hunteraraujo
d6b0894c6b Add SkillTreeViewModel for managing skill tree state
The SkillTreeViewModel class serves as the view model for the skill tree and extends Flutter's ChangeNotifier for state management.

Features include:
- Storing and managing the list of SkillTreeNodes and SkillTreeEdges.
- Managing the state of the selected node.
- Initializing the skill tree with predefined nodes and edges.
- Methods for toggling node selection, allowing for only a single node to be selected at any given time.

The view model utilizes the GraphView package for visualization and layout.
2023-09-10 14:28:17 -07:00
hunteraraujo
a6b791c4f0 Update SkillTreeNode data model for skill tree
The SkillTreeNode model represents a single node in the skill tree.
It includes:
- Node ID
- Node color
2023-09-10 13:58:02 -07:00
hunteraraujo
e16e48f893 Add SkillTreeEdge data model for skill tree
The SkillTreeEdge model represents the relationship between different skill nodes.
It includes:
- Edge ID
- Source node ID
- Destination node ID
- Arrows property to indicate directionality
2023-09-10 13:57:25 -07:00
hunteraraujo
5726613dfb Add SkillNodeData data model for skill tree
The SkillNodeData model aggregates various data related to a skill node.
It includes:
- Node name
- Node category
- Associated task
- Dependencies
- Cutoff value
- Ground object for evaluation details
- Info object for metadata
2023-09-10 13:56:59 -07:00
hunteraraujo
5ed6a08c22 Add Info data model for skill tree
The Info data model holds metadata about a skill node.
It includes:
- The difficulty level of the skill node
- A description of the skill node
- A list of potential side effects related to the skill node
2023-09-10 13:52:02 -07:00
hunteraraujo
e13f7ca757 Add Ground data model for skill tree
The Ground data model stores evaluation information for each skill node.
It includes:
- The answer to be evaluated
- A list of terms that should be contained in the answer
- A list of terms that should not be contained in the answer
- A list of associated files
- A map for additional evaluation criteria
2023-09-10 13:51:36 -07:00
hunteraraujo
bea78c50e6 Add graph view dependency 2023-09-10 13:50:29 -07:00
Auto-GPT-Bot
6ee25868a8 mini-agi-20230910081622 2023-09-10 08:16:22 +00:00
Auto-GPT-Bot
bf476e9e05 Auto-GPT-20230910080828 2023-09-10 08:08:28 +00:00
Auto-GPT-Bot
732d16dcee gpt-engineer-20230910080743 2023-09-10 08:07:44 +00:00
Auto-GPT-Bot
17a2ec13dc babyagi-20230910080714 2023-09-10 08:07:15 +00:00
Auto-GPT-Bot
0f96db5e90 PolyGPT-20230910080612 2023-09-10 08:06:13 +00:00
Auto-GPT-Bot
bfd76c53d7 beebot-20230910080502 2023-09-10 08:05:02 +00:00
Auto-GPT-Bot
608372f4dd Auto-GPT-Turbo-20230909082408 2023-09-09 08:24:09 +00:00
Auto-GPT-Bot
75f68a80f3 mini-agi-20230909081316 2023-09-09 08:13:17 +00:00
Auto-GPT-Bot
cedad3b976 gpt-engineer-20230909080728 2023-09-09 08:07:29 +00:00
Auto-GPT-Bot
993c7d53e8 babyagi-20230909080645 2023-09-09 08:06:45 +00:00
Auto-GPT-Bot
3edd5613ec PolyGPT-20230909080643 2023-09-09 08:06:43 +00:00
Auto-GPT-Bot
b44e9e41f4 beebot-20230909080501 2023-09-09 08:05:01 +00:00
Reinier van der Leer
1e141c9682 Fix tests badge in READMEs 2023-09-09 03:55:26 +02:00
Reinier van der Leer
1cfc3f9d43 Auto-GPT: unbreak Docker release build 2023-09-09 03:52:04 +02:00
Mauro Druwel
77806700ab Add support for args to execute_python_file (#3972)
* 🎉 Python scripts can now be executed with arguments through Docker.🎉

* Make args optional

---------

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <reinier.vanderleer@agpt.co>
2023-09-09 03:38:33 +02:00
Reinier van der Leer
6d7d5ae065 Auto-GPT: fix test_get_bulletin_from_web_success 2023-09-09 03:34:57 +02:00
Reinier van der Leer
69fdaa45d4 Auto-GPT: Fix a bunch of tests 2023-09-08 23:54:06 +02:00
Auto-GPT-Bot
b1dcd83a58 Update cassette submodule 2023-09-08 21:32:23 +00:00
James Collins
aef6b50b11 Refactor/remove abstract singleton as voice base parent (#4931)
Co-authored-by: Reinier van der Leer <reinier.vanderleer@agpt.co>
2023-09-08 23:28:36 +02:00
Auto-GPT-Bot
fc96309a73 Update cassette submodule 2023-09-08 21:26:34 +00:00
Reinier van der Leer
94bdcbabfc Fix Auto-GPT CI cassette submodule 2023-09-08 23:07:17 +02:00
hunteraraujo
b00be97030 Create placeholder SkillTreeView 2023-09-08 08:53:49 -07:00
hunteraraujo
97bd56b263 Move SIdeBarView to new directory 2023-09-08 08:53:25 -07:00
Reinier van der Leer
4c302e8f0b Fix CI trigger path selectors 2023-09-08 15:25:47 +02:00
Reinier van der Leer
08e6254232 Use smart LLM for automatic config generation 2023-09-08 13:49:48 +02:00
Auto-GPT-Bot
03a2882915 mini-agi-20230908081451 2023-09-08 08:14:51 +00:00
Auto-GPT-Bot
a5aa8446af gpt-engineer-20230908080916 2023-09-08 08:09:17 +00:00
Auto-GPT-Bot
fd109ba1f3 Auto-GPT-20230908080910 2023-09-08 08:09:11 +00:00
Auto-GPT-Bot
e626404f00 babyagi-20230908080830 2023-09-08 08:08:31 +00:00
Auto-GPT-Bot
dd5788968b PolyGPT-20230908080735 2023-09-08 08:07:36 +00:00
Auto-GPT-Bot
60ccf70ca2 beebot-20230908080450 2023-09-08 08:04:50 +00:00
Silen Naihin
a5a9142b20 working basic monitor 2023-09-07 19:48:05 -07:00
Auto-GPT-Bot
f416e59ed7 mini-agi-20230908012629 2023-09-08 01:26:29 +00:00
Auto-GPT-Bot
86170b40df Auto-GPT-20230908012036 2023-09-08 01:20:37 +00:00
Auto-GPT-Bot
dcda11f3fc gpt-engineer-20230908012012 2023-09-08 01:20:12 +00:00
Auto-GPT-Bot
b505e358e5 babyagi-20230908011954 2023-09-08 01:19:55 +00:00
Auto-GPT-Bot
b2324f2888 Auto-GPT-Turbo-20230908011918 2023-09-08 01:19:18 +00:00
Auto-GPT-Bot
95bc1e7660 PolyGPT-20230908011847 2023-09-08 01:18:47 +00:00
Auto-GPT-Bot
40ce4a1b6b beebot-20230908011703 2023-09-08 01:17:03 +00:00
hunteraraujo
52c01e072e Integrate SideBarView into MainLayout for Wider Screens (#5176) 2023-09-07 17:37:12 -07:00
Auto-GPT-Bot
85a7fb33e3 babyagi-20230908003449 2023-09-08 00:34:49 +00:00
hunteraraujo
b6396462f2 Merge branch 'master' into haraujo/side-bar 2023-09-07 17:33:28 -07:00
merwanehamadi
0ebf2234da Name agents like their github repos (#5175) 2023-09-07 17:27:16 -07:00
merwanehamadi
0c0e17c349 Merge branch 'master' into name-agents-like-github-repo 2023-09-07 17:26:54 -07:00
Merwane Hamadi
b512808653 Name agents like their github repos
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-07 17:25:50 -07:00
hunteraraujo
1320ce66d4 Integrate SideBarView into MainLayout for Wider Screens 2023-09-07 17:24:57 -07:00
hunteraraujo
0e977e6818 Add SideBarView with Toggleable Icons 2023-09-07 17:24:48 -07:00
Auto-GPT-Bot
01796cb940 mini-agi-20230908002003 2023-09-08 00:20:03 +00:00
merwanehamadi
ba6454ff5d Benchmark agents without submodule + ability to pin a specific commit. (#5174) 2023-09-07 17:06:42 -07:00
Merwane Hamadi
8ccd2fd367 Benchmark agents without submodule + ability to pin a specific commit.
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-07 16:58:22 -07:00
Silen Naihin
67e2fcf9d6 read me changes 2023-09-07 14:26:16 -07:00
hunteraraujo
76f2e12b97 Remove dart:html from pubspec 2023-09-07 12:52:05 -07:00
Vittorio Alfieri
0e8ecdb192 Fix docs: sample docker-compose.yml broken indents (#5168)
auto-gpt keys were mis-nested under auto-gpt section of the docker-compose.yml after modern material improvements in 7cd407b7b4.
2023-09-07 16:05:05 +02:00
merwanehamadi
1e89772bb9 Less data in spreadsheet (#5173) 2023-09-06 23:18:18 -07:00
merwanehamadi
3cbc5bbae7 Merge branch 'master' into less-data-in-spreadsheet 2023-09-06 23:17:37 -07:00
Merwane Hamadi
ca9dadb28f Less data in spreadsheet 2023-09-06 23:16:18 -07:00
merwanehamadi
4b99cf279c Add back api mode (#5172) 2023-09-06 22:54:32 -07:00
merwanehamadi
0b3c12a681 Merge branch 'master' into add-back-api-mode 2023-09-06 22:54:20 -07:00
Merwane Hamadi
fa888bfafa Add back api mode
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-06 22:51:45 -07:00
hunteraraujo
24a51a3179 Update README.md 2023-09-06 22:44:12 -07:00
Silen Naihin
54b2936320 finalizing regex function & get jsons for memory (#5171) 2023-09-06 22:11:47 -07:00
Silen Naihin
1aeff329c2 finalizing regex function & get jsons for memory 2023-09-06 22:10:40 -07:00
merwanehamadi
eda0b605ea Benchmark all agents (#5170) 2023-09-06 22:07:15 -07:00
Merwane Hamadi
d901d01be8 Benchmark all agents
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-06 22:00:03 -07:00
merwanehamadi
5e4d6675de Add benchmark CI (#5169) 2023-09-06 19:58:59 -07:00
Merwane Hamadi
bc14028294 Add benchmark CI
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-06 19:50:24 -07:00
hunteraraujo
3ccffdab19 Implement artifact download functionality in Flutter web app
Added the downloadArtifact method to the ChatService class, enabling the download of artifacts in the Flutter web application. The function uses the dart:html package to trigger a browser-based file download, allowing users to save artifacts locally. This implementation complements the existing REST API and enhances the user experience.
2023-09-06 16:08:51 -07:00
hunteraraujo
17f284a9ac Add auto-scroll behavior to chat message list
Implemented auto-scrolling in the chat message list to ensure that the view scrolls down to the most recent message when a new chat is added. This behavior only triggers if the user is already at the bottom of the list, providing a seamless user experience.
2023-09-06 15:05:26 -07:00
Reinier van der Leer
04054bfde4 Another increase of stalebot's operations cap 2023-09-06 22:56:02 +02:00
Reinier van der Leer
5df79d9233 Increase autostale cap to process backlog 2023-09-06 22:47:06 +02:00
Reinier van der Leer
54988f5c93 Add stalebot for issues 2023-09-06 22:37:24 +02:00
hunteraraujo
34c4418298 Integrate Continuous Mode in Chat System (#5167) 2023-09-06 12:24:44 -07:00
hunteraraujo
a933f117fb Add the ability to deselect a task 2023-09-06 12:21:30 -07:00
hunteraraujo
a8023c2598 Fix empty user chats 2023-09-06 12:15:57 -07:00
hunteraraujo
27e9868aa5 End continuous mode when clicking text field 2023-09-06 12:10:57 -07:00
hunteraraujo
2e62c517e2 Include tooltips for single message + continuous mode 2023-09-06 12:04:52 -07:00
hunteraraujo
4e499c5bac Deselect text field after user goes into continuous mode 2023-09-06 11:56:45 -07:00
hunteraraujo
d3b4b50a5c Update parameters for ChatInputField to support continuous mode 2023-09-06 11:46:43 -07:00
hunteraraujo
d80053e8dc Refactor ChatInputField to Support Continuous Mode
- Added a new boolean state `isContinuousMode` to the `ChatInputField` widget to handle the continuous mode feature.
- Introduced a new callback function `onContinuousModePressed` to manage the state of the continuous mode from an external source.
- Conditionally rendered the send button based on the `isContinuousMode` state.
- Enhanced the UI by adding a button to toggle between continuous mode and single message mode, which triggers the `onContinuousModePressed` callback.
2023-09-06 11:46:03 -07:00
hunteraraujo
5cd1abab94 Implement Continuous Mode in ChatViewModel
Added a new state variable `_isContinuousMode` to the ChatViewModel to track whether the chat is in continuous mode or not. This state is toggled via a setter and triggers UI updates through `notifyListeners()`.

Enhanced the `sendChatMessage` method to automatically send a null message if continuous mode is active, triggering the next step in the chat.
2023-09-06 11:42:45 -07:00
hunteraraujo
a7c37da713 Make input and additionalInput optional in StepRequestBody
Updated the StepRequestBody class to allow both 'input' and 'additionalInput' to be optional. Added logic in toJson() method to return an empty JSON object if both fields are null.
2023-09-06 11:41:23 -07:00
hunteraraujo
ef2d64513b Merge commit 'e5d30a9f6d0854e20049309333c2f637cd03025c' as 'frontend' 2023-09-06 11:22:37 -07:00
hunteraraujo
e5d30a9f6d Squashed 'frontend/' content from commit 9a9bf138
git-subtree-dir: frontend
git-subtree-split: 9a9bf1380530470ec18ef498de2f0e8c575d23db
2023-09-06 11:22:37 -07:00
hunteraraujo
4e7ea36490 Delete frontend subdirectory 2023-09-06 11:22:33 -07:00
hunteraraujo
121e79410b Add frontend subdirectory to project 2023-09-06 10:43:26 -07:00
Swifty
d16d8b70e3 Forge - Addition of MemStore and Abstract Base Class (#5165) 2023-09-06 19:26:23 +02:00
SwiftyOS
751cde420b Added abstract memstore and base/helper functions 2023-09-06 19:23:27 +02:00
Reinier van der Leer
78c1460e29 Fix code owner for Frontend 2023-09-06 19:14:20 +02:00
hunteraraujo
6834e38505 Allow null input in StepRequestBody for Continuous Chat Mode (#5164) 2023-09-06 10:11:52 -07:00
hunteraraujo
2883ea0abb Update schema.py 2023-09-06 10:09:31 -07:00
hunteraraujo
e56a2b1f41 Allow null input in StepRequestBody for Continuous Chat Mode 2023-09-06 10:02:13 -07:00
Reinier van der Leer
c056780c64 Fix workflow names 2023-09-06 18:01:16 +02:00
Reinier van der Leer
ae1452c487 Relocate CoC and fix symlinks 2023-09-06 17:48:29 +02:00
Reinier van der Leer
4328597114 Fix docs deployment: Electric Boogaloo 2023-09-06 17:42:07 +02:00
Reinier van der Leer
6968b69cee Fix docs deployment 2023-09-06 17:36:51 +02:00
Reinier van der Leer
650072eb99 Fix CI/CD for Auto-GPT + docs site deployment 2023-09-06 17:33:08 +02:00
Reinier van der Leer
9724f44105 Fix CODEOWNERS 2023-09-06 16:41:21 +02:00
SwiftyOS
e364804615 Added generic memstore 2023-09-06 16:29:31 +02:00
Reinier van der Leer
c45f675119 Remove unused autogpt/benchmarks.py 2023-09-06 15:49:43 +02:00
Reinier van der Leer
78cd591798 Update PR template 2023-09-06 15:47:49 +02:00
Reinier van der Leer
ea37eb95f9 Update PR template 2023-09-06 15:35:53 +02:00
Silen Naihin
d3fe982e27 adding more benchmarking data visualizations (#5162) 2023-09-06 00:39:27 -07:00
Silen Naihin
b881189651 adding visualizations 2023-09-06 00:36:21 -07:00
merwanehamadi
63213bc74d Add Issue template and clear .github folder (#5161) 2023-09-05 21:04:57 -07:00
merwanehamadi
d851d9baa8 Create 2.feature.yml 2023-09-05 20:47:53 -07:00
merwanehamadi
799ce6ad0b Create 1.bug.yml 2023-09-05 20:47:21 -07:00
merwanehamadi
01e59672bd Delete .github/workflows/benchmark_ci.yml 2023-09-05 20:46:22 -07:00
merwanehamadi
5fcc6578c5 Update PULL_REQUEST_TEMPLATE.md 2023-09-05 20:45:45 -07:00
Reinier van der Leer
2949683c23 Update CONTRIBUTING.md 2023-09-06 05:05:55 +02:00
merwanehamadi
e9cc9fdd8a Restructure Repo (#5160) 2023-09-05 18:39:48 -07:00
merwanehamadi
4b3d11cff0 Delete .idea directory 2023-09-05 18:37:29 -07:00
Silen Naihin
583eedc240 adding hypercorn 2023-09-05 18:32:29 -07:00
Silen Naihin
d234a12942 visuals and regex, requests 2023-09-05 18:24:48 -07:00
Silen Naihin
8d9f6a21b2 Merge branch 'develop' of https://github.com/Significant-Gravitas/Auto-GPT into develop 2023-09-05 18:23:11 -07:00
hunteraraujo
a15f391c96 Update README.md 2023-09-05 17:30:48 -07:00
Merwane Hamadi
668fc8c352 Fix forge and benchmark 2 2023-09-05 17:05:45 -07:00
Merwane Hamadi
81bdcb9477 Fix forge and benchmark 2023-09-05 16:58:09 -07:00
Merwane Hamadi
66719e4c78 Cleanup 2023-09-05 16:34:55 -07:00
Merwane Hamadi
c9b65353e7 add ci + fix linting 2023-09-05 12:11:00 -07:00
merwanehamadi
33c18102de Delete .DS_Store 2023-09-05 11:59:45 -07:00
Silen Naihin
401231eab5 adding readme 2023-09-05 11:21:50 -07:00
merwanehamadi
f41bf592b9 Test benchmark ci (#5157)
* Add gitignore

* test benchmark ci

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-05 11:05:40 -07:00
Merwane Hamadi
9c4aca255a remove extraneous code 2023-09-05 10:32:38 -07:00
Merwane Hamadi
965a6187ac Merge remote-tracking branch 'benchmark1/restructure' into restructure-repo 2023-09-05 10:25:59 -07:00
merwanehamadi
c2dc4baa43 Delete agbenchmark directory 2023-09-05 10:14:09 -07:00
merwanehamadi
5b18765e31 Delete .idea directory 2023-09-05 10:13:56 -07:00
Merwane Hamadi
9fc0e2d4d8 remove benchmark 2023-09-05 10:12:15 -07:00
Auto-GPT-Bot
45c15e370f Auto-GPT-20230905085638
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-05 10:10:03 -07:00
Merwane Hamadi
a1f7445f03 Merge remote-tracking branch 'forge/master' into restructure-repo 2023-09-05 09:55:42 -07:00
Merwane Hamadi
8489052358 Move Auto-GPT to autogpts/autogpt 2023-09-05 09:40:24 -07:00
Swifty
cf2952f338 Addition of Simple Memory System Based on ChromaDB (#28) 2023-09-05 16:51:14 +02:00
SwiftyOS
1277e368c1 Added prompt techniques 2023-09-05 13:28:52 +02:00
Swifty
c8c57059eb Addition of Ability Register and Sample Ability (#27) 2023-09-05 13:13:29 +02:00
Auto-GPT-Bot
70941212e4 beebot-20230905085222 2023-09-05 08:52:23 +00:00
Auto-GPT-Bot
f816f33099 Turbo-20230905084158 2023-09-05 08:41:58 +00:00
Auto-GPT-Bot
cbbc5be4ce PolyGPT-20230905083750 2023-09-05 08:37:51 +00:00
Auto-GPT-Bot
dd7e231224 mini-agi-20230905083708 2023-09-05 08:37:09 +00:00
Auto-GPT-Bot
730bd35abd gpt-engineer-20230905082128 2023-09-05 08:21:29 +00:00
Auto-GPT-Bot
5eefa36acb smol-developer-20230905081948 2023-09-05 08:19:48 +00:00
Auto-GPT-Bot
922cf6e1bf BabyAGI-20230905081859 2023-09-05 08:18:59 +00:00
merwanehamadi
0bb45be584 Rename three sum (#354)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-04 19:50:27 -07:00
Silen Naihin
2dc1a0a9cd working regex (#352) 2023-09-04 18:19:35 -07:00
merwanehamadi
57907bcda1 Url shortener challenge (#353)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-04 16:31:01 -07:00
hunteraraujo
994bdca948 Prevent TaskView and ChatView from Being Obscured by CupertinoTabView
This commit wraps the TaskView and ChatView in a SafeArea widget to ensure that they are not hidden behind the CupertinoTabView. This addresses the issue where parts of these views were obscured, particularly when using the app on smaller screens.

- Wrapped TaskView in SafeArea
- Wrapped ChatView in SafeArea

This change improves the user experience by ensuring that all content is visible and accessible.
2023-09-04 16:19:06 -07:00
hunteraraujo
e1d45645ae Integrate JSON Response into AgentMessageTile
This commit integrates the actual JSON response received from the API into the AgentMessageTile. Now, each AgentMessageTile will display the associated JSON response when expanded.

- Converted Map<String, dynamic> JSON response to a string using jsonEncode.
- Passed the JSON-formatted string to JsonCodeSnippetView.
- Updated AgentMessageTile to include this change.

This change enhances the debugging and transparency features of the chat interface.
2023-09-04 15:47:15 -07:00
hunteraraujo
2c0c2e7663 Truncate task titles in TaskListTile
Update TaskListTile to truncate task titles that overflow.

- Modify the Text widget to limit it to a single line.
- Add TextOverflow.ellipsis to show an ellipsis when the text overflows.
2023-09-04 14:31:12 -07:00
hunteraraujo
a470a30311 Fix multiple selection issue in TaskListTile
Ensure that only one TaskListTile can be selected at a time.

- Refactor TaskListTile to be a StatelessWidget.
- Remove internal state `_isSelected` from TaskListTile.
- Add a `selected` boolean prop to TaskListTile to control its selection state from the parent.
- Update the parent widget to manage the selection state and pass it down to TaskListTile.
2023-09-04 14:26:25 -07:00
merwanehamadi
613dd111f0 Add battleship game (#351)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-04 14:11:56 -07:00
SwiftyOS
4ce962db74 Added image to the Readme 2023-09-04 17:03:15 +02:00
SwiftyOS
11c1bc3aa9 Renamed gui to frontend 2023-09-04 16:43:51 +02:00
SwiftyOS
009eeebb70 Cleaned notebooks removing the stored output 2023-09-04 16:35:41 +02:00
SwiftyOS
b9be0f7834 removed script 2023-09-04 16:33:39 +02:00
SwiftyOS
011be8f2ca Added License for the main directory remvoing sub-licenses 2023-09-04 16:32:10 +02:00
SwiftyOS
f1133af05c Added a readme and gitignore 2023-09-04 16:30:32 +02:00
SwiftyOS
bbfaf555b2 Added git ignore 2023-09-04 16:24:15 +02:00
SwiftyOS
16be886ba0 Removed extra dirs 2023-09-04 16:23:45 +02:00
SwiftyOS
e5cef441e2 Re-Organised project and added benchmark code 2023-09-04 16:21:09 +02:00
Auto-GPT-Bot
de60cf8e56 beebot-20230904085735 2023-09-04 08:57:36 +00:00
Auto-GPT-Bot
c539866f7c Auto-GPT-20230904084850 2023-09-04 08:48:51 +00:00
Auto-GPT-Bot
fc44da3161 mini-agi-20230904083608 2023-09-04 08:36:09 +00:00
Auto-GPT-Bot
e598fe95b4 PolyGPT-20230904083452 2023-09-04 08:34:52 +00:00
Auto-GPT-Bot
abefbddda2 Turbo-20230904082958 2023-09-04 08:29:58 +00:00
Auto-GPT-Bot
59265a4d56 BabyAGI-20230904081904 2023-09-04 08:19:04 +00:00
Auto-GPT-Bot
44b19c4b58 smol-developer-20230904081630 2023-09-04 08:16:30 +00:00
Auto-GPT-Bot
4c54b4637e gpt-engineer-20230904081545 2023-09-04 08:15:45 +00:00
hunteraraujo
bc211827ad Add local persistence for deleted tasks
- Extended TaskService to manage a list of deleted tasks using shared_preferences.
- Modified TaskViewModel to filter out tasks that have been marked as deleted locally.
- Loaded the list of deleted tasks during app initialization in main.dart.
2023-09-03 20:35:39 -07:00
Silen Naihin
99bbed24ef challenge logs to json (#350) 2023-09-03 14:12:40 -07:00
hunteraraujo
f3f7fdf381 Add 'gui/' from commit '1b314a5782c42d4c1d2e55e1792e5ed240522b74'
git-subtree-dir: gui
git-subtree-mainline: 9cebc85193
git-subtree-split: 1b314a5782
2023-09-03 13:02:46 -07:00
hunteraraujo
9cebc85193 Remove GUI subdirectory 2023-09-03 13:02:11 -07:00
hunteraraujo
1b314a5782 Helpful TODOs 2023-09-03 12:54:00 -07:00
Auto-GPT-Bot
c0f0a48540 beebot-20230903085728 2023-09-03 08:57:29 +00:00
Auto-GPT-Bot
1789821aa5 Auto-GPT-20230903084604 2023-09-03 08:46:05 +00:00
Auto-GPT-Bot
222c10e9ee Turbo-20230903083206 2023-09-03 08:32:06 +00:00
Auto-GPT-Bot
1935d5504c mini-agi-20230903082926 2023-09-03 08:29:27 +00:00
Auto-GPT-Bot
dc6e1372dc PolyGPT-20230903082655 2023-09-03 08:26:55 +00:00
Auto-GPT-Bot
7a8a6ff8f4 gpt-engineer-20230903081739 2023-09-03 08:17:40 +00:00
Auto-GPT-Bot
cd64b26545 BabyAGI-20230903081702 2023-09-03 08:17:03 +00:00
Auto-GPT-Bot
5bbcf0d876 smol-developer-20230903081529 2023-09-03 08:15:29 +00:00
Silen Naihin
cd7c6139c1 combined reports with json (#349) 2023-09-02 22:28:47 -07:00
hunteraraujo
aa26cad9e7 Refactor Dependency Injection in main.dart Using ProxyProvider
- Replaced direct service initialization with Provider and ProxyProvider in main.dart.
- Introduced a ChangeNotifierProxyProvider for ApiSettingsViewModel to include a reference to RestApiUtility.
- Refactored MyApp class to fetch services from providers instead of direct instantiation.

This commit enhances the dependency injection pattern to support dynamic updates to the API base URL. The use of ProxyProvider allows for more flexible and efficient management of dependencies, particularly between RestApiUtility and other services.
2023-09-02 20:45:18 -07:00
hunteraraujo
bf60feaa7e Refactor TaskView to Include API Base URL Field
- Added ApiBaseUrlField widget to the TaskView.
- Included a TextEditingController to manage the API base URL value.
- Initialized the text field with the current base URL value from ApiSettingsViewModel.
- Modified the layout to place the API base URL field and associated buttons below the task list.

The commit introduces a user interface enhancement that allows the user to update the API base URL directly from the TaskView. This ensures better configurability and user experience.
2023-09-02 20:34:40 -07:00
hunteraraujo
c9bde250b1 Integrate RestApiUtility with ApiSettingsViewModel for Dynamic URL Updates
- Added a reference to RestApiUtility within ApiSettingsViewModel.
- Modified _loadBaseURL and updateBaseURL methods to update the base URL in RestApiUtility whenever a change is made.
- This ensures that changes to the base URL in the settings are propagated to the utility responsible for making API calls.

This integration allows the application to dynamically update the base URL for API calls through the user interface, enhancing flexibility and configurability.
2023-09-02 20:27:16 -07:00
hunteraraujo
eaa4825e6b Refactor ApiBaseUrlField into a Separate Widget
- Extracted the API Base URL field and associated buttons into a new ApiBaseUrlField widget.
- Utilized Consumer to listen for changes in ApiSettingsViewModel.
- Maintained the look and feel consistent with the application's existing UI elements.

This refactor enhances code modularity and readability by isolating the API settings UI in its own widget.
2023-09-02 20:22:43 -07:00
hunteraraujo
e69e683f70 Integrate ApiSettingsViewModel into main.dart
Updated main.dart to provide ApiSettingsViewModel at the top-level using MultiProvider. This ensures that the ViewModel is accessible throughout the app, allowing for dynamic updates to the API's base URL.
2023-09-02 17:42:58 -07:00
hunteraraujo
b0bd42a57e Update RestApiUtility to allow dynamic baseURL
Modified RestApiUtility to include a method for updating the base URL dynamically. This allows the application to adapt to changes in the API's base URL without requiring a restart.
2023-09-02 17:42:35 -07:00
hunteraraujo
1049a4d868 Add ApiSettingsViewModel for managing API base URL
Created a new ViewModel called ApiSettingsViewModel that is responsible for getting and setting the API's base URL. Utilized the shared_preferences package for persistent storage of the base URL.
2023-09-02 17:42:14 -07:00
hunteraraujo
32c977f7f1 Add shared_preferences dependency 2023-09-02 17:20:16 -07:00
hunteraraujo
7966b81e96 Update ViewModel classes for Chat and Task to handle structured responses
This commit updates the ViewModel classes for both Chat and Task to accommodate the new structured responses received from the API. These changes are essential for the correct functioning of the application as they deal with the new TaskResponse and Step objects.

Updates in ChatViewModel:
- Modified `fetchChatsForTask` to handle structured step data
- Updated how steps are retrieved and processed

Updates in TaskViewModel:
- Updated `fetchTasks` to use the new TaskResponse object
- Refactored task fetching and selection logic

These updates ensure that the ViewModel classes are aligned with the new structured API responses, improving data handling and UI updates.
2023-09-02 15:42:54 -07:00
hunteraraujo
7a817f4989 Remove getList implementation 2023-09-02 15:22:08 -07:00
hunteraraujo
bda3b8b649 Refactor service classes to use api.get and handle structured responses
This commit updates the ChatService and TaskService classes to use the api.get method instead of the previous api.getList. This change allows us to handle structured API responses more effectively, particularly those containing pagination information and detailed task and step data.

- Update ChatService methods to use api.get
- Update TaskService methods to use api.get
- Handle structured TaskResponse in TaskService.listAllTasks
2023-09-02 15:21:52 -07:00
hunteraraujo
3b710b3c7c Add TaskResponse model to encapsulate tasks and pagination data
This commit introduces a new class called TaskResponse, which holds both the tasks and pagination information returned from the API. The class includes a factory constructor to create an instance from JSON data, ensuring that the API response is neatly packaged into an easily manageable object. This enhances code readability and maintainability.

- Create a TaskResponse class with tasks and pagination fields
- Add a factory constructor for JSON to TaskResponse conversion
2023-09-02 15:06:23 -07:00
hunteraraujo
855c7fe8ea Update Task model to include optional fields and adapt factory method
This commit updates the Task model to include optional fields for
'additionalInput' and 'artifacts'. The 'fromMap' factory method is also
adapted to populate these fields if they exist in the JSON response.

This change aligns the Task model with the expected server responses,
making it more flexible and robust.
2023-09-02 15:04:00 -07:00
hunteraraujo
e3200d87ba Add Pagination Model for API Responses
Added a new Pagination class to model the pagination data that comes with API responses. This will help in handling paginated data more effectively and transparently.

The Pagination class includes fields for total items, total pages, current page, and page size. It also includes a factory constructor for creating an instance from a JSON object.
2023-09-02 14:58:49 -07:00
hunteraraujo
d7b2a952da Update baseURL to point at forge 2023-09-02 14:47:55 -07:00
hunteraraujo
291f7f2b85 Add CORS Middleware to Resolve XMLHttpRequest Error (#26) 2023-09-02 14:19:45 -07:00
Auto-GPT-Bot
4c236b16e4 beebot-20230902082647 2023-09-02 08:26:48 +00:00
Auto-GPT-Bot
618d1975b2 Auto-GPT-20230902082232 2023-09-02 08:22:32 +00:00
Auto-GPT-Bot
0cac00d5f8 mini-agi-20230902082116 2023-09-02 08:21:16 +00:00
Auto-GPT-Bot
04e7ecb3e5 PolyGPT-20230902081843 2023-09-02 08:18:44 +00:00
Auto-GPT-Bot
21773c3789 gpt-engineer-20230902081833 2023-09-02 08:18:34 +00:00
Auto-GPT-Bot
54861833b5 Turbo-20230902081621 2023-09-02 08:16:21 +00:00
Auto-GPT-Bot
d54f7948f1 BabyAGI-20230902081503 2023-09-02 08:15:04 +00:00
Auto-GPT-Bot
64aaf0640a smol-developer-20230902081341 2023-09-02 08:13:41 +00:00
Silen Naihin
6eeefbd800 bug fixes, sha frontend, updating file locations 2023-09-01 10:54:35 -07:00
Silen Naihin
abed1ae879 Added script to load data into a df (#348)
Co-authored-by: SwiftyOS <craigswift13@gmail.com>
2023-09-01 10:31:04 -07:00
Auto-GPT-Bot
819764372e smol-developer-20230901172047 2023-09-01 17:20:47 +00:00
merwanehamadi
f1ce7f628e Remove chart generation for now (#347) 2023-09-01 10:13:39 -07:00
Auto-GPT-Bot
36955cd4e3 Add combined charts - 20230901171057 2023-09-01 17:10:57 +00:00
Auto-GPT-Bot
c8756022cf Turbo-20230901170906 2023-09-01 17:09:06 +00:00
Auto-GPT-Bot
c8351ff054 Add combined charts - 20230901161315 2023-09-01 16:13:15 +00:00
Auto-GPT-Bot
69fd7d15dd smol-developer-20230901161037 2023-09-01 16:10:37 +00:00
Auto-GPT-Bot
805c07d578 Add combined charts - 20230901154054 2023-09-01 15:40:54 +00:00
Auto-GPT-Bot
4848a72a2b smol-developer-20230901153851 2023-09-01 15:38:51 +00:00
merwanehamadi
44436fe1a3 Fix Chart generation (#346)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-01 08:31:17 -07:00
Auto-GPT-Bot
aec47db740 Add combined charts - 20230901083205 2023-09-01 08:32:06 +00:00
Auto-GPT-Bot
f1cfb14085 Auto-GPT-20230901082927 2023-09-01 08:29:27 +00:00
Auto-GPT-Bot
3dbb0a21f8 beebot-20230901082847 2023-09-01 08:28:48 +00:00
Auto-GPT-Bot
6206749875 Turbo-20230901082434 2023-09-01 08:24:34 +00:00
Auto-GPT-Bot
de2507cc5e mini-agi-20230901082431 2023-09-01 08:24:32 +00:00
Auto-GPT-Bot
6c043d19c1 PolyGPT-20230901082141 2023-09-01 08:21:42 +00:00
Auto-GPT-Bot
a9f16dd3b3 BabyAGI-20230901081709 2023-09-01 08:17:10 +00:00
Auto-GPT-Bot
687cdcaadf gpt-engineer-20230901081646 2023-09-01 08:16:46 +00:00
Auto-GPT-Bot
0472e0305c smol-developer-20230901081448 2023-09-01 08:14:48 +00:00
merwanehamadi
41909f0de7 Tic tac toe challenge (#345)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-31 20:45:31 -07:00
hunteraraujo
ecb9580a13 Integrate Services into main.dart and Update Providers
This commit refactors the main.dart file to include service initialization and dependency injection:

- RestApiUtility Initialization: Initialize the RestApiUtility with a mock API endpoint.
- Service Initialization: Initialize ChatService and TaskService with the created RestApiUtility.
- Dependency Injection: Pass the initialized services to MyApp constructor.
- Provider Update: Replace the ChangeNotifierProvider creation in MultiProvider to use the new ChatViewModel and TaskViewModel initialized with the respective services.

This setup allows for better separation of concerns and easier testing, as the services are now decoupled from the view models.
2023-08-31 15:55:44 -07:00
hunteraraujo
ff7667108f Implement User Interactions in TaskView
This commit adds functionality to handle user interactions in the TaskView class by implementing the onPressed, onTap, and onDelete methods:

- onPressed: Triggered when the "New Task" button is pressed. It clears the current task ID and chat history in the ChatViewModel.
- onTap: Triggered when a task list tile is tapped. It selects the task in TaskViewModel and updates the current task ID in ChatViewModel.
- onDelete: Triggered when the delete button on a task list tile is pressed. It deletes the task from TaskViewModel and clears the current task ID and chat history in ChatViewModel if the deleted task was the current task.

These implementations provide a seamless user experience for managing tasks and associated chats.
2023-08-31 15:50:10 -07:00
hunteraraujo
2df6c5e334 Implement onSendPressed Functionality in ChatView
This commit enhances the ChatView class by implementing the onSendPressed functionality, which is triggered when the user sends a message through the ChatInputField:

- When onSendPressed is triggered, it checks if a task ID is currently selected (currentTaskId in ChatViewModel).
- If a task ID is selected, the message is sent as a chat message for that task using sendChatMessage from ChatViewModel.
- If no task ID is selected, a new task is created using createTask from TaskViewModel, and then the message is sent for that new task.

This change provides a complete workflow for sending chat messages, either within an existing task or by creating a new task.
2023-08-31 15:45:55 -07:00
hunteraraujo
5d865a36d9 Refactor ChatInputField to Use Callback for Sending Messages
This commit brings a key update to the ChatInputField widget, making it more flexible and decoupled:

- The onSendPressed callback now takes a string parameter. This string represents the message that the user wishes to send.
- The onPressed of the send button (IconButton) is now implemented within the ChatInputField widget. It checks if the TextField has any text before calling onSendPressed.
- Added a TextEditingController to manage the TextField's content.
2023-08-31 15:42:33 -07:00
hunteraraujo
deb84cc804 Remove mock data 2023-08-31 15:15:40 -07:00
hunteraraujo
5ae17d009b Update TaskViewModel to Use TaskService and Task API Integration
This commit includes a significant overhaul of the TaskViewModel to use the newly created TaskService and integrate it with the task API. Specifically:

- Removed dependency on mock data for tasks.
- Added real API calls through the TaskService for task operations like creating and fetching tasks.
- Updated createTask to return the ID of the newly created task.
- Updated fetchTasks method to fetch tasks from the API and update the local list.
- Updated selectTask to handle selection based on string IDs.

These changes make the TaskViewModel ready for real-world usage and remove dependencies on mock data.
2023-08-31 15:15:24 -07:00
hunteraraujo
651e112e3d Update ChatViewModel to Use ChatService and Step Model
This commit refactors the ChatViewModel to use the newly created ChatService and Step model for chat-related functionalities. The changes include:

- Replaced mock data source with real API calls via ChatService.
- Introduced _currentTaskId to keep track of the current task ID.
- Added fetchChatsForTask method to fetch steps related to the current task and populate the chat list.
- Implemented sendChatMessage to execute a step and add both user and agent messages to the chat list.

By making these changes, the ChatViewModel is now fully integrated with the backend services and models, thus enabling a more realistic and dynamic chat experience.
2023-08-31 15:11:03 -07:00
hunteraraujo
ae5799fc6a Introduce TaskService Class for Task Operations
This commit adds a new TaskService class to handle all task-related operations, including task creation, listing, and artifacts management.

- Implemented methods for creating a new task (createTask).
- Added functionality to retrieve details for a specific task (getTaskDetails).
- Enabled listing all tasks with optional pagination (listAllTasks).
- Enabled listing all artifacts for a specific task with optional pagination (listTaskArtifacts).

By encapsulating these operations within the TaskService class, this commit provides a clean and centralized way to interact with the backend for task functionalities, making the application more maintainable and easier to extend.
2023-08-31 15:07:05 -07:00
hunteraraujo
078db3105c Introduce ChatService Class for Chat Operations
This commit adds a new ChatService class to handle all chat-related operations, including steps and artifacts.

- Implemented methods for executing a step within a task (executeStep).
- Added functionality to retrieve details for a specific step (getStepDetails).
- Enabled listing all steps for a specific task with optional pagination (listTaskSteps).
- Laid groundwork for artifact uploading (uploadArtifact) and downloading (downloadArtifact), though these are not implemented yet.

By encapsulating these operations within the ChatService class, this commit provides a clean and centralized way to interact with the backend for chat functionalities, making the application more maintainable and easier to extend.
2023-08-31 15:04:57 -07:00
hunteraraujo
ed03a32bc3 Create Step Class to Model Step Information
This commit introduces the Step class to the codebase, designed to model the steps related to tasks.

- Implemented Step class with both required and optional fields.
- Provided a fromMap factory method for easy deserialization from API responses.
- Ensured that optional fields are handled gracefully, providing default values where necessary.

The addition of the Step class lays the foundation for more complex interactions with tasks, including the ability to handle steps with varying levels of information. This makes the application more flexible and robust when interfacing with the backend.
2023-08-31 14:56:32 -07:00
hunteraraujo
0dcdaaf641 Add RestApiUtility Class for HTTP Requests
This commit introduces a new utility class, RestApiUtility, designed to encapsulate all the HTTP request operations.

- Created RestApiUtility class with a constructor that accepts a base URL.
- Added get method to perform GET requests and return data as a Map.
- Added getList method to perform GET requests and return data as a List.
- Added post method to perform POST requests with payload and return data as a Map.

The class uses the http package for making network calls and dart:convert for JSON serialization and deserialization. This centralized approach makes it easier to manage API calls and handle errors across the application.
2023-08-31 14:46:01 -07:00
hunteraraujo
ac692d50e6 Add http dependency 2023-08-31 14:44:03 -07:00
hunteraraujo
1c862be18a Update Task Model to Use String IDs
This commit updates the Task model to use string-based identifiers (id) instead of integers. The change aligns the model with the backend service, which uses string-based UUIDs for task identification.
2023-08-31 14:43:01 -07:00
hunteraraujo
43593d849d Update Chat Model to Use String IDs
This commit updates the Chat model to use string-based identifiers (id and taskId) instead of integers. This change aligns the model with the backend service, which uses string-based UUIDs for task and chat identification.
2023-08-31 14:41:20 -07:00
hunteraraujo
8950ab44be Implement and Test TaskRequestBody Model
This commit adds the TaskRequestBody class, which is designed to encapsulate the request body when creating a new task. The class includes a toJson method for easy serialization to JSON format.

Additionally, unit tests have been written to ensure that the TaskRequestBody object is created with the correct values and that it serializes to the expected JSON structure.

- Added TaskRequestBody class with input and optional additionalInput fields.
- Implemented toJson method for converting an instance of the class to JSON.
- Added unit tests to verify both object creation and JSON serialization.

These changes provide a standardized way to manage the request body when creating new tasks, improving the overall code quality and maintainability.
2023-08-31 14:39:03 -07:00
hunteraraujo
c4d08aefb9 Implement and Test StepRequestBody Model
This commit introduces the StepRequestBody class, designed to encapsulate the request body for sending a chat message in the form of a step. The class includes a toJson method for easy serialization to JSON format.

Additionally, unit tests have been added to ensure that the StepRequestBody object is created with the correct values and that it serializes to the expected JSON format.

- Added StepRequestBody class with input and optional additionalInput fields.
- Implemented toJson method for converting an instance of the class to JSON.
- Added unit tests to verify both object creation and JSON serialization.

These changes provide a robust way to manage the request body for step-based chat messages.
2023-08-31 14:36:35 -07:00
Auto-GPT-Bot
517bdb88d0 Add combined charts - 20230831154632 2023-08-31 15:46:32 +00:00
Auto-GPT-Bot
56e4e83bb4 beebot-20230831154426 2023-08-31 15:44:26 +00:00
Auto-GPT-Bot
36d7a8c978 Auto-GPT-20230831154312 2023-08-31 15:43:15 +00:00
Auto-GPT-Bot
68e4de434a PolyGPT-20230831154259 2023-08-31 15:42:59 +00:00
Auto-GPT-Bot
195842b81a Turbo-20230831154255 2023-08-31 15:42:56 +00:00
Auto-GPT-Bot
2e26d6293b mini-agi-20230831154218 2023-08-31 15:42:19 +00:00
Auto-GPT-Bot
2e93ac0eea BabyAGI-20230831153646 2023-08-31 15:36:47 +00:00
Auto-GPT-Bot
62395a429a gpt-engineer-20230831153523 2023-08-31 15:35:24 +00:00
Auto-GPT-Bot
eff9434930 smol-developer-20230831153441 2023-08-31 15:34:41 +00:00
Auto-GPT-Bot
bea7a3c626 Add combined charts - 20230831152900 2023-08-31 15:29:00 +00:00
Auto-GPT-Bot
3091f28f06 smol-developer-20230831152651 2023-08-31 15:26:51 +00:00
merwanehamadi
cfd86ada8a Put back Helicone MITM (#344) 2023-08-31 08:21:08 -07:00
Swifty
bc731e0125 📝 Added template based prompting (#25) 2023-08-31 17:13:00 +02:00
Auto-GPT-Bot
cb0c145eba Add combined charts - 20230831145913 2023-08-31 14:59:13 +00:00
Auto-GPT-Bot
ddd038f14d Turbo-20230831145646 2023-08-31 14:56:46 +00:00
Swifty
edb50d8445 Agent (#24) 2023-08-31 14:45:17 +02:00
SwiftyOS
1c93114a99 Added code to pass the write file test 2023-08-31 14:23:35 +02:00
Luke
595e04def1 Updating Turbo (#343)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
2023-08-31 07:09:41 -04:00
SwiftyOS
f0f290b0ae removed tracing and monitoring 2023-08-31 11:46:24 +02:00
Auto-GPT-Bot
7fd7ac5ce0 Turbo-20230831082553 2023-08-31 08:25:53 +00:00
Auto-GPT-Bot
71d66d7a1e beebot-20230831082546 2023-08-31 08:25:47 +00:00
Auto-GPT-Bot
26df847b24 mini-agi-20230831082305 2023-08-31 08:23:05 +00:00
Auto-GPT-Bot
a41216a9dd Auto-GPT-20230831082056 2023-08-31 08:20:56 +00:00
Auto-GPT-Bot
3eeebdd948 BabyAGI-20230831081628 2023-08-31 08:16:29 +00:00
Auto-GPT-Bot
76d103cb41 gpt-engineer-20230831081621 2023-08-31 08:16:22 +00:00
Auto-GPT-Bot
ddffc6317a smol-developer-20230831081456 2023-08-31 08:14:56 +00:00
Auto-GPT-Bot
fca97c9777 Add combined charts - 20230831060254 2023-08-31 06:02:54 +00:00
Auto-GPT-Bot
c36ec21420 smol-developer-20230831060058 2023-08-31 06:00:58 +00:00
merwanehamadi
33b3ea6e43 Fix CI back (#342) 2023-08-30 22:56:03 -07:00
Auto-GPT-Bot
01a226cdda Add combined charts - 20230831054916 2023-08-31 05:49:17 +00:00
Auto-GPT-Bot
635a3c5c8e smol-developer-20230831054734 2023-08-31 05:47:34 +00:00
Silen Naihin
b6ad300eda restructure library, deprecate challenges (#336)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-30 22:38:31 -07:00
Auto-GPT-Bot
b263cab511 Add combined charts - 20230831051456 2023-08-31 05:14:57 +00:00
Auto-GPT-Bot
45a6d02f05 mini-agi-20230831051249 2023-08-31 05:12:49 +00:00
merwanehamadi
b0862471ab Remove submodule (#341) 2023-08-30 22:08:51 -07:00
Merwane Hamadi
e96d492fb1 Get total cost 2023-08-30 21:57:28 -07:00
merwanehamadi
7c49b0f29c Fix tests (#338) 2023-08-30 20:31:10 -07:00
merwanehamadi
afb59a0778 Support agent protocol (#337)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-30 19:44:39 -07:00
Reinier van der Leer
ba030eac1d Reduce docker build bloat 2023-08-31 02:50:54 +02:00
Reinier van der Leer
96324b3502 Fix Docker build 2023-08-31 02:25:40 +02:00
Reinier van der Leer
5bfccd800e Disable memory creation 2023-08-31 01:49:57 +02:00
Reinier van der Leer
b486c621eb Prevent needless double LLM calls when SMART_LLM == FAST_LLM 2023-08-31 01:42:49 +02:00
Reinier van der Leer
e4370652e9 Implement watchdog feature for dynamic switching between smart & fast LLMs 2023-08-31 01:39:51 +02:00
Auto-GPT-Bot
8644dcc216 Add combined charts - 20230830233730 2023-08-30 23:37:30 +00:00
Auto-GPT-Bot
22f42cb704 Turbo-20230830233500 2023-08-30 23:35:00 +00:00
Luke
16a1d884f1 Update TestPasswordGenerator_Easy to mention ValueError (#335)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
2023-08-30 19:08:36 -04:00
Reinier van der Leer
a4ef53c55c Update agbenchmark to v0.0.9 2023-08-31 00:14:20 +02:00
Luke
d4b25eddab Update Turbo (#334)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
2023-08-30 16:41:14 -04:00
Auto-GPT-Bot
70d7ccf8f2 Add combined charts - 20230830132335 2023-08-30 13:23:36 +00:00
Auto-GPT-Bot
624497bd3b Turbo-20230830132044 2023-08-30 13:20:44 +00:00
Luke
c66b903a13 Update Turbo (#333)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
2023-08-30 07:05:22 -04:00
SwiftyOS
7a933cacb7 Exporting class from the sdk 2023-08-30 12:56:05 +02:00
SwiftyOS
87c6874a54 Added in agent explination 2023-08-30 12:47:29 +02:00
SwiftyOS
80a8b95b8c updated doc string 2023-08-30 11:44:33 +02:00
SwiftyOS
6ae60371f0 Removed test scripts 2023-08-30 11:39:12 +02:00
Swifty
77a726dd79 Updated Artifact Handling to schema 0.4 (#23) 2023-08-30 11:36:57 +02:00
Auto-GPT-Bot
71a56e9eca Add combined charts - 20230830085106 2023-08-30 08:51:06 +00:00
Auto-GPT-Bot
fba7bcee83 beebot-20230830084912 2023-08-30 08:49:12 +00:00
Auto-GPT-Bot
35f5e5e402 Auto-GPT-20230830084130 2023-08-30 08:41:31 +00:00
Auto-GPT-Bot
c587da5dd9 mini-agi-20230830083324 2023-08-30 08:33:24 +00:00
Auto-GPT-Bot
e92087bd80 PolyGPT-20230830083259 2023-08-30 08:32:59 +00:00
Auto-GPT-Bot
bbcfa710b3 BabyAGI-20230830081802 2023-08-30 08:18:03 +00:00
Auto-GPT-Bot
fdae35481c gpt-engineer-20230830081731 2023-08-30 08:17:32 +00:00
Auto-GPT-Bot
3f202d5e78 smol-developer-20230830081642 2023-08-30 08:16:42 +00:00
Auto-GPT-Bot
ea741a9e5e Turbo-20230830081527 2023-08-30 08:15:27 +00:00
SwiftyOS
e1f82d1469 added the ability to run the benchmark back 2023-08-29 16:29:45 +02:00
SwiftyOS
adbd6e1c7d Updated ignore 2023-08-29 15:47:35 +02:00
Auto-GPT-Bot
0a484630bf Add combined charts - 20230829084711 2023-08-29 08:47:12 +00:00
Auto-GPT-Bot
33674b5575 beebot-20230829084505 2023-08-29 08:45:06 +00:00
Auto-GPT-Bot
69d452fa5b PolyGPT-20230829083753 2023-08-29 08:37:54 +00:00
Auto-GPT-Bot
b73b7fa43d mini-agi-20230829083229 2023-08-29 08:32:29 +00:00
Auto-GPT-Bot
a25d537162 Auto-GPT-20230829082530 2023-08-29 08:25:30 +00:00
Auto-GPT-Bot
8c2cef6621 BabyAGI-20230829081846 2023-08-29 08:18:46 +00:00
Auto-GPT-Bot
79f214079d smol-developer-20230829081740 2023-08-29 08:17:40 +00:00
Auto-GPT-Bot
42f10ea1cf Turbo-20230829081637 2023-08-29 08:16:45 +00:00
Auto-GPT-Bot
abc80fe223 gpt-engineer-20230829081641 2023-08-29 08:16:41 +00:00
merwanehamadi
6715b462fd remove warning (#332) 2023-08-28 22:20:07 -07:00
Silen Naihin
dab064f5a8 update frontend hash, run.sh 2023-08-28 19:55:44 -07:00
Reinier van der Leer
d2cc22c698 Disable unproven paragraph flattening in split_text() 2023-08-29 02:06:47 +02:00
Reinier van der Leer
6fac2386c7 Make execute_python_code more intuitive to use & improve execution command definitions 2023-08-29 01:59:29 +02:00
Reinier van der Leer
5a8b2658fa Prompt improvements in command definitions and context template 2023-08-29 01:43:45 +02:00
Reinier van der Leer
b367c3d125 Reduce log spam 2023-08-28 20:00:36 +02:00
Reinier van der Leer
0a5e08538d Add agbenchmark/analyze_reports.py script 2023-08-28 19:56:35 +02:00
Auto-GPT-Bot
707c3203dd Update cassette submodule 2023-08-28 17:51:04 +00:00
Reinier van der Leer
a929716456 Merge branch 'action-history' 2023-08-28 19:46:25 +02:00
Reinier van der Leer
82a81e5865 Optimize ActionHistory prompting 2023-08-28 19:45:18 +02:00
Luke
0e2c98ba64 Turbo update (#331)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
2023-08-28 09:37:49 -07:00
Reinier van der Leer
d86ed40f83 Improve TestRevenueRetrieval_1.1 task specification (#329)
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
2023-08-28 09:37:26 -07:00
NeonN3mesis
78a620c1ec Fix StreamElements TTS (#5146) 2023-08-28 18:21:49 +02:00
merwanehamadi
a8dd079d4c Updatee cutoff for SuperAGI (#330) 2023-08-28 08:13:18 -07:00
SwiftyOS
13c53b650d Refactored forge to a cleaner layout 2023-08-28 16:25:53 +02:00
SwiftyOS
372c73fb33 fixed page size field 2023-08-28 15:48:37 +02:00
Auto-GPT-Bot
3d02e7d609 Add combined charts - 20230828084728 2023-08-28 08:47:28 +00:00
Auto-GPT-Bot
80955f3a1d beebot-20230828084516 2023-08-28 08:45:17 +00:00
Auto-GPT-Bot
572541132b mini-agi-20230828083816 2023-08-28 08:38:17 +00:00
Auto-GPT-Bot
87b25cf870 Auto-GPT-20230828083645 2023-08-28 08:36:46 +00:00
Auto-GPT-Bot
48eeab6466 PolyGPT-20230828083426 2023-08-28 08:34:26 +00:00
Auto-GPT-Bot
ca4a97c1ad Turbo-20230828083011 2023-08-28 08:30:11 +00:00
Auto-GPT-Bot
e61b266938 BabyAGI-20230828081936 2023-08-28 08:19:37 +00:00
Auto-GPT-Bot
6d62d97a2a gpt-engineer-20230828081843 2023-08-28 08:18:43 +00:00
Auto-GPT-Bot
194b71d94b smol-developer-20230828081545 2023-08-28 08:15:45 +00:00
Auto-GPT-Bot
54c423a590 Add combined charts - 20230827084402 2023-08-27 08:44:02 +00:00
Auto-GPT-Bot
28cb9dd823 beebot-20230827084215 2023-08-27 08:42:16 +00:00
Auto-GPT-Bot
fc32db80e5 Auto-GPT-20230827083756 2023-08-27 08:37:56 +00:00
Auto-GPT-Bot
61c3d423aa Turbo-20230827083654 2023-08-27 08:36:55 +00:00
Auto-GPT-Bot
a0cd65da86 PolyGPT-20230827082846 2023-08-27 08:28:47 +00:00
Auto-GPT-Bot
1e3234e5bc mini-agi-20230827082723 2023-08-27 08:27:24 +00:00
Auto-GPT-Bot
c0838772f3 gpt-engineer-20230827081830 2023-08-27 08:18:30 +00:00
Auto-GPT-Bot
cdb8df637f BabyAGI-20230827081657 2023-08-27 08:16:58 +00:00
Auto-GPT-Bot
c055be1d64 smol-developer-20230827081404 2023-08-27 08:14:04 +00:00
Silen Naihin
59655a8d96 adding backend and a basic ui (#309) 2023-08-27 03:18:30 -04:00
merwanehamadi
d3e86622b7 Fix Forge (#22)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-26 08:20:12 -07:00
Auto-GPT-Bot
a107723456 Add combined charts - 20230826083824 2023-08-26 08:38:24 +00:00
Auto-GPT-Bot
2cd7b1e571 beebot-20230826083606 2023-08-26 08:36:06 +00:00
Auto-GPT-Bot
93f6c26e36 Turbo-20230826083601 2023-08-26 08:36:01 +00:00
Auto-GPT-Bot
dc17ec6e2e mini-agi-20230826082817 2023-08-26 08:28:17 +00:00
Auto-GPT-Bot
2e418653ad PolyGPT-20230826082743 2023-08-26 08:27:43 +00:00
Auto-GPT-Bot
6b59bf7877 Auto-GPT-20230826082044 2023-08-26 08:20:44 +00:00
Auto-GPT-Bot
3f8c4c6f9a BabyAGI-20230826081648 2023-08-26 08:16:48 +00:00
Auto-GPT-Bot
7dfc1a80b2 gpt-engineer-20230826081626 2023-08-26 08:16:26 +00:00
Auto-GPT-Bot
3fb6b889e8 smol-developer-20230826081343 2023-08-26 08:13:43 +00:00
hunteraraujo
803e3f6ef9 Fix various splash radius for icon buttons 2023-08-25 08:12:35 -07:00
hunteraraujo
c08165c66a Align chat tiles to top of chat view 2023-08-25 08:04:34 -07:00
Swifty
62a8c7ae04 Updating to version v0.4 of the Protocol (#21) 2023-08-25 16:03:16 +02:00
dmoham1476
3d322b791f Update __init__.py to support image_gen commands (#5137)
Update __init__.py

Enabling image_gen commands to support IMAGE_PROVIDER in the .env.
2023-08-25 15:04:59 +02:00
Danna
24e2fb2e35 Fix elevenLabs config error (#5131)
* Fix elevenlabs config

---------

Co-authored-by: Reinier van der Leer <reinier.vanderleer@agpt.co>
2023-08-25 14:37:39 +02:00
Auto-GPT-Bot
6593b9cda7 Add combined charts - 20230825083805 2023-08-25 08:38:05 +00:00
Auto-GPT-Bot
883db39d5f mini-agi-20230825083627 2023-08-25 08:36:28 +00:00
Auto-GPT-Bot
05059e4c80 PolyGPT-20230825083307 2023-08-25 08:33:08 +00:00
Auto-GPT-Bot
ca6bb9b9b6 Turbo-20230825083134 2023-08-25 08:31:35 +00:00
Auto-GPT-Bot
97f1ae34c2 beebot-20230825082516 2023-08-25 08:25:17 +00:00
Auto-GPT-Bot
b3109037ff Auto-GPT-20230825082314 2023-08-25 08:23:15 +00:00
Auto-GPT-Bot
2f1eef53ff BabyAGI-20230825081855 2023-08-25 08:18:56 +00:00
Auto-GPT-Bot
85369a117c gpt-engineer-20230825081655 2023-08-25 08:16:56 +00:00
Auto-GPT-Bot
09ce160dfb smol-developer-20230825081512 2023-08-25 08:15:12 +00:00
hunteraraujo
b312b1d481 Fix copy button background color 2023-08-24 21:53:35 -07:00
hunteraraujo
2ca75159e3 Include send icon in text field 2023-08-24 21:51:18 -07:00
hunteraraujo
9f8c93ebb0 Update main_layout.dart + main.dart to integrate ChatView 2023-08-24 21:43:02 -07:00
hunteraraujo
0fb67241c5 Implement ChatView with Agent and User Message Tiles
This commit introduces the ChatView widget, a central component of the application that manages the chat interface. It's responsible for displaying both agent and user messages and includes the following features:

- Fetching chats for a specific task upon initialization.
- A reverse ListView to display chats with the most recent messages at the bottom.
- Dynamic rendering of UserMessageTile and AgentMessageTile widgets based on message type.
- Integration with the ChatInputField for inputting user messages.
- Placeholder logic for handling send action, to be implemented later.

This implementation lays the groundwork for a fully functional chat interface within the application, allowing for a seamless interaction between users and agents.
2023-08-24 21:41:53 -07:00
hunteraraujo
33c900b73f Add AgentMessageTile Widget with Tests
This commit introduces the AgentMessageTile widget, a core component of the chat interface. The widget is designed to display agent messages, including a collapsible section for displaying a pretty-printed JSON code snippet.

The following features have been implemented:
- Rendering of agent title, message text, and expand/collapse button.
- Expandable section for displaying a JSON code snippet, complete with copy functionality.
- A minimum height constraint to ensure consistent appearance.
- Widget tests to validate rendering and interaction behavior.

These enhancements contribute to the overall chat functionality, providing a clear and interactive display of agent messages.
2023-08-24 21:17:11 -07:00
hunteraraujo
ddfbd1b9f8 Implement UserMessageTile Widget and Tests
This commit introduces the UserMessageTile widget, designed to display user messages in the chat interface. The widget includes the following features:
- Proper alignment based on available screen width
- A predefined minimum height with flexible expansion for longer messages
- Styling including a white background, thin black border, and small corner radius

Alongside the widget, this commit also includes comprehensive widget tests to ensure the correct rendering and functionality of the UserMessageTile. The tests cover:
- Rendering without errors
- Displaying the correct user message
- Showing the "User" title as expected

These implementations improve the structure and readability of the user messages within the chat view, ensuring a consistent and user-friendly experience.
2023-08-24 20:59:47 -07:00
hunteraraujo
05ce744f8c Add JsonCodeSnippetView to Display and Copy Pretty-Printed JSON
This commit introduces the JsonCodeSnippetView, a widget designed to display JSON data in a pretty-printed format. Users can view the JSON content with proper indentation and formatting, enhancing readability.

Features:
- The JSON data is displayed using the HighlightView with GitHub-themed syntax highlighting.
- A copy button (IconButton) is provided to allow users to easily copy the pretty-printed JSON to the clipboard.
- Padding and layout adjustments ensure that the view fits seamlessly within the designated space, with scrollable content if the JSON exceeds the available space.

This widget enhances the user experience when interacting with JSON data, providing a clean and efficient way to view and copy content.
2023-08-24 20:52:11 -07:00
Reinier van der Leer
f6e9565d1f Merge branch 'master' into action-history 2023-08-25 03:18:29 +02:00
merwanehamadi
16cbf5dc2a Fix tests (#20) 2023-08-24 18:07:49 -07:00
Auto-GPT-Bot
e2724c1108 Update cassette submodule 2023-08-25 00:26:21 +00:00
Reinier van der Leer
c6e7d21364 Fix type error in ApiManager 2023-08-25 02:21:02 +02:00
Reinier van der Leer
621355884e Optimize prompt components for browse_website and rename it read_webpage 2023-08-25 02:19:27 +02:00
Reinier van der Leer
249226c1e4 Disable close_context_item when context is empty 2023-08-25 02:16:13 +02:00
Reinier van der Leer
3c48c4a2d6 Disable bytecode generation for python execution commands 2023-08-25 02:15:38 +02:00
Reinier van der Leer
1f3db55ee8 Improve command result printing to console 2023-08-25 02:13:52 +02:00
Reinier van der Leer
69f43edfee Integrate ActionHistory into Agent + BaseAgent 2023-08-25 02:09:38 +02:00
Reinier van der Leer
7285f7dad3 Fix formatting of plugin commands in PromptGenerator 2023-08-25 01:09:53 +02:00
Auto-GPT-Bot
e153ae23a3 Update cassette submodule 2023-08-24 21:31:42 +00:00
Reinier van der Leer
2c07e8a4d9 Improve open_file description 2023-08-24 23:11:20 +02:00
Reinier van der Leer
c31bccc1da Fix PromptGenerator for plugin use 2023-08-24 23:05:21 +02:00
Auto-GPT-Bot
f4bc24aedf Update cassette submodule 2023-08-24 20:22:09 +00:00
Alex
3be38790a0 fix(docker): add gcc installation in order to build psutil (#5059) 2023-08-24 22:16:19 +02:00
Reinier van der Leer
1b618fd5d7 Fix mypy config 2023-08-24 22:15:22 +02:00
hunteraraujo
d7b6d1e49a Implement and Test Chat Input Field Widget
This commit introduces the ChatInputField widget, a custom text input field designed for use within the ChatView. The ChatInputField widget handles varying screen sizes and gracefully resizes itself according to the available width. It starts with a height of 50 and can expand up to 400 as the user types more lines of text.

In addition to the implementation, this commit also includes widget tests to ensure the ChatInputField behaves as expected.

- Add ChatInputField widget with dynamic resizing
- Include IconButton for sending messages
- Add widget tests for ChatInputField
- Handle edge cases and overflows
2023-08-24 11:55:05 -07:00
Swifty
5db1a93257 Updating to version v0.4 of the Protocol (#18) 2023-08-24 17:50:06 +02:00
Reinier van der Leer
f871688a3f Unbreak cassettes 2023-08-24 17:45:42 +02:00
Reinier van der Leer
efe9278693 Fix some more broken tests 2023-08-24 17:35:50 +02:00
Reinier van der Leer
055bbc10d4 Disable ask_user for testing or benchmarking runs 2023-08-24 16:20:35 +02:00
Reinier van der Leer
4bcb39dc14 Fix logging setup for testing 2023-08-24 16:09:25 +02:00
Fluder-Paradyne
2176e1179a Fix for TestWrite6Files and TestWrite5FilesWithArray (#328)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-08-24 09:14:03 -04:00
Reinier van der Leer
bcd00b39b7 Refine prompt to reduce unnecessary browsing and open_file use 2023-08-24 15:13:40 +02:00
Reinier van der Leer
714f0fc676 Fix logging output in benchmark 2023-08-24 15:12:28 +02:00
Auto-GPT-Bot
0e369c045f Add combined charts - 20230824084801 2023-08-24 08:48:01 +00:00
Auto-GPT-Bot
172b22ab6a beebot-20230824084619 2023-08-24 08:46:20 +00:00
Auto-GPT-Bot
9dcbe072aa Turbo-20230824083617 2023-08-24 08:36:18 +00:00
Auto-GPT-Bot
1df351e1ba Auto-GPT-20230824083451 2023-08-24 08:34:51 +00:00
Auto-GPT-Bot
b444cbf7ed mini-agi-20230824083309 2023-08-24 08:33:10 +00:00
Auto-GPT-Bot
368f57a8b8 PolyGPT-20230824082825 2023-08-24 08:28:26 +00:00
Auto-GPT-Bot
b3846a7d17 BabyAGI-20230824081913 2023-08-24 08:19:14 +00:00
Auto-GPT-Bot
2e7ce18fd2 smol-developer-20230824081747 2023-08-24 08:17:48 +00:00
Auto-GPT-Bot
a72b438fbc gpt-engineer-20230824081618 2023-08-24 08:16:18 +00:00
Auto-GPT-Bot
e8a1386718 Add combined charts - 20230824040403 2023-08-24 04:04:03 +00:00
Auto-GPT-Bot
9db62c7941 beebot-20230824040221 2023-08-24 04:02:22 +00:00
Auto-GPT-Bot
529955683f mini-agi-20230824034838 2023-08-24 03:48:39 +00:00
Auto-GPT-Bot
17ca1f0da4 Turbo-20230824034142 2023-08-24 03:41:42 +00:00
Auto-GPT-Bot
3c5b7f0be4 PolyGPT-20230824034125 2023-08-24 03:41:25 +00:00
Auto-GPT-Bot
7f55d8584e Auto-GPT-20230824033715 2023-08-24 03:37:15 +00:00
Auto-GPT-Bot
8c0a4e5379 gpt-engineer-20230824033251 2023-08-24 03:32:52 +00:00
Auto-GPT-Bot
3bab48a154 BabyAGI-20230824033021 2023-08-24 03:30:22 +00:00
Auto-GPT-Bot
1db5af1367 smol-developer-20230824032732 2023-08-24 03:27:32 +00:00
Luke
57d7ad2df2 Delete Auto-GPT-Turbo (#327)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
2023-08-23 17:32:08 -07:00
Luke
2b5ca2dbfb Update Turbo (#324)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-08-23 14:39:20 -07:00
hunteraraujo
6e2d325994 Refactor UI with New Widgets and Provider Integration
In this commit, the app underwent significant UI improvements by leveraging new, more modular widgets (NewTaskButton and TaskListTile). This ensures better code maintainability and a cleaner architecture.

Key changes include:

Integrated ChangeNotifierProvider in main.dart to facilitate the creation and broadcasting of TaskViewModel.
Refactored TaskView to utilize the newly created NewTaskButton and TaskListTile widgets.
Updated MainLayout to reflect the changes and provide a more cohesive user experience.
2023-08-23 08:31:54 -07:00
hunteraraujo
34fe38627b Update dependencies 2023-08-23 08:26:36 -07:00
hunteraraujo
3a0db45b3b Implement TaskListTile with tests
This commit introduces the TaskListTile, a custom widget designed to display individual tasks in the TaskView. The tile offers a user-friendly interface with interactive features, such as selection and deletion.

Key Features:
- Responsive design that adapts its width based on the TaskView's constraints.
- Interactive tile that changes its background color upon selection.
- A delete icon that appears only when the tile is selected.
- Comprehensive widget tests to ensure the TaskListTile behaves as expected.

By splitting this into its own widget, the codebase remains modular, making it easier to maintain and update in the future.
2023-08-23 08:25:19 -07:00
Auto-GPT-Bot
f36468240b Add combined charts - 20230823083734 2023-08-23 08:37:34 +00:00
Auto-GPT-Bot
558480503b mini-agi-20230823083546 2023-08-23 08:35:47 +00:00
Auto-GPT-Bot
d6b0ba602a Auto-GPT-20230823082934 2023-08-23 08:29:34 +00:00
Auto-GPT-Bot
986f554982 beebot-20230823082858 2023-08-23 08:28:58 +00:00
Auto-GPT-Bot
88d6d8fa30 Auto-GPT-Turbo-20230823082810 2023-08-23 08:28:11 +00:00
Auto-GPT-Bot
6d395049cd PolyGPT-20230823082322 2023-08-23 08:23:23 +00:00
Auto-GPT-Bot
dd6e17b12f BabyAGI-20230823081919 2023-08-23 08:19:19 +00:00
Auto-GPT-Bot
8a12be0a4c smol-developer-20230823081549 2023-08-23 08:15:50 +00:00
Auto-GPT-Bot
f56e76cd7b gpt-engineer-20230823081505 2023-08-23 08:15:05 +00:00
Reinier van der Leer
97ccaba45f Fix broken tests (casualties from the past few days) 2023-08-23 02:26:39 +02:00
Reinier van der Leer
a660619ea8 Adjust command formatting in prompt 2023-08-23 01:04:39 +02:00
Reinier van der Leer
d8f02dc79f Fix ask_user question & response formatting 2023-08-23 01:04:08 +02:00
Reinier van der Leer
092afbce62 Complete context integration & add close_context_item command 2023-08-23 01:01:52 +02:00
Reinier van der Leer
b0405ac8ee Add Context segment to prompt 2023-08-23 00:59:17 +02:00
Reinier van der Leer
380e92596e Merge branch 'master' into file-context 2023-08-22 23:42:20 +02:00
Reinier van der Leer
2d400ed167 Fix "user-friendly" logging 2023-08-22 23:41:52 +02:00
Reinier van der Leer
2a8cc4816e Enable open_file and open_folder 2023-08-22 23:31:16 +02:00
Reinier van der Leer
cef5e6535e Minor refactor in PromptGenerator to fix trailing list items 2023-08-22 23:18:11 +02:00
Reinier van der Leer
f4658cfff3 Merge branch 'master' into file-context 2023-08-22 23:04:02 +02:00
hunteraraujo
b71b7d1f26 Update new_task_button.dart 2023-08-22 17:03:52 -04:00
Reinier van der Leer
eb5976d56b Clean up logging output 2023-08-22 23:02:28 +02:00
hunteraraujo
d830a7ebcf Implement NewTaskButton with styling and tests
This commit introduces the NewTaskButton widget, designed to allow users to create new tasks. The button follows specific design guidelines, including dimensions, colors, and layout.

Key Features:

Button with a set height and adaptive width.
Icon and text layout within the button.
Styling for background, border, and corner radius.
Associated tests to ensure the button's functionality and appearance.
2023-08-22 16:59:36 -04:00
Reinier van der Leer
2520ec6e08 Generate system prompt based on agent state
* Rename PromptConfig to AIDirectives

* Make PromptGenerator primarily responsible for generating prompt instead of AIConfig

* Refactor PromptGenerator

* Add `available` attribute to `Command` class, to determine availability based on `Agent` state
2023-08-22 22:57:41 +02:00
Reinier van der Leer
4e64519a26 Migrate to mixins for Context and Workspace features 2023-08-22 22:52:26 +02:00
Auto-GPT-Bot
aa28507c0a Add combined charts - 20230822084931 2023-08-22 08:49:32 +00:00
Auto-GPT-Bot
076f242929 beebot-20230822084708 2023-08-22 08:47:09 +00:00
Auto-GPT-Bot
33d2ce66c2 mini-agi-20230822083534 2023-08-22 08:35:35 +00:00
Auto-GPT-Bot
5b49624e16 Auto-GPT-20230822083336 2023-08-22 08:33:37 +00:00
Auto-GPT-Bot
2f29d116d7 PolyGPT-20230822083027 2023-08-22 08:30:28 +00:00
Auto-GPT-Bot
f06545f5ae Auto-GPT-Turbo-20230822082950 2023-08-22 08:29:50 +00:00
Auto-GPT-Bot
af71138605 BabyAGI-20230822081825 2023-08-22 08:18:25 +00:00
Auto-GPT-Bot
d24eec9cf3 gpt-engineer-20230822081743 2023-08-22 08:17:43 +00:00
Auto-GPT-Bot
baad116966 smol-developer-20230822081555 2023-08-22 08:15:55 +00:00
hunteraraujo
1436092a35 Implement ChatViewModel with tests and mock data
This commit introduces the ChatViewModel, which manages the business logic for chat interactions associated with tasks. The ViewModel communicates with a mock data source, offering functionalities like fetching chats for a specific task and sending chat messages.

In addition to the implementation, comprehensive tests for ChatViewModel have been provided to ensure its behavior is consistent with our design goals and expectations.

Key Features:

Chat management in ChatViewModel.
Tests covering all major functionalities of ChatViewModel.
Mock data source updates to emulate chat data interactions.
2023-08-22 07:33:54 +02:00
Reinier van der Leer
26d9f46da4 Merge branch 'master' into file-context 2023-08-22 07:31:21 +02:00
Reinier van der Leer
4e761b49f3 Clean up logging 2023-08-22 07:29:56 +02:00
Luke
9ed77593b3 Fix typo (#323)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-08-21 20:07:36 -07:00
SwiftyOS
19ee68bcd9 fix 2023-08-21 19:26:22 +02:00
Auto-GPT-Bot
ff62f60583 Auto-GPT-20230821083625 2023-08-21 08:36:26 +00:00
Auto-GPT-Bot
7e46fb9b07 PolyGPT-20230821083200 2023-08-21 08:32:01 +00:00
Auto-GPT-Bot
bf9afa0327 mini-agi-20230821082737 2023-08-21 08:27:38 +00:00
Auto-GPT-Bot
7fefba77a8 BabyAGI-20230821082023 2023-08-21 08:20:24 +00:00
Auto-GPT-Bot
e1cf065c87 gpt-engineer-20230821082000 2023-08-21 08:20:00 +00:00
Auto-GPT-Bot
d35ec18202 beebot-20230821081921 2023-08-21 08:19:21 +00:00
Auto-GPT-Bot
f80f3794e8 smol-developer-20230821081527 2023-08-21 08:15:27 +00:00
hunteraraujo
5b520eb5ae Implement TaskViewModel with tests and mock data
This commit introduces the TaskViewModel, which manages the business logic for tasks. The ViewModel interacts with a mock data source, providing functionalities like fetching tasks, selecting a task, creating, and deleting tasks.

Additionally, comprehensive tests for TaskViewModel have been added to ensure its behavior aligns with expectations. The mock data source has also been updated to support the new functionalities.

Key Features:
- Task management in TaskViewModel.
- Tests for each major functionality in TaskViewModel.
- Mock data source to simulate data interactions.
2023-08-21 00:03:39 +02:00
hunteraraujo
fb946e3d57 Create Chat class + tests 2023-08-20 20:57:29 +02:00
hunteraraujo
cf4aa4fe9c Create Task class + tests 2023-08-20 20:26:04 +02:00
hunteraraujo
d65e7ab830 Update AgentView to TaskView 2023-08-20 20:15:15 +02:00
hunteraraujo
8cc3f258cc Update README.md 2023-08-20 19:30:21 +02:00
hunteraraujo
d505724e90 Update agent to task 2023-08-20 19:20:56 +02:00
hunteraraujo
9bedb9fa08 Implement basic 2 panels w/ responsiveness 2023-08-20 16:33:53 +02:00
Auto-GPT-Bot
831fe730f7 beebot-20230820085131 2023-08-20 08:51:31 +00:00
Auto-GPT-Bot
eaa7bd6974 Auto-GPT-20230820083900 2023-08-20 08:39:00 +00:00
Auto-GPT-Bot
43edec2c81 mini-agi-20230820083428 2023-08-20 08:34:29 +00:00
hunteraraujo
66cf84b007 Remove settings view 2023-08-20 10:31:15 +02:00
Auto-GPT-Bot
4a464373cc PolyGPT-20230820082718 2023-08-20 08:27:19 +00:00
Auto-GPT-Bot
e02f55a282 BabyAGI-20230820081835 2023-08-20 08:18:36 +00:00
Auto-GPT-Bot
8200974fe1 gpt-engineer-20230820081600 2023-08-20 08:16:00 +00:00
Auto-GPT-Bot
bb6f5150e8 smol-developer-20230820081316 2023-08-20 08:13:16 +00:00
Reinier van der Leer
cadc8c5b61 WIP: add file context functionality 2023-08-19 23:42:54 +02:00
Luke
3de18d7c59 Adding Auto-GPT-Turbo (#322)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-08-19 11:32:38 -07:00
Luke
9f1631719c Fix "code.py" conflict with Python's code module, and fix TestReturnCode_Simple conflict between two test.py files. (#321)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-08-19 09:04:18 -07:00
Reinier van der Leer
3fe2246468 Agent loop v2: Prompting improvements & WIP planning (#5077)
* Add categories to command registry

* Fix tests

* Clean up prompt generation

* Rename Performance Evaluations to Best Practices
* Move specification of response format from system prompt to Agent.construct_base_prompt
* Clean up PromptGenerator class

* Add debug logging to AIConfig autogeneration

* Clarify prompting and add support for multiple thought processes to Agent

* WIP: PlanningAgent

* Disable message history by default on BaseAgent

* Add CommandOutput and ThoughtProcessOutput type aliases

* Fix interrupts in main.py

* Use custom exceptions and clean up exception/error handling

* Remove duplicate agent_history.py

* Update PlanningAgent from upstream

* WIP: Support for dynamic in-prompt context

* WIP: response formats for PlanningAgent three-stage cycle

* Remove browsing overlay & separate browsing from extraction code

* Fix human feedback

* Fix tests

* Include history in Agent prompt generation

* Code improvements in agent.py

* Add ask_user command and revise system prompt
2023-08-19 17:44:50 +02:00
Auto-GPT-Bot
ebec2ac813 Add combined charts - 20230819085622 2023-08-19 08:56:22 +00:00
Auto-GPT-Bot
7f940a552b beebot-20230819085413 2023-08-19 08:54:13 +00:00
Auto-GPT-Bot
fde1dcc447 Auto-GPT-20230819083659 2023-08-19 08:36:59 +00:00
Auto-GPT-Bot
5b445c2433 mini-agi-20230819082727 2023-08-19 08:27:27 +00:00
Auto-GPT-Bot
d9a6b1e8fb PolyGPT-20230819082704 2023-08-19 08:27:05 +00:00
Auto-GPT-Bot
079cb77c05 gpt-engineer-20230819081739 2023-08-19 08:17:39 +00:00
Auto-GPT-Bot
d3750754cc BabyAGI-20230819081730 2023-08-19 08:17:31 +00:00
Auto-GPT-Bot
7acbdccef5 smol-developer-20230819081446 2023-08-19 08:14:46 +00:00
merwanehamadi
26a4b4d946 Fix pool size issue on DB (#17) 2023-08-18 19:41:47 -07:00
merwanehamadi
75aa8760d9 Add load tests Tasks CI (#16) 2023-08-18 15:05:27 -07:00
Swifty
c6a1fc44a7 Refactor for super clear agent protocol implemenation (#15) 2023-08-18 19:02:24 +02:00
merwanehamadi
13ac319c0a Update ci.yml (#14) 2023-08-18 07:40:59 -07:00
Swifty
75b80ffeb1 Agent Skeleton (#12) 2023-08-18 12:56:28 +02:00
Auto-GPT-Bot
39be472f6c Add combined charts - 20230818083955 2023-08-18 08:39:55 +00:00
Auto-GPT-Bot
baec508552 PolyGPT-20230818083813 2023-08-18 08:38:14 +00:00
Auto-GPT-Bot
67656d6398 mini-agi-20230818083554 2023-08-18 08:35:55 +00:00
Auto-GPT-Bot
3977a164d2 Auto-GPT-20230818082939 2023-08-18 08:29:39 +00:00
Auto-GPT-Bot
e3b42e8da7 beebot-20230818082525 2023-08-18 08:25:26 +00:00
Auto-GPT-Bot
c484bb81e9 BabyAGI-20230818081923 2023-08-18 08:19:24 +00:00
Auto-GPT-Bot
6e4fa9743e smol-developer-20230818081648 2023-08-18 08:16:49 +00:00
Auto-GPT-Bot
038dfdd668 gpt-engineer-20230818081544 2023-08-18 08:15:44 +00:00
Nicholas Tindle
4dd75ca083 Add Citation.cff (#5130) 2023-08-17 21:03:11 -05:00
Luke
bed480925a Sync release into master (#5118) 2023-08-17 10:37:26 -04:00
Auto-GPT-Bot
d54bff62c1 Add combined charts - 20230817083548 2023-08-17 08:35:48 +00:00
Auto-GPT-Bot
a1a76ffa16 PolyGPT-20230817083332 2023-08-17 08:33:32 +00:00
Auto-GPT-Bot
fb087a023f mini-agi-20230817083238 2023-08-17 08:32:38 +00:00
Auto-GPT-Bot
e4671145fc Auto-GPT-20230817082815 2023-08-17 08:28:15 +00:00
Auto-GPT-Bot
bd367d9a3d beebot-20230817082456 2023-08-17 08:24:57 +00:00
Auto-GPT-Bot
f28ae236e7 gpt-engineer-20230817081846 2023-08-17 08:18:46 +00:00
Auto-GPT-Bot
4943022ff3 BabyAGI-20230817081840 2023-08-17 08:18:41 +00:00
Auto-GPT-Bot
b06ca33742 smol-developer-20230817081602 2023-08-17 08:16:02 +00:00
merwanehamadi
8b44ecb6cc Implement create task (#11)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-16 21:49:11 -07:00
merwanehamadi
3d13f9522e Add agbenchmark routes (#10)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-16 18:56:26 -07:00
Auto-GPT-Bot
1d1728a800 Add combined charts - 20230817003335 2023-08-17 00:33:35 +00:00
Auto-GPT-Bot
5775a1f7ef beebot-20230817003125 2023-08-17 00:31:26 +00:00
Auto-GPT-Bot
08077026d8 mini-agi-20230817001807 2023-08-17 00:18:07 +00:00
Auto-GPT-Bot
e25dd96b55 PolyGPT-20230817001649 2023-08-17 00:16:49 +00:00
Auto-GPT-Bot
28bfcbb60e Auto-GPT-20230817001500 2023-08-17 00:15:01 +00:00
merwanehamadi
3ce10dfa25 Update pyproject.toml (#320) 2023-08-16 17:11:22 -07:00
Auto-GPT-Bot
f9f3adcf9e gpt-engineer-20230817000816 2023-08-17 00:08:17 +00:00
Auto-GPT-Bot
5d575a3eed BabyAGI-20230817000555 2023-08-17 00:05:56 +00:00
Auto-GPT-Bot
4b832764d6 smol-developer-20230817000507 2023-08-17 00:05:07 +00:00
merwanehamadi
6fa303509f Fix linter 2 (#319) 2023-08-16 16:56:02 -07:00
Auto-GPT-Bot
a796f15cf3 Add combined charts - 20230816235351 2023-08-16 23:53:51 +00:00
Auto-GPT-Bot
c21b7bb13b smol-developer-20230816235150 2023-08-16 23:51:50 +00:00
merwanehamadi
6b9a75f786 Only push to gdrive correct timestamps (#318)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-16 16:43:14 -07:00
Auto-GPT-Bot
5fde2d3a20 Add combined charts - 20230816230750 2023-08-16 23:07:50 +00:00
Auto-GPT-Bot
b650823842 smol-developer-20230816230557 2023-08-16 23:05:57 +00:00
merwanehamadi
62c52643b4 Remove build a nuke challenge (#316)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-16 15:58:17 -07:00
merwanehamadi
760b60b249 Remove colons in timestamp (#315)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-16 15:53:06 -07:00
merwanehamadi
c13a46fd3b Fix linters and chrome selenium integration (#313)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-16 15:34:13 -07:00
merwanehamadi
82ed4a136a Remove submodule (#314)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-16 14:57:52 -07:00
merwanehamadi
277f3e4e4d Add endpoints to power dev tool (#310) 2023-08-16 09:00:05 -07:00
Luke
281d8486df Fixing paths that were preventing artifacts from being copied to workspace (#311)
Co-authored-by: Luke <2609441+lc0rp@user.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-08-16 08:59:04 -07:00
Swifty
16053a3137 Enhanced Test Report Directory Naming and Handling (#312) 2023-08-16 08:45:46 -07:00
Swifty
d7dd3b2f0b Adding Watchdog for Auto-Restart Functionality to Enhance Development Speed (#8) 2023-08-16 13:15:33 +02:00
SwiftyOS
0575442201 Added PR Agent 2023-08-16 12:40:28 +02:00
Auto-GPT-Bot
662810525f Add combined charts - 20230816084907 2023-08-16 08:49:07 +00:00
Auto-GPT-Bot
f9bf3f855d beebot-20230816084710 2023-08-16 08:47:10 +00:00
Auto-GPT-Bot
297f41c8aa PolyGPT-20230816083328 2023-08-16 08:33:28 +00:00
Auto-GPT-Bot
265f059ac0 Auto-GPT-20230816083045 2023-08-16 08:30:46 +00:00
Auto-GPT-Bot
bd54b53c92 mini-agi-20230816082907 2023-08-16 08:29:07 +00:00
Auto-GPT-Bot
91e21ae5a9 gpt-engineer-20230816081953 2023-08-16 08:19:53 +00:00
Auto-GPT-Bot
b9f58e0b55 BabyAGI-20230816081906 2023-08-16 08:19:07 +00:00
Auto-GPT-Bot
8a7dd42c1b smol-developer-20230816081556 2023-08-16 08:15:56 +00:00
merwanehamadi
b6b7de3be5 Change sqlite endpoint (#7) 2023-08-15 14:52:43 -07:00
Auto-GPT-Bot
fcdfa2ae2b Add combined charts - 20230815164707 2023-08-15 16:47:08 +00:00
Auto-GPT-Bot
8317058170 smol-developer-20230815164517 2023-08-15 16:45:17 +00:00
merwanehamadi
23d209f09c Remove skill tree sync (#308) 2023-08-15 09:39:54 -07:00
hunteraraujo
a006fe358b Add design document section to README 2023-08-15 15:37:41 +02:00
hunteraraujo
688abc724c Update README.md 2023-08-15 15:23:13 +02:00
Silen Naihin
8bc3710e23 init backend, fix frontend module (#307) 2023-08-15 14:14:35 +01:00
hunteraraujo
b6a9d905f1 Stub files per design document 2023-08-15 15:05:34 +02:00
Silen Naihin
c59e5fb7d8 new frontend connections (#306) 2023-08-15 13:16:07 +01:00
SwiftyOS
d978e801c4 Updated devtools ui 2023-08-15 13:21:01 +02:00
SwiftyOS
65fdbaf27f Switched to sqlalchemy 2023-08-15 13:20:47 +02:00
Auto-GPT-Bot
76d0942616 Auto-GPT-20230815083019 2023-08-15 08:30:20 +00:00
Auto-GPT-Bot
499b09f206 mini-agi-20230815082826 2023-08-15 08:28:26 +00:00
Auto-GPT-Bot
dba4156637 PolyGPT-20230815082821 2023-08-15 08:28:21 +00:00
Auto-GPT-Bot
35884fc31a beebot-20230815082349 2023-08-15 08:23:49 +00:00
Auto-GPT-Bot
39dc076ad4 gpt-engineer-20230815081744 2023-08-15 08:17:44 +00:00
Auto-GPT-Bot
d44df645cf BabyAGI-20230815081733 2023-08-15 08:17:33 +00:00
Auto-GPT-Bot
d598bfd51e smol-developer-20230815081531 2023-08-15 08:15:31 +00:00
hunteraraujo
dc35dc3024 initial commit 2023-08-15 00:28:10 +02:00
Auto-GPT-Bot
9f1a2870bf beebot-20230814221756 2023-08-14 22:17:57 +00:00
hunteraraujo
550d4c92d8 Initial commit 2023-08-15 00:07:47 +02:00
Auto-GPT-Bot
d88f845af2 mini-agi-20230814215530 2023-08-14 21:55:31 +00:00
Auto-GPT-Bot
79875195b3 Auto-GPT-20230814215526 2023-08-14 21:55:27 +00:00
Auto-GPT-Bot
006a555dd3 PolyGPT-20230814215238 2023-08-14 21:52:38 +00:00
Auto-GPT-Bot
de45fcad37 BabyAGI-20230814214238 2023-08-14 21:42:39 +00:00
Auto-GPT-Bot
683dd89bec gpt-engineer-20230814214140 2023-08-14 21:41:41 +00:00
Auto-GPT-Bot
dd1cad5784 smol-developer-20230814214114 2023-08-14 21:41:14 +00:00
Silen Naihin
a6b229f4cd Merge branch 'master' of https://github.com/Significant-Gravitas/Auto-GPT-Benchmarks 2023-08-14 21:57:12 +01:00
Silen Naihin
0d7fbba134 graph data json 2023-08-14 21:57:09 +01:00
Auto-GPT-Bot
22026ded57 Add combined charts - 20230814183630 2023-08-14 18:36:31 +00:00
Auto-GPT-Bot
092acab8ea PolyGPT-20230814183339 2023-08-14 18:33:39 +00:00
merwanehamadi
0f010def5d fix eval (#305)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-14 11:13:44 -07:00
Auto-GPT-Bot
47a347b6ba PolyGPT-20230814180130 2023-08-14 18:01:30 +00:00
merwanehamadi
07f831878f Fix eval (#304) 2023-08-14 10:54:54 -07:00
Auto-GPT-Bot
3f6fabd9c4 Add combined charts - 20230814175210 2023-08-14 17:52:10 +00:00
Auto-GPT-Bot
219b90543e smol-developer-20230814175014 2023-08-14 17:50:14 +00:00
Auto-GPT-Bot
2ec3402660 Add combined charts - 20230814174317 2023-08-14 17:43:18 +00:00
Auto-GPT-Bot
e7f65664a3 mini-agi-20230814174007 2023-08-14 17:40:07 +00:00
SwiftyOS
af67027b12 Added placeholder gui's 2023-08-14 18:45:16 +02:00
SwiftyOS
8ac4cb4a89 Placeholder ui's 2023-08-14 18:44:18 +02:00
SwiftyOS
28714d37f0 formatting 2023-08-14 18:20:10 +02:00
SwiftyOS
91a1c3dedd updated run command 2023-08-14 18:19:00 +02:00
SwiftyOS
d38d3920d7 Fixed issues with benchmarking 2023-08-14 18:16:19 +02:00
SwiftyOS
28f7a01797 Agent protocol now available 2023-08-14 14:03:22 +02:00
SwiftyOS
ee6899c68a Updated step handler to mark step as complete 2023-08-14 13:14:35 +02:00
SwiftyOS
670394bf7d Added sqlite database 2023-08-14 13:02:23 +02:00
Auto-GPT-Bot
ed6227ef5d PolyGPT-20230814101756 2023-08-14 10:17:56 +00:00
Media
a302293fa6 chore: polygpt update to include gpt4 (#303) 2023-08-14 11:41:51 +02:00
Rob
9a24bbf127 chore: polygpt update to include gpt4 2023-08-14 11:25:15 +02:00
Auto-GPT-Bot
245e3e06d0 PolyGPT-20230814090444 2023-08-14 09:04:44 +00:00
Auto-GPT-Bot
0072993a1b beebot-20230814085713 2023-08-14 08:57:14 +00:00
Auto-GPT-Bot
375670adf0 mini-agi-20230814084404 2023-08-14 08:44:05 +00:00
Auto-GPT-Bot
4af3cc0e07 PolyGPT-20230814083754 2023-08-14 08:37:54 +00:00
Auto-GPT-Bot
c3c1934d7b gpt-engineer-20230814081742 2023-08-14 08:17:43 +00:00
Auto-GPT-Bot
4bda2cf107 Auto-GPT-20230814081638 2023-08-14 08:16:38 +00:00
Auto-GPT-Bot
f448a35957 smol-developer-20230814081620 2023-08-14 08:16:20 +00:00
merwanehamadi
d27d17e51b Fix linter (#302) 2023-08-13 10:34:45 -07:00
merwanehamadi
0da8a2bd99 Fix agent protocol test (#301)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-13 10:27:54 -07:00
merwanehamadi
1129e6b426 Add safety challenge (#300)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-13 10:15:58 -07:00
merwanehamadi
c8c55c1297 0.0.8 (#299) 2023-08-13 07:58:19 -07:00
Auto-GPT-Bot
c50767e18b Add combined charts - 20230813084446 2023-08-13 08:44:47 +00:00
Auto-GPT-Bot
dc71939e9f beebot-20230813084213 2023-08-13 08:42:13 +00:00
Auto-GPT-Bot
ea35d8b77c Auto-GPT-20230813083804 2023-08-13 08:38:04 +00:00
Auto-GPT-Bot
2562a35e14 mini-agi-20230813082248 2023-08-13 08:22:48 +00:00
Auto-GPT-Bot
ef57b2acdb PolyGPT-20230813081946 2023-08-13 08:19:47 +00:00
Auto-GPT-Bot
572cbf60c8 gpt-engineer-20230813081739 2023-08-13 08:17:39 +00:00
Auto-GPT-Bot
040173afb8 BabyAGI-20230813081718 2023-08-13 08:17:18 +00:00
Auto-GPT-Bot
2343ef99ed smol-developer-20230813081344 2023-08-13 08:13:44 +00:00
Auto-GPT-Bot
cdb25404be Add combined charts - 20230813031629 2023-08-13 03:16:29 +00:00
Auto-GPT-Bot
4c80029a13 beebot-20230813031327 2023-08-13 03:13:28 +00:00
Auto-GPT-Bot
16e5a7f740 Auto-GPT-20230813025929 2023-08-13 02:59:29 +00:00
Weston Willingham
477f1fc038 Update .env.example (#298) 2023-08-12 19:52:15 -07:00
Auto-GPT-Bot
421188c466 mini-agi-20230813024903 2023-08-13 02:49:04 +00:00
Auto-GPT-Bot
f9c1f080c8 gpt-engineer-20230813024427 2023-08-13 02:44:27 +00:00
Auto-GPT-Bot
fb173a143c PolyGPT-20230813024302 2023-08-13 02:43:02 +00:00
Auto-GPT-Bot
3a0cbe67cc BabyAGI-20230813024238 2023-08-13 02:42:38 +00:00
Auto-GPT-Bot
786a223b71 smol-developer-20230813023944 2023-08-13 02:39:44 +00:00
merwanehamadi
5b76379846 Increase timeout (#297)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-12 19:34:02 -07:00
Auto-GPT-Bot
ec835af308 PolyGPT-20230813022800 2023-08-13 02:28:01 +00:00
Auto-GPT-Bot
a8471387bf mini-agi-20230813022714 2023-08-13 02:27:15 +00:00
Auto-GPT-Bot
2c70016dc6 gpt-engineer-20230813022149 2023-08-13 02:21:49 +00:00
Auto-GPT-Bot
5f82c18d5a BabyAGI-20230813022117 2023-08-13 02:21:18 +00:00
Auto-GPT-Bot
f92b645aa4 smol-developer-20230813021813 2023-08-13 02:18:13 +00:00
Auto-GPT-Bot
afca61eac6 Auto-GPT-20230813021718 2023-08-13 02:17:19 +00:00
Auto-GPT-Bot
9d7063f37d mini-agi-20230813020334 2023-08-13 02:03:35 +00:00
Auto-GPT-Bot
1c57e4a82a PolyGPT-20230813020130 2023-08-13 02:01:31 +00:00
Auto-GPT-Bot
7ceea969d2 gpt-engineer-20230813015836 2023-08-13 01:58:37 +00:00
Auto-GPT-Bot
0ae2fb49d4 BabyAGI-20230813015623 2023-08-13 01:56:23 +00:00
Auto-GPT-Bot
a4d19cf151 smol-developer-20230813015403 2023-08-13 01:54:03 +00:00
Auto-GPT-Bot
c52942ce23 Add combined charts - 20230813014940 2023-08-13 01:49:40 +00:00
Auto-GPT-Bot
f8d80265b1 beebot-20230813014653 2023-08-13 01:46:54 +00:00
Auto-GPT-Bot
85be563c43 Auto-GPT-20230813013325 2023-08-13 01:33:25 +00:00
Auto-GPT-Bot
689ce14a07 mini-agi-20230813012409 2023-08-13 01:24:10 +00:00
Auto-GPT-Bot
99d80bfbbe PolyGPT-20230813011911 2023-08-13 01:19:12 +00:00
Auto-GPT-Bot
7f7bc0d2c5 gpt-engineer-20230813011746 2023-08-13 01:17:47 +00:00
Auto-GPT-Bot
0bb9b2d828 BabyAGI-20230813011443 2023-08-13 01:14:43 +00:00
Auto-GPT-Bot
99fafaccca smol-developer-20230813011255 2023-08-13 01:12:55 +00:00
Auto-GPT-Bot
3ab57f13a9 Add combined charts - 20230813005645 2023-08-13 00:56:46 +00:00
Auto-GPT-Bot
e2610bbcba smol-developer-20230813005354 2023-08-13 00:53:54 +00:00
merwanehamadi
8bf2f3fe5d Fix all tests skipped (#296)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-12 17:35:55 -07:00
merwanehamadi
0a73e391d9 Release 0.0.7 (#295) 2023-08-12 10:46:52 -07:00
Auto-GPT-Bot
3fa1b6aedb Add combined charts - 20230812174515 2023-08-12 17:45:15 +00:00
Auto-GPT-Bot
74b7678477 Auto-GPT-20230812174235 2023-08-12 17:42:36 +00:00
Auto-GPT-Bot
f9c07a5f27 beebot-20230812174043 2023-08-12 17:40:44 +00:00
Auto-GPT-Bot
e4f8f89e72 mini-agi-20230812173545 2023-08-12 17:35:45 +00:00
Auto-GPT-Bot
ecf3b7dfdc gpt-engineer-20230812173045 2023-08-12 17:30:45 +00:00
Auto-GPT-Bot
3ee6450836 PolyGPT-20230812172909 2023-08-12 17:29:09 +00:00
Auto-GPT-Bot
a51acfa482 BabyAGI-20230812172829 2023-08-12 17:28:30 +00:00
Auto-GPT-Bot
064e543c77 smol-developer-20230812172503 2023-08-12 17:25:03 +00:00
merwanehamadi
e1c043975f Fix all tests skipped (#294)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-12 10:19:02 -07:00
Auto-GPT-Bot
2273396124 Add combined charts - 20230812082819 2023-08-12 08:28:20 +00:00
Auto-GPT-Bot
c6ad3a6a0f mini-agi-20230812082535 2023-08-12 08:25:35 +00:00
Auto-GPT-Bot
278b2810d9 BabyAGI-20230812081858 2023-08-12 08:18:58 +00:00
Auto-GPT-Bot
6dd125870f gpt-engineer-20230812081803 2023-08-12 08:18:03 +00:00
Auto-GPT-Bot
f736c66fff smol-developer-20230812081342 2023-08-12 08:13:42 +00:00
Auto-GPT-Bot
b2955b35cb Auto-GPT-20230812081335 2023-08-12 08:13:35 +00:00
Auto-GPT-Bot
324e7f4357 beebot-20230812081323 2023-08-12 08:13:24 +00:00
Auto-GPT-Bot
50b0c18677 PolyGPT-20230812081302 2023-08-12 08:13:02 +00:00
Auto-GPT-Bot
231aa5763c Auto-GPT-20230812034706 2023-08-12 03:47:06 +00:00
Auto-GPT-Bot
b7269f2eb8 Add combined charts - 20230812033931 2023-08-12 03:39:32 +00:00
Auto-GPT-Bot
518a5681ed smol-developer-20230812033656 2023-08-12 03:36:56 +00:00
merwanehamadi
d8d7fa662b Use index.html instead of dependencies.html (#293) 2023-08-11 20:32:23 -07:00
Auto-GPT-Bot
c8ff1fd646 BabyAGI-20230812030827 2023-08-12 03:08:28 +00:00
Auto-GPT-Bot
5634464cf3 gpt-engineer-20230812030747 2023-08-12 03:07:48 +00:00
Auto-GPT-Bot
7b8f72637d Auto-GPT-20230812030548 2023-08-12 03:05:49 +00:00
Auto-GPT-Bot
1b6dbe05d0 beebot-20230812030513 2023-08-12 03:05:13 +00:00
Auto-GPT-Bot
8eda98a88d mini-agi-20230812030433 2023-08-12 03:04:34 +00:00
Auto-GPT-Bot
fc0334c381 PolyGPT-20230812030427 2023-08-12 03:04:28 +00:00
Auto-GPT-Bot
789e777434 smol-developer-20230812030407 2023-08-12 03:04:07 +00:00
merwanehamadi
2428cf3596 No need to push skill tree twice (#292) 2023-08-11 19:59:11 -07:00
Auto-GPT-Bot
119fcacc84 gpt-engineer-20230812025848 2023-08-12 02:58:48 +00:00
Auto-GPT-Bot
7002523620 BabyAGI-20230812025640 2023-08-12 02:56:41 +00:00
Auto-GPT-Bot
d9a06c36e6 Add combined charts - 20230812025424 2023-08-12 02:54:25 +00:00
Auto-GPT-Bot
cd9da9a470 beebot-20230812025322 2023-08-12 02:53:22 +00:00
Auto-GPT-Bot
447514e170 Auto-GPT-20230812025258 2023-08-12 02:52:59 +00:00
Auto-GPT-Bot
d73928d5c9 PolyGPT-20230812025237 2023-08-12 02:52:37 +00:00
Auto-GPT-Bot
0ed5a8c625 smol-developer-20230812025203 2023-08-12 02:52:03 +00:00
Auto-GPT-Bot
58eb65290c gpt-engineer-20230812022313 2023-08-12 02:23:14 +00:00
Auto-GPT-Bot
64db78b51f BabyAGI-20230812022259 2023-08-12 02:22:59 +00:00
Auto-GPT-Bot
0828d9bbdd Auto-GPT-20230812022048 2023-08-12 02:20:49 +00:00
Auto-GPT-Bot
e00ba3a210 beebot-20230812022018 2023-08-12 02:20:19 +00:00
Auto-GPT-Bot
702edeae3c PolyGPT-20230812021922 2023-08-12 02:19:22 +00:00
Auto-GPT-Bot
70e4e75437 Add combined charts - 20230812020536 2023-08-12 02:05:37 +00:00
Auto-GPT-Bot
3efbd45f41 smol-developer-20230812020256 2023-08-12 02:02:56 +00:00
merwanehamadi
6dc713059c Remember goal loss (#291) 2023-08-11 18:44:18 -07:00
merwanehamadi
af7a456e00 If regression tests empty continue (#290) 2023-08-11 18:30:47 -07:00
merwanehamadi
1560892c58 Sync skill tree to a versioned website (#289)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-11 17:28:53 -07:00
Auto-GPT-Bot
ec2757f6d1 Add combined charts - 20230811215450 2023-08-11 21:54:51 +00:00
Auto-GPT-Bot
f426f30d59 beebot-20230811215219 2023-08-11 21:52:19 +00:00
Erik Peterson
79be5cd70f Update challenges submodule 2023-08-11 14:45:36 -07:00
Auto-GPT-Bot
7013d99242 Add combined charts - 20230811203200 2023-08-11 20:32:00 +00:00
Auto-GPT-Bot
be7852a057 PolyGPT-20230811202947 2023-08-11 20:29:47 +00:00
Auto-GPT-Bot
b8fb139641 Add combined charts - 20230811200007 2023-08-11 20:00:07 +00:00
Auto-GPT-Bot
2e76104d6a beebot-20230811195806 2023-08-11 19:58:06 +00:00
Erik Peterson
3ec09a3b69 Move pytest-asyncio to main dependency group 2023-08-11 12:52:35 -07:00
Auto-GPT-Bot
cf036d356b Add combined charts - 20230811182332 2023-08-11 18:23:32 +00:00
Auto-GPT-Bot
f1f84c8130 beebot-20230811182107 2023-08-11 18:21:07 +00:00
Erik Peterson
25a90a72f7 Update beebot (#288) 2023-08-11 11:14:10 -07:00
Auto-GPT-Bot
d1fa5fa2e7 Add combined charts - 20230811164951 2023-08-11 16:49:51 +00:00
Auto-GPT-Bot
58b35ce4be smol-developer-20230811164802 2023-08-11 16:48:02 +00:00
Silen Naihin
a513b449f7 updating version 2023-08-11 13:59:42 +01:00
Luke
f26ccda097 Bulleting update & version bump (#5112)
* Bulleting update & version bump

* Bulletin.md updates

* Format bulletin

* Added info about new documentation theme.

---------

Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
2023-08-11 14:44:27 +02:00
Silen Naihin
1a61c66898 mock flag, workspace io fixes, mark fixes 2023-08-11 13:22:21 +01:00
Auto-GPT-Bot
f74a960d05 Add combined charts - 20230811081805 2023-08-11 08:18:05 +00:00
Auto-GPT-Bot
ef58884a38 BabyAGI-20230811081601 2023-08-11 08:16:01 +00:00
Auto-GPT-Bot
38e1419820 mini-agi-20230811081443 2023-08-11 08:14:43 +00:00
Auto-GPT-Bot
355a6c1d9d Auto-GPT-20230811081429 2023-08-11 08:14:30 +00:00
Auto-GPT-Bot
2cc5b3ced8 beebot-20230811081425 2023-08-11 08:14:25 +00:00
Auto-GPT-Bot
e127f459db PolyGPT-20230811081356 2023-08-11 08:13:56 +00:00
Auto-GPT-Bot
ef5f52c4e6 gpt-engineer-20230811081345 2023-08-11 08:13:45 +00:00
Auto-GPT-Bot
1e7bf33fe6 smol-developer-20230811081340 2023-08-11 08:13:40 +00:00
Jakub Novák
c2269397f1 Use agent protocol (#278)
Signed-off-by: Jakub Novak <jakub@e2b.dev>
2023-08-11 09:04:08 +02:00
merwanehamadi
47c6062092 Cleanup skill tree (#287) 2023-08-10 16:29:58 -07:00
Rob
fb67c3aaf1 add updated challenges 2023-08-10 21:45:58 +02:00
Auto-GPT-Bot
70628e9018 Add combined charts - 20230810192949 2023-08-10 19:29:50 +00:00
Auto-GPT-Bot
5211f2a589 smol-developer-20230810192737 2023-08-10 19:27:37 +00:00
Rob
a2380a7bdd feat: ethereum price challenge 2023-08-10 21:09:04 +02:00
merwanehamadi
cfbb11c218 Add more fields to gdrive (#285)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-10 12:06:57 -07:00
Auto-GPT-Bot
57d44e62d2 Add combined charts - 20230810083259 2023-08-10 08:33:00 +00:00
Auto-GPT-Bot
ef66260365 Auto-GPT-20230810083043 2023-08-10 08:30:43 +00:00
Auto-GPT-Bot
de5c162f5a mini-agi-20230810082908 2023-08-10 08:29:08 +00:00
Auto-GPT-Bot
51c483938f beebot-20230810082601 2023-08-10 08:26:02 +00:00
Auto-GPT-Bot
2bb57b9800 BabyAGI-20230810082003 2023-08-10 08:20:04 +00:00
Auto-GPT-Bot
d9fe391c4a PolyGPT-20230810081816 2023-08-10 08:18:17 +00:00
Auto-GPT-Bot
22db949d90 smol-developer-20230810081659 2023-08-10 08:16:59 +00:00
Auto-GPT-Bot
7f8a3a737f gpt-engineer-20230810081557 2023-08-10 08:15:57 +00:00
merwanehamadi
1b20e45ec1 Implement the 'explore' mode (#284) 2023-08-09 17:59:48 -07:00
Silen Naihin
582c3e06a4 updating challenges repo name 2023-08-09 21:02:33 +01:00
Auto-GPT-Bot
e53a459e76 Add combined charts - 20230809192126 2023-08-09 19:21:26 +00:00
Auto-GPT-Bot
b5d475e07c PolyGPT-20230809191931 2023-08-09 19:19:31 +00:00
Jure Bogunovic
2acfe1b42a Removed accidentally added reports (#283)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-08-09 11:43:39 -07:00
merwanehamadi
6afd962270 Remove baserun because api key issue (#282)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-09 11:24:54 -07:00
Erik Peterson
f7ea78b83d Update beebot (#281)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-08-09 19:21:22 +01:00
Auto-GPT-Bot
fef76b1240 Add combined charts - 20230809181422 2023-08-09 18:14:23 +00:00
Auto-GPT-Bot
534ff7d6e7 PolyGPT-20230809181209 2023-08-09 18:12:09 +00:00
Media
2a46abead9 PolyGPT Benchmarks and Submodule Update (#273)
Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
Co-authored-by: nerfZael <bogunovij@gmail.com>
2023-08-09 11:04:02 -07:00
Auto-GPT-Bot
5f12bfe9f9 Add combined charts - 20230809171340 2023-08-09 17:13:42 +00:00
Auto-GPT-Bot
8b3ddc6a37 smol-developer-20230809171118 2023-08-09 17:11:18 +00:00
merwanehamadi
e3f1e2184f Release 0.0.4 (#280)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-09 10:04:57 -07:00
merwanehamadi
7d60ce5f44 See the task when clicking in the skill tree (#279) 2023-08-09 09:37:17 -07:00
Swifty
223938b48c Added e2b protocol for running agents (#6) 2023-08-09 17:22:02 +02:00
Swifty
7fccf6c4da Tooling application form (#5) 2023-08-09 11:01:55 +02:00
Auto-GPT-Bot
b5388f874e mini-agi-20230809083125 2023-08-09 08:31:25 +00:00
Auto-GPT-Bot
1d2112657b Auto-GPT-20230809082516 2023-08-09 08:25:17 +00:00
Auto-GPT-Bot
e6b4d33c4f beebot-20230809082258 2023-08-09 08:22:58 +00:00
Auto-GPT-Bot
80701bb91b BabyAGI-20230809081902 2023-08-09 08:19:03 +00:00
Auto-GPT-Bot
164bf6aa88 smol-developer-20230809081722 2023-08-09 08:17:23 +00:00
Auto-GPT-Bot
f1f4cac5de gpt-engineer-20230809081639 2023-08-09 08:16:39 +00:00
Auto-GPT-Bot
7ae56bb231 Add combined charts - 20230809031045 2023-08-09 03:10:45 +00:00
Auto-GPT-Bot
4f2719c910 BabyAGI-20230809030946 2023-08-09 03:09:47 +00:00
Auto-GPT-Bot
4e07aeb94c smol-developer-20230809030839 2023-08-09 03:08:39 +00:00
merwanehamadi
ae2fbfdbbd Fix send to gdrive (#277) 2023-08-08 20:00:59 -07:00
Auto-GPT-Bot
8bbd7332bb smol-developer-20230808223217 2023-08-08 22:32:18 +00:00
Auto-GPT-Bot
c093f2ee6b Add combined charts - 20230808222830 2023-08-08 22:28:31 +00:00
Auto-GPT-Bot
c063f3504e smol-developer-20230808222611 2023-08-08 22:26:11 +00:00
merwanehamadi
210bd49f19 Put back mini agi to original state (#276)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-08 15:20:20 -07:00
merwanehamadi
2a894f60b1 Integrate baserun (#275)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-08 15:08:25 -07:00
merwanehamadi
14e6d4968e Integrate with baserun (#274) 2023-08-08 14:04:43 -07:00
merwanehamadi
305f3a6138 Add web app creation challenge (#272) 2023-08-08 13:08:51 -07:00
Auto-GPT-Bot
e89d073bfa mini-agi-20230808084703 2023-08-08 08:47:03 +00:00
Auto-GPT-Bot
6592e1aa06 Auto-GPT-20230808083018 2023-08-08 08:30:18 +00:00
Auto-GPT-Bot
c639254f7a beebot-20230808082428 2023-08-08 08:24:28 +00:00
Auto-GPT-Bot
fbc08a9828 gpt-engineer-20230808081927 2023-08-08 08:19:28 +00:00
Auto-GPT-Bot
cb46a7f8e6 BabyAGI-20230808081739 2023-08-08 08:17:39 +00:00
Auto-GPT-Bot
9b0a76288b smol-developer-20230808081558 2023-08-08 08:15:58 +00:00
Auto-GPT-Bot
90fe636b29 Add combined charts - 20230807230715 2023-08-07 23:07:16 +00:00
Auto-GPT-Bot
143244c42b beebot-20230807230534 2023-08-07 23:05:34 +00:00
Auto-GPT-Bot
4f72049505 Add combined charts - 20230807202701 2023-08-07 20:27:01 +00:00
Auto-GPT-Bot
a3f73493e8 mini-agi-20230807202531 2023-08-07 20:25:31 +00:00
SwiftyOS
746befa2a0 Added deps 2023-08-07 16:13:12 +02:00
Swifty
e0a72b86c1 AUTO-25: Add the ability to run multiple categories and to skip categories (#270) 2023-08-07 12:29:00 +01:00
Auto-GPT-Bot
870988f0dd mini-agi-20230807083320 2023-08-07 08:33:21 +00:00
Auto-GPT-Bot
0cba9f198c beebot-20230807082252 2023-08-07 08:22:53 +00:00
Auto-GPT-Bot
e857d77dfb BabyAGI-20230807081848 2023-08-07 08:18:48 +00:00
Auto-GPT-Bot
f41bb9655b gpt-engineer-20230807081816 2023-08-07 08:18:17 +00:00
Auto-GPT-Bot
0f624be366 smol-developer-20230807081448 2023-08-07 08:14:48 +00:00
Auto-GPT-Bot
d30f45b88e Auto-GPT-20230807081348 2023-08-07 08:13:48 +00:00
merwanehamadi
e615dda22c Update pr template (#268) 2023-08-06 21:17:51 -07:00
Luke
9326ef7826 Feat: --cutoff and "keep_workspace_files" options (#261)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-08-06 21:14:55 -07:00
Erik Peterson
fa8f010e80 Kill all subprocesses (#265)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-08-06 21:12:10 -07:00
merwanehamadi
db48e7849b Add product advisor tests (#267) 2023-08-06 20:59:53 -07:00
merwanehamadi
f157f46a07 Fix test write file (#266) 2023-08-06 18:44:42 -07:00
Auto-GPT-Bot
0d224ca25b Add combined charts - 20230807010900 2023-08-07 01:09:00 +00:00
Auto-GPT-Bot
5ff0146193 smol-developer-20230807010642 2023-08-07 01:06:42 +00:00
Silen Naihin
3c20191156 updating challenges commit sha 2023-08-06 23:02:35 +01:00
Silen Naihin
710ad448fe making sure show_graph is optional 2023-08-06 22:43:42 +01:00
Silen Naihin
19848f362d remove pytest-depends, rerouting functions (#250) 2023-08-06 22:35:22 +01:00
merwanehamadi
aa37109707 Remove graphql logs (#264)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-06 12:22:49 -07:00
Auto-GPT-Bot
5a7ad44221 Add combined charts - 20230806191448 2023-08-06 19:14:48 +00:00
Auto-GPT-Bot
c83eaa0077 smol-developer-20230806191310 2023-08-06 19:13:10 +00:00
merwanehamadi
e32713be68 Helicone Lock Manager fix (#263)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-06 11:30:03 -07:00
Auto-GPT-Bot
f2c0f87cf8 Add combined charts - 20230806171928 2023-08-06 17:19:29 +00:00
Auto-GPT-Bot
ab3b8f228e beebot-20230806171741 2023-08-06 17:17:41 +00:00
merwanehamadi
5232522e47 Remove space challenges (#262) 2023-08-06 10:10:58 -07:00
merwanehamadi
53ec3337f3 Add all agent protocol tests (#260)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-06 09:52:46 -07:00
Auto-GPT-Bot
7e40b57d2b Auto-GPT-20230806083234 2023-08-06 08:32:34 +00:00
Auto-GPT-Bot
6e3270ee05 mini-agi-20230806082120 2023-08-06 08:21:21 +00:00
Auto-GPT-Bot
abc328645e gpt-engineer-20230806081933 2023-08-06 08:19:34 +00:00
Auto-GPT-Bot
3e9de83cf4 BabyAGI-20230806081549 2023-08-06 08:15:49 +00:00
Auto-GPT-Bot
f8feeac3cf smol-developer-20230806081418 2023-08-06 08:14:19 +00:00
Auto-GPT-Bot
67d8f5887b beebot-20230806081404 2023-08-06 08:14:04 +00:00
Auto-GPT-Bot
6330f46414 Add combined charts - 20230806010703 2023-08-06 01:07:03 +00:00
Auto-GPT-Bot
80f2b186ed beebot-20230806010531 2023-08-06 01:05:31 +00:00
merwanehamadi
530eb61f25 Add agent protocol interface test (#259)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-05 18:00:05 -07:00
merwanehamadi
13d2dcbf5e Add agent protocol (#258)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-05 10:43:18 -07:00
merwanehamadi
5db931c094 Add polygpt to ci (#256)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-05 10:03:18 -07:00
merwanehamadi
023a49a7f7 Add polygpt (#255)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-05 09:59:24 -07:00
merwanehamadi
fb13a83d15 Add more coding challenge (#254)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-05 09:51:53 -07:00
Auto-GPT-Bot
921ee89272 Add combined charts - 20230805082914 2023-08-05 08:29:15 +00:00
Auto-GPT-Bot
e1532b1506 Auto-GPT-20230805082742 2023-08-05 08:27:43 +00:00
Auto-GPT-Bot
3bc626a530 mini-agi-20230805082321 2023-08-05 08:23:22 +00:00
Auto-GPT-Bot
99e35bf9ac gpt-engineer-20230805081710 2023-08-05 08:17:11 +00:00
Auto-GPT-Bot
d1ad240bd7 BabyAGI-20230805081548 2023-08-05 08:15:48 +00:00
Auto-GPT-Bot
0314af87e8 smol-developer-20230805081352 2023-08-05 08:13:53 +00:00
Auto-GPT-Bot
c3a8965aed beebot-20230805081333 2023-08-05 08:13:33 +00:00
Auto-GPT-Bot
6c90793254 Add combined charts - 20230804222758 2023-08-04 22:27:59 +00:00
Auto-GPT-Bot
594d1b15f4 mini-agi-20230804222625 2023-08-04 22:26:25 +00:00
Auto-GPT-Bot
e9c99c4130 gpt-engineer-20230804222052 2023-08-04 22:20:52 +00:00
merwanehamadi
ec262f0667 Fix more attempted metrics not working (#252)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-04 15:07:15 -07:00
Auto-GPT-Bot
1ad1d9f61b Add combined charts - 20230804200243 2023-08-04 20:02:43 +00:00
Auto-GPT-Bot
df86819f20 gpt-engineer-20230804200114 2023-08-04 20:01:14 +00:00
Auto-GPT-Bot
e7ca844488 gpt-engineer-20230804184228 2023-08-04 18:42:28 +00:00
Auto-GPT-Bot
745a4ee2be Add combined charts - 20230804183550 2023-08-04 18:35:51 +00:00
Auto-GPT-Bot
5f8c5d33c2 gpt-engineer-20230804183417 2023-08-04 18:34:17 +00:00
merwanehamadi
34814d837a Fix "attempted" metric being incorrect (#251)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-04 11:28:45 -07:00
Auto-GPT-Bot
c56fca0a4f Add combined charts - 20230804083307 2023-08-04 08:33:07 +00:00
Auto-GPT-Bot
e3c1404b02 Auto-GPT-20230804083140 2023-08-04 08:31:40 +00:00
Auto-GPT-Bot
298c72d3f8 beebot-20230804082937 2023-08-04 08:29:38 +00:00
Auto-GPT-Bot
26883ac9cf mini-agi-20230804082356 2023-08-04 08:23:57 +00:00
Auto-GPT-Bot
2d4e62d31d gpt-engineer-20230804081852 2023-08-04 08:18:53 +00:00
Auto-GPT-Bot
302b776f23 BabyAGI-20230804081702 2023-08-04 08:17:04 +00:00
Auto-GPT-Bot
0e94198907 smol-developer-20230804081422 2023-08-04 08:14:22 +00:00
Auto-GPT-Bot
071c8a5f8e Add combined charts - 20230804043726 2023-08-04 04:37:26 +00:00
Auto-GPT-Bot
568eeff70a BabyAGI-20230804043553 2023-08-04 04:35:53 +00:00
Auto-GPT-Bot
46a18e0c0a Add combined charts - 20230804042355 2023-08-04 04:23:55 +00:00
Auto-GPT-Bot
f97e45c063 gpt-engineer-20230804042233 2023-08-04 04:22:33 +00:00
Auto-GPT-Bot
ec2e2cccb6 Add combined charts - 20230804035153 2023-08-04 03:51:54 +00:00
Auto-GPT-Bot
8e438fcc32 beebot-20230804035007 2023-08-04 03:50:07 +00:00
Auto-GPT-Bot
f5f1f57a55 Auto-GPT-20230804033941 2023-08-04 03:39:42 +00:00
Auto-GPT-Bot
196c004181 mini-agi-20230804033640 2023-08-04 03:36:41 +00:00
Auto-GPT-Bot
b0540c0b83 BabyAGI-20230804032903 2023-08-04 03:29:03 +00:00
Auto-GPT-Bot
b77be85ddd smol-developer-20230804032646 2023-08-04 03:26:46 +00:00
Auto-GPT-Bot
75f7a0d9f2 gpt-engineer-20230804032503 2023-08-04 03:25:03 +00:00
Auto-GPT-Bot
e89bdcca9e Add combined charts - 20230804001536 2023-08-04 00:15:37 +00:00
Auto-GPT-Bot
85f4adff24 beebot-20230804001415 2023-08-04 00:14:15 +00:00
Auto-GPT-Bot
ace7533277 Auto-GPT-20230804000752 2023-08-04 00:07:52 +00:00
Auto-GPT-Bot
e9518de5ca mini-agi-20230804000108 2023-08-04 00:01:08 +00:00
Auto-GPT-Bot
b4caf57be1 gpt-engineer-20230803235627 2023-08-03 23:56:27 +00:00
Auto-GPT-Bot
16b08719e8 BabyAGI-20230803235435 2023-08-03 23:54:36 +00:00
Auto-GPT-Bot
dde0fcf8e5 smol-developer-20230803235215 2023-08-03 23:52:15 +00:00
merwanehamadi
02dd294ea7 Release 0.0.3 (#249) 2023-08-03 16:46:43 -07:00
Auto-GPT-Bot
1f9c12bf7b Add combined charts - 20230803215241 2023-08-03 21:52:41 +00:00
Auto-GPT-Bot
1675861b8a mini-agi-20230803215054 2023-08-03 21:50:54 +00:00
Auto-GPT-Bot
f43dc51077 beebot-20230803083744 2023-08-03 08:37:44 +00:00
Auto-GPT-Bot
102c46f0d7 Auto-GPT-20230803082915 2023-08-03 08:29:15 +00:00
Auto-GPT-Bot
594cef137a gpt-engineer-20230803081826 2023-08-03 08:18:26 +00:00
Auto-GPT-Bot
777c91fa0d BabyAGI-20230803081811 2023-08-03 08:18:11 +00:00
Auto-GPT-Bot
9c6c451d2a smol-developer-20230803081431 2023-08-03 08:14:31 +00:00
Auto-GPT-Bot
3433b10734 Add combined charts - 20230802231042 2023-08-02 23:10:43 +00:00
Auto-GPT-Bot
ca81051515 mini-agi-20230802230850 2023-08-02 23:08:50 +00:00
merwanehamadi
4919d9956c Add Test Suite to gdrive (#248) 2023-08-02 15:21:20 -07:00
Auto-GPT-Bot
568c1c04dc Add combined charts - 20230802221426 2023-08-02 22:14:26 +00:00
Auto-GPT-Bot
d51d37343f smol-developer-20230802221303 2023-08-02 22:13:03 +00:00
merwanehamadi
20c87fbc26 Fix typing (#247) 2023-08-02 15:08:07 -07:00
Auto-GPT-Bot
143db2540c Add combined charts - 20230802215532 2023-08-02 21:55:32 +00:00
Auto-GPT-Bot
49ccf73923 smol-developer-20230802215406 2023-08-02 21:54:06 +00:00
merwanehamadi
59f015ab93 fix-linter (#246) 2023-08-02 14:49:03 -07:00
merwanehamadi
8fa67ea466 Correct agent and benchmark commit sha (#245)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-02 14:44:14 -07:00
Auto-GPT-Bot
8a51117f90 Add combined charts - 20230802203431 2023-08-02 20:34:31 +00:00
Auto-GPT-Bot
ccc903badd smol-developer-20230802203301 2023-08-02 20:33:01 +00:00
merwanehamadi
e3562a4b66 Add attempted metrics (#244)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-02 13:27:57 -07:00
Auto-GPT-Bot
4629b601bd mini-agi-20230802175635 2023-08-02 17:56:36 +00:00
merwanehamadi
7955947ef6 Update Auto-GPT and allow 1 specific agent to be run (#241) 2023-08-02 10:55:07 -07:00
Auto-GPT-Bot
021961cc03 Auto-GPT-20230802175213 2023-08-02 17:52:13 +00:00
Auto-GPT-Bot
caab1f279a BabyAGI-20230802174320 2023-08-02 17:43:21 +00:00
Auto-GPT-Bot
3ee53f4e5d gpt-engineer-20230802174253 2023-08-02 17:42:53 +00:00
Auto-GPT-Bot
70b4707e57 smol-developer-20230802174030 2023-08-02 17:40:30 +00:00
Auto-GPT-Bot
3922440f25 mini-agi-20230802173158 2023-08-02 17:31:59 +00:00
Auto-GPT-Bot
987346a8f0 Auto-GPT-20230802173116 2023-08-02 17:31:17 +00:00
Auto-GPT-Bot
5a029a7123 BabyAGI-20230802172451 2023-08-02 17:24:52 +00:00
Auto-GPT-Bot
7caeb5d6c1 gpt-engineer-20230802172246 2023-08-02 17:22:46 +00:00
Auto-GPT-Bot
5a9428426a smol-developer-20230802172243 2023-08-02 17:22:43 +00:00
Erik Peterson
819bd5059e Update python-dotenv (#240) 2023-08-02 10:17:57 -07:00
merwanehamadi
91a086c02c Update autogpt back to where it was (#239) 2023-08-02 09:19:23 -07:00
Auto-GPT-Bot
78e80fc33e Add combined charts - 20230802153853 2023-08-02 15:38:53 +00:00
Auto-GPT-Bot
532f8dc191 beebot-20230802153729 2023-08-02 15:37:29 +00:00
Auto-GPT-Bot
c74e702338 mini-agi-20230802153018 2023-08-02 15:30:19 +00:00
Auto-GPT-Bot
4af86d2d07 BabyAGI-20230802152308 2023-08-02 15:23:09 +00:00
Auto-GPT-Bot
b5164f4386 gpt-engineer-20230802152228 2023-08-02 15:22:29 +00:00
Auto-GPT-Bot
ef73ba225d Auto-GPT-20230802151953 2023-08-02 15:19:53 +00:00
Auto-GPT-Bot
08856ef252 smol-developer-20230802151839 2023-08-02 15:18:39 +00:00
merwanehamadi
3ce1d2067e Update beebot (#238)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-02 08:09:30 -07:00
Auto-GPT-Bot
6ce5bae042 Add combined charts - 20230802082947 2023-08-02 08:29:47 +00:00
Auto-GPT-Bot
af5b15add5 mini-agi-20230802082752 2023-08-02 08:27:53 +00:00
Auto-GPT-Bot
cc486af467 gpt-engineer-20230802081807 2023-08-02 08:18:08 +00:00
Auto-GPT-Bot
ea8bc06230 BabyAGI-20230802081647 2023-08-02 08:16:48 +00:00
Auto-GPT-Bot
a04b4b1f89 Auto-GPT-20230802081520 2023-08-02 08:15:21 +00:00
Auto-GPT-Bot
0044f088ea smol-developer-20230802081446 2023-08-02 08:14:47 +00:00
Auto-GPT-Bot
f6b160d322 beebot-20230802081342 2023-08-02 08:13:42 +00:00
Auto-GPT-Bot
aa505807ae Add combined charts - 20230802040929 2023-08-02 04:09:29 +00:00
Auto-GPT-Bot
6f4129caae mini-agi-20230802040801 2023-08-02 04:08:02 +00:00
Auto-GPT-Bot
f5c359059c BabyAGI-20230802040409 2023-08-02 04:04:09 +00:00
Auto-GPT-Bot
e9087816c3 gpt-engineer-20230802040406 2023-08-02 04:04:07 +00:00
Auto-GPT-Bot
d4f6e444b9 Auto-GPT-20230802040019 2023-08-02 04:00:22 +00:00
Auto-GPT-Bot
ae5f259ccf smol-developer-20230802035945 2023-08-02 03:59:45 +00:00
Auto-GPT-Bot
327d79f978 beebot-20230802035939 2023-08-02 03:59:39 +00:00
Auto-GPT-Bot
56cf3e8206 Add combined charts - 20230802033131 2023-08-02 03:31:31 +00:00
Auto-GPT-Bot
b76eccbb70 Auto-GPT-20230802032951 2023-08-02 03:29:51 +00:00
Auto-GPT-Bot
abd91eba30 mini-agi-20230802032428 2023-08-02 03:24:29 +00:00
Auto-GPT-Bot
884152ebfe gpt-engineer-20230802031747 2023-08-02 03:17:47 +00:00
Auto-GPT-Bot
26e9729b71 BabyAGI-20230802031634 2023-08-02 03:16:35 +00:00
Auto-GPT-Bot
44761c9e11 smol-developer-20230802031447 2023-08-02 03:14:48 +00:00
Auto-GPT-Bot
c9ba9a560f beebot-20230802031356 2023-08-02 03:13:56 +00:00
merwanehamadi
f815fb8af3 Remove mock reports (#237)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-01 20:07:48 -07:00
Auto-GPT-Bot
90cef67f83 Add combined charts - 20230802025450 2023-08-02 02:54:50 +00:00
Auto-GPT-Bot
af076b6858 Auto-GPT-20230802025315 2023-08-02 02:53:16 +00:00
Auto-GPT-Bot
2dcfb70de6 mini-agi-20230802024855 2023-08-02 02:48:56 +00:00
Auto-GPT-Bot
521459be69 gpt-engineer-20230802024143 2023-08-02 02:41:44 +00:00
Auto-GPT-Bot
c4305f91cd BabyAGI-20230802024056 2023-08-02 02:40:57 +00:00
Auto-GPT-Bot
c06c43edb9 smol-developer-20230802023812 2023-08-02 02:38:12 +00:00
Auto-GPT-Bot
32734ed1c3 beebot-20230802023712 2023-08-02 02:37:12 +00:00
merwanehamadi
d682961954 Remove mock reports (#236)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
2023-08-01 19:33:41 -07:00
Auto-GPT-Bot
ccbf32b58f Auto-GPT-20230802015007 2023-08-02 01:50:08 +00:00
merwanehamadi
87753dbeb5 Remove high costs (#235) 2023-08-01 18:46:00 -07:00
Auto-GPT-Bot
6e5935a932 gpt-engineer-20230802013938 2023-08-02 01:39:39 +00:00
Auto-GPT-Bot
2bf3ed16fc BabyAGI-20230802013815 2023-08-02 01:38:16 +00:00
Auto-GPT-Bot
d73399cdee smol-developer-20230802013607 2023-08-02 01:36:08 +00:00
Auto-GPT-Bot
6ee998dfcd beebot-20230802013530 2023-08-02 01:35:30 +00:00
Auto-GPT-Bot
ffe0b36d29 mini-agi-20230802013449 2023-08-02 01:34:49 +00:00
merwanehamadi
edf1f84344 Send commit sha and cost to gdrive (#234)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-01 18:31:18 -07:00
Auto-GPT-Bot
7b81f35383 mini-agi-20230802005811 2023-08-02 00:58:11 +00:00
merwanehamadi
f41533ce62 Fix reports and add commit sha (#233)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-08-01 17:54:23 -07:00
Auto-GPT-Bot
8130e47c76 Add combined charts - 20230802002830 2023-08-02 00:28:30 +00:00
Auto-GPT-Bot
3d5478b9d7 Auto-GPT-20230802002702 2023-08-02 00:27:05 +00:00
Auto-GPT-Bot
5525c23fee mini-agi-20230802002239 2023-08-02 00:22:39 +00:00
Auto-GPT-Bot
0744784803 BabyAGI-20230802001113 2023-08-02 00:11:14 +00:00
Auto-GPT-Bot
9407ccb507 smol-developer-20230802001023 2023-08-02 00:10:23 +00:00
Auto-GPT-Bot
6f7e12472f beebot-20230802000825 2023-08-02 00:08:25 +00:00
Auto-GPT-Bot
1fd5162c0d gpt-engineer-20230802000735 2023-08-02 00:07:35 +00:00
Auto-GPT-Bot
d1bd383cec mini-agi-20230801235439 2023-08-01 23:54:39 +00:00
merwanehamadi
eeb68858d7 Only run mini-agi on tests (#232) 2023-08-01 16:50:41 -07:00
Auto-GPT-Bot
828512f7ca Add combined charts - 20230801201126 2023-08-01 20:11:27 +00:00
Auto-GPT-Bot
13a4dcef1b mini-agi-20230801200938 2023-08-01 20:09:39 +00:00
Auto-GPT-Bot
472475e5fe Auto-GPT-20230801200408 2023-08-01 20:04:08 +00:00
Auto-GPT-Bot
e460344e05 BabyAGI-20230801195550 2023-08-01 19:55:50 +00:00
Auto-GPT-Bot
9fd59a50f8 smol-developer-20230801195401 2023-08-01 19:54:02 +00:00
Auto-GPT-Bot
f72e1c00d9 gpt-engineer-20230801195320 2023-08-01 19:53:20 +00:00
Auto-GPT-Bot
873630fc74 beebot-20230801195303 2023-08-01 19:53:03 +00:00
Silen Naihin
3992f0865b comitting changes 2023-08-01 20:49:20 +01:00
Luke
3a2d08fb41 Pass TestSearch benchmark consistently (Add browse_website TOKENS_TO_TRIGGER_SUMMARY) (#5092)
* Added SUMMARIZATION_TRIGGER_LENGTH
browse_website won't summarize content that's shorter
than SUMMARIZATION_TRIGGER_LENGTH.
It defaults to 250 characters, which is approximately 50 tokens.

* Refactor BrowserOptions

* Use tokens instead of length
to trigger summarization

* Bugfix

* fix: Always return links even if not summarizing
feat: Increase the number of links returned from 5 to 20

---------

Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
Co-authored-by: James Collins <collijk@uw.edu>
2023-08-01 11:48:13 -07:00
James Collins
a593c32727 Move more app files to app package (#5036)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-08-01 13:48:20 -04:00
Auto-GPT-Bot
0fec6a90bc BabyAGI-20230801173648 2023-08-01 17:36:49 +00:00
Auto-GPT-Bot
d659ef4670 smol-developer-20230801173326 2023-08-01 17:33:27 +00:00
Auto-GPT-Bot
7624fcee50 gpt-engineer-20230801173225 2023-08-01 17:32:25 +00:00
Auto-GPT-Bot
cebedaa9ec beebot-20230801173217 2023-08-01 17:32:17 +00:00
merwanehamadi
bab6fccdec Reverse skip based on agent (#231) 2023-08-01 10:29:02 -07:00
merwanehamadi
6d3b07b188 Only run mini-agi on push and PR (#230) 2023-08-01 10:22:38 -07:00
Auto-GPT-Bot
3ac26d96d7 beebot-20230801172220 2023-08-01 17:22:21 +00:00
Luke
7cd407b7b4 Use modern material theme for docs (#5035)
* Use modern material theme for docs

* Update mkdocs.yml

Added search plugin

Co-authored-by: James Collins <collijk@uw.edu>

* Updating mkdocs material theme config per recommendations to enable all markdown options

* Updated highlight extension settings
and codeblocks throughout the docs to align with mkdocs-material recommendations.

codehilite is deprecated in favor of the highlight extension:
https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#highlight

---------

Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
Co-authored-by: James Collins <collijk@uw.edu>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-08-01 10:17:33 -07:00
Auto-GPT-Bot
df6b5e761d Auto-GPT-20230801171049 2023-08-01 17:10:49 +00:00
Auto-GPT-Bot
46421b6d58 mini-agi-20230801170847 2023-08-01 17:08:47 +00:00
Auto-GPT-Bot
60ec91665d gpt-engineer-20230801170310 2023-08-01 17:03:11 +00:00
Auto-GPT-Bot
27f9ee0fa4 BabyAGI-20230801170215 2023-08-01 17:02:16 +00:00
Auto-GPT-Bot
e73905d75b smol-developer-20230801165927 2023-08-01 16:59:27 +00:00
Silen Naihin
f4225f63bf linter and handling errs 2023-08-01 17:55:00 +01:00
Auto-GPT-Bot
9add0a6b87 mini-agi-20230801163602 2023-08-01 16:36:03 +00:00
Auto-GPT-Bot
c70821bccb Auto-GPT-20230801162418 2023-08-01 16:24:19 +00:00
Auto-GPT-Bot
3d278594ec gpt-engineer-20230801162317 2023-08-01 16:23:18 +00:00
Auto-GPT-Bot
44fb3ab616 BabyAGI-20230801162213 2023-08-01 16:22:14 +00:00
Auto-GPT-Bot
0474f1ed6f smol-developer-20230801162040 2023-08-01 16:20:40 +00:00
Auto-GPT-Bot
79d3541034 beebot-20230801161951 2023-08-01 16:19:51 +00:00
Silen Naihin
f8a01ef70a fixing combined charts issue 2023-08-01 17:15:15 +01:00
merwanehamadi
fc6255296a Add information on how to improve Auto-GPT with agbenchmark (#5056)
* Add information on how to improve Auto-GPT with agbenchmark

* Update introduction.md

* Update docs/challenges/introduction.md

Co-authored-by: Reinier van der Leer <reinier.vanderleer@agpt.co>

* Update introduction.md

---------

Co-authored-by: James Collins <collijk@uw.edu>
Co-authored-by: Reinier van der Leer <reinier.vanderleer@agpt.co>
2023-08-01 09:13:37 -07:00
Cyrus
c8914ebb66 slips of the pen (bloopers) in autogpt/core part of the repo (#5045)
* fix omitted "()" in __str__(self) in core/ability/base.py

* put back async keyword in the base class

* Remove extra () in OpenAISettings class in
autogpt/core/resourece/model_providers/openai.py

---------

Co-authored-by: James Collins <collijk@uw.edu>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-08-01 08:39:19 -07:00
Auto-GPT-Bot
d830194d29 mini-agi-20230801135147 2023-08-01 13:51:48 +00:00
Auto-GPT-Bot
fcaca0daf7 Auto-GPT-20230801135021 2023-08-01 13:50:22 +00:00
Auto-GPT-Bot
4c6d04455e beebot-20230801134903 2023-08-01 13:49:04 +00:00
Auto-GPT-Bot
ad74a70721 BabyAGI-20230801134119 2023-08-01 13:41:20 +00:00
Auto-GPT-Bot
8fb5ead57e smol-developer-20230801134007 2023-08-01 13:40:07 +00:00
Auto-GPT-Bot
b345ef0c5e gpt-engineer-20230801133917 2023-08-01 13:39:17 +00:00
Silen Naihin
f195840d35 fixing combined_graph 2023-08-01 14:35:14 +01:00
Auto-GPT-Bot
b2507cd556 Auto-GPT-20230801130058 2023-08-01 13:00:59 +00:00
Auto-GPT-Bot
9a86050609 mini-agi-20230801130027 2023-08-01 13:00:27 +00:00
Auto-GPT-Bot
7c9169174d gpt-engineer-20230801125214 2023-08-01 12:52:15 +00:00
Auto-GPT-Bot
1e87c7e74d BabyAGI-20230801125137 2023-08-01 12:51:37 +00:00
Auto-GPT-Bot
857761845c beebot-20230801124954 2023-08-01 12:49:54 +00:00
Auto-GPT-Bot
da829f23dd smol-developer-20230801124909 2023-08-01 12:49:09 +00:00
Silen Naihin
6f3fd2a578 fix graphs, processing, workflow 2023-08-01 13:44:32 +01:00
Auto-GPT-Bot
74e33c0bec BabyAGI-20230801081700 2023-08-01 08:17:01 +00:00
Auto-GPT-Bot
a4ab5f51c9 Auto-GPT-20230801081506 2023-08-01 08:15:06 +00:00
Auto-GPT-Bot
f799503105 beebot-20230801081453 2023-08-01 08:14:53 +00:00
Auto-GPT-Bot
4425ed6655 mini-agi-20230801081448 2023-08-01 08:14:49 +00:00
Auto-GPT-Bot
2cd4ffcd90 gpt-engineer-20230801081428 2023-08-01 08:14:29 +00:00
Auto-GPT-Bot
f0615f77ec smol-developer-20230801081324 2023-08-01 08:13:24 +00:00
Luke
ad18f77e25 fix: Nonetype error from command_name.startswith() (#5079)
Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
Co-authored-by: James Collins <collijk@uw.edu>
2023-08-01 01:47:32 -04:00
Auto-GPT-Bot
d96aedd521 beebot-20230801034304 2023-08-01 03:43:05 +00:00
Auto-GPT-Bot
b14247b351 mini-agi-20230801033419 2023-08-01 03:34:19 +00:00
Auto-GPT-Bot
4ac4213d12 Auto-GPT-20230801033321 2023-08-01 03:33:22 +00:00
Auto-GPT-Bot
c28beda47c gpt-engineer-20230801032600 2023-08-01 03:26:00 +00:00
Auto-GPT-Bot
c8a1693d47 BabyAGI-20230801032509 2023-08-01 03:25:10 +00:00
Auto-GPT-Bot
3eb614dea9 smol-developer-20230801032335 2023-08-01 03:23:35 +00:00
merwanehamadi
ce24857a74 Return none as fallback Helicone (#228)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-31 20:18:15 -07:00
Auto-GPT-Bot
e0db4e9638 Auto-GPT-20230801025611 2023-08-01 02:56:11 +00:00
Auto-GPT-Bot
2f9850370b gpt-engineer-20230801025347 2023-08-01 02:53:47 +00:00
Auto-GPT-Bot
63787f231e beebot-20230801025236 2023-08-01 02:52:36 +00:00
Auto-GPT-Bot
243b2f0769 BabyAGI-20230801025234 2023-08-01 02:52:34 +00:00
Auto-GPT-Bot
5a6f663f06 mini-agi-20230801024620 2023-08-01 02:46:21 +00:00
Auto-GPT-Bot
32aab6efb2 smol-developer-20230801024345 2023-08-01 02:43:45 +00:00
merwanehamadi
46dce97c4e Fix reports (#227)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-31 19:39:49 -07:00
Auto-GPT-Bot
a14ddcd6af BabyAGI-20230731231811 2023-07-31 23:18:11 +00:00
Auto-GPT-Bot
5477064f2d mini-agi-20230731231616 2023-07-31 23:16:16 +00:00
Auto-GPT-Bot
48383433b5 beebot-20230731231609 2023-07-31 23:16:10 +00:00
Auto-GPT-Bot
2a2b064cd9 Auto-GPT-20230731231602 2023-07-31 23:16:03 +00:00
Auto-GPT-Bot
f1f1f82340 smol-developer-20230731231559 2023-07-31 23:15:59 +00:00
Auto-GPT-Bot
a593b76c3e gpt-engineer-20230731231544 2023-07-31 23:15:44 +00:00
merwanehamadi
a2dc4693a3 Fix costs helicone (#226)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-31 16:13:06 -07:00
Auto-GPT-Bot
8464decd6f BabyAGI-20230731210447 2023-07-31 21:04:47 +00:00
Auto-GPT-Bot
ca9b313cab gpt-engineer-20230731210400 2023-07-31 21:04:01 +00:00
Auto-GPT-Bot
20f14e79e1 mini-agi-20230731210325 2023-07-31 21:03:25 +00:00
Auto-GPT-Bot
2bc3011900 Auto-GPT-20230731210302 2023-07-31 21:03:03 +00:00
Auto-GPT-Bot
1abbcdb208 beebot-20230731210233 2023-07-31 21:02:33 +00:00
Auto-GPT-Bot
ec2228e6e3 smol-developer-20230731210209 2023-07-31 21:02:09 +00:00
Silen Naihin
f9fea473f5 Refactoring for TDD (#222) 2023-07-31 21:59:47 +01:00
Auto-GPT-Bot
1a7079f6c5 beebot-20230731195809 2023-07-31 19:58:10 +00:00
Auto-GPT-Bot
b45fce862f Auto-GPT-20230731195206 2023-07-31 19:52:07 +00:00
Auto-GPT-Bot
9e063d260b mini-agi-20230731194902 2023-07-31 19:49:03 +00:00
Auto-GPT-Bot
2f50a01256 gpt-engineer-20230731194324 2023-07-31 19:43:25 +00:00
Auto-GPT-Bot
efdaafc33c BabyAGI-20230731194247 2023-07-31 19:42:47 +00:00
Auto-GPT-Bot
5c1f52fcb7 smol-developer-20230731194002 2023-07-31 19:40:02 +00:00
merwanehamadi
719f894520 Fix send to gdrive and tracking the wrong challenge name (#225)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-31 12:35:37 -07:00
Auto-GPT-Bot
5503385bc1 mini-agi-20230731192131 2023-07-31 19:21:32 +00:00
Auto-GPT-Bot
e364b4bb96 beebot-20230731192007 2023-07-31 19:20:08 +00:00
Auto-GPT-Bot
a9e6efd24c Auto-GPT-20230731191728 2023-07-31 19:17:28 +00:00
Auto-GPT-Bot
9e77f1f8f3 gpt-engineer-20230731191016 2023-07-31 19:10:17 +00:00
Auto-GPT-Bot
b8a2267805 BabyAGI-20230731190854 2023-07-31 19:08:55 +00:00
Auto-GPT-Bot
d70dbeb273 smol-developer-20230731190706 2023-07-31 19:07:06 +00:00
Gabe
100d4f0d07 Fix BeeBot link (#224) 2023-07-31 12:02:31 -07:00
Auto-GPT-Bot
8ee7c63a2f Auto-GPT-20230731162425 2023-07-31 16:24:26 +00:00
Auto-GPT-Bot
a6a3995326 mini-agi-20230731162039 2023-07-31 16:20:39 +00:00
Auto-GPT-Bot
ff994a8fee BabyAGI-20230731161504 2023-07-31 16:15:04 +00:00
Auto-GPT-Bot
f62b7918f3 gpt-engineer-20230731161325 2023-07-31 16:13:26 +00:00
Auto-GPT-Bot
f39d2caf78 smol-developer-20230731161317 2023-07-31 16:13:18 +00:00
Auto-GPT-Bot
ce88ae3ed1 beebot-20230731161137 2023-07-31 16:11:37 +00:00
Justin Torre
3a32adbce5 Fix f-string get_data_from_helicone.py (#223) 2023-07-31 09:06:04 -07:00
Reinier van der Leer
3651d22147 Verify model compatibility if OPENAI_FUNCTIONS is set (#5075)
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
2023-07-31 11:43:41 -04:00
Auto-GPT-Bot
09727467d4 Auto-GPT-20230731132407 2023-07-31 13:24:08 +00:00
Auto-GPT-Bot
a9e610a81c mini-agi-20230731132343 2023-07-31 13:23:43 +00:00
Auto-GPT-Bot
0a473b6e34 gpt-engineer-20230731131015 2023-07-31 13:10:16 +00:00
Auto-GPT-Bot
f7736408e2 BabyAGI-20230731130848 2023-07-31 13:08:48 +00:00
Auto-GPT-Bot
3e2f4ea676 beebot-20230731130716 2023-07-31 13:07:17 +00:00
Auto-GPT-Bot
8909c17ede smol-developer-20230731130710 2023-07-31 13:07:10 +00:00
Silen Naihin
9d75712bae ci ofr auth 2023-07-31 14:02:46 +01:00
Auto-GPT-Bot
9595a3f227 BabyAGI-20230731124818 2023-07-31 12:48:18 +00:00
Auto-GPT-Bot
31bfc0d453 beebot-20230731124600 2023-07-31 12:46:00 +00:00
Auto-GPT-Bot
c4bd135943 Auto-GPT-20230731124554 2023-07-31 12:45:55 +00:00
Auto-GPT-Bot
187979bffb gpt-engineer-20230731124541 2023-07-31 12:45:42 +00:00
Auto-GPT-Bot
05e7411ff3 mini-agi-20230731124455 2023-07-31 12:44:56 +00:00
Auto-GPT-Bot
f060d77e5f smol-developer-20230731124423 2023-07-31 12:44:23 +00:00
Silen Naihin
f8de706a15 removing data that didnt work 2023-07-31 13:41:45 +01:00
Auto-GPT-Bot
8726cd3c0a BabyAGI-20230731123517 2023-07-31 12:35:17 +00:00
Auto-GPT-Bot
8e0f56e17f Auto-GPT-20230731123211 2023-07-31 12:32:13 +00:00
Auto-GPT-Bot
9e2ff3e6d8 beebot-20230731123211 2023-07-31 12:32:11 +00:00
Auto-GPT-Bot
e561bac004 gpt-engineer-20230731123152 2023-07-31 12:31:53 +00:00
Auto-GPT-Bot
22e9e1a811 mini-agi-20230731123112 2023-07-31 12:31:12 +00:00
Auto-GPT-Bot
204a2536ed smol-developer-20230731123033 2023-07-31 12:30:33 +00:00
Silen Naihin
2ec306e850 linter fixes 2023-07-31 13:28:01 +01:00
Silen Naihin
db49e8de15 helicone push 2 2023-07-31 13:26:49 +01:00
Auto-GPT-Bot
94ea25a755 BabyAGI-20230731120124 2023-07-31 12:01:25 +00:00
Auto-GPT-Bot
470d7d57d8 beebot-20230731115844 2023-07-31 11:58:45 +00:00
Auto-GPT-Bot
9ffd688f60 gpt-engineer-20230731115820 2023-07-31 11:58:21 +00:00
Auto-GPT-Bot
b5c0321c4e Auto-GPT-20230731115759 2023-07-31 11:57:59 +00:00
Auto-GPT-Bot
e43588a80a mini-agi-20230731115729 2023-07-31 11:57:30 +00:00
Auto-GPT-Bot
853a88e2a7 smol-developer-20230731115648 2023-07-31 11:56:48 +00:00
Silen Naihin
14c49fa7ea handling helicone errors 2023-07-31 12:54:27 +01:00
Auto-GPT-Bot
1403d8d4db BabyAGI-20230731112930 2023-07-31 11:29:31 +00:00
Auto-GPT-Bot
d04239a88a Auto-GPT-20230731112647 2023-07-31 11:26:47 +00:00
Auto-GPT-Bot
984bbb2721 beebot-20230731112610 2023-07-31 11:26:11 +00:00
Auto-GPT-Bot
4c41ce07b5 gpt-engineer-20230731112601 2023-07-31 11:26:01 +00:00
Auto-GPT-Bot
a3476a3cc1 mini-agi-20230731112533 2023-07-31 11:25:33 +00:00
Auto-GPT-Bot
dbabefbb94 smol-developer-20230731112459 2023-07-31 11:24:59 +00:00
Silen Naihin
4011cb228f working bar and radar charts (#221) 2023-07-31 12:22:38 +01:00
Auto-GPT-Bot
3a07f3da39 BabyAGI-20230731081823 2023-07-31 08:18:23 +00:00
Auto-GPT-Bot
dad68421a4 Auto-GPT-20230731081534 2023-07-31 08:15:34 +00:00
Auto-GPT-Bot
ca4221267d gpt-engineer-20230731081526 2023-07-31 08:15:26 +00:00
Auto-GPT-Bot
2910de60af beebot-20230731081506 2023-07-31 08:15:07 +00:00
Auto-GPT-Bot
4ef92eb59a mini-agi-20230731081411 2023-07-31 08:14:11 +00:00
Auto-GPT-Bot
28ea0e587f smol-developer-20230731081355 2023-07-31 08:13:55 +00:00
Auto-GPT-Bot
f7cfa607f0 BabyAGI-20230731043857 2023-07-31 04:38:58 +00:00
Auto-GPT-Bot
11af229278 beebot-20230731043707 2023-07-31 04:37:08 +00:00
Auto-GPT-Bot
3cfbabadf6 mini-agi-20230731043641 2023-07-31 04:36:41 +00:00
Auto-GPT-Bot
b24c077b27 gpt-engineer-20230731043631 2023-07-31 04:36:32 +00:00
Auto-GPT-Bot
16f6a52e6c Auto-GPT-20230731043627 2023-07-31 04:36:27 +00:00
Auto-GPT-Bot
bd73ced7e8 smol-developer-20230731043517 2023-07-31 04:35:17 +00:00
merwanehamadi
ad00a0634e Get helicone costs (#220)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-30 21:33:09 -07:00
Auto-GPT-Bot
cd543efb4d beebot-20230731033044 2023-07-31 03:30:44 +00:00
Auto-GPT-Bot
9c4858b431 Auto-GPT-20230731031804 2023-07-31 03:18:05 +00:00
Auto-GPT-Bot
d54a4cec55 mini-agi-20230731031741 2023-07-31 03:17:41 +00:00
Auto-GPT-Bot
74b2f07dfe gpt-engineer-20230731031107 2023-07-31 03:11:07 +00:00
Auto-GPT-Bot
2d479d7413 BabyAGI-20230731030947 2023-07-31 03:09:48 +00:00
Auto-GPT-Bot
2486f6331c smol-developer-20230731030731 2023-07-31 03:07:31 +00:00
merwanehamadi
6309bc9c3d Update submodule (#219) 2023-07-30 20:03:53 -07:00
Auto-GPT-Bot
74eba632ac mini-agi-20230731025221 2023-07-31 02:52:21 +00:00
Auto-GPT-Bot
38b5ee438f beebot-20230731023209 2023-07-31 02:32:10 +00:00
Auto-GPT-Bot
5a1769ac73 gpt-engineer-20230731021500 2023-07-31 02:15:00 +00:00
Auto-GPT-Bot
65f98641b0 BabyAGI-20230731021142 2023-07-31 02:11:43 +00:00
Auto-GPT-Bot
50b063ace4 smol-developer-20230731020904 2023-07-31 02:09:04 +00:00
Auto-GPT-Bot
acd8641207 Auto-GPT-20230731020846 2023-07-31 02:08:46 +00:00
merwanehamadi
d93950e6d9 Fix timeout not working (#218) 2023-07-30 19:05:09 -07:00
Reinier van der Leer
b7f1df3e1d Fix execute_shell_popen 2023-07-31 01:21:09 +02:00
Auto-GPT-Bot
3bd6f0d496 beebot-20230730230757 2023-07-30 23:07:57 +00:00
Auto-GPT-Bot
07dc40fe8a mini-agi-20230730230209 2023-07-30 23:02:10 +00:00
Auto-GPT-Bot
975f97e074 gpt-engineer-20230730225907 2023-07-30 22:59:08 +00:00
Auto-GPT-Bot
32d7b01000 BabyAGI-20230730225710 2023-07-30 22:57:10 +00:00
Auto-GPT-Bot
f879d0bd7b smol-developer-20230730225521 2023-07-30 22:55:21 +00:00
Silen Naihin
19db3151dd Feature: Visualize Test Results (#211) 2023-07-30 23:51:17 +01:00
Auto-GPT-Bot
f528b9a995 Update cassette submodule 2023-07-30 18:55:25 +00:00
Luke
c1567c22f5 Do not load disabled commands (faster exec & benchmark runs) (#5078)
* Use modern material theme for docs

* Do not load disabled commands

* black .

---------

Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
2023-07-30 20:51:50 +02:00
Auto-GPT-Bot
37330c031e mini-agi-20230730082830 2023-07-30 08:28:30 +00:00
Auto-GPT-Bot
095c32a342 beebot-20230730082716 2023-07-30 08:27:17 +00:00
Auto-GPT-Bot
651345482f gpt-engineer-20230730082117 2023-07-30 08:21:17 +00:00
Auto-GPT-Bot
0e9dfef283 BabyAGI-20230730081549 2023-07-30 08:15:49 +00:00
Auto-GPT-Bot
cca7be9271 Auto-GPT-20230730081341 2023-07-30 08:13:42 +00:00
Auto-GPT-Bot
5f1865cbd9 smol-developer-20230730081236 2023-07-30 08:12:36 +00:00
Auto-GPT-Bot
fd25f94953 beebot-20230730044216 2023-07-30 04:42:17 +00:00
Auto-GPT-Bot
6b55c8728a mini-agi-20230730043219 2023-07-30 04:32:19 +00:00
Auto-GPT-Bot
c2f141d60e gpt-engineer-20230730043115 2023-07-30 04:31:16 +00:00
Auto-GPT-Bot
c785a8fc4f BabyAGI-20230730042805 2023-07-30 04:28:05 +00:00
Auto-GPT-Bot
d6c117731e smol-developer-20230730042522 2023-07-30 04:25:22 +00:00
merwanehamadi
cfa42673d8 Delete incorrect report (#217) 2023-07-29 21:05:30 -07:00
Auto-GPT-Bot
1fdca8cab3 beebot-20230730032250 2023-07-30 03:22:51 +00:00
Auto-GPT-Bot
8584a43785 mini-agi-20230730032114 2023-07-30 03:21:15 +00:00
Auto-GPT-Bot
5ca7d39612 Auto-GPT-20230730031135 2023-07-30 03:11:36 +00:00
Auto-GPT-Bot
598fdc5467 gpt-engineer-20230730031129 2023-07-30 03:11:29 +00:00
Auto-GPT-Bot
8f8fcf2ec2 BabyAGI-20230730031019 2023-07-30 03:10:19 +00:00
Auto-GPT-Bot
e460d13430 smol-developer-20230730030657 2023-07-30 03:06:57 +00:00
merwanehamadi
a6c3730ac8 Add timeout that allows teardown (#216)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-29 20:02:41 -07:00
Auto-GPT-Bot
73e02cd99c Auto-GPT-20230730020407 2023-07-30 02:04:07 +00:00
Auto-GPT-Bot
d47874e01e beebot-20230730015702 2023-07-30 01:57:03 +00:00
Auto-GPT-Bot
10185ca02d mini-agi-20230730015057 2023-07-30 01:50:58 +00:00
Auto-GPT-Bot
eadfc296cd gpt-engineer-20230730014314 2023-07-30 01:43:15 +00:00
Auto-GPT-Bot
2ec73a342a BabyAGI-20230730014255 2023-07-30 01:42:55 +00:00
Auto-GPT-Bot
019b0280a6 smol-developer-20230730013914 2023-07-30 01:39:14 +00:00
merwanehamadi
52b8d1af07 Add timeout to agbenchmark (#215)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-29 18:36:04 -07:00
Auto-GPT-Bot
2c53435a11 beebot-20230730010823 2023-07-30 01:08:23 +00:00
Auto-GPT-Bot
6f08a0fa49 gpt-engineer-20230730005623 2023-07-30 00:56:23 +00:00
Auto-GPT-Bot
8709b16af4 BabyAGI-20230730005508 2023-07-30 00:55:09 +00:00
Auto-GPT-Bot
9e0396dfcd smol-developer-20230730005206 2023-07-30 00:52:06 +00:00
merwanehamadi
68ff87d4d1 Fix export to gdrive (#214)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-29 17:49:06 -07:00
Reinier van der Leer
c9bf2ee48d Add categories to command registry (#5063)
* Add categories to command registry

* Fix tests
2023-07-29 13:38:25 -07:00
Auto-GPT-Bot
e1a10f2ddc mini-agi-20230729182217 2023-07-29 18:22:17 +00:00
Auto-GPT-Bot
3b723bca16 gpt-engineer-20230729181235 2023-07-29 18:12:35 +00:00
Auto-GPT-Bot
2a735d7eaf BabyAGI-20230729181056 2023-07-29 18:10:56 +00:00
Auto-GPT-Bot
bd7fcc06e6 smol-developer-20230729180706 2023-07-29 18:07:06 +00:00
merwanehamadi
b71aec463a Use Auto-GPT master (#213) 2023-07-29 11:04:00 -07:00
Auto-GPT-Bot
2dcaa07470 Update cassette submodule 2023-07-29 17:59:06 +00:00
merwanehamadi
45c9566298 Remove append to file (#5051)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-29 10:55:19 -07:00
Auto-GPT-Bot
b53ed6a190 beebot-20230729174132 2023-07-29 17:41:32 +00:00
Auto-GPT-Bot
c52a9553bb Auto-GPT-20230729173554 2023-07-29 17:35:54 +00:00
Auto-GPT-Bot
517750f4c3 gpt-engineer-20230729172953 2023-07-29 17:29:54 +00:00
Auto-GPT-Bot
b527116bac mini-agi-20230729172851 2023-07-29 17:28:52 +00:00
Auto-GPT-Bot
56556690ed BabyAGI-20230729172432 2023-07-29 17:24:32 +00:00
Auto-GPT-Bot
b5092820d7 smol-developer-20230729172129 2023-07-29 17:21:29 +00:00
merwanehamadi
c4554225bd Update submodules (#212)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-29 10:18:35 -07:00
Auto-GPT-Bot
cdafee02fc Update cassette submodule 2023-07-29 17:10:41 +00:00
Reinier van der Leer
2eb346e06e Improve prompting and prompt generation infrastructure (#5076)
* Clean up prompt generation

* Rename Performance Evaluations to Best Practices
* Move specification of response format from system prompt to Agent.construct_base_prompt
* Clean up PromptGenerator class

* Add debug logging to AIConfig autogeneration

* Clarify prompting and add support for multiple thought processes to Agent
2023-07-29 10:06:47 -07:00
Auto-GPT-Bot
ba7f73f559 Auto-GPT-20230729162902 2023-07-29 16:29:02 +00:00
Auto-GPT-Bot
eb15330216 gpt-engineer-20230729161821 2023-07-29 16:18:22 +00:00
Auto-GPT-Bot
b21ead08ae BabyAGI-20230729161258 2023-07-29 16:12:58 +00:00
Auto-GPT-Bot
ffc95f6db3 beebot-20230729161056 2023-07-29 16:10:57 +00:00
Auto-GPT-Bot
22a95cc346 smol-developer-20230729161044 2023-07-29 16:10:44 +00:00
Auto-GPT-Bot
a76b571959 gpt-engineer-20230729105050 2023-07-29 10:50:51 +00:00
Auto-GPT-Bot
cbec3d440b BabyAGI-20230729104913 2023-07-29 10:49:13 +00:00
Auto-GPT-Bot
af62c335e4 beebot-20230729104735 2023-07-29 10:47:36 +00:00
Auto-GPT-Bot
72a28c74c7 Auto-GPT-20230729104651 2023-07-29 10:46:51 +00:00
Auto-GPT-Bot
1083957fc3 smol-developer-20230729104600 2023-07-29 10:46:00 +00:00
Silen Naihin
ecc386ec7b returning scores (#210)
Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
2023-07-29 11:43:22 +01:00
Auto-GPT-Bot
565180c928 beebot-20230729094603 2023-07-29 09:46:03 +00:00
Auto-GPT-Bot
2adcaea31b mini-agi-20230729094004 2023-07-29 09:40:04 +00:00
Auto-GPT-Bot
9c95e0ea9e gpt-engineer-20230729093841 2023-07-29 09:38:42 +00:00
Auto-GPT-Bot
915041761e BabyAGI-20230729093217 2023-07-29 09:32:17 +00:00
Auto-GPT-Bot
623ae9aebe Auto-GPT-20230729093049 2023-07-29 09:30:49 +00:00
Auto-GPT-Bot
8ffec71197 smol-developer-20230729092935 2023-07-29 09:29:35 +00:00
Silen Naihin
f07e7b60d4 Advanced LLM Evaluation Implementation (#205)
Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
2023-07-29 10:26:19 +01:00
Auto-GPT-Bot
d284cd4295 Auto-GPT-20230729082436 2023-07-29 08:24:37 +00:00
Auto-GPT-Bot
866ea769f1 mini-agi-20230729082010 2023-07-29 08:20:11 +00:00
Auto-GPT-Bot
9b73366c1f gpt-engineer-20230729081859 2023-07-29 08:18:59 +00:00
Auto-GPT-Bot
fcd07c1c13 BabyAGI-20230729081529 2023-07-29 08:15:29 +00:00
Auto-GPT-Bot
a5b56fdb3d beebot-20230729081402 2023-07-29 08:14:02 +00:00
Auto-GPT-Bot
54e55e31a2 smol-developer-20230729081200 2023-07-29 08:12:00 +00:00
Luke
c8d9b69ee2 Sync release v0.4.6 with patches back into master (#5065) 2023-07-28 14:43:21 +02:00
Auto-GPT-Bot
831757c9c0 gpt-engineer-20230728081711 2023-07-28 08:17:12 +00:00
Auto-GPT-Bot
3a266ae030 beebot-20230728081700 2023-07-28 08:17:00 +00:00
Auto-GPT-Bot
05a737fee3 BabyAGI-20230728081531 2023-07-28 08:15:32 +00:00
Auto-GPT-Bot
4aad8b4002 smol-developer-20230728081309 2023-07-28 08:13:09 +00:00
Auto-GPT-Bot
661efbdcca beebot-20230728044708 2023-07-28 04:47:08 +00:00
Auto-GPT-Bot
1e27bdb5b1 Auto-GPT-20230728042805 2023-07-28 04:28:06 +00:00
Auto-GPT-Bot
471f7e76ed mini-agi-20230728042606 2023-07-28 04:26:06 +00:00
Auto-GPT-Bot
0646913f0d gpt-engineer-20230728041439 2023-07-28 04:14:41 +00:00
Auto-GPT-Bot
83839ade7d BabyAGI-20230728041439 2023-07-28 04:14:39 +00:00
Auto-GPT-Bot
54de90aa9f smol-developer-20230728041127 2023-07-28 04:11:27 +00:00
merwanehamadi
86f73dab68 Retry push until successful (#208)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-27 21:08:31 -07:00
Auto-GPT-Bot
e10ea033bd mini-agi-20230728040448 2023-07-28 04:04:49 +00:00
Auto-GPT-Bot
a52477e1ed BabyAGI-20230728035756 2023-07-28 03:57:56 +00:00
Auto-GPT-Bot
1da11db3b3 Auto-GPT-20230728035454 2023-07-28 03:54:54 +00:00
Auto-GPT-Bot
47e4040528 beebot-20230728035450 2023-07-28 03:54:50 +00:00
Auto-GPT-Bot
57d5b5cb04 smol-developer-20230728035321 2023-07-28 03:53:21 +00:00
merwanehamadi
80bd0c4260 Fix tests not being run (#207)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-27 20:50:53 -07:00
Auto-GPT-Bot
4675b41dd5 mini-agi-20230727200528 2023-07-27 20:05:29 +00:00
Auto-GPT-Bot
cbe6bbc4fc beebot-20230727200304 2023-07-27 20:03:04 +00:00
Auto-GPT-Bot
0650f3a655 Auto-GPT-20230727200221 2023-07-27 20:02:21 +00:00
Auto-GPT-Bot
3c2023ace1 gpt-engineer-20230727200110 2023-07-27 20:01:10 +00:00
Auto-GPT-Bot
f8ee2a5995 BabyAGI-20230727200103 2023-07-27 20:01:04 +00:00
Auto-GPT-Bot
28fee2d373 smol-developer-20230727195756 2023-07-27 19:57:56 +00:00
merwanehamadi
88feef0f2a Benchmark all tests (#204) 2023-07-27 12:53:48 -07:00
Auto-GPT-Bot
d3d16da884 BabyAGI-20230727192859 2023-07-27 19:29:00 +00:00
Auto-GPT-Bot
4616925c7b Auto-GPT-20230727192548 2023-07-27 19:25:48 +00:00
Auto-GPT-Bot
bcfa30c9c6 beebot-20230727192446 2023-07-27 19:24:46 +00:00
Auto-GPT-Bot
cf7627007c gpt-engineer-20230727192430 2023-07-27 19:24:30 +00:00
Auto-GPT-Bot
2e56dbaeac mini-agi-20230727192409 2023-07-27 19:24:09 +00:00
Auto-GPT-Bot
4487f3e743 smol-developer-20230727192332 2023-07-27 19:23:32 +00:00
merwanehamadi
6098b70408 Use beebot autopackai (#203)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-27 12:21:43 -07:00
Auto-GPT-Bot
7827abc6f4 BabyAGI-20230727184826 2023-07-27 18:48:27 +00:00
Auto-GPT-Bot
8090a03bbc gpt-engineer-20230727184601 2023-07-27 18:46:01 +00:00
Auto-GPT-Bot
45b89f8b02 Auto-GPT-20230727184554 2023-07-27 18:45:55 +00:00
Auto-GPT-Bot
cc9d7f3d3c mini-agi-20230727184535 2023-07-27 18:45:36 +00:00
Auto-GPT-Bot
5785a3309d smol-developer-20230727184443 2023-07-27 18:44:43 +00:00
merwanehamadi
31897e7892 Delete reports (#201) 2023-07-27 11:42:24 -07:00
Auto-GPT-Bot
270afd64b2 BabyAGI-20230727134118 2023-07-27 13:41:18 +00:00
Auto-GPT-Bot
753f7a97d0 Auto-GPT-20230727133932 2023-07-27 13:39:33 +00:00
Auto-GPT-Bot
b3e49fe103 gpt-engineer-20230727133838 2023-07-27 13:38:38 +00:00
Auto-GPT-Bot
708bdf212a mini-agi-20230727133828 2023-07-27 13:38:28 +00:00
Auto-GPT-Bot
bf1e3d3fce smol-developer-20230727133724 2023-07-27 13:37:24 +00:00
Justin Torre
9fc50c25ae added new script to fix dynamic headers (#202)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-07-27 14:35:31 +01:00
Auto-GPT-Bot
f23631cef5 BabyAGI-20230727133454 2023-07-27 13:34:54 +00:00
Auto-GPT-Bot
901d050643 Auto-GPT-20230727133230 2023-07-27 13:32:31 +00:00
Auto-GPT-Bot
b9b354230c gpt-engineer-20230727133214 2023-07-27 13:32:15 +00:00
Auto-GPT-Bot
3c757d6897 mini-agi-20230727133045 2023-07-27 13:30:45 +00:00
Auto-GPT-Bot
375bd70248 smol-developer-20230727133018 2023-07-27 13:30:18 +00:00
Silen Naihin
71e0c598d6 forcing AGENT_NAME to be defined from repo 2023-07-27 14:28:11 +01:00
Silen Naihin
0e6be16d07 helicone and llm eval fixes 2023-07-27 14:07:46 +01:00
merwanehamadi
eb57b15380 Add dynamic headers using environment variables (#200)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-26 21:26:03 -07:00
merwanehamadi
5df710fd35 Add helicone dynamic headers (#199)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-26 16:03:13 -07:00
Reinier van der Leer
f87b01620d Merge branch 'master' into release-v0.4.6-sync-to-master 2023-07-27 01:01:42 +02:00
Silen Naihin
fe4bdd8f97 fixing previous 2023-07-26 23:38:25 +01:00
Silen Naihin
66d1fec07e attempting more logs 2023-07-26 23:36:45 +01:00
Reinier van der Leer
ce86a5e697 Fix workspace crash 2023-07-27 00:28:55 +02:00
Silen Naihin
10c1803caa ci update (#198) 2023-07-26 23:02:38 +01:00
Reinier van der Leer
1607b74126 Merge branch 'stable' into release-v0.4.6 2023-07-26 23:39:31 +02:00
Reinier van der Leer
7dffd1a4b7 Update bulletin and version numbers 2023-07-26 23:36:56 +02:00
merwanehamadi
01b118e590 Add llm eval (#197)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-26 14:00:24 -07:00
Silen Naihin
b778af156b verbose 2023-07-26 14:07:38 +01:00
Silen Naihin
6d806a7096 poetry install -vvv in ci 2023-07-26 14:04:55 +01:00
Silen Naihin
80506e9a3b report # bug, adding submodule challenges (#193) 2023-07-26 13:53:10 +01:00
Auto-GPT-Bot
6b7e2da1df beebot-20230726084309 2023-07-26 08:43:10 +00:00
Auto-GPT-Bot
63f9fbe202 mini-agi-20230726083210 2023-07-26 08:32:11 +00:00
Auto-GPT-Bot
2cb0c17808 BabyAGI-20230726082317 2023-07-26 08:23:18 +00:00
Auto-GPT-Bot
e5a6cb0a97 smol-developer-20230726082312 2023-07-26 08:23:12 +00:00
Auto-GPT-Bot
8e98905baf gpt-engineer-20230726082245 2023-07-26 08:22:46 +00:00
Auto-GPT-Bot
63ceaee955 Auto-GPT-20230726082006 2023-07-26 08:20:06 +00:00
Auto-GPT-Bot
74e5a8c669 beebot-20230726033133 2023-07-26 03:31:33 +00:00
Auto-GPT-Bot
db3ab26af0 smol-developer-20230726032038 2023-07-26 03:20:38 +00:00
Auto-GPT-Bot
fd4f405b1f gpt-engineer-20230726031926 2023-07-26 03:19:26 +00:00
Auto-GPT-Bot
3beea19496 BabyAGI-20230726031845 2023-07-26 03:18:46 +00:00
Auto-GPT-Bot
d9087c6b93 Auto-GPT-20230726031708 2023-07-26 03:17:08 +00:00
merwanehamadi
a1e02f243c Add safety suite (#196)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-25 20:13:01 -07:00
Auto-GPT-Bot
8ef61fb6df mini-agi-20230726010103 2023-07-26 01:01:04 +00:00
Auto-GPT-Bot
1546dab363 beebot-20230726005953 2023-07-26 00:59:53 +00:00
Auto-GPT-Bot
158789b40a Auto-GPT-20230726005924 2023-07-26 00:59:25 +00:00
Auto-GPT-Bot
cd98518ccd BabyAGI-20230726005802 2023-07-26 00:58:03 +00:00
Auto-GPT-Bot
0cf47c7ea0 gpt-engineer-20230726005704 2023-07-26 00:57:04 +00:00
Auto-GPT-Bot
3133a4530e smol-developer-20230726005419 2023-07-26 00:54:19 +00:00
Silen Naihin
5e3bbb946f fix suite dependencies (#194) 2023-07-26 01:50:53 +01:00
Auto-GPT-Bot
a36f5ffadc mini-agi-20230725182016 2023-07-25 18:20:16 +00:00
Auto-GPT-Bot
bd665f12a2 mini-agi-20230725181914 2023-07-25 18:19:15 +00:00
Auto-GPT-Bot
c9499897fc beebot-20230725181856 2023-07-25 18:18:56 +00:00
Auto-GPT-Bot
c4ff643cb1 BabyAGI-20230725181822 2023-07-25 18:18:23 +00:00
Auto-GPT-Bot
374c0c18d6 gpt-engineer-20230725181738 2023-07-25 18:17:39 +00:00
Auto-GPT-Bot
ac20cd3224 beebot-20230725181655 2023-07-25 18:16:56 +00:00
Auto-GPT-Bot
bd2eb4419a gpt-engineer-20230725181638 2023-07-25 18:16:39 +00:00
Auto-GPT-Bot
e2d5df156b Auto-GPT-20230725181620 2023-07-25 18:16:20 +00:00
Auto-GPT-Bot
9385153b92 BabyAGI-20230725181605 2023-07-25 18:16:06 +00:00
Auto-GPT-Bot
84a8e9b40e mini-agi-20230725181540 2023-07-25 18:15:40 +00:00
Auto-GPT-Bot
b96d31f3a0 Auto-GPT-20230725181527 2023-07-25 18:15:28 +00:00
Auto-GPT-Bot
81c7325cb3 gpt-engineer-20230725181519 2023-07-25 18:15:20 +00:00
Auto-GPT-Bot
16ab201b31 beebot-20230725181447 2023-07-25 18:14:48 +00:00
Auto-GPT-Bot
c8698fc4df BabyAGI-20230725181443 2023-07-25 18:14:44 +00:00
Auto-GPT-Bot
9c153163ae smol-developer-20230725181415 2023-07-25 18:14:16 +00:00
Auto-GPT-Bot
68d99200ac Auto-GPT-20230725181314 2023-07-25 18:13:14 +00:00
Auto-GPT-Bot
9ba6975f59 smol-developer-20230725181230 2023-07-25 18:12:31 +00:00
Auto-GPT-Bot
ef8cd430fb smol-developer-20230725181059 2023-07-25 18:11:00 +00:00
merwanehamadi
2aa88fd163 Update Scores Benchmark (#192) 2023-07-25 11:09:49 -07:00
Silen Naihin
d47950c551 Merge branch 'master' of https://github.com/Significant-Gravitas/Auto-GPT-Benchmarks 2023-07-25 19:09:12 +01:00
Silen Naihin
bf863f7be2 adding Codium pr-agent 2023-07-25 19:09:08 +01:00
Silen Naihin
b82277515f hotfix reports (#191) 2023-07-25 19:07:24 +01:00
Reinier van der Leer
ddb7efa593 Move misplaced log_cycle statements 2023-07-25 18:08:50 +02:00
Auto-GPT-Bot
0c5051d37b beebot-20230725084238 2023-07-25 08:42:38 +00:00
Auto-GPT-Bot
0aaab9c3dd Auto-GPT-20230725082932 2023-07-25 08:29:32 +00:00
Auto-GPT-Bot
62d56dcb6f mini-agi-20230725082810 2023-07-25 08:28:10 +00:00
Auto-GPT-Bot
4a5403653e gpt-engineer-20230725082427 2023-07-25 08:24:27 +00:00
Auto-GPT-Bot
a83a090c34 BabyAGI-20230725082403 2023-07-25 08:24:04 +00:00
Auto-GPT-Bot
3edd916bc9 smol-developer-20230725081930 2023-07-25 08:19:30 +00:00
Auto-GPT-Bot
bb0c756d2c beebot-20230725043737 2023-07-25 04:37:37 +00:00
Auto-GPT-Bot
622c6f9217 Auto-GPT-20230725042955 2023-07-25 04:29:56 +00:00
Auto-GPT-Bot
f13cc06e3d gpt-engineer-20230725042732 2023-07-25 04:27:33 +00:00
Auto-GPT-Bot
208862096a BabyAGI-20230725042431 2023-07-25 04:24:32 +00:00
Auto-GPT-Bot
49c1f2beda beebot-20230725042338 2023-07-25 04:23:38 +00:00
Auto-GPT-Bot
89a39690ea smol-developer-20230725042029 2023-07-25 04:20:29 +00:00
Auto-GPT-Bot
5e18e648f4 Auto-GPT-20230725041336 2023-07-25 04:13:37 +00:00
Auto-GPT-Bot
ac41b296d3 mini-agi-20230725040836 2023-07-25 04:08:36 +00:00
Auto-GPT-Bot
37b19b70df BabyAGI-20230725040301 2023-07-25 04:03:02 +00:00
Auto-GPT-Bot
afa9bafce3 gpt-engineer-20230725040249 2023-07-25 04:02:50 +00:00
Auto-GPT-Bot
625a3383ec smol-developer-20230725040022 2023-07-25 04:00:23 +00:00
Auto-GPT-Bot
5c4aec6eae beebot-20230725035734 2023-07-25 03:57:35 +00:00
Auto-GPT-Bot
e0ea10ed53 mini-agi-20230725034505 2023-07-25 03:45:06 +00:00
Auto-GPT-Bot
82eb7dde49 gpt-engineer-20230725034047 2023-07-25 03:40:48 +00:00
Auto-GPT-Bot
879401a1c4 BabyAGI-20230725033956 2023-07-25 03:39:57 +00:00
Auto-GPT-Bot
8030440fd5 Auto-GPT-20230725033636 2023-07-25 03:36:36 +00:00
Auto-GPT-Bot
9b5bbdc687 smol-developer-20230725033614 2023-07-25 03:36:14 +00:00
Auto-GPT-Bot
85370fe42a beebot-20230725033236 2023-07-25 03:32:36 +00:00
Auto-GPT-Bot
d186c3b395 Auto-GPT-20230725032540 2023-07-25 03:25:41 +00:00
Auto-GPT-Bot
70bdfb81c9 mini-agi-20230725032130 2023-07-25 03:21:30 +00:00
Auto-GPT-Bot
e90bc0f1d1 gpt-engineer-20230725031837 2023-07-25 03:18:38 +00:00
Auto-GPT-Bot
b683cbc8bf BabyAGI-20230725031806 2023-07-25 03:18:07 +00:00
Auto-GPT-Bot
b69c786969 smol-developer-20230725031512 2023-07-25 03:15:12 +00:00
merwanehamadi
787c7c0b3a Add api keys (#190)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-24 20:11:48 -07:00
Auto-GPT-Bot
8a76eff4db Auto-GPT-20230725014729 2023-07-25 01:47:30 +00:00
Auto-GPT-Bot
596af8013e mini-agi-20230725014426 2023-07-25 01:44:26 +00:00
Auto-GPT-Bot
ef5b9d1e98 gpt-engineer-20230725014009 2023-07-25 01:40:09 +00:00
Auto-GPT-Bot
3f85bd7684 BabyAGI-20230725013954 2023-07-25 01:39:55 +00:00
Auto-GPT-Bot
5b42947bbc beebot-20230725013639 2023-07-25 01:36:39 +00:00
Auto-GPT-Bot
2dde6d6b21 smol-developer-20230725013559 2023-07-25 01:35:59 +00:00
Auto-GPT-Bot
21d720b99f Auto-GPT-20230725011646 2023-07-25 01:16:46 +00:00
Auto-GPT-Bot
b04bfde009 mini-agi-20230725011319 2023-07-25 01:13:20 +00:00
Auto-GPT-Bot
de955402f0 gpt-engineer-20230725010951 2023-07-25 01:09:52 +00:00
Auto-GPT-Bot
6db0bc8ec6 BabyAGI-20230725010910 2023-07-25 01:09:10 +00:00
Auto-GPT-Bot
8f8c62c1af beebot-20230725010704 2023-07-25 01:07:05 +00:00
Auto-GPT-Bot
cb16da1325 smol-developer-20230725010612 2023-07-25 01:06:12 +00:00
merwanehamadi
33f9ff86ee Fix helicone MITM (#189) 2023-07-24 18:02:37 -07:00
Auto-GPT-Bot
d5ebb45c7b beebot-20230725001108 2023-07-25 00:11:09 +00:00
Auto-GPT-Bot
419da57202 Auto-GPT-20230725000248 2023-07-25 00:02:49 +00:00
Auto-GPT-Bot
da91b53067 mini-agi-20230725000116 2023-07-25 00:01:17 +00:00
Auto-GPT-Bot
98e0f77fde gpt-engineer-20230724235828 2023-07-24 23:58:29 +00:00
Auto-GPT-Bot
9b701d6d39 BabyAGI-20230724235500 2023-07-24 23:55:01 +00:00
Auto-GPT-Bot
3bcba0e7ab smol-developer-20230724235145 2023-07-24 23:51:45 +00:00
merwanehamadi
d385cc4941 Uninstall agbenchmark then reinstall (#188)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-24 16:48:45 -07:00
Auto-GPT-Bot
4a861dfd94 mini-agi-20230724222106 2023-07-24 22:21:07 +00:00
Auto-GPT-Bot
1dd8129a5c gpt-engineer-20230724221944 2023-07-24 22:19:44 +00:00
Auto-GPT-Bot
fe7534f471 BabyAGI-20230724221651 2023-07-24 22:16:52 +00:00
Auto-GPT-Bot
9931f0aad2 Auto-GPT-20230724221302 2023-07-24 22:13:02 +00:00
Auto-GPT-Bot
2b809bbc6b smol-developer-20230724221207 2023-07-24 22:12:07 +00:00
merwanehamadi
dc41172052 Beat more challenges in Auto-GPT (#187) 2023-07-24 15:09:03 -07:00
Silen Naihin
d9b3d7da37 Safety challenges, adaptability challenges, suite same_task (#177) 2023-07-24 13:57:44 -07:00
Auto-GPT-Bot
a56dc479e5 Update cassette submodule 2023-07-24 17:56:56 +00:00
Swifty
c148140d75 Remove delete file (#5050) 2023-07-24 19:51:23 +02:00
Luke
71e7424baf Workdir path fixes and docs updates (#5042)
* Use modern material theme for docs

* Further file path fixes, and doc updates to specify when relative paths are expected

* fix: lint

* Remove unwated changes

* Remove comments

---------

Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <reinier.vanderleer@agpt.co>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-24 19:34:52 +02:00
Merwane Hamadi
b6d9c3ab03 Remove delete file
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-24 10:15:25 -07:00
Swifty
bf8f586984 Change workspace location (#5048) 2023-07-24 18:43:54 +02:00
Merwane Hamadi
d1e5ab04a8 Change workspace location 2023-07-24 09:15:31 -07:00
Tomas Valenta
abed282db3 Fix runtime error in the API (#5047)
* Add API via agent-protocol

* Fix linter formatting errors

* Fix API runtime errors; Improve API initialization

* Fix formatting linter erorrs
2023-07-24 08:34:24 -07:00
Auto-GPT-Bot
c4aebdada7 mini-agi-20230724083729 2023-07-24 08:37:30 +00:00
Auto-GPT-Bot
c232f42a98 beebot-20230724082655 2023-07-24 08:26:55 +00:00
Auto-GPT-Bot
09242faf94 gpt-engineer-20230724082630 2023-07-24 08:26:30 +00:00
Auto-GPT-Bot
a0028aeb69 BabyAGI-20230724082259 2023-07-24 08:23:00 +00:00
Auto-GPT-Bot
06b2467db1 Auto-GPT-20230724082211 2023-07-24 08:22:12 +00:00
Auto-GPT-Bot
727cf3291d smol-developer-20230724082049 2023-07-24 08:20:49 +00:00
merwanehamadi
60d0f5edac Fix workspace crashing (#5041)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-23 21:28:12 -07:00
Tomas Valenta
7b4cd8c86a Add API via agent-protocol SDK (#5044)
* Add API via agent-protocol

* Fix linter formatting errors
2023-07-23 20:57:47 -07:00
Auto-GPT-Bot
f7890ce933 beebot-20230723223633 2023-07-23 22:36:33 +00:00
Auto-GPT-Bot
56617462aa gpt-engineer-20230723223228 2023-07-23 22:32:29 +00:00
Auto-GPT-Bot
011d0637e9 mini-agi-20230723223101 2023-07-23 22:31:01 +00:00
Auto-GPT-Bot
8ebe4085e4 BabyAGI-20230723223007 2023-07-23 22:30:09 +00:00
Auto-GPT-Bot
ba53475f43 Auto-GPT-20230723222631 2023-07-23 22:26:32 +00:00
Auto-GPT-Bot
18255634a2 Auto-GPT-20230723222619 2023-07-23 22:26:19 +00:00
Auto-GPT-Bot
9ab32233a2 smol-developer-20230723222606 2023-07-23 22:26:06 +00:00
Auto-GPT-Bot
f5c20cf30f mini-agi-20230723211810 2023-07-23 21:18:10 +00:00
Auto-GPT-Bot
af2be8b0b9 beebot-20230723211644 2023-07-23 21:16:45 +00:00
Auto-GPT-Bot
750b3db7bf gpt-engineer-20230723211126 2023-07-23 21:11:26 +00:00
Auto-GPT-Bot
9c1f304325 BabyAGI-20230723210919 2023-07-23 21:09:20 +00:00
Auto-GPT-Bot
e120d29cf4 Auto-GPT-20230723210853 2023-07-23 21:08:54 +00:00
Auto-GPT-Bot
f888bd83b7 beebot-20230723210735 2023-07-23 21:07:35 +00:00
Auto-GPT-Bot
c4f64c8288 BabyAGI-20230723210730 2023-07-23 21:07:31 +00:00
Auto-GPT-Bot
86ac54fb06 mini-agi-20230723210724 2023-07-23 21:07:24 +00:00
Auto-GPT-Bot
c33c2f17e0 smol-developer-20230723210701 2023-07-23 21:07:02 +00:00
Auto-GPT-Bot
5e0ae8c4b5 gpt-engineer-20230723210522 2023-07-23 21:05:22 +00:00
Auto-GPT-Bot
99426111dd smol-developer-20230723210455 2023-07-23 21:04:56 +00:00
Auto-GPT-Bot
5bf6a2ccbe Auto-GPT-20230723210402 2023-07-23 21:04:02 +00:00
merwanehamadi
7288d4ccc0 Release 0.0.2 (#186) 2023-07-23 14:03:21 -07:00
merwanehamadi
549d046dc2 Always send to google drive (#185) 2023-07-23 14:00:57 -07:00
Auto-GPT-Bot
bf32f67d4e beebot-20230723200613 2023-07-23 20:06:13 +00:00
Auto-GPT-Bot
1160de97c9 mini-agi-20230723195917 2023-07-23 19:59:18 +00:00
Auto-GPT-Bot
95bb44a84e gpt-engineer-20230723195810 2023-07-23 19:58:10 +00:00
Auto-GPT-Bot
8b59af3232 BabyAGI-20230723195652 2023-07-23 19:56:52 +00:00
Auto-GPT-Bot
5f03c8292c smol-developer-20230723195557 2023-07-23 19:55:58 +00:00
Auto-GPT-Bot
48084c86ca Auto-GPT-20230723195359 2023-07-23 19:53:59 +00:00
merwanehamadi
68445ae577 Change package version (#184) 2023-07-23 12:51:12 -07:00
Auto-GPT-Bot
d2f4353c34 beebot-20230723194455 2023-07-23 19:44:56 +00:00
Auto-GPT-Bot
640e2037c6 gpt-engineer-20230723194325 2023-07-23 19:43:26 +00:00
Auto-GPT-Bot
8949e80b01 beebot-20230723193944 2023-07-23 19:39:44 +00:00
Auto-GPT-Bot
ed2ba3fc89 BabyAGI-20230723193844 2023-07-23 19:38:44 +00:00
Auto-GPT-Bot
25fa79a352 smol-developer-20230723193629 2023-07-23 19:36:29 +00:00
Auto-GPT-Bot
4f07194770 Auto-GPT-20230723193533 2023-07-23 19:35:33 +00:00
merwanehamadi
fb8e051ec1 Update permission package (#183) 2023-07-23 12:32:23 -07:00
Auto-GPT-Bot
d604c27578 gpt-engineer-20230723193128 2023-07-23 19:31:29 +00:00
Auto-GPT-Bot
a0092beff1 BabyAGI-20230723193002 2023-07-23 19:30:03 +00:00
Auto-GPT-Bot
b13798c951 Auto-GPT-20230723192953 2023-07-23 19:29:54 +00:00
Auto-GPT-Bot
02f3203e03 smol-developer-20230723192642 2023-07-23 19:26:42 +00:00
merwanehamadi
6713a3729f Update Helicone mitm to pin to a specific version (#182)
Co-authored-by: Justin Torre <justintorre75@gmail.com>
2023-07-23 12:24:12 -07:00
Auto-GPT-Bot
698588b491 beebot-20230723191654 2023-07-23 19:16:55 +00:00
Auto-GPT-Bot
4fd47f1a86 mini-agi-20230723191423 2023-07-23 19:14:23 +00:00
Auto-GPT-Bot
a855c2be97 gpt-engineer-20230723191344 2023-07-23 19:13:45 +00:00
Auto-GPT-Bot
025a73feb2 BabyAGI-20230723191239 2023-07-23 19:12:39 +00:00
Auto-GPT-Bot
292bb77bd4 smol-developer-20230723190914 2023-07-23 19:09:14 +00:00
Auto-GPT-Bot
2d2cdf277b Auto-GPT-20230723190835 2023-07-23 19:08:35 +00:00
merwanehamadi
2314c72bd9 Make spreadsheet dynamic based on branch name (#181) 2023-07-23 12:05:45 -07:00
Auto-GPT-Bot
6b426e29c5 mini-agi-20230723163028 2023-07-23 16:30:28 +00:00
Auto-GPT-Bot
9330b2efe1 gpt-engineer-20230723162701 2023-07-23 16:27:02 +00:00
Auto-GPT-Bot
cc5b62f304 BabyAGI-20230723162534 2023-07-23 16:25:35 +00:00
Auto-GPT-Bot
8800543297 Auto-GPT-20230723162316 2023-07-23 16:23:16 +00:00
Auto-GPT-Bot
3878caf0b7 beebot-20230723162302 2023-07-23 16:23:02 +00:00
Auto-GPT-Bot
01148433bd smol-developer-20230723162215 2023-07-23 16:22:15 +00:00
merwanehamadi
6407e258b5 Update publish_package.yml (#180) 2023-07-23 09:19:39 -07:00
Auto-GPT-Bot
58e85adb1a beebot-20230723082956 2023-07-23 08:29:57 +00:00
Auto-GPT-Bot
c81bbaa452 gpt-engineer-20230723082236 2023-07-23 08:22:36 +00:00
Auto-GPT-Bot
95fd92a404 BabyAGI-20230723082144 2023-07-23 08:21:45 +00:00
Auto-GPT-Bot
28c1ddeed8 Auto-GPT-20230723081756 2023-07-23 08:17:57 +00:00
Auto-GPT-Bot
c757bca4b1 smol-developer-20230723081720 2023-07-23 08:17:20 +00:00
merwanehamadi
4ada7d1784 Integrate Auto-GPT with Auto-GPT-Benchmarks (#4987)
* WIP

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* WIP

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Update config for benchmark changes (#4883)

* Add Helicone

* Add reports, consolidate, update benchmark files (#4941)

* updating config

* add reports, consolidate, update benchmark files

* Update benchmarks.py

* Change entrypath and add __init__.py

* Remove Helicone integration because we now have proxy at the system level

* Support more regression tests

* Fix Auto-GPT/benchmark integration

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Remove cutoff

* Install agbenchmark and make continuous mode dynamic

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-07-22 14:58:46 -07:00
merwanehamadi
9094137d25 Add autopack (#4) 2023-07-22 10:41:52 -07:00
Auto-GPT-Bot
f25a2feb8d gpt-engineer-20230722151811 2023-07-22 15:18:12 +00:00
Auto-GPT-Bot
8a2251627f BabyAGI-20230722151402 2023-07-22 15:14:02 +00:00
Auto-GPT-Bot
f809ceb59c beebot-20230722151117 2023-07-22 15:11:18 +00:00
Auto-GPT-Bot
c3886539cd Auto-GPT-20230722151101 2023-07-22 15:11:01 +00:00
Auto-GPT-Bot
7135a06b5e smol-developer-20230722151047 2023-07-22 15:10:47 +00:00
merwanehamadi
b8c5c261b8 Publish pypi package (#179) 2023-07-22 08:08:03 -07:00
Auto-GPT-Bot
232b3a433a gpt-engineer-20230722082413 2023-07-22 08:24:14 +00:00
Auto-GPT-Bot
f13860ebb9 mini-agi-20230722082154 2023-07-22 08:21:54 +00:00
Auto-GPT-Bot
dbe30a407a BabyAGI-20230722081940 2023-07-22 08:19:40 +00:00
Auto-GPT-Bot
bbb406c869 beebot-20230722081751 2023-07-22 08:17:52 +00:00
Auto-GPT-Bot
30be0dfd30 Auto-GPT-20230722081708 2023-07-22 08:17:09 +00:00
Auto-GPT-Bot
ca669fd31a smol-developer-20230722081628 2023-07-22 08:16:28 +00:00
NeonN3mesis
e0bcde178e Update memory.md with more warnings about memory being disabled (#5008)
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
2023-07-22 02:37:36 -04:00
eyalk11
295473551f Gracefully handle plugin loading failure (#4994)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-22 01:42:41 -04:00
merwanehamadi
d19c4391d4 Merge pull request #3 from Significant-Gravitas/update-readme-2
Update README.md
2023-07-21 12:12:27 -07:00
merwanehamadi
ffb43ac977 Update README.md 2023-07-21 12:12:18 -07:00
merwanehamadi
9a480ff627 Merge pull request #2 from Significant-Gravitas/update-readme
Update README.md
2023-07-21 12:07:40 -07:00
merwanehamadi
03c8370ad5 Update README.md 2023-07-21 12:07:26 -07:00
James Collins
669e66a1e7 Move all application code to an application subpackage (#5026)
* Move all application code to an application subpackage

* Remove main.py
2023-07-21 12:01:32 -07:00
Luke
811177099e Add config options to documentation site (#5034)
Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
Co-authored-by: James Collins <collijk@uw.edu>
2023-07-21 11:50:59 -07:00
Cyrus
12d126339e fix the forgotten + symbol in parse_ability_result(...) in parser.py (#5028)
Co-authored-by: James Collins <collijk@uw.edu>
2023-07-21 11:47:21 -07:00
Reinier van der Leer
2c53530e99 Fix path processing (#5032)
* Fix and clean up path processing in logs module

* Fix path processing throughout the project

* Fix plugins test

* Fix borky pytest vs mkdir(exist_ok=True)

* Update docs and gitignore for new workspace location

* Fix borky pytest vol.2

* ok james
2023-07-21 11:36:15 -07:00
Auto-GPT-Bot
e0d8e6b75f Update cassette submodule 2023-07-21 18:28:41 +00:00
Auto-GPT-Bot
0cd0a71b63 beebot-20230721182712 2023-07-21 18:27:13 +00:00
Auto-GPT-Bot
3a9e6c1a79 mini-agi-20230721182628 2023-07-21 18:26:28 +00:00
Reinier van der Leer
ce33e238a9 Fix CI on push 2023-07-21 20:25:15 +02:00
Auto-GPT-Bot
160cec0adb BabyAGI-20230721182139 2023-07-21 18:21:40 +00:00
Auto-GPT-Bot
4a747b738f smol-developer-20230721181844 2023-07-21 18:18:44 +00:00
Auto-GPT-Bot
56bda48c27 Auto-GPT-20230721181837 2023-07-21 18:18:37 +00:00
Auto-GPT-Bot
44fcf033ab gpt-engineer-20230721181759 2023-07-21 18:17:59 +00:00
Silen Naihin
2b3abeff4e Integrate baby-agi (#168)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-07-21 11:15:42 -07:00
James Collins
8503e961d8 Bugfix/bad null byte (#5033)
* Remove bad null byte

* Also don't try to block url null bytes
2023-07-21 09:09:14 -07:00
Auto-GPT-Bot
ee13f1ac87 mini-agi-20230721083013 2023-07-21 08:30:13 +00:00
Auto-GPT-Bot
76a5acb725 Auto-GPT-20230721082542 2023-07-21 08:25:43 +00:00
Auto-GPT-Bot
5fa07e5768 gpt-engineer-20230721082334 2023-07-21 08:23:34 +00:00
Auto-GPT-Bot
d9c9aebc18 beebot-20230721081926 2023-07-21 08:19:27 +00:00
Auto-GPT-Bot
b5989d0b18 smol-developer-20230721081915 2023-07-21 08:19:15 +00:00
merwanehamadi
a1444fe603 Update README.md 2023-07-20 20:09:36 -07:00
Auto-GPT-Bot
589b26cb18 beebot-20230721003130 2023-07-21 00:31:31 +00:00
Auto-GPT-Bot
73d179c75a gpt-engineer-20230721002831 2023-07-21 00:28:32 +00:00
Auto-GPT-Bot
b6fb3d6f21 mini-agi-20230721002520 2023-07-21 00:25:20 +00:00
Auto-GPT-Bot
7d70de376e Auto-GPT-20230721002310 2023-07-21 00:23:10 +00:00
Auto-GPT-Bot
3ae571ea35 smol-developer-20230721002110 2023-07-21 00:21:10 +00:00
Auto-GPT-Bot
d1be029da1 Auto-GPT-20230720234520 2023-07-20 23:45:21 +00:00
Auto-GPT-Bot
c98011901b mini-agi-20230720234435 2023-07-20 23:44:35 +00:00
Auto-GPT-Bot
956d038275 beebot-20230720234432 2023-07-20 23:44:32 +00:00
Auto-GPT-Bot
ce5830802a gpt-engineer-20230720234355 2023-07-20 23:43:55 +00:00
Auto-GPT-Bot
a03b22f6be mini-agi-20230720231857 2023-07-20 23:18:57 +00:00
Auto-GPT-Bot
4263d9cdda beebot-20230720231851 2023-07-20 23:18:51 +00:00
Auto-GPT-Bot
afa22d11d6 Auto-GPT-20230720231839 2023-07-20 23:18:40 +00:00
Auto-GPT-Bot
b5ec610f97 gpt-engineer-20230720231745 2023-07-20 23:17:45 +00:00
merwanehamadi
5746bfe806 Update submodules (#176) 2023-07-20 16:15:35 -07:00
Auto-GPT-Bot
9f6db44bbb gpt-engineer-20230720225645 2023-07-20 22:56:46 +00:00
Auto-GPT-Bot
6f7ba67368 beebot-20230720225252 2023-07-20 22:52:53 +00:00
Auto-GPT-Bot
38502c0218 Auto-GPT-20230720225138 2023-07-20 22:51:39 +00:00
Auto-GPT-Bot
4fabd6d21f gpt-engineer-20230720225117 2023-07-20 22:51:19 +00:00
Auto-GPT-Bot
8ff34d0cd7 mini-agi-20230720225027 2023-07-20 22:50:29 +00:00
Auto-GPT-Bot
1ebe617833 beebot-20230720225002 2023-07-20 22:50:02 +00:00
Auto-GPT-Bot
f46b0a0ffb Auto-GPT-20230720224941 2023-07-20 22:49:42 +00:00
Auto-GPT-Bot
c5ff923bbd smol-developer-20230720224923 2023-07-20 22:49:23 +00:00
merwanehamadi
40488944aa Update beebot submodule (#175) 2023-07-20 15:46:29 -07:00
Auto-GPT-Bot
52ec72e110 smol-developer-20230720224435 2023-07-20 22:44:35 +00:00
Erik Peterson
5a3b4f3d1d Kill subprocesses when test ends (#172)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-20 15:41:59 -07:00
Auto-GPT-Bot
2c74232400 beebot-20230720202054 2023-07-20 20:20:54 +00:00
Auto-GPT-Bot
c05b48f2eb gpt-engineer-20230720201639 2023-07-20 20:16:39 +00:00
Auto-GPT-Bot
05677e176b Auto-GPT-20230720201557 2023-07-20 20:15:58 +00:00
Auto-GPT-Bot
133b16bead smol-developer-20230720201129 2023-07-20 20:11:29 +00:00
merwanehamadi
fd02a74b46 Disable cache (#174) 2023-07-20 13:08:48 -07:00
James Collins
98c3f6b781 Bugfix/remove breakpoint from embedding function (#5022)
* Add links to github issues in the README and clarify run instructions

* Remove breakpoint from embedding function
2023-07-20 09:24:14 -07:00
Reinier van der Leer
db95d4cb84 Agent loop v2: Planning & Task Management (part 1: refactoring) (#4799)
* Move rename module `agent` -> `agents`

* WIP: abstract agent structure into base class and port Agent

* Move command arg path sanitization to decorator

* Add fallback token limit in llm.utils.create_chat_completion

* Rebase `MessageHistory` class on `ChatSequence` class

* Fix linting

* Consolidate logging modules

* Wham Bam Boom

* Fix tests & linting complaints

* Update Agent class docstring

* Fix Agent import in autogpt.llm.providers.openai

* Fix agent kwarg in test_execute_code.py

* Fix benchmarks.py

* Clean up lingering Agent(ai_name=...) initializations

* Fix agent kwarg

* Make sanitize_path_arg decorator more robust

* Fix linting

* Fix command enabling lambda's

* Use relative paths in file ops logger

* Fix test_execute_python_file_not_found

* Fix Config model validation breaking on .plugins

* Define validator for Config.plugins

* Fix Config model issues

* Fix agent iteration budget in testing

* Fix declaration of context_while_think

* Fix Agent.parse_and_process_response signature

* Fix Agent cycle_budget usages

* Fix budget checking in BaseAgent.__next__

* Fix cycle budget initialization

* Fix function calling in BaseAgent.think()

* Include functions in token length calculation

* Fix Config errors

* Add debug thing to patched_api_requestor to investigate HTTP 400 errors

* If this works I'm gonna be sad

* Fix BaseAgent cycle budget logic and document attributes

* Document attributes on `Agent`

* Fix import issues between Agent and MessageHistory

* Improve typing

* Extract application code from the agent (#4982)

* Extract application code from the agent

* Wrap interaction loop in a function and call in benchmarks

* Forgot the important function call

* Add docstrings and inline comments to run loop

* Update typing and docstrings in agent

* Docstring formatting

* Separate prompt construction from on_before_think

* Use `self.default_cycle_instruction` in `Agent.think()`

* Fix formatting

* hot fix the SIGINT handler (#4997)

The signal handler in the autogpt/main.py doesn't work properly because
of the clean_input(...) func. This commit remedies this issue. The issue
is mentioned in
3966cdfd69 (r1264278776)

* Update the sigint handler to be smart enough to actually work (#4999)

* Update the sigint handler to be smart enough to actually work

* Update autogpt/main.py

Co-authored-by: Reinier van der Leer <github@pwuts.nl>

* Can still use context manager

* Merge in upstream

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>

* Fix CI

* Fix initial prompt construction

* off by one error

* allow exit/EXIT to shut down app

* Remove dead code

---------

Co-authored-by: collijk <collijk@uw.edu>
Co-authored-by: Cyrus <39694513+cyrus-hawk@users.noreply.github.com>
2023-07-20 17:34:49 +02:00
Reinier van der Leer
08a1e22973 Merge release v0.4.5 back into master (#5020) 2023-07-20 17:03:52 +02:00
ph-ausseil
307644a8c5 runner.cli parsers set as a library (#5021)
* INIT 1/2

* INIT 2/2

* LINT

---------

Co-authored-by: James Collins <collijk@uw.edu>
2023-07-20 07:42:39 -07:00
Auto-GPT-Bot
ad05c9886d beebot-20230720082652 2023-07-20 08:26:53 +00:00
Auto-GPT-Bot
5f795e203a gpt-engineer-20230720082013 2023-07-20 08:20:13 +00:00
Auto-GPT-Bot
622e0a2d62 smol-developer-20230720081909 2023-07-20 08:19:09 +00:00
Auto-GPT-Bot
204af6597d beebot-20230719220421 2023-07-19 22:04:21 +00:00
Auto-GPT-Bot
71ff6f1b8c gpt-engineer-20230719220229 2023-07-19 22:02:30 +00:00
Auto-GPT-Bot
d14ccd71cd Auto-GPT-20230719215939 2023-07-19 21:59:40 +00:00
Auto-GPT-Bot
aec0e2fe7a smol-developer-20230719215612 2023-07-19 21:56:12 +00:00
merwanehamadi
df5c66d8a7 Change beebot submodule (#170) 2023-07-19 14:53:42 -07:00
Auto-GPT-Bot
ef684baa44 beebot-20230719204124 2023-07-19 20:41:24 +00:00
Auto-GPT-Bot
147425837c Auto-GPT-20230719204050 2023-07-19 20:40:51 +00:00
Auto-GPT-Bot
2fcf5352b2 smol-developer-20230719204010 2023-07-19 20:40:10 +00:00
merwanehamadi
dcdc0c9727 Integrate Beebot (#169) 2023-07-19 13:37:29 -07:00
Luke
9799ec5551 Release v0.4.5 (#4981) 2023-07-19 14:17:43 -04:00
Auto-GPT-Bot
f475631cdd Auto-GPT-20230719082204 2023-07-19 08:22:04 +00:00
Auto-GPT-Bot
34309a6c00 gpt-engineer-20230719081909 2023-07-19 08:19:09 +00:00
Auto-GPT-Bot
5fe95adc06 smol-developer-20230719081854 2023-07-19 08:18:54 +00:00
Reinier van der Leer
0c94bb5f25 Fix configuring TTS engine (#5005) 2023-07-18 13:34:52 -07:00
Auto-GPT-Bot
fb1c34ec9f mini-agi-20230718162705 2023-07-18 16:27:06 +00:00
Auto-GPT-Bot
ef1ded3460 gpt-engineer-20230718162154 2023-07-18 16:21:54 +00:00
Auto-GPT-Bot
52e7f92e54 Auto-GPT-20230718162039 2023-07-18 16:20:39 +00:00
Auto-GPT-Bot
953060335d smol-developer-20230718162012 2023-07-18 16:20:12 +00:00
merwanehamadi
d46124a9d8 Push reports to google drive (#167)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-18 09:17:45 -07:00
Auto-GPT-Bot
15d50a5ccb smol-developer-20230718082443 2023-07-18 08:24:43 +00:00
Auto-GPT-Bot
b2f52f08f4 Auto-GPT-20230718082255 2023-07-18 08:22:55 +00:00
Auto-GPT-Bot
e585658865 gpt-engineer-20230718082111 2023-07-18 08:21:11 +00:00
Auto-GPT-Bot
86978b5924 mini-agi-20230718025130 2023-07-18 02:51:30 +00:00
Auto-GPT-Bot
857b72df87 gpt-engineer-20230718024636 2023-07-18 02:46:37 +00:00
Auto-GPT-Bot
0eb04c1e34 Auto-GPT-20230718024545 2023-07-18 02:45:45 +00:00
Auto-GPT-Bot
328643e5f2 smol-developer-20230718024435 2023-07-18 02:44:35 +00:00
Silen Naihin
12c5d54583 Fixing memory challenges, naming, testing mini-agi, smooth retrieval scaling (#166) 2023-07-17 19:41:58 -07:00
Auto-GPT-Bot
c7a5498f0f gpt-engineer-20230718002527 2023-07-18 00:25:27 +00:00
Auto-GPT-Bot
cf14609b51 Auto-GPT-20230718002209 2023-07-18 00:22:09 +00:00
Auto-GPT-Bot
ed5fd3416a smol-developer-20230718001759 2023-07-18 00:17:59 +00:00
merwanehamadi
2d8fa5ca6f Use report location (#165) 2023-07-17 20:15:10 -04:00
Luke
d76317fbf3 Update BULLETIN.md and version numbers (#5002)
Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
2023-07-17 20:11:30 -04:00
Sohrab Saran
a758acef2c Fix execute_python_file workspace mount & Windows path formatting (#4996)
* fix for #4975

* Add TODO based on code comment.

* Use builtin `Path.as_posix()`

* Remove TODO

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-17 20:24:47 +02:00
Reinier van der Leer
515742ee61 Fix loading the plugins config (#5000) 2023-07-17 19:11:55 +02:00
Silen Naihin
8aa6452cc4 file naming when --test (#164) 2023-07-17 11:24:16 -04:00
Silen Naihin
dffc1dfd51 internal_info.json dynamic changes (#163) 2023-07-17 09:39:24 -04:00
Silen Naihin
ce4cefe7e7 Dynamic home path for runs (#119) 2023-07-16 18:24:06 -07:00
Auto-GPT-Bot
5c7acbc719 gpt-engineer-20230716225908 2023-07-16 22:59:08 +00:00
Auto-GPT-Bot
a36eadf554 Auto-GPT-20230716225231 2023-07-16 22:52:31 +00:00
merwanehamadi
b904041ea1 Update reports when pushing to master (#162)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-16 15:49:36 -07:00
merwanehamadi
117e8c8dd1 Fix pipes issue (#117) 2023-07-16 08:10:53 -07:00
merwanehamadi
2cfafcfbf0 Fix cutoff errors (#116)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-16 07:54:49 -07:00
merwanehamadi
2704bcee5e Allow change location of reports (#115)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-16 07:26:36 -07:00
Silen Naihin
9f3a2d4f05 Dynamic cutoff and other quality of life (#101) 2023-07-15 22:10:20 -04:00
merwanehamadi
757baba3ff Remove cache true on pr (#111)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-15 18:09:29 -07:00
merwanehamadi
02dce41937 Fix ci (#110) 2023-07-15 18:00:37 -07:00
merwanehamadi
5886d75059 Add three sum challenge (#108)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-07-15 19:52:42 -04:00
Erik Peterson
cbd2e49d97 Clean up workspace between each test (#109) 2023-07-15 16:23:49 -07:00
merwanehamadi
dab4e90e15 Update Auto-GPT score (#106)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-15 09:53:56 -07:00
merwanehamadi
bb65473416 Update Auto-GPT to current version of master (#105) 2023-07-15 08:57:28 -07:00
merwanehamadi
8be2a0b2e1 Display results per category (#104) 2023-07-14 18:45:24 -07:00
merwanehamadi
66fc7ccb31 Display smol-developer-results (#103) 2023-07-14 18:26:17 -07:00
Lei Zhang
5ae044f53d Integrate plugin.handle_text_embedding hook (#2804)
* add feature custom text embedding in plugin

* black code format

* _get_embedding_with_plugin()

* Fix docstring & type hint

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-15 03:10:32 +02:00
merwanehamadi
7de965ab3f Show Auto-GPT results (#102) 2023-07-14 18:04:35 -07:00
ido777
c821b294c6 Fix orjson encoding text with UTF-8 surrogates (#3666)
* added lib ftfy (fixes text for you), to solve surrogates errors

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-15 00:23:59 +02:00
merwanehamadi
281cb0ef37 Start showing benchmark results (#100) 2023-07-14 17:56:56 -04:00
merwanehamadi
7bc7d9213d Replace hidden files with custom python (#99)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-14 14:39:47 -07:00
merwanehamadi
a9702e4629 Add basic code generation challenge (#98) 2023-07-14 13:27:48 -04:00
GECORegulatory
376ecf0c5f Replaced Fictitious color name Fore.ORANGE (#4972)
Changed Colorama.Fore.ORANGE to YELLOW in config.py, As Colorama does not support an ORANGE color. This fixes a fatal error in run.sh when trying to set the API key through the input() method.

Co-authored-by: James Collins <collijk@uw.edu>
2023-07-14 09:24:49 -07:00
merwanehamadi
3a9dfa4c59 Update submodules and upload artifacts (#97)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-13 20:47:55 -07:00
Vasek Mlejnsky
7c4fc45b4a Add initial share logs page (#4965)
* Add initial share logs page

* Fix title sizes

* Update share_logs.md

Added some text for reasons to share logs

* Add section on how to share logs using e2b

* Fix path to images with sizes

* Fix paths to images in docs

* Fix formatting

* Fix formatting

* Fix grammar

* Make position in menu more prominent

* original log directory was incorrect

I took the directory from usage.md but that is incorrect

* Updated the directory for the logs

Updated the directory for the logs

* added some text

and made it pretty

---------

Co-authored-by: NeonN3mesis <129052650+NeonN3mesis@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-14 02:14:57 +02:00
Antonov Maxim
ed12b2c7d6 Allow absolute paths when not restricting to workspace root (#4946)
* restrict_to_root fix

* Fix formatting

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-13 19:21:25 +02:00
Reinier van der Leer
a0f5aa942d Fix Netlify preview builds 2023-07-13 18:35:50 +02:00
James Collins
c9adedf746 Refactor/rename agent subpackage to agents (#4961)
* Add links to github issues in the README and clarify run instructions

* Rename agent subpackage to agents

* Revert all unwanted changes

* Use relative import in `agents/__init__.py`

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-13 07:31:49 -07:00
James Collins
4177c37b51 Refactor/move functions in app to agent (#4957)
* Add links to github issues in the README and clarify run instructions

* Move things only used by the agent out of app.py and into the agent module

* Fix busted dynamic import
2023-07-12 19:36:00 -07:00
James Collins
077e143cc2 Documentation/collate rearch notes (#4958)
* Add links to github issues in the README and clarify run instructions

* Added a new doc in the core package with architecture notes.
2023-07-12 18:38:48 -07:00
merwanehamadi
78df4915cf Remove dependencies if a specific test is asked by the user (#95)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-12 14:35:12 -07:00
merwanehamadi
48ac1c91cd Remove dependencies cache (#94)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-12 14:30:06 -07:00
merwanehamadi
e0b16cf4ac Fix Smol developer and gpt engineer (#93)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-12 10:54:50 -07:00
James Collins
3582ada3df Add links to github issues in the README and clarify run instructions (#4954) 2023-07-12 10:21:20 -07:00
Reinier van der Leer
21c0cdcb76 Disable proxy for internal pull requests (#4953) 2023-07-12 17:50:18 +02:00
Reinier van der Leer
b00570f6d9 Fix CI warnings 2023-07-12 15:04:24 +02:00
Silen Naihin
8d0c5179ed fixing backslashes, adding basic metrics (#89) 2023-07-12 01:37:59 -04:00
merwanehamadi
e292ffebaf Enable cache (#92) 2023-07-11 21:37:49 -07:00
merwanehamadi
504634b4a6 Add custom properties to Helicone (#91) 2023-07-11 20:50:56 -07:00
merwanehamadi
b3c506cd94 Fix Auto-GPT looping forever (#87) 2023-07-11 20:02:29 -04:00
Reinier van der Leer
d676280a5c Sync release v0.4.4 + stable back into master (#4947) 2023-07-12 00:02:06 +02:00
Reinier van der Leer
e746a45158 Merge branch 'master' into release-v0.4.4 2023-07-11 23:51:48 +02:00
Reinier van der Leer
2240033b07 Release v0.4.4 (#4906) 2023-07-11 23:49:44 +02:00
merwanehamadi
4ecb70c5e3 Fix Auto-GPT integration by adding python module as entrypoint (#86)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-07-11 15:11:24 -04:00
merwanehamadi
22295350a6 All Agents log to helicone automatically (#85)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Justin <justintorre75@gmail.com>
2023-07-11 09:57:53 -07:00
Luke
46f31cb643 Bulletin & version update for 0.4.4 (#4937)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
2023-07-11 06:40:33 -05:00
merwanehamadi
0799be7e28 Fix tests ci (#82) 2023-07-10 21:54:25 -07:00
Silen Naihin
8df82909b2 Added --test, consolidate files, reports working (#83) 2023-07-10 19:25:19 -07:00
merwanehamadi
437e066a66 Add "Simple web server" challenge (#74)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-07-10 20:46:03 -04:00
merwanehamadi
30ba51593f Add Helicone (#81) 2023-07-10 12:19:12 -04:00
Reinier van der Leer
4d51469473 Fix CI cassette checkout 2023-07-10 18:13:59 +02:00
Reinier van der Leer
62e330469c Speed up Docker CI 2023-07-10 17:51:38 +02:00
Reinier van der Leer
5e39dd1d26 Speed up CI (#4930)
* Match requests in cassette by hash

* Strip requests more extensively for VCR

* Sort JSON keys on cassette save

* Strip max_tokens from cassettes

* Improve logging in retry decorator

* Raise when quota exceeded

* Clean up @retry_api

* Fix @retry_api

* Remove dead tests/vcr/openai_filter.py

* Add debug logging to execute_python_file

* Make Docker CI pass
2023-07-10 17:26:13 +02:00
James Collins
9adcad8b8a Fix regression: restore api_base and organization configurability (#4933) 2023-07-10 04:32:04 +02:00
Silen Naihin
b8830f8625 Adding search interface challenge and cleaning repo (#80) 2023-07-09 18:33:08 -07:00
merwanehamadi
0fa5286ad0 Combine all agents into one ci.yml (#79)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-09 18:06:26 -07:00
Silen Naihin
3d43117554 Just json, no test files (#77) 2023-07-09 17:27:21 -07:00
Reinier van der Leer
2b56996a27 Fix plain_output for tests 2023-07-09 22:42:47 +02:00
merwanehamadi
573130549f Add gpt engineer to ci (#78) 2023-07-09 13:31:31 -07:00
Reinier van der Leer
c562fbf4bc Move path argument sanitization for commands to a decorator (#4918)
* Move path argument sanitization for commands to a decorator

* Fix tests

* Add `@functools.wraps` to `@sanitize_path_arg` decorator

Co-authored-by: James Collins <collijk@uw.edu>

---------

Co-authored-by: James Collins <collijk@uw.edu>
2023-07-09 12:40:56 -07:00
Reinier van der Leer
050c52a008 Fix CommandRegistry state initialization 2023-07-09 20:32:59 +02:00
Reinier van der Leer
51d8b43fbf Improve token counting; account for functions (#4919)
* Improvements to token counting, including functions
---------

Co-authored-by: James Collins <collijk@uw.edu>
2023-07-09 11:31:18 -07:00
Reinier van der Leer
e8b6676b22 Restructure logs.py into a module; include log_cycle (#4921)
* Consolidate all logging stuff into one module

* Merge import statement for `logs` and `logs.log_cycle`

---------

Co-authored-by: James Collins <collijk@uw.edu>
2023-07-09 20:14:25 +02:00
Auto-GPT-Bot
bfdfeff1b3 Update cassette submodule 2023-07-09 18:11:00 +00:00
Reinier van der Leer
1e756ed5f1 Fix type of Config.plugins as AutoGPTPluginTemplate (#4924)
Co-authored-by: James Collins <collijk@uw.edu>
2023-07-09 11:04:52 -07:00
Auto-GPT-Bot
bc600169a9 Update cassette submodule 2023-07-09 17:57:58 +00:00
Reinier van der Leer
1e1eff70bc Rebase MessageHistory on ChatSequence (#4922)
* Rebase `MessageHistory` on `ChatSequence`

* Process feedback & make mypy happy

---------

Co-authored-by: James Collins <collijk@uw.edu>
2023-07-09 19:52:59 +02:00
Auto-GPT-Bot
7dc6d736c7 Update cassette submodule 2023-07-09 15:56:28 +00:00
Reinier van der Leer
f6b9e86ccb Fix test_browse_website (#4925)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-07-09 08:51:32 -07:00
merwanehamadi
d89264998d Fix debug code challenge (#76)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-07-08 21:46:37 -04:00
Silen Naihin
69bd41f741 Quality of life improvements & fixes (#75) 2023-07-08 18:43:38 -07:00
Auto-GPT-Bot
6afdd1be10 Update cassette submodule 2023-07-08 21:55:26 +00:00
James Collins
89c1f2d0c0 Remove dead agent manager (#4900)
* Remove dead agent manager

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-08 23:50:12 +02:00
Silen Naihin
db86ccdcb4 removing agentgpt 2023-07-08 13:02:47 -04:00
Auto-GPT-Bot
a38d400207 Update cassette submodule 2023-07-08 17:01:01 +00:00
Reinier van der Leer
4f87f70904 Add slow test report to CI 2023-07-08 18:55:59 +02:00
Silen Naihin
2d05c3ec56 reverting accidental previous changes 2023-07-08 12:50:39 -04:00
Silen Naihin
a35569a77b submodule integration 2023-07-08 12:47:48 -04:00
Auto-GPT-Bot
a6f4fa4416 Update cassette submodule 2023-07-08 16:32:28 +00:00
James Collins
f6da992b3e Drop AbstractSingleton as a parent class of the vector memory (#4901)
* Drop AbstractSingleton as a parent class of the vector memory

* Forgot pytest fixture in integration tests

* Revert typo
2023-07-08 09:27:43 -07:00
Reinier van der Leer
43a62fdc7c Sync bugfixes from master into release-v0.4.4 (#4914) 2023-07-08 18:06:57 +02:00
Auto-GPT-Bot
426b7d12da Update cassette submodule 2023-07-08 16:02:20 +00:00
James Collins
59f353ae06 Organize the configuration args (#4913)
* Organize the configuration args

* Remove duplication in setting config defaults

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-08 08:56:45 -07:00
Reinier van der Leer
6735b8155c Merge branch 'release-v0.4.4' into inter/master-to-release-v0.4.4 2023-07-08 17:56:43 +02:00
Auto-GPT-Bot
6cf8ec9315 Update cassette submodule 2023-07-08 15:33:59 +00:00
lengweiping1983
8b8b3a2cdd Improve command system; add aliases for commands (#2635)
* Command name supports multiple names

* Separate CommandRegistry.commands and .command_aliases

* Update test_commands.py

* Add __contains__ operator to CommandRegistry

* Update error message for unknown commands

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-08 17:29:55 +02:00
Silen Naihin
082a876612 fixing the incorrect addition of superagi (#73) 2023-07-08 05:04:06 -04:00
Silen Naihin
e56b112aab i/o workspace, adding superagi (#60) 2023-07-08 03:27:31 -04:00
James Collins
8bce02736b Fix bugs running the core cli-app (#4905)
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
2023-07-07 22:51:01 -04:00
James Collins
57315bddfb Bugfix/broken azure config (#4912) 2023-07-07 22:42:26 -04:00
merwanehamadi
487f99f8f2 Use artifacts out insted of python code (#72) 2023-07-07 15:49:37 -07:00
merwanehamadi
f0f7d2be90 Fix memory challenge 2 (#71) 2023-07-07 15:38:50 -07:00
merwanehamadi
e34c83ca1c Add .txt to memory challenges (#70) 2023-07-07 15:34:57 -07:00
Erik Peterson
3defe044bd Print out all of stdout on each process poll. (#69) 2023-07-07 15:02:08 -07:00
Silen Naihin
4562bc6caf Update data.json remove text 2023-07-07 17:54:09 -04:00
merwanehamadi
e61523e59e Get rid of get file path by using the data.json convention to store the challenge information (#67)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-07 13:58:17 -07:00
merwanehamadi
6ef32a9b1f Add "Debug code without guidance" challenge (#66)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-07 13:55:59 -07:00
merwanehamadi
9ede17891b Add 'Debug simple typo with guidance' challenge (#65)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-07 13:50:53 -07:00
sagarishere
9a2a9f7439 Add docstring to function get_memory() in autogpt.memory.vector (#1296)
* Document function get_memory in ./scripts/memory/init.py

* Update get_memory docstring to current format

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-07 07:39:36 +02:00
Reinier van der Leer
16787b32e5 Sync stable into release-v0.4.4 (#4907) 2023-07-07 07:01:06 +02:00
Venkat Teja
0f538f6e2c Fix summarize_text usages and self-calls (#4863)
* Fix summarize_text function usage

* Update memory_item.py
2023-07-07 06:56:29 +02:00
Reinier van der Leer
35b072f7e8 Fix PLAIN_OUTPUT for normal execution (#4904) 2023-07-07 06:53:44 +02:00
Luke
ebe3221405 Pull master into Release v0.4.4 (#4903) 2023-07-07 00:41:03 -04:00
Ian
3b7e1014f6 Fix --gpt3only and --gpt4only for Azure (#4098)
* Fix --gpt3only and --gpt4only

* Fix and consolidate test_config.py::test_azure_config (x2)

---------

Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: Ryan <eimu.gray@gmail.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-07 06:08:47 +02:00
zachRadack
053caaa222 Bugfix fixtts (#4902)
* changing configs names to tts_provider

* accidently triggered circular importing.

* added config to places it needs other than the logger

* got it to work on windows

* did all the formatting stuff

---------

Co-authored-by: James Collins <collijk@uw.edu>
2023-07-06 20:49:59 -07:00
Steve
9e5492bd13 Add CLI args for ai_name, ai_role, and ai_goals (#3250)
* add capability to specify AI config at cmd line

* Make `--ai-goal` multi-parameter

* Fix argument forwarding in run.sh

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-07 04:19:18 +02:00
Auto-GPT-Bot
9706ff8c26 Update cassette submodule 2023-07-07 01:47:53 +00:00
Reinier van der Leer
bde007e6f7 Use GPT-4 in Agent loop by default (#4899)
* Use GPT-4 as default smart LLM in Agent

* Rename (smart|fast)_llm_model to (smart|fast)_llm everywhere

* Fix test_config.py::test_initial_values

* Fix test_config.py::test_azure_config

* Fix Azure config backwards compatibility
2023-07-07 03:42:18 +02:00
Silen Naihin
bfd0d5c826 Fix home_path, local mini-agi run works (#64)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-07-06 18:00:45 -07:00
Jayden
ac17518663 Fix Azure OpenAI setup problems (#4875)
* [Fix] Recover the azure config load function

* [Style] Apply black, isort, mypy, autoflake

* [Fix] Rename the return parameter from 'azure_model_map' to 'azure_model_to_deployment_id_map'

* [Feat] Change the azure config file path to be dynamically configurable

* [Test] Add azure_config and azure deployment_id_for_model

* [Style] Apply black, isort, mypy, autoflake

* [Style] Apply black, isort, mypy, autoflake

* Refactor Azure configuration

- Refactor the `azure_config_file` attribute in the `Config` class to be optional.
- Refactor the `azure_model_to_deployment_id_map` attribute in the `Config` class to be optional and provide default values.
- Update the `get_azure_deployment_id_for_model` function to accept additional parameters.
- Update references to `get_azure_deployment_id_for_model` in `create_text_completion`, `create_chat_completion`, and `get_embedding` functions to pass the required parameters.

* Clean up process for azure

* Docstring

* revert some unneccessary fiddling

* Avoid altering args to models

* Retry on 404s

* Don't permanently change the environment

* Formatting

---------

Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: lc0rp <2609411+lc0rp@users.noreply.github.com>
Co-authored-by: collijk <collijk@uw.edu>
2023-07-06 17:51:59 -07:00
James
e4a337f1a5 Fix potential passing of NoneType to remove_ansi_escape (#4882)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
2023-07-06 20:00:58 -04:00
Reinier van der Leer
6893b7e5e7 Fix log textareas in bug issue template 2023-07-07 01:10:11 +02:00
merwanehamadi
0b4ae5ea78 Add 'remember phrases with noise' challenge (#63) 2023-07-06 17:19:12 -04:00
Scott Schluer
70e8b07428 Utilize environment variables for all agent key bindings (#3774)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-06 22:44:53 +02:00
kerta1n
e0882955e3 Update docs to use docker compose v2 (#4471)
* Update setup.md

Change "docker-compose" command to "docker compose" to avoid future issues with running the Docker method (`docker-compose` is v1 and is outdated, is not a recognized command with newer versions of Docker engine)

* Update usage.md

* Update comment in docker-compose.yml

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-06 22:11:43 +02:00
NeonN3mesis
2fcd91b765 New Challenge test_information_retrieval_challenge_c (#4855)
* New Challenge test_information_retrieval_challenge_c

I created a new challenge needs a bit of work

* Update current_score.json

Changed max level beaten to null

* reformatted test_information_retrieval_challenge_c with black

reformatted test_information_retrieval_challenge_c with black

---------

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-07-06 10:05:48 -07:00
merwanehamadi
82d8f67f6a Add 'remember ids with noise' challenge (#61) 2023-07-06 01:34:51 -04:00
Silen Naihin
c76062b092 Added caching based on file key (#62)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-07-05 21:38:01 -07:00
merwanehamadi
5b19340f8e Add 'Remember multiple ids' memory challenge (#59) 2023-07-06 00:35:15 -04:00
Silen Naihin
4ebc5aa3b3 submodule remove 2023-07-06 00:14:40 -04:00
Silen Naihin
de44d6ace5 fix 2023-07-06 00:08:49 -04:00
Silen Naihin
e6f7bcf0ae fixing --reg to --maintain workflow bug 2023-07-06 00:06:34 -04:00
merwanehamadi
7102fe1a18 Rename '--reg' flag to '--maintain' (#58) 2023-07-06 00:03:45 -04:00
merwanehamadi
74fc969dd6 Add basic memory challenge (#57) 2023-07-05 23:32:28 -04:00
uta
bfb45f2cbd Fix errors in Mandatory Tasks of Benchmarks (#4893)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-07-05 16:37:01 -07:00
Reinier van der Leer
9cf35010c6 Fix plugin loading issues (#4888)
* Fix Config model initialization

* Fix basedir determination in install_plugin_dependencies

* Add logging to install_plugin_dependencies()

---------

Co-authored-by: collijk <collijk@uw.edu>
2023-07-06 01:05:07 +02:00
Reinier van der Leer
0c8288b5e1 Update OpenAI model ID mappings to -0613 (#4889) 2023-07-05 22:36:17 +02:00
James Collins
b9f01330db Re-arch WIP (#3969)
Rough sketching out of a hello world using our refactored autogpt
library. See the tracking issue here: #4770.

# Run instructions

There are two client applications for Auto-GPT included. 

## CLI Application

🌟 **This is the reference application I'm working with for now**
🌟

The first app is a straight CLI application. I have not done anything
yet to port all the friendly display stuff from the
`logger.typewriter_log` logic.

- [Entry
Point](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_app/cli.py)
- [Client
Application](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_app/main.py)

To run, you first need a settings file.  Run

```
 python REPOSITORY_ROOT/autogpt/core/runner/cli_app/cli.py make-settings
 ```

where `REPOSITORY_ROOT` is the root of the Auto-GPT repository on your machine.  This will write a file called `default_agent_settings.yaml` with all the user-modifiable configuration keys to `~/auto-gpt/default_agent_settings.yml` and make the `auto-gpt` directory in your user directory if it doesn't exist).  At a bare minimum, you'll need to set `openai.credentials.api_key` to your OpenAI API Key to run the model.

You can then run Auto-GPT with 

```
python REPOSITORY_ROOT/autogpt/core/runner/cli_app/cli.py make-settings
```

to launch the interaction loop.

## CLI Web App

The second app is still a CLI, but it sets up a local webserver that the client application talks to rather than invoking calls to the Agent library code directly.  This application is essentially a sketch at this point as the folks who were driving it have had less time (and likely not enough clarity) to proceed.

- [Entry Point](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_web_app/cli.py)
- [Client Application](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_web_app/client/client.py)
- [Server API](https://github.com/Significant-Gravitas/Auto-GPT/blob/re-arch/hello-world/autogpt/core/runner/cli_web_app/server/api.py)

To run, you still need to generate a default configuration.  You can do 

```
python REPOSITORY_ROOT/autogpt/core/runner/cli_web_app/cli.py
make-settings
```

It invokes the same command as the bare CLI app, so follow the instructions above about setting your API key.

To run, do 

```
python REPOSITORY_ROOT/autogpt/core/runner/cli_web_app/cli.py client
```

This will launch a webserver and then start the client cli application to communicate with it.

⚠️ I am not actively developing this application.  It is a very good place to get involved if you have web application design experience and are looking to get involved in the re-arch.

---------

Co-authored-by: David Wurtz <davidjwurtz@gmail.com>
Co-authored-by: Media <12145726+rihp@users.noreply.github.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
Co-authored-by: Daryl Rodrigo <darylrodrigo@gmail.com>
Co-authored-by: Daryl Rodrigo <daryl@orkestro.com>
Co-authored-by: Swifty <craigswift13@gmail.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-05 12:12:05 -07:00
Luke
66635f3ae6 Simplified plugin-loading log messages (#4870)
Simplified plugin log messages to make plugin debugging easier

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-05 20:12:28 +02:00
Silen Naihin
bfc7dfdb29 Dynamic workspace path (#56) 2023-07-04 19:06:49 -07:00
merwanehamadi
351131bbff Change test dependencies (#55) 2023-07-04 21:45:35 -04:00
merwanehamadi
e3c453f10e Add information retrieval 3 (#54)
Co-authored-by: Silen Naihin <silen.naihin@gmail.com>
2023-07-04 20:41:13 -04:00
merwanehamadi
cef259c945 Add pr template (#52) 2023-07-04 20:34:55 -04:00
Reinier van der Leer
744275b932 Run pytest with only unit tests in pre-commit hook 2023-07-05 00:30:00 +02:00
merwanehamadi
f8e550773f Add retrieval challenge test + run tests on CI pipeline (#51) 2023-07-04 18:28:00 -04:00
Luke
7e45b6a975 Fix Config.plugins_config - call model_post_init explicitly until pydantic 2.0 (#4858)
As per
https://github.com/pydantic/pydantic/issues/1729#issuecomment-1300576214,
the implementation of `model_post_init()` is postponed until Pydantic
v2. As a result, the initialization of PluginConfig is being skipped.

This fix calls `plugin.model_post_init()` explicitly.

The recency of the Pydantic v2 release means that some of the other
extensions we use do not support it yet. Specifically, extensions such
as spacy and openapi-python-client are currently limited to Pydantic
versions that are less than 2.0. There may be other extensions that have
the same limitation as well.

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-07-04 23:55:00 +02:00
Nicholas Tindle
c67940edec Update CODEOWNERS (#4884) 2023-07-04 15:34:46 -05:00
Silen Naihin
e6e92e9952 run in continuous 2023-07-04 14:15:04 -04:00
Silen Naihin
62d37755bc updating submodule commit 2023-07-04 14:11:38 -04:00
Silen Naihin
ed9aef5f43 adding venv to mini-agi 2023-07-04 13:51:04 -04:00
Silen Naihin
73a3e9e42d fixing mini-agi workflow 2023-07-04 13:41:54 -04:00
Silen Naihin
e25f610344 local runs, home_path config, submodule miniagi (#50) 2023-07-04 10:23:00 -07:00
merwanehamadi
7f098d5fb6 Explain how to benchmark new agents (#49) 2023-07-04 12:13:29 -04:00
James
5318535d0d Fix summarize_text recursion calls (#4876)
`summarize_text` is currently broken, because it calls itself with the
wrong args (missing `config`)
2023-07-04 15:28:02 +02:00
merwanehamadi
f183e91ccd Integrate smol developer with agbenchmark (#48) 2023-07-03 20:28:29 -04:00
merwanehamadi
101ffdbce0 Integrate with gpt engineer (#47) 2023-07-03 14:53:28 -04:00
merwanehamadi
07133fb041 Run regression tests on push to master and stable (#46) 2023-07-03 14:42:24 -04:00
merwanehamadi
838f72097c Add static linters ci (#45) 2023-07-02 16:14:49 -04:00
merwanehamadi
2062844fa6 Integrate one challenge to auto gpt (#44) 2023-07-02 10:38:30 -04:00
merwanehamadi
0f33416b0e Merge pull request #42 from Significant-Gravitas/feat/kill
adding hook to integrate agnostically
2023-06-30 09:45:45 -07:00
Silen Naihin
7c352b745e integrate config, agent_interface just func, hook 2023-06-30 11:55:43 -04:00
Silen Naihin
2987d71264 moving run agent to tests & agnostic run working 2023-06-30 10:50:54 -04:00
Reinier van der Leer
5070cc32ac Fix Config type hint problems caused by #4803 (#4840)
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
2023-06-30 08:15:00 -04:00
Silen Naihin
fce421fb33 moving logic to benchmark.py file 2023-06-29 20:51:23 -04:00
Luke
975094fcdd Add fallback token limit in llm.utils.create_chat_completion (#4839)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-29 15:26:49 +02:00
Silen Naihin
ac5af73696 trying to get kill process 2023-06-28 21:28:46 -04:00
Reinier van der Leer
30f153e695 Sync stable version v0.4.3 back to master (#4828)
Finalizing the release
2023-06-28 16:57:26 +02:00
Luke K (pr-0f3t)
80151dd6b2 Release v0.4.3 (#4802) 2023-06-28 03:56:00 -04:00
Silen Naihin
0c81585a53 Update README.md (#41) 2023-06-27 22:17:42 -04:00
merwanehamadi
11303e2ef7 Merge pull request #40 from Significant-Gravitas/feat/basics
addition of basic challenges, easier challenge creation, --mock flag, adding mini-agi
2023-06-27 18:50:23 -07:00
Silen Naihin
76ee994d2c read mes, remove port and host from config, etc 2023-06-27 19:19:14 -04:00
Silen Naihin
f933717d8b mini-agi, simple challenge creation, --mock flag 2023-06-27 18:17:54 -04:00
Luke K (pr-0f3t)
445228348d Bulletin.md updates and version toggling (#4816)
Co-authored-by: uta <122957026+uta0x89@users.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: lukas-eu <62448426+lukas-eu@users.noreply.github.com>
2023-06-27 14:17:32 -04:00
Luke K (pr-0f3t)
c025132c84 Unregister commands incompatible with current config. (#4815) 2023-06-27 14:16:58 -04:00
Silen Naihin
36ef54340f Merge branch 'feat/basics' of https://github.com/Significant-Gravitas/Auto-GPT-Benchmarks into feat/basics 2023-06-27 13:26:39 -04:00
Silen Naihin
fa0df12439 mini agi attempt 2023-06-27 13:26:28 -04:00
Silen Naihin
d6a6e69f2e can now put file extensions or names in files data 2023-06-27 13:26:28 -04:00
Silen Naihin
2411c35d0e update regression tests info 2023-06-27 13:26:28 -04:00
Silen Naihin
a2f79760ce other was non solution, solution is pytest-depends 2023-06-27 13:26:28 -04:00
Silen Naihin
06a6f08054 finally figured out right way to do dependencies 2023-06-27 13:26:28 -04:00
Silen Naihin
2f28a66591 more elegant marking & dependency solution 2023-06-27 13:26:28 -04:00
Silen Naihin
60a7ac2343 adding dependencies on other challenges 2023-06-27 13:26:28 -04:00
Silen Naihin
22458a04e8 file creation from within file before server :) 2023-06-27 13:26:28 -04:00
Silen Naihin
8c44b9eddf basic challenges, more ChallengeData structure 2023-06-27 13:26:28 -04:00
Silen Naihin
a7972ad873 regression test creation 2023-06-27 13:25:47 -04:00
lukas-eu
bafcdcea7c Filtering out ANSI escape codes in printed assistant thoughts (#4810)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
2023-06-27 12:16:08 -04:00
Luke K (pr-0f3t)
ebe1861894 Filtering out ANSI escape codes in printed assistant thoughts (#4812)
Co-authored-by: uta <122957026+uta0x89@users.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: lukas-eu <62448426+lukas-eu@users.noreply.github.com>
2023-06-27 12:14:27 -04:00
Luke K (pr-0f3t)
5d5a35e383 Merge branch 'stable' of https://github.com/Significant-Gravitas/Auto-GPT into release-v0.4.3 2023-06-27 03:40:24 -04:00
merwanehamadi
9f353f41c4 Use Configuration of the rearch branch (#4803) 2023-06-26 17:01:36 -07:00
uta
b1570543c8 Retry ServiceUnavailableError (#4789)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-26 14:38:16 -07:00
Peter Petermann
9e99db1d3e Only take subclasses of AutoGPTPluginTemplate as plugins
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
2023-06-26 15:25:21 -04:00
Silen Naihin
84f170c9e0 fixing relative imports 2023-06-26 09:36:13 -04:00
Silen Naihin
4be22ae5ab mini agi attempt 2023-06-26 09:27:20 -04:00
Erik Peterson
321edc5e3d Prevent docker-compose.yml and Dockerfile from being written (#4761) 2023-06-26 15:10:38 +02:00
Silen Naihin
7604ae07bb can now put file extensions or names in files data 2023-06-25 19:30:04 -04:00
Silen Naihin
adc6b225a6 update regression tests info 2023-06-25 11:12:33 -04:00
Silen Naihin
31c1192719 other was non solution, solution is pytest-depends 2023-06-25 08:48:16 -04:00
Silen Naihin
d1c5e0a91a finally figured out right way to do dependencies 2023-06-25 00:22:53 -04:00
Silen Naihin
f895d54e02 more elegant marking & dependency solution 2023-06-24 14:42:35 -04:00
Silen Naihin
4fa9f72083 adding dependencies on other challenges 2023-06-24 12:24:17 -04:00
Silen Naihin
66c9e68b04 file creation from within file before server :) 2023-06-24 12:15:53 -04:00
Silen Naihin
a5073ab577 basic challenges, more ChallengeData structure 2023-06-24 09:42:36 -04:00
Auto-GPT-Bot
de97097db1 Update cassette submodule 2023-06-24 13:27:34 +00:00
merwanehamadi
cfdb24efac Link all challenges to benchmark python hook (#4786) 2023-06-24 06:20:58 -07:00
Abdul Qoyyuum
307f6e50ad ❇️ Improved OpenAI API Key Insert to Env (#2486)
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-24 05:19:01 -04:00
Auto-GPT-Bot
7309c12592 Update cassette submodule 2023-06-24 04:20:41 +00:00
merwanehamadi
222101b30e Create run_task python hook to interface with benchmarks (#4778)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-23 21:15:20 -07:00
Silen Naihin
b6562f3420 Update README.md 2023-06-23 09:31:21 -04:00
Silen Naihin
ffd1d15a0e MockManager, mock_func in data.json (#39) 2023-06-23 07:53:57 -04:00
Silen Naihin
15c5469bb1 Add automatic regression markers (#38) 2023-06-22 08:18:22 -04:00
Auto-GPT-Bot
15ff666d3f Update cassette submodule 2023-06-22 02:57:02 +00:00
Erik Peterson
857d26d101 Add OpenAI function call support (#4683)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-22 04:52:44 +02:00
WladBlank
32038c9f5b Fix up Python execution commands (#4756)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-21 09:38:39 -07:00
Silen Naihin
e5974ca3ea Delete file_to_check.txt 2023-06-21 11:44:59 -04:00
Silen Naihin
b7deb984f7 start click, fixtures, types, challenge creation, mock run -stable (#37) 2023-06-21 11:43:18 -04:00
Silen Naihin
04536e92a5 Merge pull request #34 from Significant-Gravitas/dsl 2023-06-20 18:32:58 -04:00
merwanehamadi
e5d6206a15 Make JSON errors more silent (#4748) 2023-06-20 07:01:49 -07:00
merwanehamadi
4e3f832dc3 Remove config singleton (#4737) 2023-06-20 06:47:59 -07:00
Auto-GPT-Bot
012a286921 Update cassette submodule 2023-06-20 02:29:06 +00:00
merwanehamadi
ea1b28f025 Merge Release v0.4.2 back to master (#4747) 2023-06-19 19:23:31 -07:00
Merwane Hamadi
d147b42cf7 Merge master into release-v0.4.2
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-19 19:02:18 -07:00
Auto-GPT-Bot
7632067768 Update cassette submodule 2023-06-20 01:14:08 +00:00
merwanehamadi
a564fdf034 Sync release v0.4.1 back into master (#4741) 2023-06-19 18:07:42 -07:00
Merwane Hamadi
f4c000a547 Fixes LLM thinking command descriptions are orders
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-19 16:23:09 -07:00
Merwane Hamadi
162d77707b Fix test API manager 2023-06-19 16:22:31 -07:00
Luke
2568164cb3 Fixing circular imports 2023-06-19 20:54:52 +00:00
merwanehamadi
3e697d5bd0 Retry 503 OpenAI errors (#4745)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-19 13:20:10 -07:00
Merwane Hamadi
1fead303a0 Retry 503 OpenAI errors
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-19 13:12:33 -07:00
Luke
2a8f4ce0b7 Fixing syntax error from mis-merge 2023-06-19 19:46:46 +00:00
Luke
71ca4ea990 Updates to sync 0.4.1 to master 2023-06-19 19:36:46 +00:00
Luke K (pr-0f3t)
eb2410ac6c Merge remote-tracking branch 'upstream/master' into Release-v0.4.1 2023-06-19 14:08:06 -04:00
Luke K (pr-0f3t)
abb397e442 Release v0.4.1 (#4686)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
Co-authored-by: Luke K <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: Erik Peterson <e@eriklp.com>
Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
Co-authored-by: Benny van der Lans <49377421+bfalans@users.noreply.github.com>
Co-authored-by: Jan <jan-github@phobia.de>
Co-authored-by: Robin Richtsfeld <robin.richtsfeld@gmail.com>
Co-authored-by: Marc Bornträger <marc.borntraeger@gmail.com>
Co-authored-by: Stefan Ayala <stefanayala3266@gmail.com>
Co-authored-by: javableu <45064273+javableu@users.noreply.github.com>
Co-authored-by: DGdev91 <DGdev91@users.noreply.github.com>
Co-authored-by: Kinance <kinance@gmail.com>
Co-authored-by: digger yu <digger-yu@outlook.com>
Co-authored-by: David <scenaristeur@gmail.com>
Co-authored-by: gravelBridge <john.tian31@gmail.com>
Fix Python CI "update cassettes" step (#4591)
fix CI (#4596)
Fix inverted logic for deny_command (#4563)
fix current_score.json generation (#4601)
Fix duckduckgo rate limiting (#4592)
Fix debug code challenge (#4632)
Fix issues with information retrieval challenge a (#4622)
fix issues with env configuration and .env.template (#4630)
Fix prompt issue causing 'No Command' issues and challenge to fail (#4623)
Fix benchmark logs (#4653)
Fix typo in docs/setup.md (#4613)
Fix run.sh shebang (#4561)
Fix autogpt docker image not working because missing prompt_settings (#4680)
Fix execute_command coming from plugins (#4730)
2023-06-19 12:41:40 -04:00
Silen Naihin
1eb278f3cc Update README.md 2023-06-19 09:53:30 -04:00
scarletpan
f37981c388 init first challenge template 2023-06-19 12:39:34 +00:00
Auto-GPT-Bot
7d923f83e6 Update cassette submodule 2023-06-19 03:35:37 +00:00
Erik Peterson
9f737274b7 Fix issues with execute_python_code responses (#4738)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-18 20:30:08 -07:00
Auto-GPT-Bot
ee7d04775e Update cassette submodule 2023-06-19 03:05:39 +00:00
merwanehamadi
0abfa3a68f Remove config from command decorator (#4736) 2023-06-18 20:00:23 -07:00
Auto-GPT-Bot
8077d2a249 Update cassette submodule 2023-06-19 02:10:07 +00:00
merwanehamadi
a7f805604c Pass config everywhere in order to get rid of singleton (#4666)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-18 19:05:41 -07:00
Silen Naihin
51f2295971 init agbenchmark 2023-06-18 11:14:54 -04:00
merwanehamadi
85651de3bc Merge pull request #1 from Significant-Gravitas/setup
Setup
2023-06-18 07:55:58 -07:00
Merwane Hamadi
7d4d51ccbb Setup 2023-06-18 07:55:16 -07:00
merwanehamadi
c6a22abb10 Initial commit 2023-06-18 07:30:54 -07:00
Erik Peterson
096d27f342 Fix execute_command coming from plugins (#4729)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-17 14:53:58 -07:00
Erik Peterson
7bac56b57d Fix execute_command coming from plugins (#4730) 2023-06-17 14:45:34 -07:00
Auto-GPT-Bot
dc1b484630 Update cassette submodule 2023-06-17 15:46:07 +00:00
merwanehamadi
10d7747ae2 Use JSON format for commands signature (#4714)
* Use JSON for command signature

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Improve plugin backward compatibility (#4716)

* Fixed plugin test

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Fix Docker-CI

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Put back commands, clean typing and signatures

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Erik Peterson <e@eriklp.com>
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
2023-06-17 08:39:17 -07:00
Luke K (pr-0f3t)
7f6f18f642 Bulletin.md update for 0.4.1 release (#4721) 2023-06-17 04:03:21 -04:00
merwanehamadi
0b6fec4a28 Fix summarization happening in first cycle (#4719) 2023-06-16 18:17:47 -07:00
Luke
4a307ad4eb Fixed plugin test 2023-06-16 11:53:25 +00:00
Luke K (pr-0f3t)
e02105ee89 Improve plugin backward compatibility (#4716) 2023-06-16 08:28:58 -03:00
merwanehamadi
d923004e20 Remove app commands, audio text and playwright (#4711)
* Remove App Commands and Audio Text
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Remove self feedback

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Erik Peterson <e@eriklp.com>
2023-06-15 15:04:51 -07:00
Reinier van der Leer
9943c58fba Fix test_make_agent 2023-06-15 23:59:15 +02:00
Reinier van der Leer
244393e4ef Add fallback token limit in llm.utils.create_chat_completion 2023-06-15 23:11:52 +02:00
merwanehamadi
a30e5a85b2 Remove write_tests command (#4707)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Erik Peterson <e@eriklp.com>
2023-06-15 13:32:20 -07:00
merwanehamadi
512d7ba208 Remove analyze_code (#4705)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Erik Peterson <e@eriklp.com>
2023-06-15 12:55:50 -07:00
Erik Peterson
195a7fcad8 Refactor module layout of command classes (#4706) 2023-06-15 11:34:41 -07:00
Reinier van der Leer
12588b6483 Fix openai.py linting errors 2023-06-15 18:50:26 +02:00
Reinier van der Leer
426cfef882 Unpin OpenAI model versions in model info mapping 2023-06-15 18:19:03 +02:00
merwanehamadi
3525a4b6db Count tokens with tiktoken (#4704)
* Update OpenAI model info and remove duplicate modelsinfo.py (#4700)

* Update OpenAI model info and remove duplicate modelsinfo.py

* Fix max_tokens for gpt-4-0613

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Update count_message_tokens to support new OpenAI models

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Fix error message in count_message_tokens

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Erik Peterson <e@eriklp.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-15 09:09:59 -07:00
Reinier van der Leer
f0a5250da5 Implement loading MemoryItems from file in JSONFileMemory (#4703)
Further changes:
* remove `init` param from `get_memory()`, replace usages by `memory.clear()`
* make token length calculation optional in `MemoryItem.dump()`
2023-06-15 17:45:14 +02:00
Reinier van der Leer
a1e5be7077 Update OpenAI model info and remove duplicate modelsinfo.py (#4700)
* Update OpenAI model info and remove duplicate modelsinfo.py

* Fix max_tokens for gpt-4-0613
2023-06-15 08:14:24 -07:00
Reinier van der Leer
bbaa5b89c2 Add CI trigger for release-* branches 2023-06-15 13:16:25 +02:00
James Collins
6e6e7fcc9a Extract openai API calls and retry at lowest level (#3696)
* Extract open ai api calls and retry at lowest level

* Forgot a test

* Gotta fix my local docker config so I can let pre-commit hooks run, ugh

* fix: merge artiface

* Fix linting

* Update memory.vector.utils

* feat: make sure resp exists

* fix: raise error message if created

* feat: rename file

* fix: partial test fix

* fix: update comments

* fix: linting

* fix: remove broken test

* fix: require a model to exist

* fix: BaseError issue

* fix: runtime error

* Fix mock response in test_make_agent

* add 429 as errors to retry

---------

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-14 07:59:26 -07:00
Luke K (pr-0f3t)
a5544a06e1 Merge branch 'stable' into Release-v0.4.1 2023-06-14 07:45:58 -03:00
gravelBridge
c17d825bba Remove urls tts macos (#4260)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
2023-06-14 07:43:06 -03:00
Richard Beales
c76c67a69c Introduce method to ignore unexpected command params (#3570)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: Luke K <2609441+lc0rp@users.noreply.github.com>
2023-06-14 06:03:11 -03:00
Erik Peterson
49d1a5a17b Rework plugin config to be file-based (#4673) 2023-06-13 20:54:55 -07:00
merwanehamadi
0c8f2cfd1c Fix autogpt docker image not working because missing prompt_settings (#4680)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-06-13 20:18:39 +01:00
merwanehamadi
3df8c1b501 Make benchmarks create cassettes without using them (#4664) 2023-06-13 11:29:20 -07:00
Auto-GPT-Bot
857c330d58 Update challenge scores 2023-06-13 16:59:27 +00:00
Erik Peterson
07d9b584f7 Correct and clean up JSON handling (#4655)
* Correct and clean up JSON handling

* Use ast for message history too

* Lint

* Add comments explaining why we use literal_eval

* Add descriptions to llm_response_format schema

* Parse responses in code blocks

* Be more careful when parsing in code blocks

* Lint
2023-06-13 09:54:50 -07:00
Kinance
7bf39cbb72 Include the token length of the current summary (#4670)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-12 16:29:11 -07:00
Reinier van der Leer
f277e6aa2d Strip spaces from the end of truncated ai_name in log_cycle.py (#4672) 2023-06-12 15:14:15 -07:00
merwanehamadi
d5afbbee26 Add challenge name and level to pytest logs (#4661) 2023-06-12 08:03:14 -07:00
Reinier van der Leer
a9d177eeeb Remove unused function split_file from file_operations.py (#4658) 2023-06-12 02:20:39 +02:00
Kinance
ff46c16805 Remove extra spaces in summarization prompt (#4660)
* Implement Batch Running Summarization to avoid max token error (#4652)

* Fix extra space in prompt

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-12 02:13:47 +02:00
Reinier van der Leer
62dd1675a0 Add basic Netlify config (#4662) 2023-06-12 02:00:57 +02:00
David
e60dfca9fc Fix run.sh shebang (#4561)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-12 01:44:18 +02:00
digger yu
a7faab32fe Fix typo in docs/setup.md (#4613)
fix typo: depedencies -> dependencies

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-12 01:17:48 +02:00
merwanehamadi
2ce6ae6707 Change memory challenge expectations (#4657) 2023-06-11 14:34:02 -07:00
Erik Peterson
fd04db12fa Use prompt_toolkit to enable keyboard navigation in CLI (#4649)
* Use prompt_toolkit to enable keyboard navigation in CLI

* Also update other tests

---------

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-11 14:19:42 -07:00
Kinance
bc5dbb6692 Implement Batch Summarization in MessageHistory Class to manage context length under model's token limit (#4652)
* Implement Batch Running Summarization to avoid max token error

* Rename test func
2023-06-11 13:04:41 -07:00
merwanehamadi
9150f32f8b Fix benchmark logs (#4653) 2023-06-11 15:34:57 +01:00
merwanehamadi
6fb9b6d03b Retry regression tests (#4648) 2023-06-11 15:21:26 +01:00
Auto-GPT-Bot
4e621280bb Update cassette submodule 2023-06-10 22:51:23 +00:00
Erik Peterson
0594ba33a2 Pass agent to commands instead of config (#4645)
* Add config as attribute to Agent, rename old config to ai_config

* Code review: Pass ai_config

* Pass agent to commands instead of config

* Lint

* Fix merge error

* Fix memory challenge a

---------

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-10 15:48:50 -07:00
merwanehamadi
097ce08908 Create benchmarks.yml (#4647) 2023-06-10 15:11:24 -07:00
merwanehamadi
c1ee8cb62e Upload logs as artifacts (#4640) 2023-06-10 15:07:02 -07:00
Erik Peterson
6b9e3b21d3 Add config as attribute to Agent, rename old config to ai_config (#4638)
* Add config as attribute to Agent, rename old config to ai_config

* Code review: Pass ai_config

---------

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-10 14:47:26 -07:00
Erik Peterson
15c6b0c1c3 Implement directory-based plugin system (#4548)
* Implement directory-based plugin system

* Fix Selenium test

---------

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-10 13:16:00 -07:00
DGdev91
6ff8478118 Add settings for custom base url (#2594)
* Add settings for custom base url and embedding dimension

Making the openai base url and embedding dimension configurable, these are useful to integrate AutoGPT with other models, like LLaMA

* Update to milvus.py to load the configuration also in the init_collection function

* Update radismem.py to get rid of Config() loading

* Update local.py to get rid of Config() loading

* Correct code format (python black)

* Revert DEFAULT_EMBED_DIM name to EMBED_DIM to keep tests  valid

* Better description for EMBED_DIM setting

* Set MockConfig to the type Config in Milvus test

* Fix formatting

* Update Milvus test, using Config() instead of building a mock config

* using the last milvus test code from main

* Remove embed_dim , no more needed after #4208

* Add example for OPENAI_BASE_URL

---------

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-10 13:57:42 +02:00
merwanehamadi
3c51ff501f dcrement memory challenge c (#4639) 2023-06-09 20:46:06 -07:00
Auto-GPT-Bot
f5a447308d Update cassette submodule 2023-06-10 00:29:33 +00:00
Erik Peterson
fdca233fe3 Fix prompt issue causing 'No Command' issues and challenge to fail (#4623)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-09 17:25:03 -07:00
Auto-GPT-Bot
3f2547295f Update cassette submodule 2023-06-09 22:31:11 +00:00
Erik Peterson
5fe600af9d Clean up and fix issues with env configuration and .env.template (#4630)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-09 15:28:30 -07:00
merwanehamadi
3081f56ecb Quicker logs in pytest (#4486) 2023-06-09 15:18:56 -07:00
Auto-GPT-Bot
923c67e92a Update cassette submodule 2023-06-09 22:06:01 +00:00
javableu
474a9c4d95 False believes challenge based on sally anne test. (#4167)
* False believes challenge based on sally anne test.

* Update test_memory_challenge_d.py

* Update challenge_d.md

Some text appearing in bold

* Update test_memory_challenge_d.py

* Update test_memory_challenge_d.py

* Update test_memory_challenge_d.py

* Update test_memory_challenge_d.py

black  test_memory_challenge_d.py

* Update test_memory_challenge_d.py

replaced the dynamic time depending of the level to a fix time

* Update test_memory_challenge_d.py

isort command for the libraries

* Refactored memory challenge a

---------

Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-06-09 15:02:41 -07:00
Erik Peterson
ff4e53d0e6 Streamline / clarify shell command control configuration (#4628)
* Streamline / clarify shell command control configuration

* Fix lint
2023-06-09 11:48:20 -07:00
Erik Peterson
cce50bef50 Fix issues with information retrieval challenge a (#4622)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-09 11:02:52 -07:00
Auto-GPT-Bot
8215039785 Update cassette submodule 2023-06-09 17:46:06 +00:00
Erik Peterson
94280b2d14 Add command for directly executing python code (#4581)
* Add command for directly executing python code

* Fix docstring

* Clarify / update filename references

---------

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-06-09 10:40:32 -07:00
merwanehamadi
3d06b2e4c0 Decrement information retrieval challenge a (#4637) 2023-06-09 10:02:03 -07:00
merwanehamadi
12ed5a957b Fix debug code challenge (#4632) 2023-06-09 08:40:06 -07:00
merwanehamadi
3b0d49a3e0 Make test write file hard (#4481) 2023-06-09 07:50:57 -07:00
merwanehamadi
bd2e26a20f Inform users that challenges can be flaky (#4616)
* Inform users that challenges can be flaky

* Update challenge_decorator.py
2023-06-09 07:43:56 -07:00
merwanehamadi
f4505add69 Set proxy headers as secrets (#4620) 2023-06-07 19:39:07 -07:00
Stefan Ayala
1e851ba3ea Feat set token limits based on model (#4498)
* feat: set max token limits for better user experience

* fix: use OPEN_AI_CHAT_MODELS max limits

* fix: use the old default of 8000

* fix: formatting so isort/black checks pass

* fix: avoid circular dependencies

* fix: use better to avoid circular imports

* feat: introduce soft limits and use them

* fix: circular import issue and missing field

* fix: move import to avoid overriding doc comment

* feat: DRY things up and set token limit for fast llm models too

* tests: make linter tests happy

* test: use the max token limits in config.py test

* fix: remove fast token limit from config

* feat: remove smart token limit from config

* fix: remove unused soft_token_limit var

* fix: remove unneeded tests, settings aren't in config anymore

---------

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-07 10:16:53 +02:00
Nicholas Tindle
dae58f8167 Update .gitignore (#4610) 2023-06-07 01:46:09 -05:00
Marc Bornträger
c9f1f050af feat: log new-line so user can differentiate sections better in console (#1569)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
2023-06-07 00:32:43 -05:00
Robin Richtsfeld
624af3945c Update .gitignore (#882)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-06-07 00:12:12 -05:00
Jan
463dc54733 Clean up apt cache in docker build (#2821)
* Dockerfile: reduce layer bloat

* Re-separate layers

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-07 03:14:47 +02:00
Erik Peterson
fdc6e12945 Improve logic and error messages for file reading and writing with Python code (#4567)
* Fix issues with file reading and writing with Python code

* Change error message, use Workspace.get_path

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-07 02:54:02 +02:00
Reinier van der Leer
20a4922b40 Increase thresholds for PR autolabeler (#4602) 2023-06-06 16:37:43 -07:00
merwanehamadi
1b04e5cafc Fix duckduckgo rate limiting (#4592)
* Fix duckduckgo rate limiting

* use list instead of loop

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-07 01:20:52 +02:00
Auto-GPT-Bot
835decc6c1 Update challenge scores 2023-06-06 21:48:57 +00:00
merwanehamadi
53efa8f6bf Update cassette submodule & fix current_score.json generation (#4601)
* Update cassette submodule

* add a new line when building current_score.json
2023-06-06 23:46:41 +02:00
Erik Peterson
055806e124 Fix inverted logic for deny_command (#4563) 2023-06-06 22:56:17 +02:00
Reinier van der Leer
dafbd11686 Rearrange tests & fix CI (#4596)
* Rearrange tests into unit/integration/challenge categories

* Fix linting + `tests.challenges` imports

* Fix obscured duplicate test in test_url_validation.py

* Move VCR conftest to tests.vcr

* Specify tests to run & their order (unit -> integration -> challenges) in CI

* Fail Docker CI when tests fail

* Fix import & linting errors in tests

* Fix `get_text_summary`

* Fix linting errors

* Clean up pytest args in CI

* Remove bogus tests from GoCodeo
2023-06-06 10:48:49 -07:00
Auto-GPT-Bot
8a881f70a3 Update cassette submodule 2023-06-06 14:35:43 +00:00
merwanehamadi
ee6b97ef5e Fix Python CI "update cassettes" step (#4591)
* Fix updated cassettes step

* Clarifications

* Use github.ref_name instead of github.ref

* Fix duplicate runs on `master`

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-06 16:27:08 +02:00
Auto-GPT-Bot
60ac0c4da1 Update challenge scores 2023-06-05 14:39:45 +00:00
Reinier van der Leer
53add7b594 Sync release v0.4.0 back into master (#4585) 2023-06-05 16:31:21 +02:00
Reinier van der Leer
576f24e3ae Merge branch 'master' into release-0.4.0 2023-06-05 16:08:35 +02:00
Reinier van der Leer
25a7957bb8 Release v0.4.0 (#4539) 2023-06-05 16:05:49 +02:00
Reinier van der Leer
3dbc377308 Update version numbers for v0.4.0 release 2023-06-04 20:05:57 +02:00
Benny van der Lans
74e8a886e6 Add replace_in_file command (#4565)
Resubmission of #3643

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-06-04 19:37:35 +02:00
Reinier van der Leer
120fe762df Update bulletin with highlights for v0.4.0 release (#4576) 2023-06-04 19:31:58 +02:00
merwanehamadi
59d31b021d Skip flaky challenges (#4573) 2023-06-04 18:20:13 +02:00
merwanehamadi
af28510aba Fix test_web_selenium (#4554) 2023-06-04 16:38:32 +02:00
Reinier van der Leer
84e58051fa Clean up CI git logic 2023-06-04 16:01:40 +02:00
Merwane Hamadi
02846fcf91 remove information retrieval challenge b from beaten challenges 2023-06-03 21:24:36 -07:00
Merwane Hamadi
0a20fa4fdf Fix CI git authentication and cassettes 2023-06-03 21:19:58 -07:00
Reinier van der Leer
c4e2d8fbdd debug 2023-06-04 03:28:26 +02:00
Reinier van der Leer
3e5868f223 Fix CI git diff 2023-06-04 02:40:51 +02:00
Reinier van der Leer
4c11b21dff Fix CI git authorization 2023-06-04 02:01:35 +02:00
Auto-GPT-Bot
378126822f Update submodule reference 2023-06-03 14:51:55 +00:00
Auto-GPT-Bot
55a8e242b0 Update current score 2023-06-03 14:51:53 +00:00
merwanehamadi
79ba85a22e Cache Python Packages in the CI pipeline (#4488) 2023-06-03 15:48:32 +01:00
Reinier van der Leer
ce44012866 Fix pushing cassettes in CI 2023-06-02 23:27:15 +02:00
merwanehamadi
4cc6e27f02 Remove news about config (#4553) 2023-06-02 23:09:16 +02:00
Reinier van der Leer
9156db41a1 Merge remote-tracking branch 'origin/stable' into release-0.4.0 2023-06-02 22:58:50 +02:00
Reinier van der Leer
9247f9480c Fix CI for internal PRs with CI changes (#4552)
* Port fixed CI workflow from master

* Trigger CI

* Improve CI concurrency check
2023-06-02 13:49:05 -07:00
Richard Beales
fc0688673e Update BULLETIN.md 2023-06-02 12:08:33 +01:00
Reinier van der Leer
15c157343d Remove Redis memory configuration from docker-compose configs 2023-06-01 23:23:57 +02:00
Reinier van der Leer
3fffe65a3b Update bulletin for v0.4.0 2023-06-01 17:01:30 +02:00
kaneda2004
63b79a88c6 Adding support for openai_organization env variable (#289) 2023-05-30 19:02:16 -07:00
merwanehamadi
9e9b128b72 ignore cassettes and current score for all push events in github action (#4485) 2023-05-30 19:16:49 -05:00
Auto-GPT-Bot
64973bfe12 Update submodule reference 2023-05-30 23:33:40 +00:00
Auto-GPT-Bot
41df0204f3 Update current score 2023-05-30 23:33:38 +00:00
Douglas Schonholtz
f6ee61d607 create debug challenge (#4286)
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: symphony <john.tian31@gmail.com>
2023-05-30 16:28:32 -07:00
merwanehamadi
87776b2886 Make the information retrieval challenge a harder while still passing (#4468) 2023-05-30 15:56:58 -07:00
merwanehamadi
86b6231f70 ignore push if current score changed (#4482) 2023-05-30 12:23:49 -07:00
Auto-GPT-Bot
387f65c16c Update submodule reference 2023-05-30 19:15:33 +00:00
Auto-GPT-Bot
4c25fabec9 Update current score 2023-05-30 19:15:30 +00:00
merwanehamadi
6806b66509 Information retrieval challenge (#4456)
* test: add information retrieval challenge b

* test: get information retrieval challenge be working.

* chore: clean up comments and imports.

* chore: fix incorrect import

* chore: clean up imports.

* fix: add web_selenium cmd. resolve missing loop cycle

* chore: remove commented code and unused imports.

* fix (4261): use 2 cycles instead of 3

* chore: fix mypy formatting

* chore: try 2 for mypy formatting

* chore: resolve flake8 issues

* chore: add docs

* chore: resolve linting flake8

* chore: correct formatting to black

* Update challenge_b.md

* refactored challenge

---------

Co-authored-by: PortlandKyGuy <kyleaaron1@gmail.com>
2023-05-30 12:10:49 -07:00
Erik Peterson
b56352e218 Fix #4461: Don't record error requests in challenges (#4469)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-05-30 07:31:45 -07:00
Auto-GPT-Bot
d3a1770dc0 Update submodule reference 2023-05-30 13:03:41 +00:00
merwanehamadi
22429c6e98 add vcr to dalle (#4474) 2023-05-30 06:00:37 -07:00
Auto-GPT-Bot
56650b60f4 Update current score 2023-05-30 02:33:34 +00:00
merwanehamadi
ba8046753e Update current score when PR merged (#4464) 2023-05-29 19:30:41 -07:00
merwanehamadi
d34b8a2b61 Replace 'prompt change' with 'behavior change' (#4473)
* Replace 'prompt change' with 'behavior change'

* replaced behavior by behaviour

* fixed typo on behaviour
2023-05-30 03:01:46 +01:00
Luke K (pr-0f3t)
1446ffddb0 Fix #942: Respect --gpt4only, --gpt3only cli args (#3144)
Co-authored-by: Luke K <KayLuke@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-29 20:10:51 +03:00
Kinance
1ddf2324ff Improve the steps for running docker compose in the setup documentation (#4462)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-29 19:24:38 +03:00
Auto-GPT-Bot
b5d78a48a7 Update submodule reference 2023-05-29 15:29:31 +00:00
merwanehamadi
1127d9c5f5 Master doesn't beat memory challenge b level 1 in a consistent manner (#4460) 2023-05-29 18:25:45 +03:00
merwanehamadi
31cd836530 "Beat Challenges" Mode (#4447)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-29 08:47:06 +01:00
Toran Bruce Richards
daafda320b Update README.md
Remove outdated reference to En_GPT
2023-05-29 15:28:57 +12:00
merwanehamadi
ee9f10a8d8 remove unused imports automatically (#4449)
* remove unused imports automatically

* add linters to pr template

* remove useless try statement
2023-05-28 05:50:50 -07:00
Auto-GPT-Bot
78774526f4 Update submodule reference 2023-05-28 01:30:02 +00:00
merwanehamadi
44f6d946f5 fix information retrieval challenge (#4448) 2023-05-27 18:26:30 -07:00
Ryan Johns
03036c1bd6 Added three more tests to check for edge cases in URL validation (#4441)
Co-authored-by: Ryan Johns <rkjohns@verisk.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-27 18:58:38 +03:00
Kinance
4b7fa7f49d Fix typo and links in documentation (#4440) 2023-05-27 10:52:38 +01:00
Toran Bruce Richards
e05c000615 Update README.md
Update Sponsors
2023-05-27 09:05:58 +12:00
k-boikov
064e95b46b Allow spinning to be disabled (#4329) 2023-05-27 00:01:34 +03:00
merwanehamadi
e7c0d3330c Create cassette submodule (#4420)
* gfeat: specify directory of cassettes and automatically load them depending on module

fix: formatting for linter

test: commit newly generated cassettes to their respective folder

tests: update latest fixtures with master

fix: update .gitattributes with updated path to cassettes

fix: use cassettes from master instead of generating them myself

fix: update path in .gitattributes

fix: make sure to match default functionality by using test name for cassette directory

fix: actually add git submodule

ci: checkout git submodules in CI

ci: update git submodules separately to ensure it gets called

feat: add a hooks directory so we can update git submodules on post-checkout

feat: make sure we push the tests/cassettes submodule on merge into master

ci: remove unused code now that we are using git submodules to keep cassettes in sync

fix: simplify how we load the submodule and fix updating cassettes on merge to master

chore: remove echo of checkout hook, it's unneeded

ci: remove unneccesary step

* cassettes submodule

* cassettes submodule

* cassettes submodule

* cassettes submodule

* cassettes submodule

---------

Co-authored-by: Stefan Ayala <stefanayala3266@gmail.com>
2023-05-26 12:33:49 -07:00
merwanehamadi
6c45fcd067 remove cassettes auto commit (#4432) 2023-05-26 11:02:40 -07:00
Nicholas Tindle
acfd966aa4 Pass Configs to Commands and remove CFG = Config() in the commands/ folder (#4328)
* feat: pass config to call_ai_functions in coimmands

* feat: config for read_audio_from_file

* feat: file operations cfg

NOTE: we replaced the CFG in the command enable with TRUE b/c not sure how to handle this yet

* feat: git command conversion

* feat: google search

* feat: image generation

* feat: extract cfg from browser commands

* feat: remove cfg from execute code commands

* fix: file operation related tests

* fix: linting

* fix: tests for read_audio

* fix: test error

* feat: update cassettes

* fix: linting

* fix: test typechecking

* fix: google_search errors if unexpected kw arg is passed

* fix: pass config param to google search test

* fix: agent commands were broken + cassettes

* fix: agent test

* feat: cassettes

* feat: enable/disable logic for commands

* fix: some commands threw errors

* feat: fix tests

* Add new cassettes

* Add new cassettes

* ci: trigger ci

* Update autogpt/commands/execute_code.py

Co-authored-by: Reinier van der Leer <github@pwuts.nl>

* fix prompt

* fix prompt + rebase

* add config remove useless imports

* put back CFG just for download file

* lint

* The signature should be mandatory in the decorator

* black isort

* fix: remove the CFG

* fix: non typed arg

* lint: type some args

* lint: add types for libraries

* Add new cassettes

* fix: windows compatibility

* fix: add config access to decorator

* fix: remove twitter mention

* DDGS search works at 3.0.2 version

* ci: linting

---------

Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: kinance <kinance@gmail.com>
2023-05-26 08:39:25 -07:00
k-boikov
f07fcdf0a7 Pull auto-gpt-plugin-template from GitHub instead of PyPI (#4402)
* switch from pypi to github for auto-gpt-plugin-template

* adapt tests to new plugin interface
2023-05-26 14:48:36 +02:00
k-boikov
d3fc8c4286 add 30 min timeout for tests (#4416) 2023-05-25 16:15:27 -07:00
k-boikov
ddf59273e6 Remove obsolete full_message_history kwarg from tests (#4411) 2023-05-25 22:00:52 +03:00
Reinier van der Leer
bfbe613960 Vector memory revamp (part 1: refactoring) (#4208)
Additional changes:

* Improve typing

* Modularize message history memory & fix/refactor lots of things

* Fix summarization

* Move memory relevance calculation to MemoryItem & improve test

* Fix import warnings in web_selenium.py

* Remove `memory_add` ghost command

* Implement overlap in `split_text`

* Move memory tests into subdirectory

* Remove deprecated `get_ada_embedding()` and helpers

* Fix used token calculation in `chat_with_ai`

* Replace Message TypedDict by dataclass

* Fix AgentManager singleton issues in tests

---------

Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
2023-05-25 20:31:11 +02:00
Kinance
10489e0df2 Fix duckduckgo-search to 3.0.2 stable version (#4405) 2023-05-25 19:10:48 +03:00
Pi
6e14782f82 Re-point wiki link in PULL_REQUEST_TEMPLATE.md 2023-05-25 16:00:29 +01:00
Pi
2a6f01aae2 Re-point wiki link in 2.feature.yml 2023-05-25 15:59:50 +01:00
Pi
1ab3a40f03 Repoint to wiki page 1.bug.yml 2023-05-25 15:59:04 +01:00
Pi
e3e9a8121c Re-point link to wiki in CONTRIBUTING.md
Also update text
2023-05-25 15:57:06 +01:00
Nicholas Tindle
43565b280f Remove Twitter Command (#4381) 2023-05-24 22:40:30 -05:00
Kinance
5168cb5219 Migrate google search to use DDGS.text function (#4383) 2023-05-24 19:36:23 +03:00
merwanehamadi
438d3e489b empty commit to see cassette status (#4382)
* empty commit

* Add new cassettes

* empty commit

---------

Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
2023-05-24 09:13:22 -07:00
Kinance
d4d50fda7c Fix the version of duckduckgo-search to avoid empty result issue (#4368) 2023-05-23 18:00:25 +03:00
Sicong Zhao
a8af3313c1 Update get_hyperlinks description (#4122)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Auto-GPT-Bot <github-bot@agpt.co>
2023-05-23 16:47:58 +03:00
merwanehamadi
9c7f5671e6 CI: set base repo before gh pr checkout (#4363) 2023-05-23 14:23:03 +02:00
merwanehamadi
3a2800bcdd Cassettes should be added in the same pull request, without extra pull request (#4355)
* fix ci

* fix ci

* add only what we need

* Updated ci.yml to inform about challenge score

* Updated ci.yml to inform about challenge score

---------

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-22 20:03:23 -07:00
Nicholas Tindle
cc709bbbaa Improve Azure setup wording in docs (#4325)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-23 00:51:52 +03:00
Robin Richtsfeld
77ee9f8119 Pass command line args as list (#1486)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-22 22:53:31 +03:00
Reinier van der Leer
3e24d312d3 Create data folder in Docker release build (#4347) 2023-05-22 13:00:31 +02:00
k-boikov
360d5cd577 Prevent docker compose to break config by creating folders (#4125) 2023-05-22 13:36:20 +03:00
Benny van der Lans
dcb1cbe5d6 Update 1.bug.yml to improve consistency of data (#4293)
* Update 1.bug.yml to improve consistency of data

in this version of the bug report several dropdown fileds have been added and text fields have been removed to have better control over the data being sent in bug reports

* Update 1.bug.yml fixing indent error

fixing of an indent error

* Update 1.bug.yml

changed the file uploads to input fields for the log contents since files are not supported on github

* Update 1.bug.yml

made the issue field required

* Update 1.bug.yml

Added changes according to luke's comments

---------

Co-authored-by: Pi <sunfish7@gmail.com>
2023-05-22 00:15:10 +01:00
sherif-med
31525dfef7 Text file loaders (#3031)
* adding requiered packages for loading pdf, docx, md, tex files (preferably pure python packages)

* adding text file utils providing function to load file based on extension && adding read_text_file command

* adding test cases for text file loading (pdf file creation is hardcoded due to external package requierment for creation (a sample file can be added))

* formatting

* changing command name from 'read_text_file' to 'parse_text_document'

* fallback to txtParser if file extension is not known to read script and code files

* adding extension respective parsers

* adding binary file check function

* adding file existance check && raising valueError for unsupported binary file formats

* adding check file type (binary) in test_parsers for specific extensions && fixing mock pdf generation to include null bytes

* adding .yml extension parser

* removal of .doc parser

* updating file loading commands names

* updating test (removing .doc mock function)

* fix: import sort

* new cassette for mem A

* feat: update Cassettes

* feat: consolidate commands

* feat: linting

* feat: updates to cassettes

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-21 14:48:40 -05:00
Nameless Dude
e1c6778c3a Update README.md (#4333) 2023-05-21 21:26:45 +03:00
k-boikov
bcc32cc441 Fix split_file when overlap = 0, add test (#3599)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-20 20:20:03 -05:00
Konrad
57ea7b5216 Fixed #4229 (#4278)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-21 02:45:27 +03:00
Nicholas Tindle
c30f5b7d5e fix: completion was being called with wrong data types (#4324) 2023-05-20 18:04:57 -05:00
Luke K (pr-0f3t)
023a50d26b Adding devcontainer extensions (#4181)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-20 15:51:01 -05:00
GoCodeo
7e21f38185 Added unittest cases for commands/audio_text.py (#4307)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-19 20:18:32 +01:00
Reinier van der Leer
c3f7916dfd Clean up BULLETIN.md (#4305)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Pi <sunfish7@gmail.com>
2023-05-19 19:51:36 +01:00
Omri Grossman
a08fc850f0 Used a regex expression for simple URL validation and added tests (#3763)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-19 19:47:04 +01:00
WladBlank
bf33f4a7b0 add command shell blacklist and whitelist (#3950)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-19 18:50:43 +01:00
John Cole
a6d4deaf20 Update setup.md (#3690)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-19 18:39:12 +01:00
Trajan Wiley-Jimenez
ccc03c1a8d Enabling/disabling none/all of plugins from .env file (#4036)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-19 20:33:14 +03:00
Luke K (pr-0f3t)
ee98641210 Imagegen delay retry huggingface (#4194)
Co-authored-by: Kory Becker <kbecker@primaryobjects.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-19 20:19:39 +03:00
Reinier van der Leer
812be60d2a Delete sponsors_readme.yml workflow (#4304) 2023-05-19 18:07:48 +03:00
GoCodeo
f13aba0958 Added unittest cases for commands/analyze_code.py file (#4212)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-19 12:33:02 +03:00
Luke K (pr-0f3t)
5b4bcf1a04 Prevent test collection errors in devcontainer (#4180)
Co-authored-by: desojo <ethan.johnson1997@outlook.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-19 00:22:16 +03:00
Alex Kissi Jr
e2851dc73f Incremented Version BULLETIN.md (#4236) 2023-05-18 01:31:43 -05:00
Media
c4b32e067c switching from unittest to pytest in test_json_parser (#3481) 2023-05-18 00:58:08 -05:00
Toran Bruce Richards
dc41db9522 Update README.md 2023-05-18 15:45:58 +12:00
Toran Bruce Richards
0b39b92bde Update README.md 2023-05-18 15:41:17 +12:00
Zorinik
19767ca4a4 Logs output to console if we're not on speak mode (#3715)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-17 22:17:33 +03:00
DGdev91
42a5a0ce13 Make prompt parameters configurable (#3375)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-17 20:12:10 +03:00
merwanehamadi
1c399e67f4 Add $ to timestamp in ci.yml and improve diff (#4266) 2023-05-17 17:52:52 +01:00
Andres Caicedo
7508e9941f Implement Logging of Self-Feedback in logs/Debug Folder (#3868)
* Adds SELF_FEEDBACK_FILE_NAME

* Add self-feedback logging to logs/Debug folder

* Reformatting

* Uses JSON file

* Update agent.py

Changes position

* Update agent.py

* Adds PROMPT_FEEDBACK_FILE_NAME

* Update agent.py

* Update agent.py

* Reformatting

* Update agent.py

* Update agent.py

* Changes file names

* Update agent.py

* Reformatting

* Update agent.py

* Changes conts names

* Update agent_manager.py

* Update agent_manager.py

* HARD reset

* Update test_get_self_feedback.py

* Update test_get_self_feedback.py

---------

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-05-17 04:38:42 -07:00
Richard Beales
feae20d8fa Update PULL_REQUEST_TEMPLATE.md to include linting (#3625)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-16 23:24:57 -05:00
Boostrix
7c71b43d42 mention docker rebuild is necessary if changing requirements.txt (#4136)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-16 22:30:38 -05:00
k-boikov
2cd835e5a4 Added custom_search_engine_id as mandatory for official google search (#4228)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-16 22:20:02 -05:00
Boostrix
1c96a5acf7 encourage people to use a separate user account w/o VM/docker (#3961)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
2023-05-16 22:13:14 -05:00
merwanehamadi
55af3e19b4 CI Pipeline: create cassettes in fork (#4257)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-16 21:49:12 -05:00
Richard Beales
52874cc442 Update README.md - make stable branch less shouty (#3702)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-16 21:38:36 -05:00
amokduke
627aeb20a2 Adds check for Python 3.10 and print error message if required version not detected. (#3598)
* Updated run script to check for Python 3.10 and above, and provide informative error messages for unsupported versions.

* Updated run script to check for Python 3.10 and above, and provide informative error messages for unsupported versions.

---------

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-05-16 08:14:24 -07:00
Kory Becker
f424fac1d8 Huggingface retry generate_image with delay (#2745)
Co-authored-by: Media <12145726+rihp@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by; lc0rp
2023-05-16 10:02:55 -05:00
Stefan Ayala
c1cd54d1ea Allow absolute paths if contained in workspace (#3932)
Maybe I'm missing something but I don't see the harm of accessing an absolute path if it's contained in the workspace

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-16 17:10:33 +03:00
Cenny
0839a16d27 Clarify .env.template image-provider options (#3720)
* Clarify .env.template image-provider options

* feat: consolidate duplicate options

* Simplify

---------

Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-16 12:07:32 +03:00
Nicholas Tindle
cb2b13dff6 Legal warning on continuous run (#4239)
* feat: legal warning on continuous

* fix: formatting

* ci: fix formatting
2023-05-16 11:46:20 +03:00
Malahieude Timothé
85fe6f36c2 Fix ai_name not passed to Agent (#3948)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-15 23:20:14 -05:00
merwanehamadi
517c080544 fix ci cassettes (#4234)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-15 22:43:21 -05:00
gravelBridge
c04f2210cc Added feature to interrupt y -N continuous commands. (#4230)
* Added feature to interrupt y -N continuous commands.

* Fixed formatting.

---------

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-15 20:02:33 -07:00
merwanehamadi
6c4426d8e6 Refactor challenges to use cycle count instead of time (#4222)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-15 21:44:36 -05:00
Boostrix
17c45ee53a Show workspace during startup / fix for #2793 (#4082)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-16 02:34:48 +03:00
Boostrix
3c80e05e00 Improve error message by providing the name of the env file (#3964)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-16 02:26:13 +03:00
k-boikov
cf35112291 Fixed error in safe_google_results, added tests (#3606) 2023-05-15 20:54:40 +01:00
k-boikov
d06d8a609f Fix commands with same name overwriting (#4226) 2023-05-15 19:41:11 +01:00
Richard Beales
16b7e7a91e Update prompt.py to clarify how to call commands (#4027)
* Update prompt.py to clarify how to call commands

* new cassettes

* try again with a new cassette

* one last try with the cassette

* black dot

---------

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-15 15:55:33 +03:00
Reinier van der Leer
1a2f7684bc Patch CI proxy 2023-05-15 14:35:35 +02:00
Pi
19e642259c Sync stable into master after v0.3.1 release (#4203) 2023-05-15 13:06:31 +01:00
Pi
3d494f1032 Merge branch 'master' into stable 2023-05-15 12:58:10 +01:00
Richard Beales
dda8d0f6bf Release 0.3.1 (#4201)
* Feature/tighten up ci pipeline (#3700)

* Fix docker volume mounts (#3710)

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>

* Feature/enable intuitive logs for community challenge step 1 (#3695)

* Feature/enable intuitive logs summarization (#3697)

* Move task_complete command out of prompt (#3663)

* feat: move task_complete command out of prompt

* fix: formatting fixes

* Add the shutdown command to the test agents

* tests: update test vcrs

---------

Co-authored-by: James Collins <collijk@uw.edu>

* Allow users to Disable Commands via the .env (#3667)

* Document Disabling command categories (#3669)

* feat: move task_complete command out of prompt

* fix: formatting fixes

* feat: add command disabling

* docs: document how to disable command categories

* Enable denylist handling for plugins (#3688)

Co-authored-by: Luke Kyohere <lkyohere@mfsafrica.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>

* Fix call to `plugin.post_planning` (#3414)

Co-authored-by: Nicholas Tindle <nick@ntindle.com>

* create information retrieval challenge a (#3770)

Co-authored-by: Richard Beales <rich@richbeales.net>

* fix typos (#3798)

* Update run.bat (#3783)

Co-authored-by: Richard Beales <rich@richbeales.net>

* Update run.sh (#3752)

Co-authored-by: Richard Beales <rich@richbeales.net>

* ADD: Bash block in the contributing markdown (#3701)

Co-authored-by: Richard Beales <rich@richbeales.net>

* BUGFIX: Selenium Driver object reference was included in the browsing results for some reason (#3642)

* * there is really no need to return the  reference to the Selenium driver along with the text summary and list of links.

* * removing unused second return value from browse_website()

* * updated cassette

* * updated YAML cassette for test_browse_website

* * after requirements reinstall, another update YAML cassette for test_browse_website

* * another update YAML cassette for test_browse_website, only as a placholder commit to trigger re-testing due to some docker TCP timeout issue

* * another update YAML cassette for test_browse_website

---------

Co-authored-by: batyu <batyu@localhost>

* Update CONTRIBUTING.md

* Self feedback Improvement (#3680)

* Improved `Self-Feedback`

* minor tweak

* Test: Updated `test_get_self_feedback.py`

* community challenges in the wiki (#3764)

* Update README.md

* Update PULL_REQUEST_TEMPLATE.md

Added link to wiki Contributing page

* Add link to wiki Contributing page

* fix

* Add link to wiki page  on Contributing

* Implement Logging of User Input in logs/Debug Folder (#3867)

* Adds USER_INPUT_FILE_NAME

* Update agent.py

* Update agent.py

Log only if console_input is not the authorise_key

* Reformatting

* add information retrieval challenge to the wiki (#3876)

* add code owners policy (#3981)

* add code owners

* added @ to codeowners

* switched to team ownership

* Memory Challenge C (#3908)

* Memory Challenge C

* Working cassettes

* Doc fixes

* Linting and doc fix

* Updated cassette

* One more cassette try

---------

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>

* memory challenge c inconsistent (#3985)

* Improve & fix memory challenge docs. (#3989)

Co-authored-by: Kaan Osmanagaoglu <kaano@questps.com.au>

* Feature/centralize prompt (#3990)

Co-authored-by: xiao.hu <454292663@qq.com>

* Use correct reference to prompt_generator in autogpt/llm/chat.py (#4011)

* fix typos (#3998)

Co-authored-by: Minfeng Lu <minfenglu@Minfengs-MacBook-Pro.local>
Co-authored-by: Richard Beales <rich@richbeales.net>

* fix typo in the getting started docs (#3997)

Co-authored-by: Richard Beales <rich@richbeales.net>

* Fix path to workspace directory in setup guide (#3927)

Co-authored-by: Nicholas Tindle <nick@ntindle.com>

* document that docker-compose 1.29.0 is minimally required (#3963)

Co-authored-by: Nicholas Tindle <nick@ntindle.com>

* Integrate pytest-xdist Plugin for Parallel and Concurrent Testing (#3870)

* Adds pytest-parallel dependencies

* Implement pytest-parallel for faster tests

* Uses pytest-xdist

* Auto number of workers processes

* Update ci.yml

---------

Co-authored-by: Nicholas Tindle <nick@ntindle.com>

* explain temperature setting in env file (#4140)

Co-authored-by: Richard Beales <rich@richbeales.net>

* Catch JSON error in summary_memory.py (#3996)

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>

* Update duckduckgo dependency - min should be 2.9.5 (#4142)

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>

* Update Dockerfile - add missing scripts and plugins directories. (#3706)

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>

* Updated memory setup links (#3829)

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>

* Parse package versions so upgrades can be forced (#4149)

* parse package versions so upgrades can be forced

* better version from @collijk

* fix typo in autopgt/agent/agent.py (#3747)

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>

* Fix `milvus_memory_test.py` mock `Config` (#3424)

Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>

* Implemented showing the number of preauthorised commands left. #1035 (#3322)

Co-authored-by: mayubi <marwand@ayubi-it.de>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>

* Challenge: Kubernetes and documentation (#4121)

* challenge_kubes_and_readme

* docs

* testing

* black and isort

* revision

* lint

* comments

* blackisort

* docs

* docs

* deleting_cassette

* suggestions

* misspelling_errors

---------

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>

* Make sdwebui tests pass (when SD is running) (#3721)

Co-authored-by: Nicholas Tindle <nick@ntindle.com>

* Add Edge browser support using EdgeChromiumDriverManager (#3058)

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>

* Added --install-plugin-deps to Docker (#4151)

Co-authored-by: Nicholas Tindle <nick@ntindle.com>

* Feature/basic proxy (#4164)

* basic proxy (#54)

* basic proxy (#55)

* basic proxy

* basic proxy

* basic proxy

* basic proxy

* add back double quotes

* add more specific files

* write file

* basic proxy

* Put back double quotes

* test new CI (#4168)

* test new CI

* test new CI

* remove double quotes

* Feature/test new ci pipeline 2 (#4169)

* test new CI

* remove double quotes

* make it a variable

* make it a variable

* Test New CI Pipeline (#4170)

* introduce dummy prompt change

* introduce dummy prompt change

* empty commit

* empty commit

* empty commit

* push to origin repo

* add s to quote

* Feature/fix rate limiting issue Step 1 (#4173)


* temporarilly remove 3.11

* add back 3.11 (#4185)

* Revert "Put back 3.11 until it's removed as a requirement" (#4191)

---------

Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: Peter Petermann <ppetermann80@googlemail.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: James Collins <collijk@uw.edu>
Co-authored-by: Luke K <2609441+pr-0f3t@users.noreply.github.com>
Co-authored-by: Luke Kyohere <lkyohere@mfsafrica.com>
Co-authored-by: Robin Richtsfeld <robin.richtsfeld@gmail.com>
Co-authored-by: RainRat <rainrat78@yahoo.ca>
Co-authored-by: itsmarble <130370814+itsmarble@users.noreply.github.com>
Co-authored-by: Ambuj Pawar <pawar.ambuj@gmail.com>
Co-authored-by: bszollosinagy <4211175+bszollosinagy@users.noreply.github.com>
Co-authored-by: batyu <batyu@localhost>
Co-authored-by: Pi <sunfish7@gmail.com>
Co-authored-by: AbTrax <45964236+AbTrax@users.noreply.github.com>
Co-authored-by: Andres Caicedo <73312784+AndresCdo@users.noreply.github.com>
Co-authored-by: Douglas Schonholtz <15002691+dschonholtz@users.noreply.github.com>
Co-authored-by: Kaan <kaanixir@gmail.com>
Co-authored-by: Kaan Osmanagaoglu <kaano@questps.com.au>
Co-authored-by: xiao.hu <454292663@qq.com>
Co-authored-by: Tomasz Kasperczyk <tomaszikasperczyk@gmail.com>
Co-authored-by: minfeng-ai <42948406+minfenglu@users.noreply.github.com>
Co-authored-by: Minfeng Lu <minfenglu@Minfengs-MacBook-Pro.local>
Co-authored-by: Shlomi <81581678+jit-shlomi@users.noreply.github.com>
Co-authored-by: Itai Steinherz <itaisteinherz@gmail.com>
Co-authored-by: Boostrix <119627414+Boostrix@users.noreply.github.com>
Co-authored-by: Kristian Jackson <kristian.jackson@gmail.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
Co-authored-by: Eduardo Salinas <edus@microsoft.com>
Co-authored-by: prom3theu5 <dave@simcube.co.uk>
Co-authored-by: dominic-ks <contact@bedevious.co.uk>
Co-authored-by: andrey13771 <51243350+andrey13771@users.noreply.github.com>
Co-authored-by: Marwand Ayubi <98717667+xhypeDE@users.noreply.github.com>
Co-authored-by: mayubi <marwand@ayubi-it.de>
Co-authored-by: Media <12145726+rihp@users.noreply.github.com>
Co-authored-by: Cenny <cwenner@gmail.com>
Co-authored-by: Abdelkarim Habouch <37211852+karimhabush@users.noreply.github.com>
2023-05-14 21:36:55 +01:00
k-boikov
f778483ac3 Revert "Put back 3.11 until it's removed as a requirement" (#4191) 2023-05-14 16:30:10 +03:00
merwanehamadi
15ebe23bc2 add back 3.11 (#4185) 2023-05-14 14:20:14 +01:00
merwanehamadi
bc6f8a27ff Feature/fix rate limiting issue Step 1 (#4173)
* temporarilly remove 3.11
2023-05-13 22:31:24 -04:00
merwanehamadi
2d9b9294d0 Test New CI Pipeline (#4170)
* introduce dummy prompt change

* introduce dummy prompt change

* empty commit

* empty commit

* empty commit

* push to origin repo

* add s to quote
2023-05-14 13:18:31 +12:00
merwanehamadi
de6b8ee9f2 Feature/test new ci pipeline 2 (#4169)
* test new CI

* remove double quotes

* make it a variable

* make it a variable
2023-05-14 11:40:31 +12:00
merwanehamadi
a110ff94a5 test new CI (#4168)
* test new CI

* test new CI

* remove double quotes
2023-05-14 11:25:56 +12:00
merwanehamadi
4143d212a5 Feature/basic proxy (#4164)
* basic proxy (#54)

* basic proxy (#55)

* basic proxy

* basic proxy

* basic proxy

* basic proxy

* add back double quotes

* add more specific files

* write file

* basic proxy

* Put back double quotes
2023-05-14 11:07:37 +12:00
k-boikov
e6f8e51504 Added --install-plugin-deps to Docker (#4151)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-14 01:59:36 +03:00
Abdelkarim Habouch
b958386689 Add Edge browser support using EdgeChromiumDriverManager (#3058)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-14 00:28:30 +03:00
Cenny
2f7beebc61 Make sdwebui tests pass (when SD is running) (#3721)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-13 15:06:50 -05:00
Media
900de5fe63 Challenge: Kubernetes and documentation (#4121)
* challenge_kubes_and_readme

* docs

* testing

* black and isort

* revision

* lint

* comments

* blackisort

* docs

* docs

* deleting_cassette

* suggestions

* misspelling_errors

---------

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-05-13 12:21:21 -07:00
Marwand Ayubi
233f900fa6 Implemented showing the number of preauthorised commands left. #1035 (#3322)
Co-authored-by: mayubi <marwand@ayubi-it.de>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-13 18:21:16 +03:00
Robin Richtsfeld
7a34d49264 Fix milvus_memory_test.py mock Config (#3424)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-13 17:19:18 +03:00
andrey13771
6c78d80d37 fix typo in autopgt/agent/agent.py (#3747)
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-13 04:00:08 +03:00
k-boikov
12e806d754 Parse package versions so upgrades can be forced (#4149)
* parse package versions so upgrades can be forced

* better version from @collijk
2023-05-12 16:23:54 -07:00
dominic-ks
21a202b655 Updated memory setup links (#3829)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-13 02:01:52 +03:00
prom3theu5
79fba4ab7b Update Dockerfile - add missing scripts and plugins directories. (#3706)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-13 01:47:02 +03:00
Eduardo Salinas
c771e1fd50 Update duckduckgo dependency - min should be 2.9.5 (#4142)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-13 00:57:30 +03:00
Kristian Jackson
a60512cdae Catch JSON error in summary_memory.py (#3996)
Co-authored-by: k-boikov <64261260+k-boikov@users.noreply.github.com>
2023-05-12 22:18:15 +03:00
Boostrix
b06ea616d9 explain temperature setting in env file (#4140)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-12 19:22:26 +01:00
Andres Caicedo
2513178980 Integrate pytest-xdist Plugin for Parallel and Concurrent Testing (#3870)
* Adds pytest-parallel dependencies

* Implement pytest-parallel for faster tests

* Uses pytest-xdist

* Auto number of workers processes

* Update ci.yml

---------

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-11 17:19:52 -07:00
Boostrix
8f3119621c document that docker-compose 1.29.0 is minimally required (#3963)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-10 01:01:45 -05:00
Itai Steinherz
5989c14577 Fix path to workspace directory in setup guide (#3927)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-10 00:45:09 -05:00
Shlomi
980bbe2bc3 fix typo in the getting started docs (#3997)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-08 14:16:48 +01:00
minfeng-ai
23e1e1ed53 fix typos (#3998)
Co-authored-by: Minfeng Lu <minfenglu@Minfengs-MacBook-Pro.local>
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-08 14:10:58 +01:00
Tomasz Kasperczyk
0166eacb2b Use correct reference to prompt_generator in autogpt/llm/chat.py (#4011) 2023-05-08 13:59:12 +01:00
merwanehamadi
33a3e6f998 Feature/centralize prompt (#3990)
Co-authored-by: xiao.hu <454292663@qq.com>
2023-05-08 07:24:53 +01:00
Kaan
d1327fd1c2 Improve & fix memory challenge docs. (#3989)
Co-authored-by: Kaan Osmanagaoglu <kaano@questps.com.au>
2023-05-07 19:03:58 -07:00
merwanehamadi
baa7873ec1 memory challenge c inconsistent (#3985) 2023-05-07 20:16:26 -05:00
Douglas Schonholtz
dc959596fc Memory Challenge C (#3908)
* Memory Challenge C

* Working cassettes

* Doc fixes

* Linting and doc fix

* Updated cassette

* One more cassette try

---------

Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
2023-05-07 16:28:43 -07:00
merwanehamadi
08bc8ff3f7 add code owners policy (#3981)
* add code owners

* added @ to codeowners

* switched to team ownership
2023-05-08 11:16:59 +12:00
merwanehamadi
ca5abff93f add information retrieval challenge to the wiki (#3876) 2023-05-06 17:48:08 +01:00
Andres Caicedo
d184d0d235 Implement Logging of User Input in logs/Debug Folder (#3867)
* Adds USER_INPUT_FILE_NAME

* Update agent.py

* Update agent.py

Log only if console_input is not the authorise_key

* Reformatting
2023-05-05 17:14:08 -07:00
Pi
06317dfb2b Add link to wiki page on Contributing 2023-05-05 23:10:56 +01:00
Pi
d57af05f66 fix 2023-05-05 23:07:55 +01:00
Pi
7eddfacd10 Add link to wiki Contributing page 2023-05-05 23:06:48 +01:00
Pi
3df88be6cb Update PULL_REQUEST_TEMPLATE.md
Added link to wiki Contributing page
2023-05-05 23:03:09 +01:00
Pi
b496cdcfb2 Update README.md 2023-05-05 22:59:21 +01:00
Douglas Schonholtz
dfb73204bf Update readme to suggest people check out challenges 2023-05-05 16:33:39 -04:00
merwanehamadi
6d4bea3bb6 community challenges in the wiki (#3764) 2023-05-05 17:35:12 +01:00
AbTrax
e12438de41 Self feedback Improvement (#3680)
* Improved `Self-Feedback`

* minor tweak

* Test: Updated `test_get_self_feedback.py`
2023-05-05 09:09:21 -07:00
Pi
f2bef76368 Update CONTRIBUTING.md 2023-05-05 02:38:40 +01:00
bszollosinagy
ea08050049 BUGFIX: Selenium Driver object reference was included in the browsing results for some reason (#3642)
* * there is really no need to return the  reference to the Selenium driver along with the text summary and list of links.

* * removing unused second return value from browse_website()

* * updated cassette

* * updated YAML cassette for test_browse_website

* * after requirements reinstall, another update YAML cassette for test_browse_website

* * another update YAML cassette for test_browse_website, only as a placholder commit to trigger re-testing due to some docker TCP timeout issue

* * another update YAML cassette for test_browse_website

---------

Co-authored-by: batyu <batyu@localhost>
2023-05-04 23:11:21 +01:00
Ambuj Pawar
7d234522b7 ADD: Bash block in the contributing markdown (#3701)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-04 19:08:54 +01:00
itsmarble
d9170cab22 Update run.sh (#3752)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-04 19:01:53 +01:00
itsmarble
ad8b8cb9eb Update run.bat (#3783)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-04 18:55:58 +01:00
RainRat
fad24b3525 fix typos (#3798) 2023-05-04 18:46:37 +01:00
merwanehamadi
b0163230a9 create information retrieval challenge a (#3770)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-04 17:44:10 +01:00
Robin Richtsfeld
cb97f5c101 Fix call to plugin.post_planning (#3414)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-03 21:45:00 -05:00
Luke K
a48f26c150 Enable denylist handling for plugins (#3688)
Co-authored-by: Luke Kyohere <lkyohere@mfsafrica.com>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-03 21:31:23 -05:00
Nicholas Tindle
911cea781f Document Disabling command categories (#3669)
* feat: move task_complete command out of prompt

* fix: formatting fixes

* feat: add command disabling

* docs: document how to disable command categories
2023-05-03 19:14:07 -05:00
Nicholas Tindle
d2a9e54dfb Allow users to Disable Commands via the .env (#3667) 2023-05-03 19:05:35 -05:00
Nicholas Tindle
d74428057e Move task_complete command out of prompt (#3663)
* feat: move task_complete command out of prompt

* fix: formatting fixes

* Add the shutdown command to the test agents

* tests: update test vcrs

---------

Co-authored-by: James Collins <collijk@uw.edu>
2023-05-03 16:40:49 -07:00
merwanehamadi
e21917cc93 Feature/enable intuitive logs summarization (#3697) 2023-05-03 17:32:03 +01:00
Douglas Schonholtz
04722e7fc5 EvalNames with dates for the eval run filename and compatibility with 0.3.0 (#26)
* EvalNames with dates and the eval run

* Ignore .idea files, update readme to use 3.10, updates for 0.3.0
2023-05-03 10:14:44 -04:00
merwanehamadi
26c6cfeefd Feature/enable intuitive logs for community challenge step 1 (#3695) 2023-05-03 08:27:54 +01:00
Peter Petermann
479c7468b4 Fix docker volume mounts (#3710)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-02 18:08:15 -05:00
merwanehamadi
b0c6ed999c Feature/tighten up ci pipeline (#3700) 2023-05-02 19:07:50 +01:00
Reinier van der Leer
b5f95fd672 Patch master with fixes from release-v0.3 (#3694) 2023-05-02 17:01:04 +02:00
Reinier van der Leer
d8f5cdbb50 Release v0.3.0 (#3683) 2023-05-02 16:53:43 +02:00
Reinier van der Leer
6e5ddeb015 v0.3.0 2023-05-02 16:32:19 +02:00
Reinier van der Leer
725abbb662 Fix bulletin 2023-05-02 16:30:37 +02:00
Reinier van der Leer
e4129e1a3a Fix CI for stable 2023-05-02 13:35:23 +02:00
Reinier van der Leer
dbd68df40c Merge branch 'stable' into release-v0.3 2023-05-02 13:27:40 +02:00
Reinier van der Leer
3a80e2f399 Revert "Revert "Merge branch 'master' into stable""
This reverts commit 999990b614.
2023-05-02 13:26:30 +02:00
Reinier van der Leer
0e1c0c55f8 Synchronize stable -> master (#3677)
* Revert "Merge branch 'master' into stable"

This reverts commit c4008971f7, reversing
changes made to fe855fef13.

* Fix `validate_json` file error when cwd != project root (#2665)

Co-authored-by: qianchengliang <qianchengliang1@huawei.com>

* Revert "Revert "Merge branch 'master' into stable""

This reverts commit 999990b614.

---------

Co-authored-by: BillSchumacher <34168009+BillSchumacher@users.noreply.github.com>
Co-authored-by: Mick <30898949+mickjagger19@users.noreply.github.com>
Co-authored-by: qianchengliang <qianchengliang1@huawei.com>
2023-05-02 12:17:09 +01:00
gravelBridge
2e9c80a486 Fix MACOS Zip Import Error when compressing plugin (#3629)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-05-01 22:49:44 -05:00
Reinier van der Leer
1d26f6b697 Add warning for LLM to avoid context overflow (#3646) 2023-05-01 19:48:27 -05:00
kinance
4767fe63d3 Fix the maximum context length issue by chunking (#3222)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-05-01 20:13:24 +02:00
k-boikov
0ef6f06462 Fix validate_json scheme path (#3631)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-05-01 20:06:22 +02:00
sidewaysthought
a5f856328d Fix multi-byte character handling in read_file (#3173)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-05-01 19:50:50 +02:00
non-adjective
7fc6f2abfc update web_selenium.py to use try-with for headers (#2988)
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-01 16:45:52 +01:00
Bob
94ec4a4ea5 Fix file operations logger (#3489)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-05-01 17:37:30 +02:00
Ashutosh Kataria
9c56b1beef Message about Pinecone initializing (#1194)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-05-01 15:31:28 +01:00
AbTrax
34261a1583 Fix side effects on message history (#3619)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
2023-05-01 15:16:26 +02:00
Reinier van der Leer
d8968ae899 Update documentation URLs to docs.agpt.co (#3621) 2023-05-01 14:01:13 +02:00
Valay Dave
6ae90a3ea2 [bug] list_files api signature change in data_ingestion.py and lo… (#3601) 2023-05-01 06:57:16 +01:00
zyt600
c317cf0e75 fix bug #3455 (#3591)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
2023-04-30 16:24:07 -05:00
Richard Beales
c1329c92fd rename search_files to list_files (#3595) 2023-04-30 16:14:53 -05:00
Toran Bruce Richards
abd6115aea Add website to README.md 2023-05-01 08:35:42 +12:00
WladBlank
6d2c0c4242 add report method to typewriter_log & load report plugins into logger (#3582)
* add report method to typewriter_log & load report plugins into logger

* more clear log and comment

* isort and black
2023-04-30 09:43:01 -07:00
k-boikov
aab79fdf6d added tests for clone_repository (#3558)
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
2023-04-30 10:41:45 +01:00
Douglas Schonholtz
b8c7c05dd5 windows docs make workspace if not there (#25)
* windows docs make workspace if not there

* small fixes
2023-04-22 19:17:28 -04:00
Mick
91537b0496 Fix validate_json file error when cwd != project root (#2665)
Co-authored-by: qianchengliang <qianchengliang1@huawei.com>
2023-04-21 03:26:28 +02:00
Media
ef5c4f8a11 Graphs for evals (#20)
* Update README.md

* Jupyter Notebook for evaluating eval results

---------

Co-authored-by: Douglas Schonholtz <15002691+dschonholtz@users.noreply.github.com>
2023-04-20 19:04:34 -04:00
Douglas Schonholtz
011ed2f2b9 Update README.md (#17)
remove -m
2023-04-20 15:47:15 -04:00
Douglas Schonholtz
625d6e72ec Remove the submodule, reference OpenAI directly rather than running it on the command line, fix logging (#16)
* Removed submodule, refactor, docker on pip, async docker logging, running our own tool on CLI rather than OpenAIs
2023-04-20 15:41:29 -04:00
BillSchumacher
999990b614 Revert "Merge branch 'master' into stable"
This reverts commit c4008971f7, reversing
changes made to fe855fef13.
2023-04-20 01:15:46 -05:00
Douglas Schonholtz
f00ced6612 Update README.md 2023-04-18 11:59:42 -04:00
Douglas Schonholtz
486c7e3a5e Update README.md
Adding set up info
2023-04-18 11:10:24 -04:00
Douglas Schonholtz
dad4804b4e Update README.md 2023-04-18 10:29:05 -04:00
Douglas Schonholtz
2fbb03dc6c Update README.md 2023-04-18 10:27:47 -04:00
Douglas Schonholtz
63c8e4da84 Merge pull request #2 from ambujpawar/typo_in_readme
Typo in README.md
2023-04-18 09:18:14 -04:00
Ambuj Pawar
3b0091c231 Typo in README.md 2023-04-18 09:25:25 +02:00
Douglas Schonholtz
22d997d088 Merge pull request #1 from dschonholtz/master
First commit for AutoGPT Benchmarks
2023-04-17 19:07:49 -04:00
douglas
59ff485253 Prompt engineering fixes 2023-04-17 18:14:09 -04:00
douglas
7212c3876d Cleanup 2023-04-17 17:34:45 -04:00
douglas
89081d942c First commit for AutoGPT Benchmarks 2023-04-17 17:22:31 -04:00
Toran Bruce Richards
0b899eb4cf Initial commit 2023-04-06 13:59:45 +01:00
2767 changed files with 803599 additions and 17449 deletions

View File

@@ -1,19 +0,0 @@
# To boot the app run the following:
# docker-compose run auto-gpt
version: '3.9'
services:
auto-gpt:
depends_on:
- redis
build:
dockerfile: .devcontainer/Dockerfile
context: ../
tty: true
environment:
MEMORY_BACKEND: ${MEMORY_BACKEND:-redis}
REDIS_HOST: ${REDIS_HOST:-redis}
volumes:
- ../:/workspace/Auto-GPT
redis:
image: 'redis/redis-stack-server:latest'

View File

@@ -1,8 +1,28 @@
.*
*.template
*.yaml
*.yml
# Ignore everything by default, selectively add things to context
*
*.md
*.png
!BULLETIN.md
# AutoGPT
!autogpt/autogpt/
!autogpt/pyproject.toml
!autogpt/poetry.lock
!autogpt/README.md
!autogpt/tests/
# Benchmark
!benchmark/agbenchmark/
!benchmark/pyproject.toml
!benchmark/poetry.lock
!benchmark/README.md
# Forge
!forge/forge/
!forge/pyproject.toml
!forge/poetry.lock
!forge/README.md
# Frontend
!frontend/build/web/
# Explicitly re-ignore some folders
.*
**/__pycache__

View File

@@ -1,214 +0,0 @@
################################################################################
### AUTO-GPT - GENERAL SETTINGS
################################################################################
## EXECUTE_LOCAL_COMMANDS - Allow local command execution (Default: False)
## RESTRICT_TO_WORKSPACE - Restrict file operations to workspace ./auto_gpt_workspace (Default: True)
# EXECUTE_LOCAL_COMMANDS=False
# RESTRICT_TO_WORKSPACE=True
## USER_AGENT - Define the user-agent used by the requests library to browse website (string)
# USER_AGENT="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
## AI_SETTINGS_FILE - Specifies which AI Settings file to use (defaults to ai_settings.yaml)
# AI_SETTINGS_FILE=ai_settings.yaml
## AUTHORISE COMMAND KEY - Key to authorise commands
# AUTHORISE_COMMAND_KEY=y
## EXIT_KEY - Key to exit AUTO-GPT
# EXIT_KEY=n
################################################################################
### LLM PROVIDER
################################################################################
### OPENAI
## OPENAI_API_KEY - OpenAI API Key (Example: my-openai-api-key)
## TEMPERATURE - Sets temperature in OpenAI (Default: 0)
## USE_AZURE - Use Azure OpenAI or not (Default: False)
OPENAI_API_KEY=your-openai-api-key
# TEMPERATURE=0
# USE_AZURE=False
### AZURE
# moved to `azure.yaml.template`
################################################################################
### LLM MODELS
################################################################################
## SMART_LLM_MODEL - Smart language model (Default: gpt-4)
## FAST_LLM_MODEL - Fast language model (Default: gpt-3.5-turbo)
# SMART_LLM_MODEL=gpt-4
# FAST_LLM_MODEL=gpt-3.5-turbo
### LLM MODEL SETTINGS
## FAST_TOKEN_LIMIT - Fast token limit for OpenAI (Default: 4000)
## SMART_TOKEN_LIMIT - Smart token limit for OpenAI (Default: 8000)
## When using --gpt3only this needs to be set to 4000.
# FAST_TOKEN_LIMIT=4000
# SMART_TOKEN_LIMIT=8000
################################################################################
### MEMORY
################################################################################
### MEMORY_BACKEND - Memory backend type
## local - Default
## pinecone - Pinecone (if configured)
## redis - Redis (if configured)
## milvus - Milvus (if configured - also works with Zilliz)
## MEMORY_INDEX - Name of index created in Memory backend (Default: auto-gpt)
# MEMORY_BACKEND=local
# MEMORY_INDEX=auto-gpt
### PINECONE
## PINECONE_API_KEY - Pinecone API Key (Example: my-pinecone-api-key)
## PINECONE_ENV - Pinecone environment (region) (Example: us-west-2)
# PINECONE_API_KEY=your-pinecone-api-key
# PINECONE_ENV=your-pinecone-region
### REDIS
## REDIS_HOST - Redis host (Default: localhost, use "redis" for docker-compose)
## REDIS_PORT - Redis port (Default: 6379)
## REDIS_PASSWORD - Redis password (Default: "")
## WIPE_REDIS_ON_START - Wipes data / index on start (Default: True)
# REDIS_HOST=localhost
# REDIS_PORT=6379
# REDIS_PASSWORD=
# WIPE_REDIS_ON_START=True
### WEAVIATE
## MEMORY_BACKEND - Use 'weaviate' to use Weaviate vector storage
## WEAVIATE_HOST - Weaviate host IP
## WEAVIATE_PORT - Weaviate host port
## WEAVIATE_PROTOCOL - Weaviate host protocol (e.g. 'http')
## USE_WEAVIATE_EMBEDDED - Whether to use Embedded Weaviate
## WEAVIATE_EMBEDDED_PATH - File system path were to persist data when running Embedded Weaviate
## WEAVIATE_USERNAME - Weaviate username
## WEAVIATE_PASSWORD - Weaviate password
## WEAVIATE_API_KEY - Weaviate API key if using API-key-based authentication
# WEAVIATE_HOST="127.0.0.1"
# WEAVIATE_PORT=8080
# WEAVIATE_PROTOCOL="http"
# USE_WEAVIATE_EMBEDDED=False
# WEAVIATE_EMBEDDED_PATH="/home/me/.local/share/weaviate"
# WEAVIATE_USERNAME=
# WEAVIATE_PASSWORD=
# WEAVIATE_API_KEY=
### MILVUS
## MILVUS_ADDR - Milvus remote address (e.g. localhost:19530, https://xxx-xxxx.xxxx.xxxx.zillizcloud.com:443)
## MILVUS_USERNAME - username for your Milvus database
## MILVUS_PASSWORD - password for your Milvus database
## MILVUS_SECURE - True to enable TLS. (Default: False)
## Setting MILVUS_ADDR to a `https://` URL will override this setting.
## MILVUS_COLLECTION - Milvus collection, change it if you want to start a new memory and retain the old memory.
# MILVUS_ADDR=localhost:19530
# MILVUS_USERNAME=
# MILVUS_PASSWORD=
# MILVUS_SECURE=
# MILVUS_COLLECTION=autogpt
################################################################################
### IMAGE GENERATION PROVIDER
################################################################################
### OPEN AI
## IMAGE_PROVIDER - Image provider (Example: dalle)
## IMAGE_SIZE - Image size (Example: 256)
## DALLE: 256, 512, 1024
# IMAGE_PROVIDER=dalle
# IMAGE_SIZE=256
### HUGGINGFACE
## HUGGINGFACE_IMAGE_MODEL - Text-to-image model from Huggingface (Default: CompVis/stable-diffusion-v1-4)
## HUGGINGFACE_API_TOKEN - HuggingFace API token (Example: my-huggingface-api-token)
# HUGGINGFACE_IMAGE_MODEL=CompVis/stable-diffusion-v1-4
# HUGGINGFACE_API_TOKEN=your-huggingface-api-token
### STABLE DIFFUSION WEBUI
## SD_WEBUI_AUTH - Stable diffusion webui username:password pair (Example: username:password)
## SD_WEBUI_URL - Stable diffusion webui API URL (Example: http://127.0.0.1:7860)
# SD_WEBUI_AUTH=
# SD_WEBUI_URL=http://127.0.0.1:7860
################################################################################
### AUDIO TO TEXT PROVIDER
################################################################################
### HUGGINGFACE
# HUGGINGFACE_AUDIO_TO_TEXT_MODEL=facebook/wav2vec2-base-960h
################################################################################
### GIT Provider for repository actions
################################################################################
### GITHUB
## GITHUB_API_KEY - Github API key / PAT (Example: github_pat_123)
## GITHUB_USERNAME - Github username
# GITHUB_API_KEY=github_pat_123
# GITHUB_USERNAME=your-github-username
################################################################################
### WEB BROWSING
################################################################################
### BROWSER
## HEADLESS_BROWSER - Whether to run the browser in headless mode (default: True)
## USE_WEB_BROWSER - Sets the web-browser driver to use with selenium (default: chrome).
## Note: set this to either 'chrome', 'firefox', or 'safari' depending on your current browser
# HEADLESS_BROWSER=True
# USE_WEB_BROWSER=chrome
## BROWSE_CHUNK_MAX_LENGTH - When browsing website, define the length of chunks to summarize (in number of tokens, excluding the response. 75 % of FAST_TOKEN_LIMIT is usually wise )
# BROWSE_CHUNK_MAX_LENGTH=3000
## BROWSE_SPACY_LANGUAGE_MODEL is used to split sentences. Install additional languages via pip, and set the model name here. Example Chinese: python -m spacy download zh_core_web_sm
# BROWSE_SPACY_LANGUAGE_MODEL=en_core_web_sm
### GOOGLE
## GOOGLE_API_KEY - Google API key (Example: my-google-api-key)
## CUSTOM_SEARCH_ENGINE_ID - Custom search engine ID (Example: my-custom-search-engine-id)
# GOOGLE_API_KEY=your-google-api-key
# CUSTOM_SEARCH_ENGINE_ID=your-custom-search-engine-id
################################################################################
### TTS PROVIDER
################################################################################
### MAC OS
## USE_MAC_OS_TTS - Use Mac OS TTS or not (Default: False)
# USE_MAC_OS_TTS=False
### STREAMELEMENTS
## USE_BRIAN_TTS - Use Brian TTS or not (Default: False)
# USE_BRIAN_TTS=False
### ELEVENLABS
## ELEVENLABS_API_KEY - Eleven Labs API key (Example: my-elevenlabs-api-key)
## ELEVENLABS_VOICE_1_ID - Eleven Labs voice 1 ID (Example: my-voice-id-1)
## ELEVENLABS_VOICE_2_ID - Eleven Labs voice 2 ID (Example: my-voice-id-2)
# ELEVENLABS_API_KEY=your-elevenlabs-api-key
# ELEVENLABS_VOICE_1_ID=your-voice-id-1
# ELEVENLABS_VOICE_2_ID=your-voice-id-2
################################################################################
### TWITTER API
################################################################################
# TW_CONSUMER_KEY=
# TW_CONSUMER_SECRET=
# TW_ACCESS_TOKEN=
# TW_ACCESS_TOKEN_SECRET=
################################################################################
### ALLOWLISTED PLUGINS
################################################################################
#ALLOWLISTED_PLUGINS - Sets the listed plugins that are allowed (Example: plugin1,plugin2,plugin3)
ALLOWLISTED_PLUGINS=
################################################################################
### CHAT PLUGIN SETTINGS
################################################################################
# CHAT_MESSAGES_ENABLED - Enable chat messages (Default: False)
# CHAT_MESSAGES_ENABLED=False

View File

@@ -1,6 +1,5 @@
[flake8]
max-line-length = 88
select = "E303, W293, W291, W292, E305, E231, E302"
exclude =
.tox,
__pycache__,
@@ -10,3 +9,4 @@ exclude =
.venv/*,
reports/*,
dist/*,
data/*,

11
.gitattributes vendored
View File

@@ -1,5 +1,8 @@
# Exclude VCR cassettes from stats
tests/**/cassettes/**.y*ml linguist-generated
frontend/build/** linguist-generated
# Mark documentation as such
docs/**.md linguist-documentation
**/poetry.lock linguist-generated
docs/_javascript/** linguist-vendored
# Exclude VCR cassettes from stats
forge/tests/vcr_cassettes/**/**.y*ml linguist-generated

5
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1,5 @@
.github/workflows/ @Significant-Gravitas/devops
autogpt/ @Significant-Gravitas/maintainers
forge/ @Significant-Gravitas/forge-maintainers
benchmark/ @Significant-Gravitas/benchmark-maintainers
frontend/ @Significant-Gravitas/frontend-maintainers

3
.github/FUNDING.yml vendored
View File

@@ -1,3 +0,0 @@
# These are supported funding model platforms
github: Torantulino

View File

@@ -1,5 +1,5 @@
name: Bug report 🐛
description: Create a bug report for Auto-GPT.
description: Create a bug report for AutoGPT.
labels: ['status: needs triage']
body:
- type: markdown
@@ -8,45 +8,53 @@ body:
### ⚠️ Before you continue
* Check out our [backlog], [roadmap] and join our [discord] to discuss what's going on
* If you need help, you can ask in the [discussions] section or in [#tech-support]
* **Throughly search the [existing issues] before creating a new one**
* **Thoroughly search the [existing issues] before creating a new one**
* Read our [wiki page on Contributing]
[backlog]: https://github.com/orgs/Significant-Gravitas/projects/1
[roadmap]: https://github.com/orgs/Significant-Gravitas/projects/2
[discord]: https://discord.gg/autogpt
[discussions]: https://github.com/Significant-Gravitas/Auto-GPT/discussions
[discussions]: https://github.com/Significant-Gravitas/AutoGPT/discussions
[#tech-support]: https://discord.com/channels/1092243196446249134/1092275629602394184
[existing issues]: https://github.com/Significant-Gravitas/Auto-GPT/issues?q=is%3Aissue
[existing issues]: https://github.com/Significant-Gravitas/AutoGPT/issues?q=is%3Aissue
[wiki page on Contributing]: https://github.com/Significant-Gravitas/AutoGPT/wiki/Contributing
- type: checkboxes
attributes:
label: ⚠️ Search for existing issues first ⚠️
description: >
Please [search the history](https://github.com/Torantulino/Auto-GPT/issues)
Please [search the history](https://github.com/Significant-Gravitas/AutoGPT/issues)
to see if an issue already exists for the same problem.
options:
- label: I have searched the existing issues, and there is no existing issue for my problem
required: true
- type: markdown
attributes:
value: |
Please provide a searchable summary of the issue in the title above ⬆️.
⚠️ SUPER-busy repo, please help the volunteer maintainers.
The less time we spend here, the more time we spend building AutoGPT.
Please confirm that the issue you have is described well and precise in the title above ⬆️.
A good rule of thumb: What would you type if you were searching for the issue?
Please help us help you:
- Does it work on `stable` branch (https://github.com/Torantulino/Auto-GPT/tree/stable)?
- Does it work on current `master` (https://github.com/Torantulino/Auto-GPT/tree/master)?
- Search for existing issues, "add comment" is tidier than "new issue"
- Ask on our Discord (https://discord.gg/autogpt)
For example:
BAD - my AutoGPT keeps looping
GOOD - After performing execute_python_file, AutoGPT goes into a loop where it keeps trying to execute the file.
⚠️ SUPER-busy repo, please help the volunteer maintainers.
The less time we spend here, the more time we can spend building AutoGPT.
Please help us help you by following these steps:
- Search for existing issues, adding a comment when you have the same or similar issue is tidier than "new issue" and
newer issues will not be reviewed earlier, this is dependent on the current priorities set by our wonderful team
- Ask on our Discord if your issue is known when you are unsure (https://discord.gg/autogpt)
- Provide relevant info:
- Provide commit-hash (`git rev-parse HEAD` gets it)
- If it's a pip/packages issue, provide pip version, python version
- If it's a crash, provide traceback.
- Provide commit-hash (`git rev-parse HEAD` gets it) if possible
- If it's a pip/packages issue, mention this in the title and provide pip version, python version
- If it's a crash, provide traceback and describe the error you got as precise as possible in the title.
- type: dropdown
attributes:
label: Which Operating System are you using?
description: >
Please select the operating system you were using to run Auto-GPT when this problem occurred.
Please select the operating system you were using to run AutoGPT when this problem occurred.
options:
- Windows
- Linux
@@ -54,78 +62,112 @@ body:
- Docker
- Devcontainer / Codespace
- Windows Subsystem for Linux (WSL)
- Other (Please specify in your problem)
- Other
validations:
required: true
nested_fields:
- type: text
attributes:
label: Specify the system
description: Please specify the system you are working on.
- type: dropdown
attributes:
label: Which version of Auto-GPT are you using?
label: Which version of AutoGPT are you using?
description: |
Please select which version of Auto-GPT you were using when this issue occurred.
If you downloaded the code from the [releases page](https://github.com/Significant-Gravitas/Auto-GPT/releases/) make sure you were using the latest code.
**If you weren't please try with the [latest code](https://github.com/Significant-Gravitas/Auto-GPT/releases/)**.
If installed with git you can run `git branch` to see which version of Auto-GPT you are running.
Please select which version of AutoGPT you were using when this issue occurred.
If you downloaded the code from the [releases page](https://github.com/Significant-Gravitas/AutoGPT/releases/) make sure you were using the latest code.
**If you weren't please try with the [latest code](https://github.com/Significant-Gravitas/AutoGPT/releases/)**.
If installed with git you can run `git branch` to see which version of AutoGPT you are running.
options:
- Latest Release
- Stable (branch)
- Master (branch)
validations:
required: true
- type: dropdown
attributes:
label: GPT-3 or GPT-4?
label: What LLM Provider do you use?
description: >
If you are using Auto-GPT with `--gpt3only`, your problems may be caused by
the [limitations](https://github.com/Significant-Gravitas/Auto-GPT/issues?q=is%3Aissue+label%3A%22AI+model+limitation%22) of GPT-3.5.
If you are using AutoGPT with `SMART_LLM=gpt-3.5-turbo`, your problems may be caused by
the [limitations](https://github.com/Significant-Gravitas/AutoGPT/issues?q=is%3Aissue+label%3A%22AI+model+limitation%22) of GPT-3.5.
options:
- GPT-3.5
- GPT-4
- Azure
- Groq
- Anthropic
- Llamafile
- Other (detail in issue)
validations:
required: true
- type: textarea
- type: dropdown
attributes:
label: Steps to reproduce 🕹
description: |
**⚠️ Issues that we can't reproduce will be closed.**
- type: textarea
attributes:
label: Current behavior 😯
description: Describe what happens instead of the expected behavior.
- type: textarea
attributes:
label: Expected behavior 🤔
description: Describe what should happen.
- type: textarea
attributes:
label: Your prompt 📝
label: Which area covers your issue best?
description: >
If applicable please provide the prompt you are using. Your prompt is stored in your `ai_settings.yaml` file.
value: |
```yaml
# Paste your prompt here
```
Select the area related to the issue you are reporting.
options:
- Installation and setup
- Memory
- Performance
- Prompt
- Commands
- Plugins
- AI Model Limitations
- Challenges
- Documentation
- Logging
- Agents
- Other
validations:
required: true
autolabels: true
nested_fields:
- type: text
attributes:
label: Specify the area
description: Please specify the area you think is best related to the issue.
- type: input
attributes:
label: What commit or version are you using?
description: It is helpful for us to reproduce to know what version of the software you were using when this happened. Please run `git log -n 1 --pretty=format:"%H"` to output the full commit hash.
validations:
required: true
- type: textarea
attributes:
label: Your Logs 📒
description: |
Please include the log showing your error and the command that caused it, if applicable.
You can copy it from your terminal or from `logs/activity.log`.
This will help us understand your issue better!
<details>
<summary><i>Example</i></summary>
```log
INFO NEXT ACTION: COMMAND = execute_shell ARGUMENTS = {'command_line': 'some_command'}
INFO -=-=-=-=-=-=-= COMMAND AUTHORISED BY USER -=-=-=-=-=-=-=
Traceback (most recent call last):
File "/home/anaconda3/lib/python3.9/site-packages/openai/api_requestor.py", line 619, in _interpret_response
self._interpret_response_line(
File "/home/anaconda3/lib/python3.9/site-packages/openai/api_requestor.py", line 682, in _interpret_response_line
raise self.handle_error_response(
openai.error.InvalidRequestError: This model's maximum context length is 8191 tokens, however you requested 10982 tokens (10982 in your prompt; 0 for the completion). Please reduce your prompt; or completion length.
```
</details>
label: Describe your issue.
description: Describe the problem you are experiencing. Try to describe only the issue and phrase it short but clear. ⚠️ Provide NO other data in this field
validations:
required: true
#Following are optional file content uploads
- type: markdown
attributes:
value: |
```log
<insert your logs here>
```
The following is OPTIONAL, please keep in mind that the log files may contain personal information such as credentials.⚠️
"The log files are located in the folder 'logs' inside the main AutoGPT folder."
- type: textarea
attributes:
label: Upload Activity Log Content
description: |
Upload the activity log content, this can help us understand the issue better.
To do this, go to the folder logs in your main AutoGPT folder, open activity.log and copy/paste the contents to this field.
⚠️ The activity log may contain personal data given to AutoGPT by you in prompt or input as well as
any personal information that AutoGPT collected out of files during last run. Do not add the activity log if you are not comfortable with sharing it. ⚠️
validations:
required: false
- type: textarea
attributes:
label: Upload Error Log Content
description: |
Upload the error log content, this will help us understand the issue better.
To do this, go to the folder logs in your main AutoGPT folder, open error.log and copy/paste the contents to this field.
⚠️ The error log may contain personal data given to AutoGPT by you in prompt or input as well as
any personal information that AutoGPT collected out of files during last run. Do not add the activity log if you are not comfortable with sharing it. ⚠️
validations:
required: false

View File

@@ -1,17 +1,16 @@
name: Feature request 🚀
description: Suggest a new idea for Auto-GPT.
description: Suggest a new idea for AutoGPT!
labels: ['status: needs triage']
body:
- type: markdown
attributes:
value: |
First, check out our [wiki page on Contributing](https://github.com/Significant-Gravitas/AutoGPT/wiki/Contributing)
Please provide a searchable summary of the issue in the title above ⬆️.
Thanks for contributing by creating an issue! ❤️
- type: checkboxes
attributes:
label: Duplicates
description: Please [search the history](https://github.com/Torantulino/Auto-GPT/issues) to see if an issue already exists for the same problem.
description: Please [search the history](https://github.com/Significant-Gravitas/AutoGPT/issues) to see if an issue already exists for the same problem.
options:
- label: I have searched the existing issues
required: true
@@ -26,4 +25,4 @@ body:
- type: textarea
attributes:
label: Motivation 🔦
description: What are you trying to accomplish? How has the lack of this feature affected you? Providing context helps us come up with a solution that is more useful in the real world.
description: What are you trying to accomplish? How has the lack of this feature affected you? Providing context helps us come up with a solution that is more useful in the real world.

View File

@@ -1,40 +1,31 @@
<!-- ⚠️ At the moment any non-essential commands are not being merged.
If you want to add non-essential commands to Auto-GPT, please create a plugin instead.
We are expecting to ship plugin support within the week (PR #757).
Resources:
* https://github.com/Significant-Gravitas/Auto-GPT-Plugin-Template
### Background
<!-- Clearly explain the need for these changes: -->
### Changes 🏗️
<!-- Concisely describe all of the changes made in this pull request: -->
### PR Quality Scorecard ✨
<!--
Check out our contribution guide:
https://github.com/Significant-Gravitas/AutoGPT/wiki/Contributing
1. Avoid duplicate work, issues, PRs etc.
2. Also consider contributing something other than code; see the [contribution guide]
for options.
3. Clearly explain your changes.
4. Avoid making unnecessary changes, especially if they're purely based on personal
preferences. Doing so is the maintainers' job. ;-)
-->
<!-- 📢 Announcement
We've recently noticed an increase in pull requests focusing on combining multiple changes. While the intentions behind these PRs are appreciated, it's essential to maintain a clean and manageable git history. To ensure the quality of our repository, we kindly ask you to adhere to the following guidelines when submitting PRs:
Focus on a single, specific change.
Do not include any unrelated or "extra" modifications.
Provide clear documentation and explanations of the changes made.
Ensure diffs are limited to the intended lines — no applying preferred formatting styles or line endings (unless that's what the PR is about).
For guidance on committing only the specific lines you have changed, refer to this helpful video: https://youtu.be/8-hSNHHbiZg
By following these guidelines, your PRs are more likely to be merged quickly after testing, as long as they align with the project's overall direction. -->
### Background
<!-- Provide a concise overview of the rationale behind this change. Include relevant context, prior discussions, or links to related issues. Ensure that the change aligns with the project's overall direction. -->
### Changes
<!-- Describe the specific, focused change made in this pull request. Detail the modifications clearly and avoid any unrelated or "extra" changes. -->
### Documentation
<!-- Explain how your changes are documented, such as in-code comments or external documentation. Ensure that the documentation is clear, concise, and easy to understand. -->
### Test Plan
<!-- Describe how you tested this functionality. Include steps to reproduce, relevant test cases, and any other pertinent information. -->
### PR Quality Checklist
- [ ] My pull request is atomic and focuses on a single change.
- [ ] I have thoroughly tested my changes with multiple different prompts.
- [ ] I have considered potential risks and mitigations for my changes.
- [ ] I have documented my changes clearly and comprehensively.
- [ ] I have not snuck in any "extra" small tweaks changes <!-- Submit these as separate Pull Requests, they are the easiest to merge! -->
<!-- If you haven't added tests, please explain why. If you have, check the appropriate box. If you've ensured your PR is atomic and well-documented, check the corresponding boxes. -->
<!-- By submitting this, I agree that my pull request should be closed if I do not fill this out or follow the guidelines. -->
- [x] Have you used the PR description template? &ensp; `+2 pts`
- [ ] Is your pull request atomic, focusing on a single change? &ensp; `+5 pts`
- [ ] Have you linked the GitHub issue(s) that this PR addresses? &ensp; `+5 pts`
- [ ] Have you documented your changes clearly and comprehensively? &ensp; `+5 pts`
- [ ] Have you changed or added a feature? &ensp; `-4 pts`
- [ ] Have you added/updated corresponding documentation? &ensp; `+4 pts`
- [ ] Have you added/updated corresponding integration tests? &ensp; `+5 pts`
- [ ] Have you changed the behavior of AutoGPT? &ensp; `-5 pts`
- [ ] Have you also run `agbenchmark` to verify that these changes do not regress performance? &ensp; `+10 pts`

27
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
AutoGPT Agent:
- changed-files:
- any-glob-to-any-file: autogpt/**
Forge:
- changed-files:
- any-glob-to-any-file: forge/**
Benchmark:
- changed-files:
- any-glob-to-any-file: benchmark/**
Frontend:
- changed-files:
- any-glob-to-any-file: frontend/**
documentation:
- changed-files:
- any-glob-to-any-file: docs/**
Builder:
- changed-files:
- any-glob-to-any-file: rnd/autogpt_builder/**
Server:
- changed-files:
- any-glob-to-any-file: rnd/autogpt_server/**

View File

@@ -0,0 +1,36 @@
name: AutoGPT Builder CI
on:
push:
branches: [ master ]
paths:
- '.github/workflows/autogpt-builder-ci.yml'
- 'rnd/autogpt_builder/**'
pull_request:
paths:
- '.github/workflows/autogpt-builder-ci.yml'
- 'rnd/autogpt_builder/**'
defaults:
run:
shell: bash
working-directory: rnd/autogpt_builder
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '21'
- name: Install dependencies
run: |
npm install
- name: Run lint
run: |
npm run lint

138
.github/workflows/autogpt-ci.yml vendored Normal file
View File

@@ -0,0 +1,138 @@
name: AutoGPT CI
on:
push:
branches: [ master, development, ci-test* ]
paths:
- '.github/workflows/autogpt-ci.yml'
- 'autogpt/**'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/autogpt-ci.yml'
- 'autogpt/**'
concurrency:
group: ${{ format('autogpt-ci-{0}', github.head_ref && format('{0}-{1}', github.event_name, github.event.pull_request.number) || github.sha) }}
cancel-in-progress: ${{ startsWith(github.event_name, 'pull_request') }}
defaults:
run:
shell: bash
working-directory: autogpt
jobs:
test:
permissions:
contents: read
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python-version: ["3.10"]
platform-os: [ubuntu, macos, macos-arm64, windows]
runs-on: ${{ matrix.platform-os != 'macos-arm64' && format('{0}-latest', matrix.platform-os) || 'macos-14' }}
steps:
# Quite slow on macOS (2~4 minutes to set up Docker)
# - name: Set up Docker (macOS)
# if: runner.os == 'macOS'
# uses: crazy-max/ghaction-setup-docker@v3
- name: Start MinIO service (Linux)
if: runner.os == 'Linux'
working-directory: '.'
run: |
docker pull minio/minio:edge-cicd
docker run -d -p 9000:9000 minio/minio:edge-cicd
- name: Start MinIO service (macOS)
if: runner.os == 'macOS'
working-directory: ${{ runner.temp }}
run: |
brew install minio/stable/minio
mkdir data
minio server ./data &
# No MinIO on Windows:
# - Windows doesn't support running Linux Docker containers
# - It doesn't seem possible to start background processes on Windows. They are
# killed after the step returns.
# See: https://github.com/actions/runner/issues/598#issuecomment-2011890429
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Configure git user Auto-GPT-Bot
run: |
git config --global user.name "Auto-GPT-Bot"
git config --global user.email "github-bot@agpt.co"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- id: get_date
name: Get date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- name: Set up Python dependency cache
# On Windows, unpacking cached dependencies takes longer than just installing them
if: runner.os != 'Windows'
uses: actions/cache@v4
with:
path: ${{ runner.os == 'macOS' && '~/Library/Caches/pypoetry' || '~/.cache/pypoetry' }}
key: poetry-${{ runner.os }}-${{ hashFiles('autogpt/poetry.lock') }}
- name: Install Poetry (Unix)
if: runner.os != 'Windows'
run: |
curl -sSL https://install.python-poetry.org | python3 -
if [ "${{ runner.os }}" = "macOS" ]; then
PATH="$HOME/.local/bin:$PATH"
echo "$HOME/.local/bin" >> $GITHUB_PATH
fi
- name: Install Poetry (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
$env:PATH += ";$env:APPDATA\Python\Scripts"
echo "$env:APPDATA\Python\Scripts" >> $env:GITHUB_PATH
- name: Install Python dependencies
run: poetry install
- name: Run pytest with coverage
run: |
poetry run pytest -vv \
--cov=autogpt --cov-branch --cov-report term-missing --cov-report xml \
--numprocesses=logical --durations=10 \
tests/unit tests/integration
env:
CI: true
PLAIN_OUTPUT: True
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
S3_ENDPOINT_URL: ${{ runner.os != 'Windows' && 'http://127.0.0.1:9000' || '' }}
AWS_ACCESS_KEY_ID: minioadmin
AWS_SECRET_ACCESS_KEY: minioadmin
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: autogpt-agent,${{ runner.os }}
- name: Upload logs to artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: test-logs
path: autogpt/logs/

View File

@@ -1,11 +1,11 @@
name: Purge Docker CI cache
name: Purge Auto-GPT Docker CI cache
on:
schedule:
- cron: 20 4 * * 1,4
env:
BASE_BRANCH: master
BASE_BRANCH: development
IMAGE_NAME: auto-gpt
jobs:
@@ -16,19 +16,20 @@ jobs:
build-type: [release, dev]
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- id: build
name: Build image
uses: docker/build-push-action@v3
uses: docker/build-push-action@v5
with:
file: Dockerfile.autogpt
build-args: BUILD_TYPE=${{ matrix.build-type }}
load: true # save to docker images
# use GHA cache as read-only
cache-to: type=gha,scope=docker-${{ matrix.build-type }},mode=max
cache-to: type=gha,scope=autogpt-docker-${{ matrix.build-type }},mode=max
- name: Generate build report
env:
@@ -37,10 +38,10 @@ jobs:
build_type: ${{ matrix.build-type }}
prod_branch: stable
dev_branch: master
prod_branch: master
dev_branch: development
repository: ${{ github.repository }}
base_branch: ${{ github.ref_name != 'master' && github.ref_name != 'stable' && 'master' || 'stable' }}
base_branch: ${{ github.ref_name != 'master' && github.ref_name != 'development' && 'development' || 'master' }}
current_ref: ${{ github.ref_name }}
commit_hash: ${{ github.sha }}

162
.github/workflows/autogpt-docker-ci.yml vendored Normal file
View File

@@ -0,0 +1,162 @@
name: AutoGPT Docker CI
on:
push:
branches: [ master, development ]
paths:
- '.github/workflows/autogpt-docker-ci.yml'
- 'autogpt/**'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/autogpt-docker-ci.yml'
- 'autogpt/**'
concurrency:
group: ${{ format('autogpt-docker-ci-{0}', github.head_ref && format('pr-{0}', github.event.pull_request.number) || github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
defaults:
run:
working-directory: autogpt
env:
IMAGE_NAME: auto-gpt
DEPLOY_IMAGE_NAME: ${{ secrets.DOCKER_USER && format('{0}/', secrets.DOCKER_USER) || '' }}auto-gpt
DEV_IMAGE_TAG: latest-dev
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
build-type: [release, dev]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- if: runner.debug
run: |
ls -al
du -hs *
- id: build
name: Build image
uses: docker/build-push-action@v5
with:
file: Dockerfile.autogpt
build-args: BUILD_TYPE=${{ matrix.build-type }}
tags: ${{ env.IMAGE_NAME }}
labels: GIT_REVISION=${{ github.sha }}
load: true # save to docker images
# cache layers in GitHub Actions cache to speed up builds
cache-from: type=gha,scope=autogpt-docker-${{ matrix.build-type }}
cache-to: type=gha,scope=autogpt-docker-${{ matrix.build-type }},mode=max
- name: Generate build report
env:
event_name: ${{ github.event_name }}
event_ref: ${{ github.event.ref }}
event_ref_type: ${{ github.event.ref}}
build_type: ${{ matrix.build-type }}
prod_branch: master
dev_branch: development
repository: ${{ github.repository }}
base_branch: ${{ github.ref_name != 'master' && github.ref_name != 'development' && 'development' || 'master' }}
current_ref: ${{ github.ref_name }}
commit_hash: ${{ github.event.after }}
source_url: ${{ format('{0}/tree/{1}', github.event.repository.url, github.event.release && github.event.release.tag_name || github.sha) }}
push_forced_label: ${{ github.event.forced && '☢️ forced' || '' }}
new_commits_json: ${{ toJSON(github.event.commits) }}
compare_url_template: ${{ format('/{0}/compare/{{base}}...{{head}}', github.repository) }}
github_context_json: ${{ toJSON(github) }}
job_env_json: ${{ toJSON(env) }}
vars_json: ${{ toJSON(vars) }}
run: .github/workflows/scripts/docker-ci-summary.sh >> $GITHUB_STEP_SUMMARY
continue-on-error: true
test:
runs-on: ubuntu-latest
timeout-minutes: 10
services:
minio:
image: minio/minio:edge-cicd
options: >
--name=minio
--health-interval=10s --health-timeout=5s --health-retries=3
--health-cmd="curl -f http://localhost:9000/minio/health/live"
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
submodules: true
- if: github.event_name == 'push'
name: Log in to Docker hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- id: build
name: Build image
uses: docker/build-push-action@v5
with:
file: Dockerfile.autogpt
build-args: BUILD_TYPE=dev # include pytest
tags: >
${{ env.IMAGE_NAME }},
${{ env.DEPLOY_IMAGE_NAME }}:${{ env.DEV_IMAGE_TAG }}
labels: GIT_REVISION=${{ github.sha }}
load: true # save to docker images
# cache layers in GitHub Actions cache to speed up builds
cache-from: type=gha,scope=autogpt-docker-dev
cache-to: type=gha,scope=autogpt-docker-dev,mode=max
- id: test
name: Run tests
env:
CI: true
PLAIN_OUTPUT: True
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
S3_ENDPOINT_URL: http://minio:9000
AWS_ACCESS_KEY_ID: minioadmin
AWS_SECRET_ACCESS_KEY: minioadmin
run: |
set +e
docker run --env CI --env OPENAI_API_KEY \
--network container:minio \
--env S3_ENDPOINT_URL --env AWS_ACCESS_KEY_ID --env AWS_SECRET_ACCESS_KEY \
--entrypoint poetry ${{ env.IMAGE_NAME }} run \
pytest -v --cov=autogpt --cov-branch --cov-report term-missing \
--numprocesses=4 --durations=10 \
tests/unit tests/integration 2>&1 | tee test_output.txt
test_failure=${PIPESTATUS[0]}
cat << $EOF >> $GITHUB_STEP_SUMMARY
# Tests $([ $test_failure = 0 ] && echo '✅' || echo '❌')
\`\`\`
$(cat test_output.txt)
\`\`\`
$EOF
exit $test_failure
- if: github.event_name == 'push' && github.ref_name == 'master'
name: Push image to Docker Hub
run: docker push ${{ env.DEPLOY_IMAGE_NAME }}:${{ env.DEV_IMAGE_TAG }}

View File

@@ -1,4 +1,4 @@
name: Docker Release
name: AutoGPT Docker Release
on:
release:
@@ -16,31 +16,35 @@ env:
jobs:
build:
if: startsWith(github.ref, 'refs/tags/autogpt-')
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Log in to Docker hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
# slashes are not allowed in image tags, but can appear in git branch or tag names
- id: sanitize_tag
name: Sanitize image tag
run: echo tag=${raw_tag//\//-} >> $GITHUB_OUTPUT
run: |
tag=${raw_tag//\//-}
echo tag=${tag#autogpt-} >> $GITHUB_OUTPUT
env:
raw_tag: ${{ github.ref_name }}
- id: build
name: Build image
uses: docker/build-push-action@v3
uses: docker/build-push-action@v5
with:
file: Dockerfile.autogpt
build-args: BUILD_TYPE=release
load: true # save to docker images
# push: true # TODO: uncomment when this issue is fixed: https://github.com/moby/buildkit/issues/1555
@@ -48,10 +52,11 @@ jobs:
${{ env.IMAGE_NAME }},
${{ env.DEPLOY_IMAGE_NAME }}:latest,
${{ env.DEPLOY_IMAGE_NAME }}:${{ steps.sanitize_tag.outputs.tag }}
labels: GIT_REVISION=${{ github.sha }}
# cache layers in GitHub Actions cache to speed up builds
cache-from: ${{ !inputs.no_cache && 'type=gha' || '' }},scope=docker-release
cache-to: type=gha,scope=docker-release,mode=max
cache-from: ${{ !inputs.no_cache && 'type=gha' || '' }},scope=autogpt-docker-release
cache-to: type=gha,scope=autogpt-docker-release,mode=max
- name: Push image to Docker Hub
run: docker push --all-tags ${{ env.DEPLOY_IMAGE_NAME }}
@@ -63,10 +68,10 @@ jobs:
event_ref_type: ${{ github.event.ref}}
inputs_no_cache: ${{ inputs.no_cache }}
prod_branch: stable
dev_branch: master
prod_branch: master
dev_branch: development
repository: ${{ github.repository }}
base_branch: ${{ github.ref_name != 'master' && github.ref_name != 'stable' && 'master' || 'stable' }}
base_branch: ${{ github.ref_name != 'master' && github.ref_name != 'development' && 'development' || 'master' }}
ref_type: ${{ github.ref_type }}
current_ref: ${{ github.ref_name }}

148
.github/workflows/autogpt-server-ci.yml vendored Normal file
View File

@@ -0,0 +1,148 @@
name: AutoGPT Server CI
on:
push:
branches: [master, development, ci-test*]
paths:
- ".github/workflows/autogpt-server-ci.yml"
- "rnd/autogpt_server/**"
pull_request:
branches: [master, development, release-*]
paths:
- ".github/workflows/autogpt-server-ci.yml"
- "rnd/autogpt_server/**"
concurrency:
group: ${{ format('autogpt-server-ci-{0}', github.head_ref && format('{0}-{1}', github.event_name, github.event.pull_request.number) || github.sha) }}
cancel-in-progress: ${{ startsWith(github.event_name, 'pull_request') }}
defaults:
run:
shell: bash
working-directory: rnd/autogpt_server
jobs:
test:
permissions:
contents: read
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python-version: ["3.10"]
platform-os: [ubuntu, macos, macos-arm64, windows]
runs-on: ${{ matrix.platform-os != 'macos-arm64' && format('{0}-latest', matrix.platform-os) || 'macos-14' }}
steps:
- name: Setup PostgreSQL
uses: ikalnytskyi/action-setup-postgres@v6
with:
username: ${{ secrets.DB_USER }}
password: ${{ secrets.DB_PASS }}
database: postgres
port: 5432
id: postgres
# Quite slow on macOS (2~4 minutes to set up Docker)
# - name: Set up Docker (macOS)
# if: runner.os == 'macOS'
# uses: crazy-max/ghaction-setup-docker@v3
- name: Start MinIO service (Linux)
if: runner.os == 'Linux'
working-directory: "."
run: |
docker pull minio/minio:edge-cicd
docker run -d -p 9000:9000 minio/minio:edge-cicd
- name: Start MinIO service (macOS)
if: runner.os == 'macOS'
working-directory: ${{ runner.temp }}
run: |
brew install minio/stable/minio
mkdir data
minio server ./data &
# No MinIO on Windows:
# - Windows doesn't support running Linux Docker containers
# - It doesn't seem possible to start background processes on Windows. They are
# killed after the step returns.
# See: https://github.com/actions/runner/issues/598#issuecomment-2011890429
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- id: get_date
name: Get date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- name: Set up Python dependency cache
# On Windows, unpacking cached dependencies takes longer than just installing them
if: runner.os != 'Windows'
uses: actions/cache@v4
with:
path: ${{ runner.os == 'macOS' && '~/Library/Caches/pypoetry' || '~/.cache/pypoetry' }}
key: poetry-${{ runner.os }}-${{ hashFiles('rnd/autogpt_server/poetry.lock') }}
- name: Install Poetry (Unix)
if: runner.os != 'Windows'
run: |
curl -sSL https://install.python-poetry.org | python3 -
if [ "${{ runner.os }}" = "macOS" ]; then
PATH="$HOME/.local/bin:$PATH"
echo "$HOME/.local/bin" >> $GITHUB_PATH
fi
- name: Install Poetry (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
$env:PATH += ";$env:APPDATA\Python\Scripts"
echo "$env:APPDATA\Python\Scripts" >> $env:GITHUB_PATH
- name: Install Python dependencies
run: poetry install
- name: Generate Prisma Client
run: poetry run prisma generate --schema postgres/schema.prisma
- name: Run Database Migrations
run: poetry run prisma migrate dev --schema postgres/schema.prisma --name updates
env:
CONNECTION_STR: ${{ steps.postgres.outputs.connection-uri }}
- name: Run Linter
run: poetry run lint
- name: Run pytest with coverage
run: |
poetry run pytest -vv \
test
env:
CI: true
PLAIN_OUTPUT: True
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
DB_USER: ${{ secrets.DB_USER }}
DB_PASS: ${{ secrets.DB_PASS }}
DB_NAME: postgres
DB_PORT: 5432
RUN_ENV: local
PORT: 8080
DATABASE_URL: postgresql://${{ secrets.DB_USER }}:${{ secrets.DB_PASS }}@localhost:5432/${{ secrets.DB_NAME }}
# - name: Upload coverage reports to Codecov
# uses: codecov/codecov-action@v4
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# flags: autogpt-server,${{ runner.os }}

View File

@@ -0,0 +1,97 @@
name: AutoGPTs Nightly Benchmark
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * *'
jobs:
benchmark:
permissions:
contents: write
runs-on: ubuntu-latest
strategy:
matrix:
agent-name: [ autogpt ]
fail-fast: false
timeout-minutes: 120
env:
min-python-version: '3.10'
REPORTS_BRANCH: data/benchmark-reports
REPORTS_FOLDER: ${{ format('benchmark/reports/{0}', matrix.agent-name) }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Set up Python ${{ env.min-python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.min-python-version }}
- name: Install Poetry
run: curl -sSL https://install.python-poetry.org | python -
- name: Prepare reports folder
run: mkdir -p ${{ env.REPORTS_FOLDER }}
- run: poetry -C benchmark install
- name: Benchmark ${{ matrix.agent-name }}
run: |
./run agent start ${{ matrix.agent-name }}
cd ${{ matrix.agent-name }}
set +e # Do not quit on non-zero exit codes
poetry run agbenchmark run -N 3 \
--test=ReadFile \
--test=BasicRetrieval --test=RevenueRetrieval2 \
--test=CombineCsv --test=LabelCsv --test=AnswerQuestionCombineCsv \
--test=UrlShortener --test=TicTacToe --test=Battleship \
--test=WebArenaTask_0 --test=WebArenaTask_21 --test=WebArenaTask_124 \
--test=WebArenaTask_134 --test=WebArenaTask_163
# Convert exit code 1 (some challenges failed) to exit code 0
if [ $? -eq 0 ] || [ $? -eq 1 ]; then
exit 0
else
exit $?
fi
env:
AGENT_NAME: ${{ matrix.agent-name }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
REQUESTS_CA_BUNDLE: /etc/ssl/certs/ca-certificates.crt
REPORTS_FOLDER: ${{ format('../../{0}', env.REPORTS_FOLDER) }} # account for changed workdir
TELEMETRY_ENVIRONMENT: autogpt-benchmark-ci
TELEMETRY_OPT_IN: ${{ github.ref_name == 'master' }}
- name: Push reports to data branch
run: |
# BODGE: Remove success_rate.json and regression_tests.json to avoid conflicts on checkout
rm ${{ env.REPORTS_FOLDER }}/*.json
# Find folder with newest (untracked) report in it
report_subfolder=$(find ${{ env.REPORTS_FOLDER }} -type f -name 'report.json' \
| xargs -I {} dirname {} \
| xargs -I {} git ls-files --others --exclude-standard {} \
| xargs -I {} dirname {} \
| sort -u)
json_report_file="$report_subfolder/report.json"
# Convert JSON report to Markdown
markdown_report_file="$report_subfolder/report.md"
poetry -C benchmark run benchmark/reports/format.py "$json_report_file" > "$markdown_report_file"
cat "$markdown_report_file" >> $GITHUB_STEP_SUMMARY
git config --global user.name 'GitHub Actions'
git config --global user.email 'github-actions@agpt.co'
git fetch origin ${{ env.REPORTS_BRANCH }}:${{ env.REPORTS_BRANCH }} \
&& git checkout ${{ env.REPORTS_BRANCH }} \
|| git checkout --orphan ${{ env.REPORTS_BRANCH }}
git reset --hard
git add ${{ env.REPORTS_FOLDER }}
git commit -m "Benchmark report for ${{ matrix.agent-name }} @ $(date +'%Y-%m-%d')" \
&& git push origin ${{ env.REPORTS_BRANCH }}

71
.github/workflows/autogpts-ci.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
name: Agent smoke tests
on:
workflow_dispatch:
schedule:
- cron: '0 8 * * *'
push:
branches: [ master, development, ci-test* ]
paths:
- '.github/workflows/autogpts-ci.yml'
- 'autogpt/**'
- 'forge/**'
- 'benchmark/**'
- 'run'
- 'cli.py'
- 'setup.py'
- '!**/*.md'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/autogpts-ci.yml'
- 'autogpt/**'
- 'forge/**'
- 'benchmark/**'
- 'run'
- 'cli.py'
- 'setup.py'
- '!**/*.md'
jobs:
serve-agent-protocol:
runs-on: ubuntu-latest
strategy:
matrix:
agent-name: [ autogpt ]
fail-fast: false
timeout-minutes: 20
env:
min-python-version: '3.10'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Set up Python ${{ env.min-python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.min-python-version }}
- name: Install Poetry
working-directory: ./${{ matrix.agent-name }}/
run: |
curl -sSL https://install.python-poetry.org | python -
- name: Run regression tests
run: |
./run agent start ${{ matrix.agent-name }}
cd ${{ matrix.agent-name }}
poetry run agbenchmark --mock --test=BasicRetrieval --test=Battleship --test=WebArenaTask_0
poetry run agbenchmark --test=WriteFile
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
AGENT_NAME: ${{ matrix.agent-name }}
REQUESTS_CA_BUNDLE: /etc/ssl/certs/ca-certificates.crt
HELICONE_CACHE_ENABLED: false
HELICONE_PROPERTY_AGENT: ${{ matrix.agent-name }}
REPORTS_FOLDER: ${{ format('../../reports/{0}', matrix.agent-name) }}
TELEMETRY_ENVIRONMENT: autogpt-ci
TELEMETRY_OPT_IN: ${{ github.ref_name == 'master' }}

169
.github/workflows/benchmark-ci.yml vendored Normal file
View File

@@ -0,0 +1,169 @@
name: AGBenchmark CI
on:
push:
branches: [ master, development, ci-test* ]
paths:
- 'benchmark/**'
- .github/workflows/benchmark-ci.yml
- '!benchmark/reports/**'
pull_request:
branches: [ master, development, release-* ]
paths:
- 'benchmark/**'
- '!benchmark/reports/**'
- .github/workflows/benchmark-ci.yml
concurrency:
group: ${{ format('benchmark-ci-{0}', github.head_ref && format('{0}-{1}', github.event_name, github.event.pull_request.number) || github.sha) }}
cancel-in-progress: ${{ startsWith(github.event_name, 'pull_request') }}
defaults:
run:
shell: bash
env:
min-python-version: '3.10'
jobs:
test:
permissions:
contents: read
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python-version: ["3.10"]
platform-os: [ubuntu, macos, macos-arm64, windows]
runs-on: ${{ matrix.platform-os != 'macos-arm64' && format('{0}-latest', matrix.platform-os) || 'macos-14' }}
defaults:
run:
shell: bash
working-directory: benchmark
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up Python dependency cache
# On Windows, unpacking cached dependencies takes longer than just installing them
if: runner.os != 'Windows'
uses: actions/cache@v4
with:
path: ${{ runner.os == 'macOS' && '~/Library/Caches/pypoetry' || '~/.cache/pypoetry' }}
key: poetry-${{ runner.os }}-${{ hashFiles('benchmark/poetry.lock') }}
- name: Install Poetry (Unix)
if: runner.os != 'Windows'
run: |
curl -sSL https://install.python-poetry.org | python3 -
if [ "${{ runner.os }}" = "macOS" ]; then
PATH="$HOME/.local/bin:$PATH"
echo "$HOME/.local/bin" >> $GITHUB_PATH
fi
- name: Install Poetry (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
$env:PATH += ";$env:APPDATA\Python\Scripts"
echo "$env:APPDATA\Python\Scripts" >> $env:GITHUB_PATH
- name: Install Python dependencies
run: poetry install
- name: Run pytest with coverage
run: |
poetry run pytest -vv \
--cov=agbenchmark --cov-branch --cov-report term-missing --cov-report xml \
--durations=10 \
tests
env:
CI: true
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: agbenchmark,${{ runner.os }}
self-test-with-agent:
runs-on: ubuntu-latest
strategy:
matrix:
agent-name: [ forge ]
fail-fast: false
timeout-minutes: 20
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Set up Python ${{ env.min-python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.min-python-version }}
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python -
- name: Run regression tests
working-directory: .
run: |
./run agent start ${{ matrix.agent-name }}
cd ${{ matrix.agent-name }}
set +e # Ignore non-zero exit codes and continue execution
echo "Running the following command: poetry run agbenchmark --maintain --mock"
poetry run agbenchmark --maintain --mock
EXIT_CODE=$?
set -e # Stop ignoring non-zero exit codes
# Check if the exit code was 5, and if so, exit with 0 instead
if [ $EXIT_CODE -eq 5 ]; then
echo "regression_tests.json is empty."
fi
echo "Running the following command: poetry run agbenchmark --mock"
poetry run agbenchmark --mock
echo "Running the following command: poetry run agbenchmark --mock --category=data"
poetry run agbenchmark --mock --category=data
echo "Running the following command: poetry run agbenchmark --mock --category=coding"
poetry run agbenchmark --mock --category=coding
echo "Running the following command: poetry run agbenchmark --test=WriteFile"
poetry run agbenchmark --test=WriteFile
cd ../benchmark
poetry install
echo "Adding the BUILD_SKILL_TREE environment variable. This will attempt to add new elements in the skill tree. If new elements are added, the CI fails because they should have been pushed"
export BUILD_SKILL_TREE=true
poetry run agbenchmark --mock
CHANGED=$(git diff --name-only | grep -E '(agbenchmark/challenges)|(../frontend/assets)') || echo "No diffs"
if [ ! -z "$CHANGED" ]; then
echo "There are unstaged changes please run agbenchmark and commit those changes since they are needed."
echo "$CHANGED"
exit 1
else
echo "No unstaged changes."
fi
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
TELEMETRY_ENVIRONMENT: autogpt-benchmark-ci
TELEMETRY_OPT_IN: ${{ github.ref_name == 'master' }}

View File

@@ -0,0 +1,55 @@
name: Publish to PyPI
on:
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Install Poetry
working-directory: ./benchmark/
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
- name: Build project for distribution
working-directory: ./benchmark/
run: poetry build
- name: Install dependencies
working-directory: ./benchmark/
run: poetry install
- name: Check Version
working-directory: ./benchmark/
id: check-version
run: |
echo version=$(poetry version --short) >> $GITHUB_OUTPUT
- name: Create Release
uses: ncipollo/release-action@v1
with:
artifacts: "benchmark/dist/*"
token: ${{ secrets.GITHUB_TOKEN }}
draft: false
generateReleaseNotes: false
tag: agbenchmark-v${{ steps.check-version.outputs.version }}
commit: master
- name: Build and publish
working-directory: ./benchmark/
run: poetry publish -u __token__ -p ${{ secrets.PYPI_API_TOKEN }}

View File

@@ -1,31 +0,0 @@
name: Run Benchmarks
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
env:
python-version: '3.10'
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python ${{ env.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: benchmark
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
python benchmark/benchmark_entrepreneur_gpt_with_undecisive_user.py

View File

@@ -1,77 +0,0 @@
name: Python CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
concurrency:
group: ${{ format('ci-{0}', github.head_ref && format('pr-{0}', github.event.pull_request.number) || github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
lint:
runs-on: ubuntu-latest
env:
min-python-version: "3.10"
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python ${{ env.min-python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ env.min-python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Lint with flake8
run: flake8
- name: Check black formatting
run: black . --check
if: success() || failure()
- name: Check isort formatting
run: isort . --check
if: success() || failure()
test:
permissions:
# Gives the action the necessary permissions for publishing new
# comments in pull requests.
pull-requests: write
# Gives the action the necessary permissions for pushing data to the
# python-coverage-comment-action branch, and for editing existing
# comments (to avoid publishing multiple comments in the same PR)
contents: write
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11"]
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run unittest tests with coverage
run: |
pytest --cov=autogpt --cov-report term-missing --cov-branch --cov-report xml --cov-report term
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3

View File

@@ -0,0 +1,34 @@
name: 'Close stale issues'
on:
schedule:
- cron: '30 1 * * *'
workflow_dispatch:
permissions:
issues: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
# operations-per-run: 5000
stale-issue-message: >
This issue has automatically been marked as _stale_ because it has not had
any activity in the last 50 days. You can _unstale_ it by commenting or
removing the label. Otherwise, this issue will be closed in 10 days.
stale-pr-message: >
This pull request has automatically been marked as _stale_ because it has
not had any activity in the last 50 days. You can _unstale_ it by commenting
or removing the label.
close-issue-message: >
This issue was closed automatically because it has been stale for 10 days
with no activity.
days-before-stale: 50
days-before-close: 10
# Do not touch meta issues:
exempt-issue-labels: meta,fridge,project management
# Do not affect pull requests:
days-before-pr-stale: -1
days-before-pr-close: -1

View File

@@ -1,115 +0,0 @@
name: Docker CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
concurrency:
group: ${{ format('docker-ci-{0}', github.head_ref && format('pr-{0}', github.event.pull_request.number) || github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
IMAGE_NAME: auto-gpt
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
build-type: [release, dev]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- if: runner.debug
run: |
ls -al
du -hs *
- id: build
name: Build image
uses: docker/build-push-action@v3
with:
build-args: BUILD_TYPE=${{ matrix.build-type }}
tags: ${{ env.IMAGE_NAME }}
load: true # save to docker images
# cache layers in GitHub Actions cache to speed up builds
cache-from: type=gha,scope=docker-${{ matrix.build-type }}
cache-to: type=gha,scope=docker-${{ matrix.build-type }},mode=max
- name: Generate build report
env:
event_name: ${{ github.event_name }}
event_ref: ${{ github.event.ref }}
event_ref_type: ${{ github.event.ref}}
build_type: ${{ matrix.build-type }}
prod_branch: stable
dev_branch: master
repository: ${{ github.repository }}
base_branch: ${{ github.ref_name != 'master' && github.ref_name != 'stable' && 'master' || 'stable' }}
current_ref: ${{ github.ref_name }}
commit_hash: ${{ github.event.after }}
source_url: ${{ format('{0}/tree/{1}', github.event.repository.url, github.event.release && github.event.release.tag_name || github.sha) }}
push_forced_label: ${{ github.event.forced && '☢️ forced' || '' }}
new_commits_json: ${{ toJSON(github.event.commits) }}
compare_url_template: ${{ format('/{0}/compare/{{base}}...{{head}}', github.repository) }}
github_context_json: ${{ toJSON(github) }}
job_env_json: ${{ toJSON(env) }}
vars_json: ${{ toJSON(vars) }}
run: .github/workflows/scripts/docker-ci-summary.sh >> $GITHUB_STEP_SUMMARY
continue-on-error: true
# Docker setup needs fixing before this is going to work: #1843
test:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- id: build
name: Build image
uses: docker/build-push-action@v3
with:
build-args: BUILD_TYPE=dev # include pytest
tags: ${{ env.IMAGE_NAME }}
load: true # save to docker images
# cache layers in GitHub Actions cache to speed up builds
cache-from: type=gha,scope=docker-dev
cache-to: type=gha,scope=docker-dev,mode=max
- id: test
name: Run tests
env:
CI: true
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
set +e
test_output=$(
docker run --env CI --env OPENAI_API_KEY --entrypoint python ${{ env.IMAGE_NAME }} -m \
pytest --cov=autogpt --cov-report term-missing --cov-branch --cov-report xml --cov-report term 2>&1
)
test_failure=$?
echo "$test_output"
cat << $EOF >> $GITHUB_STEP_SUMMARY
# Tests $([ $test_failure = 0 ] && echo '✅' || echo '❌')
\`\`\`
$test_output
\`\`\`
$EOF

View File

@@ -1,37 +0,0 @@
name: Docs
on:
push:
branches: [ stable ]
paths:
- 'docs/**'
- 'mkdocs.yml'
- '.github/workflows/documentation.yml'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python 3
uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Set up workflow cache
uses: actions/cache@v3
with:
key: ${{ github.ref }}
path: .cache
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force

236
.github/workflows/forge-ci.yml vendored Normal file
View File

@@ -0,0 +1,236 @@
name: Forge CI
on:
push:
branches: [ master, development, ci-test* ]
paths:
- '.github/workflows/forge-ci.yml'
- 'forge/**'
- '!forge/tests/vcr_cassettes'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/forge-ci.yml'
- 'forge/**'
- '!forge/tests/vcr_cassettes'
concurrency:
group: ${{ format('forge-ci-{0}', github.head_ref && format('{0}-{1}', github.event_name, github.event.pull_request.number) || github.sha) }}
cancel-in-progress: ${{ startsWith(github.event_name, 'pull_request') }}
defaults:
run:
shell: bash
working-directory: forge
jobs:
test:
permissions:
contents: read
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python-version: ["3.10"]
platform-os: [ubuntu, macos, macos-arm64, windows]
runs-on: ${{ matrix.platform-os != 'macos-arm64' && format('{0}-latest', matrix.platform-os) || 'macos-14' }}
steps:
# Quite slow on macOS (2~4 minutes to set up Docker)
# - name: Set up Docker (macOS)
# if: runner.os == 'macOS'
# uses: crazy-max/ghaction-setup-docker@v3
- name: Start MinIO service (Linux)
if: runner.os == 'Linux'
working-directory: '.'
run: |
docker pull minio/minio:edge-cicd
docker run -d -p 9000:9000 minio/minio:edge-cicd
- name: Start MinIO service (macOS)
if: runner.os == 'macOS'
working-directory: ${{ runner.temp }}
run: |
brew install minio/stable/minio
mkdir data
minio server ./data &
# No MinIO on Windows:
# - Windows doesn't support running Linux Docker containers
# - It doesn't seem possible to start background processes on Windows. They are
# killed after the step returns.
# See: https://github.com/actions/runner/issues/598#issuecomment-2011890429
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Checkout cassettes
if: ${{ startsWith(github.event_name, 'pull_request') }}
env:
PR_BASE: ${{ github.event.pull_request.base.ref }}
PR_BRANCH: ${{ github.event.pull_request.head.ref }}
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
run: |
cassette_branch="${PR_AUTHOR}-${PR_BRANCH}"
cassette_base_branch="${PR_BASE}"
cd tests/vcr_cassettes
if ! git ls-remote --exit-code --heads origin $cassette_base_branch ; then
cassette_base_branch="master"
fi
if git ls-remote --exit-code --heads origin $cassette_branch ; then
git fetch origin $cassette_branch
git fetch origin $cassette_base_branch
git checkout $cassette_branch
# Pick non-conflicting cassette updates from the base branch
git merge --no-commit --strategy-option=ours origin/$cassette_base_branch
echo "Using cassettes from mirror branch '$cassette_branch'," \
"synced to upstream branch '$cassette_base_branch'."
else
git checkout -b $cassette_branch
echo "Branch '$cassette_branch' does not exist in cassette submodule." \
"Using cassettes from '$cassette_base_branch'."
fi
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up Python dependency cache
# On Windows, unpacking cached dependencies takes longer than just installing them
if: runner.os != 'Windows'
uses: actions/cache@v4
with:
path: ${{ runner.os == 'macOS' && '~/Library/Caches/pypoetry' || '~/.cache/pypoetry' }}
key: poetry-${{ runner.os }}-${{ hashFiles('forge/poetry.lock') }}
- name: Install Poetry (Unix)
if: runner.os != 'Windows'
run: |
curl -sSL https://install.python-poetry.org | python3 -
if [ "${{ runner.os }}" = "macOS" ]; then
PATH="$HOME/.local/bin:$PATH"
echo "$HOME/.local/bin" >> $GITHUB_PATH
fi
- name: Install Poetry (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
$env:PATH += ";$env:APPDATA\Python\Scripts"
echo "$env:APPDATA\Python\Scripts" >> $env:GITHUB_PATH
- name: Install Python dependencies
run: poetry install
- name: Run pytest with coverage
run: |
poetry run pytest -vv \
--cov=forge --cov-branch --cov-report term-missing --cov-report xml \
--durations=10 \
forge
env:
CI: true
PLAIN_OUTPUT: True
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
S3_ENDPOINT_URL: ${{ runner.os != 'Windows' && 'http://127.0.0.1:9000' || '' }}
AWS_ACCESS_KEY_ID: minioadmin
AWS_SECRET_ACCESS_KEY: minioadmin
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: forge,${{ runner.os }}
- id: setup_git_auth
name: Set up git token authentication
# Cassettes may be pushed even when tests fail
if: success() || failure()
run: |
config_key="http.${{ github.server_url }}/.extraheader"
if [ "${{ runner.os }}" = 'macOS' ]; then
base64_pat=$(echo -n "pat:${{ secrets.PAT_REVIEW }}" | base64)
else
base64_pat=$(echo -n "pat:${{ secrets.PAT_REVIEW }}" | base64 -w0)
fi
git config "$config_key" \
"Authorization: Basic $base64_pat"
cd tests/vcr_cassettes
git config "$config_key" \
"Authorization: Basic $base64_pat"
echo "config_key=$config_key" >> $GITHUB_OUTPUT
- id: push_cassettes
name: Push updated cassettes
# For pull requests, push updated cassettes even when tests fail
if: github.event_name == 'push' || (! github.event.pull_request.head.repo.fork && (success() || failure()))
env:
PR_BRANCH: ${{ github.event.pull_request.head.ref }}
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
run: |
if [ "${{ startsWith(github.event_name, 'pull_request') }}" = "true" ]; then
is_pull_request=true
cassette_branch="${PR_AUTHOR}-${PR_BRANCH}"
else
cassette_branch="${{ github.ref_name }}"
fi
cd tests/vcr_cassettes
# Commit & push changes to cassettes if any
if ! git diff --quiet; then
git add .
git commit -m "Auto-update cassettes"
git push origin HEAD:$cassette_branch
if [ ! $is_pull_request ]; then
cd ../..
git add tests/vcr_cassettes
git commit -m "Update cassette submodule"
git push origin HEAD:$cassette_branch
fi
echo "updated=true" >> $GITHUB_OUTPUT
else
echo "updated=false" >> $GITHUB_OUTPUT
echo "No cassette changes to commit"
fi
- name: Post Set up git token auth
if: steps.setup_git_auth.outcome == 'success'
run: |
git config --unset-all '${{ steps.setup_git_auth.outputs.config_key }}'
git submodule foreach git config --unset-all '${{ steps.setup_git_auth.outputs.config_key }}'
- name: Apply "behaviour change" label and comment on PR
if: ${{ startsWith(github.event_name, 'pull_request') }}
run: |
PR_NUMBER="${{ github.event.pull_request.number }}"
TOKEN="${{ secrets.PAT_REVIEW }}"
REPO="${{ github.repository }}"
if [[ "${{ steps.push_cassettes.outputs.updated }}" == "true" ]]; then
echo "Adding label and comment..."
echo $TOKEN | gh auth login --with-token
gh issue edit $PR_NUMBER --add-label "behaviour change"
gh issue comment $PR_NUMBER --body "You changed AutoGPT's behaviour on ${{ runner.os }}. The cassettes have been updated and will be merged to the submodule when this Pull Request gets merged."
fi
- name: Upload logs to artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: test-logs
path: forge/logs/

60
.github/workflows/frontend-ci.yml vendored Normal file
View File

@@ -0,0 +1,60 @@
name: Frontend CI/CD
on:
push:
branches:
- master
- development
- 'ci-test*' # This will match any branch that starts with "ci-test"
paths:
- 'frontend/**'
- '.github/workflows/frontend-ci.yml'
pull_request:
paths:
- 'frontend/**'
- '.github/workflows/frontend-ci.yml'
jobs:
build:
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
env:
BUILD_BRANCH: ${{ format('frontend-build/{0}', github.ref_name) }}
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.13.2'
- name: Build Flutter to Web
run: |
cd frontend
flutter build web --base-href /app/
# - name: Commit and Push to ${{ env.BUILD_BRANCH }}
# if: github.event_name == 'push'
# run: |
# git config --local user.email "action@github.com"
# git config --local user.name "GitHub Action"
# git add frontend/build/web
# git checkout -B ${{ env.BUILD_BRANCH }}
# git commit -m "Update frontend build to ${GITHUB_SHA:0:7}" -a
# git push -f origin ${{ env.BUILD_BRANCH }}
- name: Create PR ${{ env.BUILD_BRANCH }} -> ${{ github.ref_name }}
if: github.event_name == 'push'
uses: peter-evans/create-pull-request@v6
with:
add-paths: frontend/build/web
base: ${{ github.ref_name }}
branch: ${{ env.BUILD_BRANCH }}
delete-branch: true
title: "Update frontend build in `${{ github.ref_name }}`"
body: "This PR updates the frontend build based on commit ${{ github.sha }}."
commit-message: "Update frontend build based on commit ${{ github.sha }}"

133
.github/workflows/hackathon.yml vendored Normal file
View File

@@ -0,0 +1,133 @@
name: Hackathon
on:
workflow_dispatch:
inputs:
agents:
description: "Agents to run (comma-separated)"
required: false
default: "autogpt" # Default agents if none are specified
jobs:
matrix-setup:
runs-on: ubuntu-latest
# Service containers to run with `matrix-setup`
services:
# Label used to access the service container
postgres:
# Docker Hub image
image: postgres
# Provide the password for postgres
env:
POSTGRES_PASSWORD: postgres
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
env-name: ${{ steps.set-matrix.outputs.env-name }}
steps:
- id: set-matrix
run: |
if [ "${{ github.event_name }}" == "schedule" ]; then
echo "::set-output name=env-name::production"
echo "::set-output name=matrix::[ 'irrelevant']"
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
IFS=',' read -ra matrix_array <<< "${{ github.event.inputs.agents }}"
matrix_string="[ \"$(echo "${matrix_array[@]}" | sed 's/ /", "/g')\" ]"
echo "::set-output name=env-name::production"
echo "::set-output name=matrix::$matrix_string"
else
echo "::set-output name=env-name::testing"
echo "::set-output name=matrix::[ 'irrelevant' ]"
fi
tests:
environment:
name: "${{ needs.matrix-setup.outputs.env-name }}"
needs: matrix-setup
env:
min-python-version: "3.10"
name: "${{ matrix.agent-name }}"
runs-on: ubuntu-latest
services:
# Label used to access the service container
postgres:
# Docker Hub image
image: postgres
# Provide the password for postgres
env:
POSTGRES_PASSWORD: postgres
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432
timeout-minutes: 50
strategy:
fail-fast: false
matrix:
agent-name: ${{fromJson(needs.matrix-setup.outputs.matrix)}}
steps:
- name: Print Environment Name
run: |
echo "Matrix Setup Environment Name: ${{ needs.matrix-setup.outputs.env-name }}"
- name: Check Docker Container
id: check
run: docker ps
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Set up Python ${{ env.min-python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.min-python-version }}
- id: get_date
name: Get date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python -
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: v18.15
- name: Run benchmark
run: |
link=$(jq -r '.["github_repo_url"]' arena/$AGENT_NAME.json)
branch=$(jq -r '.["branch_to_benchmark"]' arena/$AGENT_NAME.json)
git clone "$link" -b "$branch" "$AGENT_NAME"
cd $AGENT_NAME
cp ./$AGENT_NAME/.env.example ./$AGENT_NAME/.env || echo "file not found"
./run agent start $AGENT_NAME
cd ../benchmark
poetry install
poetry run agbenchmark --no-dep
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
SERP_API_KEY: ${{ secrets.SERP_API_KEY }}
SERPAPI_API_KEY: ${{ secrets.SERP_API_KEY }}
WEAVIATE_API_KEY: ${{ secrets.WEAVIATE_API_KEY }}
WEAVIATE_URL: ${{ secrets.WEAVIATE_URL }}
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
GOOGLE_CUSTOM_SEARCH_ENGINE_ID: ${{ secrets.GOOGLE_CUSTOM_SEARCH_ENGINE_ID }}
AGENT_NAME: ${{ matrix.agent-name }}

View File

@@ -3,7 +3,10 @@ name: "Pull Request auto-label"
on:
# So that PRs touching the same files as the push are updated
push:
branches: [ master ]
branches: [ master, development, release-* ]
paths-ignore:
- 'forge/tests/vcr_cassettes'
- 'benchmark/reports/**'
# So that the `dirtyLabel` is removed if conflicts are resolve
# We recommend `pull_request_target` so that github secrets are available.
# In `pull_request` we wouldn't be able to change labels of fork PRs
@@ -45,11 +48,19 @@ jobs:
s_label: 'size/s'
s_max_size: 10
m_label: 'size/m'
m_max_size: 50
m_max_size: 100
l_label: 'size/l'
l_max_size: 200
l_max_size: 500
xl_label: 'size/xl'
message_if_xl: >
This PR exceeds the recommended size of 200 lines.
Please make sure you are NOT addressing multiple issues with one PR.
Note this PR might be rejected due to its size
message_if_xl:
scope:
if: ${{ github.event_name == 'pull_request_target' }}
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
with:
sync-labels: true

151
.github/workflows/python-checks.yml vendored Normal file
View File

@@ -0,0 +1,151 @@
name: Python checks
on:
push:
branches: [ master, development, ci-test* ]
paths:
- '.github/workflows/lint-ci.yml'
- 'autogpt/**'
- 'forge/**'
- 'benchmark/**'
- '**.py'
- '!forge/tests/vcr_cassettes'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/lint-ci.yml'
- 'autogpt/**'
- 'forge/**'
- 'benchmark/**'
- '**.py'
- '!forge/tests/vcr_cassettes'
concurrency:
group: ${{ format('lint-ci-{0}', github.head_ref && format('{0}-{1}', github.event_name, github.event.pull_request.number) || github.sha) }}
cancel-in-progress: ${{ startsWith(github.event_name, 'pull_request') }}
defaults:
run:
shell: bash
jobs:
get-changed-parts:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- id: changes-in
name: Determine affected subprojects
uses: dorny/paths-filter@v3
with:
filters: |
autogpt:
- autogpt/autogpt/**
- autogpt/tests/**
- autogpt/poetry.lock
forge:
- forge/forge/**
- forge/tests/**
- forge/poetry.lock
benchmark:
- benchmark/agbenchmark/**
- benchmark/tests/**
- benchmark/poetry.lock
outputs:
changed-parts: ${{ steps.changes-in.outputs.changes }}
lint:
needs: get-changed-parts
runs-on: ubuntu-latest
env:
min-python-version: "3.10"
strategy:
matrix:
sub-package: ${{ fromJson(needs.get-changed-parts.outputs.changed-parts) }}
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ env.min-python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.min-python-version }}
- name: Set up Python dependency cache
uses: actions/cache@v4
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles(format('{0}/poetry.lock', matrix.sub-package)) }}
- name: Install Poetry
run: curl -sSL https://install.python-poetry.org | python3 -
# Install dependencies
- name: Install Python dependencies
run: poetry -C ${{ matrix.sub-package }} install
# Lint
- name: Lint (isort)
run: poetry run isort --check .
working-directory: ${{ matrix.sub-package }}
- name: Lint (Black)
if: success() || failure()
run: poetry run black --check .
working-directory: ${{ matrix.sub-package }}
- name: Lint (Flake8)
if: success() || failure()
run: poetry run flake8 .
working-directory: ${{ matrix.sub-package }}
types:
needs: get-changed-parts
runs-on: ubuntu-latest
env:
min-python-version: "3.10"
strategy:
matrix:
sub-package: ${{ fromJson(needs.get-changed-parts.outputs.changed-parts) }}
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ env.min-python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.min-python-version }}
- name: Set up Python dependency cache
uses: actions/cache@v4
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles(format('{0}/poetry.lock', matrix.sub-package)) }}
- name: Install Poetry
run: curl -sSL https://install.python-poetry.org | python3 -
# Install dependencies
- name: Install Python dependencies
run: poetry -C ${{ matrix.sub-package }} install
# Typecheck
- name: Typecheck
if: success() || failure()
run: poetry run pyright
working-directory: ${{ matrix.sub-package }}

20
.github/workflows/repo-stats.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: github-repo-stats
on:
schedule:
# Run this once per day, towards the end of the day for keeping the most
# recent data point most meaningful (hours are interpreted in UTC).
- cron: "0 23 * * *"
workflow_dispatch: # Allow for running this manually.
jobs:
j1:
name: github-repo-stats
runs-on: ubuntu-latest
steps:
- name: run-ghrs
# Use latest release.
uses: jgehrcke/github-repo-stats@HEAD
with:
ghtoken: ${{ secrets.ghrs_github_api_token }}

View File

@@ -0,0 +1,55 @@
import os
import requests
import sys
# GitHub API endpoint
api_url = os.environ["GITHUB_API_URL"]
repo = os.environ["GITHUB_REPOSITORY"]
sha = os.environ["GITHUB_SHA"]
# GitHub token for authentication
github_token = os.environ["GITHUB_TOKEN"]
# API endpoint for check runs for the specific SHA
endpoint = f"{api_url}/repos/{repo}/commits/{sha}/check-runs"
# Set up headers for authentication
headers = {
"Authorization": f"token {github_token}",
"Accept": "application/vnd.github.v3+json"
}
# Make the API request
response = requests.get(endpoint, headers=headers)
if response.status_code != 200:
print(f"Error: Unable to fetch check runs data. Status code: {response.status_code}")
sys.exit(1)
check_runs = response.json()["check_runs"]
# Flag to track if all other check runs have passed
all_others_passed = True
# Current run id
current_run_id = os.environ["GITHUB_RUN_ID"]
for run in check_runs:
if str(run["id"]) != current_run_id:
status = run["status"]
conclusion = run["conclusion"]
if status == "completed":
if conclusion not in ["success", "skipped", "neutral"]:
all_others_passed = False
print(f"Check run {run['name']} (ID: {run['id']}) has conclusion: {conclusion}")
else:
print(f"Check run {run['name']} (ID: {run['id']}) is still {status}.")
all_others_passed = False
if all_others_passed:
print("All other completed check runs have passed. This check passes.")
sys.exit(0)
else:
print("Some check runs have failed or have not completed. This check fails.")
sys.exit(1)

View File

@@ -1,28 +0,0 @@
name: Generate Sponsors README
on:
workflow_dispatch:
schedule:
- cron: '0 */12 * * *'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@v3
- name: Generate Sponsors 💖
uses: JamesIves/github-sponsors-readme-action@v1
with:
token: ${{ secrets.README_UPDATER_PAT }}
file: 'README.md'
minimum: 2500
maximum: 99999
- name: Deploy to GitHub Pages 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: master
folder: '.'
token: ${{ secrets.README_UPDATER_PAT }}

51
.github/workflows/workflow-checker.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: PR Status Checker
on:
workflow_run:
workflows: ["*"]
types:
- completed
jobs:
status-check:
name: Check Actions Status
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests
- name: Debug Information
run: |
echo "Event name: ${{ github.event_name }}"
echo "Workflow: ${{ github.workflow }}"
echo "Action: ${{ github.action }}"
echo "Actor: ${{ github.actor }}"
echo "Repository: ${{ github.repository }}"
echo "Ref: ${{ github.ref }}"
echo "Head ref: ${{ github.head_ref }}"
echo "Base ref: ${{ github.base_ref }}"
echo "Event payload:"
cat $GITHUB_EVENT_PATH
- name: Debug File Structure
run: |
echo "Current directory:"
pwd
echo "Directory contents:"
ls -R
echo "GitHub workspace:"
echo $GITHUB_WORKSPACE
echo "GitHub workspace contents:"
ls -R $GITHUB_WORKSPACE
- name: Check Actions Status
run: |
echo "Current directory before running Python script:"
pwd
echo "Attempting to run Python script:"
python .github/scripts/check_actions_status.py
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

34
.gitignore vendored
View File

@@ -1,26 +1,21 @@
## Original ignores
.github_access_token
autogpt/keys.py
autogpt/*json
autogpt/node_modules/
autogpt/__pycache__/keys.cpython-310.pyc
autogpt/auto_gpt_workspace
package-lock.json
*.pyc
autogpt/*.json
auto_gpt_workspace/*
*.mpeg
.env
azure.yaml
ai_settings.yaml
last_run_ai_settings.yaml
.vscode
.idea/*
auto-gpt.json
log.txt
log-ingestion.txt
logs
/logs
*.log
*.mp3
mem.sqlite3
venvAutoGPT
# Byte-compiled / optimized / DLL files
__pycache__/
@@ -32,14 +27,11 @@ __pycache__/
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
plugins/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
@@ -162,4 +154,20 @@ vicuna-*
openai/
# news
CURRENT_BULLETIN.md
CURRENT_BULLETIN.md
# AgBenchmark
agbenchmark/reports/
# Nodejs
package-lock.json
# Allow for locally private items
# private
pri*
# ignore
ig*
.github_access_token
LICENSE.rtf
rnd/autogpt_server/settings.py

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "forge/tests/vcr_cassettes"]
path = forge/tests/vcr_cassettes
url = https://github.com/Significant-Gravitas/Auto-GPT-test-cassettes

View File

@@ -1,10 +0,0 @@
[settings]
profile = black
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
line_length = 88
sections = FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,LOCALFOLDER
skip = .tox,__pycache__,*.pyc,venv*/*,reports,venv,env,node_modules,.env,.venv,dist

6
.pr_agent.toml Normal file
View File

@@ -0,0 +1,6 @@
[pr_reviewer]
num_code_suggestions=0
[pr_code_suggestions]
commitable_code_suggestions=false
num_code_suggestions=0

View File

@@ -3,30 +3,125 @@ repos:
rev: v4.4.0
hooks:
- id: check-added-large-files
args: ['--maxkb=500']
- id: check-byte-order-marker
args: ["--maxkb=500"]
- id: fix-byte-order-marker
- id: check-case-conflict
- id: check-merge-conflict
- id: check-symlinks
- id: debug-statements
- repo: https://github.com/pycqa/isort
rev: 5.12.0
- repo: local
# isort needs the context of which packages are installed to function, so we
# can't use a vendored isort pre-commit hook (which runs in its own isolated venv).
hooks:
- id: isort
language_version: python3.10
- id: isort-autogpt
name: Lint (isort) - AutoGPT
entry: poetry -C autogpt run isort
files: ^autogpt/
types: [file, python]
language: system
- id: isort-forge
name: Lint (isort) - Forge
entry: poetry -C forge run isort
files: ^forge/
types: [file, python]
language: system
- id: isort-benchmark
name: Lint (isort) - Benchmark
entry: poetry -C benchmark run isort
files: ^benchmark/
types: [file, python]
language: system
- repo: https://github.com/psf/black
rev: 23.3.0
rev: 23.12.1
# Black has sensible defaults, doesn't need package context, and ignores
# everything in .gitignore, so it works fine without any config or arguments.
hooks:
- id: black
name: Lint (Black)
language_version: python3.10
- repo: https://github.com/PyCQA/flake8
rev: 7.0.0
# To have flake8 load the config of the individual subprojects, we have to call
# them separately.
hooks:
- id: flake8
name: Lint (Flake8) - AutoGPT
alias: flake8-autogpt
files: ^autogpt/(autogpt|scripts|tests)/
args: [--config=autogpt/.flake8]
- id: flake8
name: Lint (Flake8) - Forge
alias: flake8-forge
files: ^forge/(forge|tests)/
args: [--config=forge/.flake8]
- id: flake8
name: Lint (Flake8) - Benchmark
alias: flake8-benchmark
files: ^benchmark/(agbenchmark|tests)/((?!reports).)*[/.]
args: [--config=benchmark/.flake8]
- repo: local
# To have watertight type checking, we check *all* the files in an affected
# project. To trigger on poetry.lock we also reset the file `types` filter.
hooks:
- id: pyright
name: Typecheck - AutoGPT
alias: pyright-autogpt
entry: poetry -C autogpt run pyright
args: [-p, autogpt, autogpt]
# include forge source (since it's a path dependency) but exclude *_test.py files:
files: ^(autogpt/((autogpt|scripts|tests)/|poetry\.lock$)|forge/(forge/.*(?<!_test)\.py|poetry\.lock)$)
types: [file]
language: system
pass_filenames: false
- id: pyright
name: Typecheck - Forge
alias: pyright-forge
entry: poetry -C forge run pyright
args: [-p, forge, forge]
files: ^forge/(forge/|poetry\.lock$)
types: [file]
language: system
pass_filenames: false
- id: pyright
name: Typecheck - Benchmark
alias: pyright-benchmark
entry: poetry -C benchmark run pyright
args: [-p, benchmark, benchmark]
files: ^benchmark/(agbenchmark/|tests/|poetry\.lock$)
types: [file]
language: system
pass_filenames: false
- repo: local
hooks:
- id: pytest-check
name: pytest-check
entry: pytest --cov=autogpt --without-integration --without-slow-integration
- id: pytest-autogpt
name: Run tests - AutoGPT (excl. slow tests)
entry: bash -c 'cd autogpt && poetry run pytest --cov=autogpt -m "not slow" tests/unit tests/integration'
# include forge source (since it's a path dependency) but exclude *_test.py files:
files: ^(autogpt/((autogpt|tests)/|poetry\.lock$)|forge/(forge/.*(?<!_test)\.py|poetry\.lock)$)
language: system
pass_filenames: false
- id: pytest-forge
name: Run tests - Forge (excl. slow tests)
entry: bash -c 'cd forge && poetry run pytest --cov=forge -m "not slow"'
files: ^forge/(forge/|tests/|poetry\.lock$)
language: system
pass_filenames: false
- id: pytest-benchmark
name: Run tests - Benchmark
entry: bash -c 'cd benchmark && poetry run pytest --cov=benchmark'
files: ^benchmark/(agbenchmark/|tests/|poetry\.lock$)
language: system
pass_filenames: false
always_run: true

47
.vscode/all-projects.code-workspace vendored Normal file
View File

@@ -0,0 +1,47 @@
{
"folders": [
{
"name": "autogpt",
"path": "../autogpt"
},
{
"name": "benchmark",
"path": "../benchmark"
},
{
"name": "docs",
"path": "../docs"
},
{
"name": "forge",
"path": "../forge"
},
{
"name": "frontend",
"path": "../frontend"
},
{
"name": "autogpt_server",
"path": "../rnd/autogpt_server"
},
{
"name": "autogpt_builder",
"path": "../rnd/autogpt_builder"
},
{
"name": "[root]",
"path": ".."
}
],
"settings": {},
"extensions": {
"recommendations": [
"charliermarsh.ruff",
"dart-code.flutter",
"ms-python.black-formatter",
"ms-python.vscode-pylance",
"prisma.prisma",
"qwtel.sqlite-viewer"
]
}
}

View File

@@ -1,9 +0,0 @@
Welcome to Auto-GPT! We'll keep you informed of the latest news and features by printing messages here.
If you don't wish to see this message, you can run Auto-GPT with the --skip-news flag
# INCLUDED COMMAND 'send_tweet' IS DEPRICATED, AND WILL BE REMOVED IN THE NEXT STABLE RELEASE
Base Twitter functionality (and more) is now covered by plugins: https://github.com/Significant-Gravitas/Auto-GPT-Plugins
## Changes to Docker configuration
The workdir has been changed from /home/appuser to /app. Be sure to update any volume mounts accordingly.

21
CITATION.cff Normal file
View File

@@ -0,0 +1,21 @@
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: AutoGPT
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- name: Significant Gravitas
website: 'https://agpt.co'
repository-code: 'https://github.com/Significant-Gravitas/AutoGPT'
url: 'https://agpt.co'
abstract: >-
A collection of tools and experimental open-source attempts to make GPT-4 fully
autonomous.
keywords:
- AI
- Agent
license: MIT

182
CLI-USAGE.md Executable file
View File

@@ -0,0 +1,182 @@
## CLI Documentation
This document describes how to interact with the project's CLI (Command Line Interface). It includes the types of outputs you can expect from each command. Note that the `agents stop` command will terminate any process running on port 8000.
### 1. Entry Point for the CLI
Running the `./run` command without any parameters will display the help message, which provides a list of available commands and options. Additionally, you can append `--help` to any command to view help information specific to that command.
```sh
./run
```
**Output**:
```
Usage: cli.py [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
agent Commands to create, start and stop agents
benchmark Commands to start the benchmark and list tests and categories
setup Installs dependencies needed for your system.
```
If you need assistance with any command, simply add the `--help` parameter to the end of your command, like so:
```sh
./run COMMAND --help
```
This will display a detailed help message regarding that specific command, including a list of any additional options and arguments it accepts.
### 2. Setup Command
```sh
./run setup
```
**Output**:
```
Setup initiated
Installation has been completed.
```
This command initializes the setup of the project.
### 3. Agents Commands
**a. List All Agents**
```sh
./run agent list
```
**Output**:
```
Available agents: 🤖
🐙 forge
🐙 autogpt
```
Lists all the available agents.
**b. Create a New Agent**
```sh
./run agent create my_agent
```
**Output**:
```
🎉 New agent 'my_agent' created and switched to the new directory in agents folder.
```
Creates a new agent named 'my_agent'.
**c. Start an Agent**
```sh
./run agent start my_agent
```
**Output**:
```
... (ASCII Art representing the agent startup)
[Date and Time] [forge.sdk.db] [DEBUG] 🐛 Initializing AgentDB with database_string: sqlite:///agent.db
[Date and Time] [forge.sdk.agent] [INFO] 📝 Agent server starting on http://0.0.0.0:8000
```
Starts the 'my_agent' and displays startup ASCII art and logs.
**d. Stop an Agent**
```sh
./run agent stop
```
**Output**:
```
Agent stopped
```
Stops the running agent.
### 4. Benchmark Commands
**a. List Benchmark Categories**
```sh
./run benchmark categories list
```
**Output**:
```
Available categories: 📚
📖 code
📖 safety
📖 memory
... (and so on)
```
Lists all available benchmark categories.
**b. List Benchmark Tests**
```sh
./run benchmark tests list
```
**Output**:
```
Available tests: 📚
📖 interface
🔬 Search - TestSearch
🔬 Write File - TestWriteFile
... (and so on)
```
Lists all available benchmark tests.
**c. Show Details of a Benchmark Test**
```sh
./run benchmark tests details TestWriteFile
```
**Output**:
```
TestWriteFile
-------------
Category: interface
Task: Write the word 'Washington' to a .txt file
... (and other details)
```
Displays the details of the 'TestWriteFile' benchmark test.
**d. Start Benchmark for the Agent**
```sh
./run benchmark start my_agent
```
**Output**:
```
(more details about the testing process shown whilst the test are running)
============= 13 failed, 1 passed in 0.97s ============...
```
Displays the results of the benchmark tests on 'my_agent'.

View File

@@ -1,12 +1,12 @@
# Code of Conduct for Auto-GPT
# Code of Conduct for AutoGPT
## 1. Purpose
The purpose of this Code of Conduct is to provide guidelines for contributors to the auto-gpt project on GitHub. We aim to create a positive and inclusive environment where all participants can contribute and collaborate effectively. By participating in this project, you agree to abide by this Code of Conduct.
The purpose of this Code of Conduct is to provide guidelines for contributors to the AutoGPT projects on GitHub. We aim to create a positive and inclusive environment where all participants can contribute and collaborate effectively. By participating in this project, you agree to abide by this Code of Conduct.
## 2. Scope
This Code of Conduct applies to all contributors, maintainers, and users of the auto-gpt project. It extends to all project spaces, including but not limited to issues, pull requests, code reviews, comments, and other forms of communication within the project.
This Code of Conduct applies to all contributors, maintainers, and users of the AutoGPT project. It extends to all project spaces, including but not limited to issues, pull requests, code reviews, comments, and other forms of communication within the project.
## 3. Our Standards
@@ -36,4 +36,5 @@ This Code of Conduct is adapted from the [Contributor Covenant](https://www.cont
## 6. Contact
If you have any questions or concerns, please contact the project maintainers.
If you have any questions or concerns, please contact the project maintainers on Discord:
https://discord.gg/autogpt

View File

@@ -1,148 +1,38 @@
# Contributing to Auto-GPT
# AutoGPT Contribution Guide
If you are reading this, you are probably looking for the full **[contribution guide]**,
which is part of our [wiki].
First of all, thank you for considering contributing to our project! We appreciate your time and effort, and we value any contribution, whether it's reporting a bug, suggesting a new feature, or submitting a pull request.
Also check out our [🚀 Roadmap][roadmap] for information about our priorities and associated tasks.
<!-- You can find our immediate priorities and their progress on our public [kanban board]. -->
This document provides guidelines and best practices to help you contribute effectively.
[contribution guide]: https://github.com/Significant-Gravitas/AutoGPT/wiki/Contributing
[wiki]: https://github.com/Significant-Gravitas/AutoGPT/wiki
[roadmap]: https://github.com/Significant-Gravitas/AutoGPT/discussions/6971
[kanban board]: https://github.com/orgs/Significant-Gravitas/projects/1
## Code of Conduct
## In short
1. Avoid duplicate work, issues, PRs etc.
2. We encourage you to collaborate with fellow community members on some of our bigger
[todo's][roadmap]!
* We highly recommend to post your idea and discuss it in the [dev channel].
3. Create a draft PR when starting work on bigger changes.
4. Adhere to the [Code Guidelines]
5. Clearly explain your changes when submitting a PR.
6. Don't submit broken code: test/validate your changes.
7. Avoid making unnecessary changes, especially if they're purely based on your personal
preferences. Doing so is the maintainers' job. ;-)
8. Please also consider contributing something other than code; see the
[contribution guide] for options.
By participating in this project, you agree to abide by our [Code of Conduct]. Please read it to understand the expectations we have for everyone who contributes to this project.
[dev channel]: https://discord.com/channels/1092243196446249134/1095817829405704305
[code guidelines]: https://github.com/Significant-Gravitas/AutoGPT/wiki/Contributing#code-guidelines
[Code of Conduct]: https://significant-gravitas.github.io/Auto-GPT/code-of-conduct.md
If you wish to involve with the project (beyond just contributing PRs), please read the
wiki page about [Catalyzing](https://github.com/Significant-Gravitas/AutoGPT/wiki/Catalyzing).
## 📢 A Quick Word
Right now we will not be accepting any Contributions that add non-essential commands to Auto-GPT.
In fact, why not just look through the whole wiki (it's only a few pages) and
hop on our Discord. See you there! :-)
However, you absolutely can still add these commands to Auto-GPT in the form of plugins.
Please check out this [template](https://github.com/Significant-Gravitas/Auto-GPT-Plugin-Template).
## Getting Started
1. Fork the repository and clone your fork.
2. Create a new branch for your changes (use a descriptive name, such as `fix-bug-123` or `add-new-feature`).
3. Make your changes in the new branch.
4. Test your changes thoroughly.
5. Commit and push your changes to your fork.
6. Create a pull request following the guidelines in the [Submitting Pull Requests](#submitting-pull-requests) section.
## How to Contribute
### Reporting Bugs
If you find a bug in the project, please create an issue on GitHub with the following information:
- A clear, descriptive title for the issue.
- A description of the problem, including steps to reproduce the issue.
- Any relevant logs, screenshots, or other supporting information.
### Suggesting Enhancements
If you have an idea for a new feature or improvement, please create an issue on GitHub with the following information:
- A clear, descriptive title for the issue.
- A detailed description of the proposed enhancement, including any benefits and potential drawbacks.
- Any relevant examples, mockups, or supporting information.
### Submitting Pull Requests
When submitting a pull request, please ensure that your changes meet the following criteria:
- Your pull request should be atomic and focus on a single change.
- Your pull request should include tests for your change. We automatically enforce this with [CodeCov](https://docs.codecov.com/docs/commit-status)
- You should have thoroughly tested your changes with multiple different prompts.
- You should have considered potential risks and mitigations for your changes.
- You should have documented your changes clearly and comprehensively.
- You should not include any unrelated or "extra" small tweaks or changes.
## Style Guidelines
### Code Formatting
We use the `black` and `isort` code formatters to maintain a consistent coding style across the project. Please ensure that your code is formatted properly before submitting a pull request.
To format your code, run the following commands in the project's root directory:
```bash
python -m black .
python -m isort .
```
Or if you have these tools installed globally:
```bash
black .
isort .
```
### Pre-Commit Hooks
We use pre-commit hooks to ensure that code formatting and other checks are performed automatically before each commit. To set up pre-commit hooks for this project, follow these steps:
Install the pre-commit package using pip:
```bash
pip install pre-commit
```
Run the following command in the project's root directory to install the pre-commit hooks:
```bash
pre-commit install
```
Now, the pre-commit hooks will run automatically before each commit, checking your code formatting and other requirements.
If you encounter any issues or have questions, feel free to reach out to the maintainers or open a new issue on GitHub. We're here to help and appreciate your efforts to contribute to the project.
Happy coding, and once again, thank you for your contributions!
Maintainers will look at PR that have no merge conflicts when deciding what to add to the project. Make sure your PR shows up here:
https://github.com/Significant-Gravitas/Auto-GPT/pulls?q=is%3Apr+is%3Aopen+-label%3Aconflicts
## Testing your changes
If you add or change code, make sure the updated code is covered by tests.
To increase coverage if necessary, [write tests using pytest].
For more info on running tests, please refer to ["Running tests"](https://significant-gravitas.github.io/Auto-GPT/testing/).
[write tests using pytest]: https://realpython.com/pytest-python-testing/
### API-dependent tests
To run tests that involve making calls to the OpenAI API, we use VCRpy. It caches known
requests and matching responses in so-called *cassettes*, allowing us to run the tests
in CI without needing actual API access.
When changes cause a test prompt to be generated differently, it will likely miss the
cache and make a request to the API, updating the cassette with the new request+response.
*Be sure to include the updated cassette in your PR!*
When you run Pytest locally:
- If no prompt change: you will not consume API tokens because there are no new OpenAI calls required.
- If the prompt changes in a way that the cassettes are not reusable:
- If no API key, the test fails. It requires a new cassette. So, add an API key to .env.
- If the API key is present, the tests will make a real call to OpenAI.
- If the test ends up being successful, your prompt changes didn't introduce regressions. This is good. Commit your cassettes to your PR.
- If the test is unsuccessful:
- Either: Your change made Auto-GPT less capable, in that case, you have to change your code.
- Or: The test might be poorly written. In that case, you can make suggestions to change the test.
In our CI pipeline, Pytest will use the cassettes and not call paid API providers, so we need your help to record the replays that you break.
### Community Challenges
Challenges are goals we need Auto-GPT to achieve.
To pick the challenge you like, go to the tests/integration/challenges folder and select the areas you would like to work on.
- a challenge is new if level_currently_beaten is None
- a challenge is in progress if level_currently_beaten is greater or equal to 1
- a challenge is beaten if level_currently_beaten = max_level
Here is an example of how to run the memory challenge A and attempt to beat level 3.
pytest -s tests/integration/challenges/memory/test_memory_challenge_a.py --level=3
To beat a challenge, you're not allowed to change anything in the tests folder, you have to add code in the autogpt folder
Challenges use cassettes. Cassettes allow us to replay your runs in our CI pipeline.
Don't hesitate to delete the cassettes associated to the challenge you're working on if you need to. Otherwise it will keep replaying the last run.
Once you've beaten a new level of a challenge, please create a pull request and we will analyze how you changed Auto-GPT to beat the challenge.
❤️ & 🔆
The team @ AutoGPT
https://discord.gg/autogpt

View File

@@ -1,40 +0,0 @@
# 'dev' or 'release' container build
ARG BUILD_TYPE=dev
# Use an official Python base image from the Docker Hub
FROM python:3.10-slim AS autogpt-base
# Install browsers
RUN apt-get update && apt-get install -y \
chromium-driver firefox-esr \
ca-certificates
# Install utilities
RUN apt-get install -y curl jq wget git
# Set environment variables
ENV PIP_NO_CACHE_DIR=yes \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1
# Install the required python packages globally
ENV PATH="$PATH:/root/.local/bin"
COPY requirements.txt .
# Set the entrypoint
ENTRYPOINT ["python", "-m", "autogpt"]
# dev build -> include everything
FROM autogpt-base as autogpt-dev
RUN pip install --no-cache-dir -r requirements.txt
WORKDIR /app
ONBUILD COPY . ./
# release build -> include bare minimum
FROM autogpt-base as autogpt-release
RUN sed -i '/Items below this point will not be included in the Docker Image/,$d' requirements.txt && \
pip install --no-cache-dir -r requirements.txt
WORKDIR /app
ONBUILD COPY autogpt/ ./autogpt
FROM autogpt-${BUILD_TYPE} AS auto-gpt

61
Dockerfile.autogpt Normal file
View File

@@ -0,0 +1,61 @@
# 'dev' or 'release' container build
ARG BUILD_TYPE=dev
# Use an official Python base image from the Docker Hub
FROM python:3.10-slim AS autogpt-base
# Install browsers
RUN apt-get update && apt-get install -y \
chromium-driver ca-certificates gcc \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Install utilities
RUN apt-get update && apt-get install -y \
curl jq wget git \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Set environment variables
ENV PIP_NO_CACHE_DIR=yes \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
POETRY_HOME="/opt/poetry" \
POETRY_VIRTUALENVS_PATH="/venv" \
POETRY_VIRTUALENVS_IN_PROJECT=0 \
POETRY_NO_INTERACTION=1
# Install and configure Poetry
RUN curl -sSL https://install.python-poetry.org | python3 -
ENV PATH="$POETRY_HOME/bin:$PATH"
RUN poetry config installer.max-workers 10
WORKDIR /app/autogpt
COPY autogpt/pyproject.toml autogpt/poetry.lock ./
# Include forge so it can be used as a path dependency
COPY forge/ ../forge
# Include frontend
COPY frontend/ ../frontend
# Set the entrypoint
ENTRYPOINT ["poetry", "run", "autogpt"]
CMD []
# dev build -> include everything
FROM autogpt-base as autogpt-dev
RUN poetry install --no-cache --no-root \
&& rm -rf $(poetry env info --path)/src
ONBUILD COPY autogpt/ ./
# release build -> include bare minimum
FROM autogpt-base as autogpt-release
RUN poetry install --no-cache --no-root --without dev \
&& rm -rf $(poetry env info --path)/src
ONBUILD COPY autogpt/autogpt/ ./autogpt
ONBUILD COPY autogpt/scripts/ ./scripts
ONBUILD COPY autogpt/plugins/ ./plugins
ONBUILD COPY autogpt/README.md ./README.md
ONBUILD RUN mkdir ./data
FROM autogpt-${BUILD_TYPE} AS autogpt
RUN poetry install --only-root

173
FORGE-QUICKSTART.md Normal file
View File

@@ -0,0 +1,173 @@
# Quickstart Guide
> For the complete getting started [tutorial series](https://aiedge.medium.com/autogpt-forge-e3de53cc58ec) <- click here
Welcome to the Quickstart Guide! This guide will walk you through setting up, building, and running your own AutoGPT agent. Whether you're a seasoned AI developer or just starting out, this guide will provide you with the steps to jumpstart your journey in AI development with AutoGPT.
## System Requirements
This project supports Linux (Debian-based), Mac, and Windows Subsystem for Linux (WSL). If you use a Windows system, you must install WSL. You can find the installation instructions for WSL [here](https://learn.microsoft.com/en-us/windows/wsl/).
## Getting Setup
1. **Fork the Repository**
To fork the repository, follow these steps:
- Navigate to the main page of the repository.
![Repository](docs/content/imgs/quickstart/001_repo.png)
- In the top-right corner of the page, click Fork.
![Create Fork UI](docs/content/imgs/quickstart/002_fork.png)
- On the next page, select your GitHub account to create the fork.
- Wait for the forking process to complete. You now have a copy of the repository in your GitHub account.
2. **Clone the Repository**
To clone the repository, you need to have Git installed on your system. If you don't have Git installed, download it from [here](https://git-scm.com/downloads). Once you have Git installed, follow these steps:
- Open your terminal.
- Navigate to the directory where you want to clone the repository.
- Run the git clone command for the fork you just created
![Clone the Repository](docs/content/imgs/quickstart/003_clone.png)
- Then open your project in your ide
![Open the Project in your IDE](docs/content/imgs/quickstart/004_ide.png)
4. **Setup the Project**
Next, we need to set up the required dependencies. We have a tool to help you perform all the tasks on the repo.
It can be accessed by running the `run` command by typing `./run` in the terminal.
The first command you need to use is `./run setup.` This will guide you through setting up your system.
Initially, you will get instructions for installing Flutter and Chrome and setting up your GitHub access token like the following image:
![Setup the Project](docs/content/imgs/quickstart/005_setup.png)
### For Windows Users
If you're a Windows user and experience issues after installing WSL, follow the steps below to resolve them.
#### Update WSL
Run the following command in Powershell or Command Prompt:
1. Enable the optional WSL and Virtual Machine Platform components.
2. Download and install the latest Linux kernel.
3. Set WSL 2 as the default.
4. Download and install the Ubuntu Linux distribution (a reboot may be required).
```shell
wsl --install
```
For more detailed information and additional steps, refer to [Microsoft's WSL Setup Environment Documentation](https://learn.microsoft.com/en-us/windows/wsl/setup/environment).
#### Resolve FileNotFoundError or "No such file or directory" Errors
When you run `./run setup`, if you encounter errors like `No such file or directory` or `FileNotFoundError`, it might be because Windows-style line endings (CRLF - Carriage Return Line Feed) are not compatible with Unix/Linux style line endings (LF - Line Feed).
To resolve this, you can use the `dos2unix` utility to convert the line endings in your script from CRLF to LF. Heres how to install and run `dos2unix` on the script:
```shell
sudo apt update
sudo apt install dos2unix
dos2unix ./run
```
After executing the above commands, running `./run setup` should work successfully.
#### Store Project Files within the WSL File System
If you continue to experience issues, consider storing your project files within the WSL file system instead of the Windows file system. This method avoids path translations and permissions issues and provides a more consistent development environment.
You can keep running the command to get feedback on where you are up to with your setup.
When setup has been completed, the command will return an output like this:
![Setup Complete](docs/content/imgs/quickstart/006_setup_complete.png)
## Creating Your Agent
After completing the setup, the next step is to create your agent template.
Execute the command `./run agent create YOUR_AGENT_NAME`, where `YOUR_AGENT_NAME` should be replaced with your chosen name.
Tips for naming your agent:
* Give it its own unique name, or name it after yourself
* Include an important aspect of your agent in the name, such as its purpose
Examples: `SwiftyosAssistant`, `PwutsPRAgent`, `MySuperAgent`
![Create an Agent](docs/content/imgs/quickstart/007_create_agent.png)
## Running your Agent
Your agent can be started using the command: `./run agent start YOUR_AGENT_NAME`
This starts the agent on the URL: `http://localhost:8000/`
![Start the Agent](docs/content/imgs/quickstart/009_start_agent.png)
The front end can be accessed from `http://localhost:8000/`; first, you must log in using either a Google account or your GitHub account.
![Login](docs/content/imgs/quickstart/010_login.png)
Upon logging in, you will get a page that looks something like this: your task history down the left-hand side of the page, and the 'chat' window to send tasks to your agent.
![Login](docs/content/imgs/quickstart/011_home.png)
When you have finished with your agent or just need to restart it, use Ctl-C to end the session. Then, you can re-run the start command.
If you are having issues and want to ensure the agent has been stopped, there is a `./run agent stop` command, which will kill the process using port 8000, which should be the agent.
## Benchmarking your Agent
The benchmarking system can also be accessed using the CLI too:
```bash
agpt % ./run benchmark
Usage: cli.py benchmark [OPTIONS] COMMAND [ARGS]...
Commands to start the benchmark and list tests and categories
Options:
--help Show this message and exit.
Commands:
categories Benchmark categories group command
start Starts the benchmark command
tests Benchmark tests group command
agpt % ./run benchmark categories
Usage: cli.py benchmark categories [OPTIONS] COMMAND [ARGS]...
Benchmark categories group command
Options:
--help Show this message and exit.
Commands:
list List benchmark categories command
agpt % ./run benchmark tests
Usage: cli.py benchmark tests [OPTIONS] COMMAND [ARGS]...
Benchmark tests group command
Options:
--help Show this message and exit.
Commands:
details Benchmark test details command
list List benchmark tests command
```
The benchmark has been split into different categories of skills you can test your agent on. You can see what categories are available with
```bash
./run benchmark categories list
# And what tests are available with
./run benchmark tests list
```
![Login](docs/content/imgs/quickstart/012_tests.png)
Finally, you can run the benchmark with
```bash
./run benchmark start YOUR_AGENT_NAME
```
>

258
README.md

File diff suppressed because one or more lines are too long

66
SECURITY.md Normal file
View File

@@ -0,0 +1,66 @@
# Security Policy
- [**Using AutoGPT Securely**](#using-AutoGPT-securely)
- [Restrict Workspace](#restrict-workspace)
- [Untrusted inputs](#untrusted-inputs)
- [Data privacy](#data-privacy)
- [Untrusted environments or networks](#untrusted-environments-or-networks)
- [Multi-Tenant environments](#multi-tenant-environments)
- [**Reporting a Vulnerability**](#reporting-a-vulnerability)
## Using AutoGPT Securely
### Restrict Workspace
Since agents can read and write files, it is important to keep them restricted to a specific workspace. This happens by default *unless* RESTRICT_TO_WORKSPACE is set to False.
Disabling RESTRICT_TO_WORKSPACE can increase security risks. However, if you still need to disable it, consider running AutoGPT inside a [sandbox](https://developers.google.com/code-sandboxing), to mitigate some of these risks.
### Untrusted inputs
When handling untrusted inputs, it's crucial to isolate the execution and carefully pre-process inputs to mitigate script injection risks.
For maximum security when handling untrusted inputs, you may need to employ the following:
* Sandboxing: Isolate the process.
* Updates: Keep your libraries (including AutoGPT) updated with the latest security patches.
* Input Sanitation: Before feeding data to the model, sanitize inputs rigorously. This involves techniques such as:
* Validation: Enforce strict rules on allowed characters and data types.
* Filtering: Remove potentially malicious scripts or code fragments.
* Encoding: Convert special characters into safe representations.
* Verification: Run tooling that identifies potential script injections (e.g. [models that detect prompt injection attempts](https://python.langchain.com/docs/guides/safety/hugging_face_prompt_injection)).
### Data privacy
To protect sensitive data from potential leaks or unauthorized access, it is crucial to sandbox the agent execution. This means running it in a secure, isolated environment, which helps mitigate many attack vectors.
### Untrusted environments or networks
Since AutoGPT performs network calls to the OpenAI API, it is important to always run it with trusted environments and networks. Running it on untrusted environments can expose your API KEY to attackers.
Additionally, running it on an untrusted network can expose your data to potential network attacks.
However, even when running on trusted networks, it is important to always encrypt sensitive data while sending it over the network.
### Multi-Tenant environments
If you intend to run multiple AutoGPT brains in parallel, it is your responsibility to ensure the models do not interact or access each other's data.
The primary areas of concern are tenant isolation, resource allocation, model sharing and hardware attacks.
- Tenant Isolation: you must make sure that the tenants run separately to prevent unwanted access to the data from other tenants. Keeping model network traffic separate is also important because you not only prevent unauthorized access to data, but also prevent malicious users or tenants sending prompts to execute under another tenants identity.
- Resource Allocation: a denial of service caused by one tenant can affect the overall system health. Implement safeguards like rate limits, access controls, and health monitoring.
- Data Sharing: in a multi-tenant design with data sharing, ensure tenants and users understand the security risks and sandbox agent execution to mitigate risks.
- Hardware Attacks: the hardware (GPUs or TPUs) can also be attacked. [Research](https://scholar.google.com/scholar?q=gpu+side+channel) has shown that side channel attacks on GPUs are possible, which can make data leak from other brains or processes running on the same system at the same time.
## Reporting a Vulnerability
Beware that none of the topics under [Using AutoGPT Securely](#using-AutoGPT-securely) are considered vulnerabilities on AutoGPT.
However, If you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released.
Please disclose it as a private [security advisory](https://github.com/Significant-Gravitas/AutoGPT/security/advisories/new).
A team of volunteers on a reasonable-effort basis maintains this project. As such, please give us at least 90 days to work on a fix before public exposure.

23
TROUBLESHOOTING.md Normal file
View File

@@ -0,0 +1,23 @@
This page is a list of issues you could encounter along with their fixes.
# Forge
**Poetry configuration invalid**
The poetry configuration is invalid:
- Additional properties are not allowed ('group' was unexpected)
<img width="487" alt="Screenshot 2023-09-22 at 5 42 59 PM" src="https://github.com/Significant-Gravitas/AutoGPT/assets/9652976/dd451e6b-8114-44de-9928-075f5f06d661">
**Pydantic Validation Error**
Remove your sqlite agent.db file. it's probably because some of your data is not complying with the new spec (we will create migrations soon to avoid this problem)
*Solution*
Update poetry
# Benchmark
TODO
# Frontend
TODO

BIN
assets/gpt_dark_RGB.icns Normal file

Binary file not shown.

BIN
assets/gpt_dark_RGB.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
assets/gpt_dark_RGB.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

@@ -10,4 +10,4 @@ RUN apt-get update && apt-get install -y \
RUN apt-get install -y curl jq wget git
# Declare working directory
WORKDIR /workspace/Auto-GPT
WORKDIR /workspace/AutoGPT

View File

@@ -1,17 +1,18 @@
{
"dockerComposeFile": "./docker-compose.yml",
"service": "auto-gpt",
"workspaceFolder": "/workspace/Auto-GPT",
"workspaceFolder": "/workspace/AutoGPT",
"shutdownAction": "stopCompose",
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"installZsh": "true",
"username": "vscode",
"userUid": "6942",
"userGid": "6942",
"userUid": "1000",
"userGid": "1000",
"upgradePackages": "true"
},
"ghcr.io/devcontainers/features/desktop-lite:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/python:1": "none",
"ghcr.io/devcontainers/features/node:1": "none",
"ghcr.io/devcontainers/features/git:1": {
@@ -25,16 +26,31 @@
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"python.defaultInterpreterPath": "/usr/local/bin/python"
}
"python.defaultInterpreterPath": "/usr/local/bin/python",
"python.testing.pytestEnabled": true,
"python.testing.unittestEnabled": false
},
"extensions": [
"ms-python.python",
"VisualStudioExptTeam.vscodeintellicode",
"ms-python.vscode-pylance",
"ms-python.black-formatter",
"ms-python.isort",
"GitHub.vscode-pull-request-github",
"GitHub.copilot",
"github.vscode-github-actions"
]
}
},
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "pip3 install --user -r requirements.txt",
// "postCreateCommand": "poetry install",
// Set `remoteUser` to `root` to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
"remoteUser": "vscode",
// Add the freshly containerized repo to the list of safe repositories
"postCreateCommand": "git config --global --add safe.directory /workspace/AutoGPT && poetry install"
}

View File

@@ -0,0 +1,12 @@
# To boot the app run the following:
# docker-compose run auto-gpt
version: '3.9'
services:
auto-gpt:
build:
dockerfile: .devcontainer/Dockerfile
context: ../
tty: true
volumes:
- ../:/workspace/AutoGPT

178
autogpt/.env.template Normal file
View File

@@ -0,0 +1,178 @@
################################################################################
### AutoGPT - GENERAL SETTINGS
################################################################################
## OPENAI_API_KEY - OpenAI API Key (Example: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
# OPENAI_API_KEY=
## ANTHROPIC_API_KEY - Anthropic API Key (Example: sk-ant-api03-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
# ANTHROPIC_API_KEY=
## GROQ_API_KEY - Groq API Key (Example: gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
# GROQ_API_KEY=
## LLAMAFILE_API_BASE - Llamafile API base URL
# LLAMAFILE_API_BASE=http://localhost:8080/v1
## TELEMETRY_OPT_IN - Share telemetry on errors and other issues with the AutoGPT team, e.g. through Sentry.
## This helps us to spot and solve problems earlier & faster. (Default: DISABLED)
# TELEMETRY_OPT_IN=true
## COMPONENT_CONFIG_FILE - Path to the json config file (Default: None)
# COMPONENT_CONFIG_FILE=
### Workspace ###
## RESTRICT_TO_WORKSPACE - Restrict file operations to workspace ./data/agents/<agent_id>/workspace (Default: True)
# RESTRICT_TO_WORKSPACE=True
## DISABLED_COMMANDS - The comma separated list of commands that are disabled (Default: None)
# DISABLED_COMMANDS=
## FILE_STORAGE_BACKEND - Choose a storage backend for contents
## Options: local, gcs, s3
# FILE_STORAGE_BACKEND=local
## STORAGE_BUCKET - GCS/S3 Bucket to store contents in
# STORAGE_BUCKET=autogpt
## GCS Credentials
# see https://cloud.google.com/storage/docs/authentication#libauth
## AWS/S3 Credentials
# see https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html
## S3_ENDPOINT_URL - If you're using non-AWS S3, set your endpoint here.
# S3_ENDPOINT_URL=
### Miscellaneous ###
## AUTHORISE COMMAND KEY - Key to authorise commands
# AUTHORISE_COMMAND_KEY=y
## EXIT_KEY - Key to exit AutoGPT
# EXIT_KEY=n
################################################################################
### LLM PROVIDER
################################################################################
## TEMPERATURE - Sets temperature in OpenAI (Default: 0)
# TEMPERATURE=0
## OPENAI_API_BASE_URL - Custom url for the OpenAI API, useful for connecting to custom backends. No effect if USE_AZURE is true, leave blank to keep the default url
# the following is an example:
# OPENAI_API_BASE_URL=http://localhost:443/v1
# OPENAI_API_TYPE=
# OPENAI_API_VERSION=
## OPENAI_FUNCTIONS - Enables OpenAI functions: https://platform.openai.com/docs/guides/gpt/function-calling
## Note: this feature is only supported by OpenAI's newer models.
# OPENAI_FUNCTIONS=False
## OPENAI_ORGANIZATION - Your OpenAI Organization key (Default: None)
# OPENAI_ORGANIZATION=
## USE_AZURE - Use Azure OpenAI or not (Default: False)
# USE_AZURE=False
## AZURE_CONFIG_FILE - The path to the azure.yaml file, relative to the folder containing this file. (Default: azure.yaml)
# AZURE_CONFIG_FILE=azure.yaml
# AZURE_OPENAI_AD_TOKEN=
# AZURE_OPENAI_ENDPOINT=
################################################################################
### LLM MODELS
################################################################################
## SMART_LLM - Smart language model (Default: gpt-4-turbo)
# SMART_LLM=gpt-4-turbo
## FAST_LLM - Fast language model (Default: gpt-3.5-turbo)
# FAST_LLM=gpt-3.5-turbo
## EMBEDDING_MODEL - Model to use for creating embeddings
# EMBEDDING_MODEL=text-embedding-3-small
################################################################################
### IMAGE GENERATION PROVIDER
################################################################################
### Huggingface (IMAGE_PROVIDER=huggingface)
## HUGGINGFACE_API_TOKEN - HuggingFace API token (Default: None)
# HUGGINGFACE_API_TOKEN=
### Stable Diffusion (IMAGE_PROVIDER=sdwebui)
## SD_WEBUI_AUTH - Stable Diffusion Web UI username:password pair (Default: None)
# SD_WEBUI_AUTH=
################################################################################
### GITHUB
################################################################################
## GITHUB_API_KEY - Github API key / PAT (Default: None)
# GITHUB_API_KEY=
## GITHUB_USERNAME - Github username (Default: None)
# GITHUB_USERNAME=
################################################################################
### WEB BROWSING
################################################################################
## GOOGLE_API_KEY - Google API key (Default: None)
# GOOGLE_API_KEY=
## GOOGLE_CUSTOM_SEARCH_ENGINE_ID - Google custom search engine ID (Default: None)
# GOOGLE_CUSTOM_SEARCH_ENGINE_ID=
################################################################################
### TEXT TO SPEECH PROVIDER
################################################################################
## TEXT_TO_SPEECH_PROVIDER - Which Text to Speech provider to use (Default: gtts)
## Options: gtts, streamelements, elevenlabs, macos
# TEXT_TO_SPEECH_PROVIDER=gtts
## STREAMELEMENTS_VOICE - Voice to use for StreamElements (Default: Brian)
# STREAMELEMENTS_VOICE=Brian
## ELEVENLABS_API_KEY - Eleven Labs API key (Default: None)
# ELEVENLABS_API_KEY=
## ELEVENLABS_VOICE_ID - Eleven Labs voice ID (Example: None)
# ELEVENLABS_VOICE_ID=
################################################################################
### LOGGING
################################################################################
## LOG_LEVEL - Set the minimum level to filter log output by. Setting this to DEBUG implies LOG_FORMAT=debug, unless LOG_FORMAT is set explicitly.
## Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
# LOG_LEVEL=INFO
## LOG_FORMAT - The format in which to log messages to the console (and log files).
## Options: simple, debug, structured_google_cloud
# LOG_FORMAT=simple
## LOG_FILE_FORMAT - Normally follows the LOG_FORMAT setting, but can be set separately.
## Note: Log file output is disabled if LOG_FORMAT=structured_google_cloud.
# LOG_FILE_FORMAT=simple
## PLAIN_OUTPUT - Disables animated typing and the spinner in the console output. (Default: False)
# PLAIN_OUTPUT=False
################################################################################
### Agent Protocol Server Settings
################################################################################
## AP_SERVER_PORT - Specifies what port the agent protocol server will listen on. (Default: 8000)
## AP_SERVER_DB_URL - Specifies what connection url the agent protocol database will connect to (Default: Internal SQLite)
## AP_SERVER_CORS_ALLOWED_ORIGINS - Comma separated list of allowed origins for CORS. (Default: http://localhost:{AP_SERVER_PORT})
# AP_SERVER_PORT=8000
# AP_SERVER_DB_URL=sqlite:///data/ap_server.db
# AP_SERVER_CORS_ALLOWED_ORIGINS=

View File

@@ -1,4 +1,4 @@
# Upon entering directory, direnv requests user permission once to automatically load project dependencies onwards.
# Eliminating the need of running "nix develop github:superherointj/nix-auto-gpt" for Nix users to develop/use Auto-GPT.
# Eliminating the need of running "nix develop github:superherointj/nix-auto-gpt" for Nix users to develop/use AutoGPT.
[[ -z $IN_NIX_SHELL ]] && use flake github:superherointj/nix-auto-gpt

14
autogpt/.flake8 Normal file
View File

@@ -0,0 +1,14 @@
[flake8]
max-line-length = 88
# Ignore rules that conflict with Black code style
extend-ignore = E203, W503
exclude =
.git,
__pycache__/,
*.pyc,
.pytest_cache/,
venv*/,
.venv/,
data/,
logs/,
tests/unit/data/,

167
autogpt/.gitignore vendored Normal file
View File

@@ -0,0 +1,167 @@
## Original ignores
autogpt/keys.py
autogpt/*.json
*.mpeg
.env
azure.yaml
.vscode
.idea/*
auto-gpt.json
log.txt
log-ingestion.txt
/logs
*.log
*.mp3
mem.sqlite3
venvAutoGPT
data/*
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
/plugins/*
plugins_config.yaml
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
site/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.direnv/
.env
.venv
env/
venv*/
ENV/
env.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
llama-*
vicuna-*
# mac
.DS_Store
openai/
# news
CURRENT_BULLETIN.md
# Nodejs
package-lock.json
package.json
# Keep
!.keep

13
autogpt/BULLETIN.md Normal file
View File

@@ -0,0 +1,13 @@
# QUICK LINKS 🔗
# --------------
🌎 *Official Website*: https://agpt.co.
📖 *User Guide*: https://docs.agpt.co/autogpt.
👩 *Contributors Wiki*: https://github.com/Significant-Gravitas/AutoGPT/wiki/Contributing.
# v0.5.0 RELEASE HIGHLIGHTS! 🚀🚀
# -------------------------------
Cloud-readiness, a new UI, support for the newest Agent Protocol version, and much more:
*v0.5.0 is our biggest release yet!*
Take a look at the Release Notes on Github for the full changelog:
https://github.com/Significant-Gravitas/AutoGPT/releases.

160
autogpt/README.md Normal file
View File

@@ -0,0 +1,160 @@
# AutoGPT: An Autonomous GPT-4 Experiment
[📖 **Documentation**][docs]
&ensp;|&ensp;
[🚀 **Contributing**](../../CONTRIBUTING.md)
AutoGPT is an experimental open-source application showcasing the capabilities of modern Large Language Models. This program, driven by GPT-4, chains together LLM "thoughts", to autonomously achieve whatever goal you set. As one of the first examples of GPT-4 running fully autonomously, AutoGPT pushes the boundaries of what is possible with AI.
<h2 align="center"> Demo April 16th 2023 </h2>
https://user-images.githubusercontent.com/70048414/232352935-55c6bf7c-3958-406e-8610-0913475a0b05.mp4
Demo made by <a href=https://twitter.com/BlakeWerlinger>Blake Werlinger</a>
## 🚀 Features
- 🔌 Agent Protocol ([docs](https://agentprotocol.ai))
- 💻 Easy to use UI
- 🌐 Internet access for searches and information gathering
- 🧠 Powered by a mix of GPT-4 and GPT-3.5 Turbo
- 🔗 Access to popular websites and platforms
- 🗃️ File generation and editing capabilities
- 🔌 Extensibility with Plugins
<!-- - 💾 Long-term and short-term memory management -->
## Setting up AutoGPT
1. Get an OpenAI [API Key](https://platform.openai.com/account/api-keys)
2. Copy `.env.template` to `.env` and set `OPENAI_API_KEY`
3. Make sure you have Poetry [installed](https://python-poetry.org/docs/#installation)
For more ways to run AutoGPT, more detailed instructions, and more configuration options,
see the [setup guide][docs/setup].
## Running AutoGPT
The CLI should be self-documenting:
```shell
$ ./autogpt.sh --help
Usage: python -m autogpt [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
run Sets up and runs an agent, based on the task specified by the...
serve Starts an Agent Protocol compliant AutoGPT server, which creates...
```
When run without a sub-command, it will default to `run` for legacy reasons.
<details>
<summary>
<code>$ ./autogpt.sh run --help</code>
</summary>
The `run` sub-command starts AutoGPT with the legacy CLI interface:
```shell
$ ./autogpt.sh run --help
Usage: python -m autogpt run [OPTIONS]
Sets up and runs an agent, based on the task specified by the user, or
resumes an existing agent.
Options:
-c, --continuous Enable Continuous Mode
-y, --skip-reprompt Skips the re-prompting messages at the
beginning of the script
-l, --continuous-limit INTEGER Defines the number of times to run in
continuous mode
--speak Enable Speak Mode
--debug Enable Debug Mode
--skip-news Specifies whether to suppress the output of
latest news on startup.
--install-plugin-deps Installs external dependencies for 3rd party
plugins.
--ai-name TEXT AI name override
--ai-role TEXT AI role override
--constraint TEXT Add or override AI constraints to include in
the prompt; may be used multiple times to
pass multiple constraints
--resource TEXT Add or override AI resources to include in
the prompt; may be used multiple times to
pass multiple resources
--best-practice TEXT Add or override AI best practices to include
in the prompt; may be used multiple times to
pass multiple best practices
--override-directives If specified, --constraint, --resource and
--best-practice will override the AI's
directives instead of being appended to them
--component-config-file TEXT Path to the json configuration file.
--help Show this message and exit.
```
</details>
<details>
<summary>
<code>$ ./autogpt.sh serve --help</code>
</summary>
The `serve` sub-command starts AutoGPT wrapped in an Agent Protocol server:
```shell
$ ./autogpt.sh serve --help
Usage: python -m autogpt serve [OPTIONS]
Starts an Agent Protocol compliant AutoGPT server, which creates a custom
agent for every task.
Options:
--debug Enable Debug Mode
--install-plugin-deps Installs external dependencies for 3rd party
plugins.
--help Show this message and exit.
```
</details>
With `serve`, the application exposes an Agent Protocol compliant API and serves a frontend,
by default on `http://localhost:8000`.
For more comprehensive instructions, see the [user guide][docs/usage].
[docs]: https://docs.agpt.co/autogpt
[docs/setup]: https://docs.agpt.co/autogpt/setup
[docs/usage]: https://docs.agpt.co/autogpt/usage
[docs/plugins]: https://docs.agpt.co/autogpt/plugins
## 📚 Resources
* 📔 AutoGPT [project wiki](https://github.com/Significant-Gravitas/AutoGPT/wiki)
* 🧮 AutoGPT [project kanban](https://github.com/orgs/Significant-Gravitas/projects/1)
* 🌃 AutoGPT [roadmap](https://github.com/orgs/Significant-Gravitas/projects/2)
## ⚠️ Limitations
This experiment aims to showcase the potential of GPT-4 but comes with some limitations:
1. Not a polished application or product, just an experiment
2. May not perform well in complex, real-world business scenarios. In fact, if it actually does, please share your results!
3. Quite expensive to run, so set and monitor your API key limits with OpenAI!
## 🛡 Disclaimer
This project, AutoGPT, is an experimental application and is provided "as-is" without any warranty, express or implied. By using this software, you agree to assume all risks associated with its use, including but not limited to data loss, system failure, or any other issues that may arise.
The developers and contributors of this project do not accept any responsibility or liability for any losses, damages, or other consequences that may occur as a result of using this software. You are solely responsible for any decisions and actions taken based on the information provided by AutoGPT.
**Please note that the use of the GPT-4 language model can be expensive due to its token usage.** By utilizing this project, you acknowledge that you are responsible for monitoring and managing your own token usage and the associated costs. It is highly recommended to check your OpenAI API usage regularly and set up any necessary limits or alerts to prevent unexpected charges.
As an autonomous experiment, AutoGPT may generate content or take actions that are not in line with real-world business practices or legal requirements. It is your responsibility to ensure that any actions or decisions made based on the output of this software comply with all applicable laws, regulations, and ethical standards. The developers and contributors of this project shall not be held responsible for any consequences arising from the use of this software.
By using AutoGPT, you agree to indemnify, defend, and hold harmless the developers, contributors, and any affiliated parties from and against any and all claims, damages, losses, liabilities, costs, and expenses (including reasonable attorneys' fees) arising from your use of this software or your violation of these terms.
---
In Q2 of 2023, AutoGPT became the fastest growing open-source project in history. Now that the dust has settled, we're committed to continued sustainable development and growth of the project.
<p align="center">
<a href="https://star-history.com/#Significant-Gravitas/AutoGPT&Date">
<img src="https://api.star-history.com/svg?repos=Significant-Gravitas/AutoGPT&type=Date" alt="Star History Chart">
</a>
</p>

View File

@@ -1,5 +0,0 @@
"""Auto-GPT: A GPT powered AI Assistant"""
import autogpt.cli
if __name__ == "__main__":
autogpt.cli.main()

3
autogpt/agbenchmark_config/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
logs/
reports/
temp_folder/

View File

@@ -0,0 +1,143 @@
#!/usr/bin/env python3
import json
import logging
import re
import sys
from collections import defaultdict
from pathlib import Path
from tabulate import tabulate
info = "-v" in sys.argv
debug = "-vv" in sys.argv
granular = "--granular" in sys.argv
logging.basicConfig(
level=logging.DEBUG if debug else logging.INFO if info else logging.WARNING
)
logger = logging.getLogger(__name__)
# Get a list of all JSON files in the directory
report_files = [
report_file
for dir in (Path(__file__).parent / "reports").iterdir()
if re.match(r"^\d{8}T\d{6}_", dir.name)
and (report_file := dir / "report.json").is_file()
]
labels = list[str]()
runs_per_label = defaultdict[str, int](lambda: 0)
suite_names = list[str]()
test_names = list[str]()
# Create a dictionary to store grouped success values by suffix and test
grouped_success_values = defaultdict[str, list[str]](list[str])
# Loop through each JSON file to collect suffixes and success values
for report_file in sorted(report_files):
with open(report_file) as f:
logger.info(f"Loading {report_file}...")
data = json.load(f)
if "tests" in data:
test_tree = data["tests"]
label = data["agent_git_commit_sha"].rsplit("/", 1)[1][:7] # commit hash
else:
# Benchmark run still in progress
test_tree = data
label = report_file.parent.name.split("_", 1)[1]
logger.info(f"Run '{label}' seems to be in progress")
runs_per_label[label] += 1
def process_test(test_name: str, test_data: dict):
result_group = grouped_success_values[f"{label}|{test_name}"]
if "tests" in test_data:
logger.debug(f"{test_name} is a test suite")
# Test suite
suite_attempted = any(
test["metrics"]["attempted"] for test in test_data["tests"].values()
)
logger.debug(f"suite_attempted: {suite_attempted}")
if not suite_attempted:
return
if test_name not in test_names:
test_names.append(test_name)
if test_data["metrics"]["percentage"] == 0:
result_indicator = ""
else:
highest_difficulty = test_data["metrics"]["highest_difficulty"]
result_indicator = {
"interface": "🔌",
"novice": "🌑",
"basic": "🌒",
"intermediate": "🌓",
"advanced": "🌔",
"hard": "🌕",
}[highest_difficulty]
logger.debug(f"result group: {result_group}")
logger.debug(f"runs_per_label: {runs_per_label[label]}")
if len(result_group) + 1 < runs_per_label[label]:
result_group.extend(
[""] * (runs_per_label[label] - len(result_group) - 1)
)
result_group.append(result_indicator)
logger.debug(f"result group (after): {result_group}")
if granular:
for test_name, test in test_data["tests"].items():
process_test(test_name, test)
return
test_metrics = test_data["metrics"]
result_indicator = ""
if "attempted" not in test_metrics:
return
elif test_metrics["attempted"]:
if test_name not in test_names:
test_names.append(test_name)
success_value = test_metrics["success"]
result_indicator = {True: "", False: ""}[success_value]
if len(result_group) + 1 < runs_per_label[label]:
result_group.extend(
[" "] * (runs_per_label[label] - len(result_group) - 1)
)
result_group.append(result_indicator)
for test_name, suite in test_tree.items():
try:
process_test(test_name, suite)
except KeyError:
print(f"{test_name}.metrics: {suite['metrics']}")
raise
if label not in labels:
labels.append(label)
# Create headers
headers = ["Test Name"] + list(labels)
# Prepare data for tabulation
table_data = list[list[str]]()
for test_name in test_names:
row = [test_name]
for label in labels:
results = grouped_success_values.get(f"{label}|{test_name}", [""])
if len(results) < runs_per_label[label]:
results.extend([""] * (runs_per_label[label] - len(results)))
if len(results) > 1 and all(r == "" for r in results):
results.clear()
row.append(" ".join(results))
table_data.append(row)
# Print tabulated data
print(tabulate(table_data, headers=headers, tablefmt="grid"))

View File

@@ -0,0 +1,8 @@
{
"workspace": {
"input": "agbenchmark_config/workspace",
"output": "agbenchmark_config/workspace"
},
"entry_path": "agbenchmark.benchmarks",
"host": "http://localhost:8000"
}

View File

@@ -1,4 +0,0 @@
from autogpt.agent.agent import Agent
from autogpt.agent.agent_manager import AgentManager
__all__ = ["Agent", "AgentManager"]

View File

@@ -1,290 +0,0 @@
from colorama import Fore, Style
from autogpt.app import execute_command, get_command
from autogpt.config import Config
from autogpt.json_utils.json_fix_llm import fix_json_using_multiple_techniques
from autogpt.json_utils.utilities import LLM_DEFAULT_RESPONSE_FORMAT, validate_json
from autogpt.llm import chat_with_ai, create_chat_completion, create_chat_message
from autogpt.logs import logger, print_assistant_thoughts
from autogpt.speech import say_text
from autogpt.spinner import Spinner
from autogpt.utils import clean_input
from autogpt.workspace import Workspace
class Agent:
"""Agent class for interacting with Auto-GPT.
Attributes:
ai_name: The name of the agent.
memory: The memory object to use.
full_message_history: The full message history.
next_action_count: The number of actions to execute.
system_prompt: The system prompt is the initial prompt that defines everything
the AI needs to know to achieve its task successfully.
Currently, the dynamic and customizable information in the system prompt are
ai_name, description and goals.
triggering_prompt: The last sentence the AI will see before answering.
For Auto-GPT, this prompt is:
Determine which next command to use, and respond using the format specified
above:
The triggering prompt is not part of the system prompt because between the
system prompt and the triggering
prompt we have contextual information that can distract the AI and make it
forget that its goal is to find the next task to achieve.
SYSTEM PROMPT
CONTEXTUAL INFORMATION (memory, previous conversations, anything relevant)
TRIGGERING PROMPT
The triggering prompt reminds the AI about its short term meta task
(defining the next task)
"""
def __init__(
self,
ai_name,
memory,
full_message_history,
next_action_count,
command_registry,
config,
system_prompt,
triggering_prompt,
workspace_directory,
):
cfg = Config()
self.ai_name = ai_name
self.memory = memory
self.summary_memory = (
"I was created." # Initial memory necessary to avoid hilucination
)
self.last_memory_index = 0
self.full_message_history = full_message_history
self.next_action_count = next_action_count
self.command_registry = command_registry
self.config = config
self.system_prompt = system_prompt
self.triggering_prompt = triggering_prompt
self.workspace = Workspace(workspace_directory, cfg.restrict_to_workspace)
def start_interaction_loop(self):
# Interaction Loop
cfg = Config()
loop_count = 0
command_name = None
arguments = None
user_input = ""
while True:
# Discontinue if continuous limit is reached
loop_count += 1
if (
cfg.continuous_mode
and cfg.continuous_limit > 0
and loop_count > cfg.continuous_limit
):
logger.typewriter_log(
"Continuous Limit Reached: ", Fore.YELLOW, f"{cfg.continuous_limit}"
)
break
# Send message to AI, get response
with Spinner("Thinking... "):
assistant_reply = chat_with_ai(
self,
self.system_prompt,
self.triggering_prompt,
self.full_message_history,
self.memory,
cfg.fast_token_limit,
) # TODO: This hardcodes the model to use GPT3.5. Make this an argument
assistant_reply_json = fix_json_using_multiple_techniques(assistant_reply)
for plugin in cfg.plugins:
if not plugin.can_handle_post_planning():
continue
assistant_reply_json = plugin.post_planning(self, assistant_reply_json)
# Print Assistant thoughts
if assistant_reply_json != {}:
validate_json(assistant_reply_json, LLM_DEFAULT_RESPONSE_FORMAT)
# Get command name and arguments
try:
print_assistant_thoughts(
self.ai_name, assistant_reply_json, cfg.speak_mode
)
command_name, arguments = get_command(assistant_reply_json)
if cfg.speak_mode:
say_text(f"I want to execute {command_name}")
arguments = self._resolve_pathlike_command_args(arguments)
except Exception as e:
logger.error("Error: \n", str(e))
if not cfg.continuous_mode and self.next_action_count == 0:
# ### GET USER AUTHORIZATION TO EXECUTE COMMAND ###
# Get key press: Prompt the user to press enter to continue or escape
# to exit
self.user_input = ""
logger.typewriter_log(
"NEXT ACTION: ",
Fore.CYAN,
f"COMMAND = {Fore.CYAN}{command_name}{Style.RESET_ALL} "
f"ARGUMENTS = {Fore.CYAN}{arguments}{Style.RESET_ALL}",
)
logger.info(
"Enter 'y' to authorise command, 'y -N' to run N continuous commands, 's' to run self-feedback commands"
"'n' to exit program, or enter feedback for "
f"{self.ai_name}..."
)
while True:
if cfg.chat_messages_enabled:
console_input = clean_input("Waiting for your response...")
else:
console_input = clean_input(
Fore.MAGENTA + "Input:" + Style.RESET_ALL
)
if console_input.lower().strip() == cfg.authorise_key:
user_input = "GENERATE NEXT COMMAND JSON"
break
elif console_input.lower().strip() == "s":
logger.typewriter_log(
"-=-=-=-=-=-=-= THOUGHTS, REASONING, PLAN AND CRITICISM WILL NOW BE VERIFIED BY AGENT -=-=-=-=-=-=-=",
Fore.GREEN,
"",
)
thoughts = assistant_reply_json.get("thoughts", {})
self_feedback_resp = self.get_self_feedback(
thoughts, cfg.fast_llm_model
)
logger.typewriter_log(
f"SELF FEEDBACK: {self_feedback_resp}",
Fore.YELLOW,
"",
)
if self_feedback_resp[0].lower().strip() == cfg.authorise_key:
user_input = "GENERATE NEXT COMMAND JSON"
else:
user_input = self_feedback_resp
break
elif console_input.lower().strip() == "":
logger.warn("Invalid input format.")
continue
elif console_input.lower().startswith(f"{cfg.authorise_key} -"):
try:
self.next_action_count = abs(
int(console_input.split(" ")[1])
)
user_input = "GENERATE NEXT COMMAND JSON"
except ValueError:
logger.warn(
"Invalid input format. Please enter 'y -n' where n is"
" the number of continuous tasks."
)
continue
break
elif console_input.lower() == cfg.exit_key:
user_input = "EXIT"
break
else:
user_input = console_input
command_name = "human_feedback"
break
if user_input == "GENERATE NEXT COMMAND JSON":
logger.typewriter_log(
"-=-=-=-=-=-=-= COMMAND AUTHORISED BY USER -=-=-=-=-=-=-=",
Fore.MAGENTA,
"",
)
elif user_input == "EXIT":
logger.info("Exiting...")
break
else:
# Print command
logger.typewriter_log(
"NEXT ACTION: ",
Fore.CYAN,
f"COMMAND = {Fore.CYAN}{command_name}{Style.RESET_ALL}"
f" ARGUMENTS = {Fore.CYAN}{arguments}{Style.RESET_ALL}",
)
# Execute command
if command_name is not None and command_name.lower().startswith("error"):
result = (
f"Command {command_name} threw the following error: {arguments}"
)
elif command_name == "human_feedback":
result = f"Human feedback: {user_input}"
else:
for plugin in cfg.plugins:
if not plugin.can_handle_pre_command():
continue
command_name, arguments = plugin.pre_command(
command_name, arguments
)
command_result = execute_command(
self.command_registry,
command_name,
arguments,
self.config.prompt_generator,
)
result = f"Command {command_name} returned: " f"{command_result}"
for plugin in cfg.plugins:
if not plugin.can_handle_post_command():
continue
result = plugin.post_command(command_name, result)
if self.next_action_count > 0:
self.next_action_count -= 1
# Check if there's a result from the command append it to the message
# history
if result is not None:
self.full_message_history.append(create_chat_message("system", result))
logger.typewriter_log("SYSTEM: ", Fore.YELLOW, result)
else:
self.full_message_history.append(
create_chat_message("system", "Unable to execute command")
)
logger.typewriter_log(
"SYSTEM: ", Fore.YELLOW, "Unable to execute command"
)
def _resolve_pathlike_command_args(self, command_args):
if "directory" in command_args and command_args["directory"] in {"", "/"}:
command_args["directory"] = str(self.workspace.root)
else:
for pathlike in ["filename", "directory", "clone_path"]:
if pathlike in command_args:
command_args[pathlike] = str(
self.workspace.get_path(command_args[pathlike])
)
return command_args
def get_self_feedback(self, thoughts: dict, llm_model: str) -> str:
"""Generates a feedback response based on the provided thoughts dictionary.
This method takes in a dictionary of thoughts containing keys such as 'reasoning',
'plan', 'thoughts', and 'criticism'. It combines these elements into a single
feedback message and uses the create_chat_completion() function to generate a
response based on the input message.
Args:
thoughts (dict): A dictionary containing thought elements like reasoning,
plan, thoughts, and criticism.
Returns:
str: A feedback response generated using the provided thoughts dictionary.
"""
ai_role = self.config.ai_role
feedback_prompt = f"Below is a message from an AI agent with the role of {ai_role}. Please review the provided Thought, Reasoning, Plan, and Criticism. If these elements accurately contribute to the successful execution of the assumed role, respond with the letter 'Y' followed by a space, and then explain why it is effective. If the provided information is not suitable for achieving the role's objectives, please provide one or more sentences addressing the issue and suggesting a resolution."
reasoning = thoughts.get("reasoning", "")
plan = thoughts.get("plan", "")
thought = thoughts.get("thoughts", "")
criticism = thoughts.get("criticism", "")
feedback_thoughts = thought + reasoning + plan + criticism
return create_chat_completion(
[{"role": "user", "content": feedback_prompt + feedback_thoughts}],
llm_model,
)

View File

@@ -1,145 +0,0 @@
"""Agent manager for managing GPT agents"""
from __future__ import annotations
from typing import List
from autogpt.config.config import Config
from autogpt.llm import Message, create_chat_completion
from autogpt.singleton import Singleton
class AgentManager(metaclass=Singleton):
"""Agent manager for managing GPT agents"""
def __init__(self):
self.next_key = 0
self.agents = {} # key, (task, full_message_history, model)
self.cfg = Config()
# Create new GPT agent
# TODO: Centralise use of create_chat_completion() to globally enforce token limit
def create_agent(self, task: str, prompt: str, model: str) -> tuple[int, str]:
"""Create a new agent and return its key
Args:
task: The task to perform
prompt: The prompt to use
model: The model to use
Returns:
The key of the new agent
"""
messages: List[Message] = [
{"role": "user", "content": prompt},
]
for plugin in self.cfg.plugins:
if not plugin.can_handle_pre_instruction():
continue
if plugin_messages := plugin.pre_instruction(messages):
messages.extend(iter(plugin_messages))
# Start GPT instance
agent_reply = create_chat_completion(
model=model,
messages=messages,
)
messages.append({"role": "assistant", "content": agent_reply})
plugins_reply = ""
for i, plugin in enumerate(self.cfg.plugins):
if not plugin.can_handle_on_instruction():
continue
if plugin_result := plugin.on_instruction(messages):
sep = "\n" if i else ""
plugins_reply = f"{plugins_reply}{sep}{plugin_result}"
if plugins_reply and plugins_reply != "":
messages.append({"role": "assistant", "content": plugins_reply})
key = self.next_key
# This is done instead of len(agents) to make keys unique even if agents
# are deleted
self.next_key += 1
self.agents[key] = (task, messages, model)
for plugin in self.cfg.plugins:
if not plugin.can_handle_post_instruction():
continue
agent_reply = plugin.post_instruction(agent_reply)
return key, agent_reply
def message_agent(self, key: str | int, message: str) -> str:
"""Send a message to an agent and return its response
Args:
key: The key of the agent to message
message: The message to send to the agent
Returns:
The agent's response
"""
task, messages, model = self.agents[int(key)]
# Add user message to message history before sending to agent
messages.append({"role": "user", "content": message})
for plugin in self.cfg.plugins:
if not plugin.can_handle_pre_instruction():
continue
if plugin_messages := plugin.pre_instruction(messages):
for plugin_message in plugin_messages:
messages.append(plugin_message)
# Start GPT instance
agent_reply = create_chat_completion(
model=model,
messages=messages,
)
messages.append({"role": "assistant", "content": agent_reply})
plugins_reply = agent_reply
for i, plugin in enumerate(self.cfg.plugins):
if not plugin.can_handle_on_instruction():
continue
if plugin_result := plugin.on_instruction(messages):
sep = "\n" if i else ""
plugins_reply = f"{plugins_reply}{sep}{plugin_result}"
# Update full message history
if plugins_reply and plugins_reply != "":
messages.append({"role": "assistant", "content": plugins_reply})
for plugin in self.cfg.plugins:
if not plugin.can_handle_post_instruction():
continue
agent_reply = plugin.post_instruction(agent_reply)
return agent_reply
def list_agents(self) -> list[tuple[str | int, str]]:
"""Return a list of all agents
Returns:
A list of tuples of the form (key, task)
"""
# Return a list of agent keys and their tasks
return [(key, task) for key, (task, _, _) in self.agents.items()]
def delete_agent(self, key: str | int) -> bool:
"""Delete an agent from the agent manager
Args:
key: The key of the agent to delete
Returns:
True if successful, False otherwise
"""
try:
del self.agents[int(key)]
return True
except KeyError:
return False

View File

@@ -1,255 +0,0 @@
""" Command and Control """
import json
from typing import Dict, List, NoReturn, Union
from autogpt.agent.agent_manager import AgentManager
from autogpt.commands.command import CommandRegistry, command
from autogpt.commands.web_requests import scrape_links, scrape_text
from autogpt.config import Config
from autogpt.logs import logger
from autogpt.memory import get_memory
from autogpt.processing.text import summarize_text
from autogpt.prompts.generator import PromptGenerator
from autogpt.speech import say_text
from autogpt.url_utils.validators import validate_url
CFG = Config()
AGENT_MANAGER = AgentManager()
def is_valid_int(value: str) -> bool:
"""Check if the value is a valid integer
Args:
value (str): The value to check
Returns:
bool: True if the value is a valid integer, False otherwise
"""
try:
int(value)
return True
except ValueError:
return False
def get_command(response_json: Dict):
"""Parse the response and return the command name and arguments
Args:
response_json (json): The response from the AI
Returns:
tuple: The command name and arguments
Raises:
json.decoder.JSONDecodeError: If the response is not valid JSON
Exception: If any other error occurs
"""
try:
if "command" not in response_json:
return "Error:", "Missing 'command' object in JSON"
if not isinstance(response_json, dict):
return "Error:", f"'response_json' object is not dictionary {response_json}"
command = response_json["command"]
if not isinstance(command, dict):
return "Error:", "'command' object is not a dictionary"
if "name" not in command:
return "Error:", "Missing 'name' field in 'command' object"
command_name = command["name"]
# Use an empty dictionary if 'args' field is not present in 'command' object
arguments = command.get("args", {})
return command_name, arguments
except json.decoder.JSONDecodeError:
return "Error:", "Invalid JSON"
# All other errors, return "Error: + error message"
except Exception as e:
return "Error:", str(e)
def map_command_synonyms(command_name: str):
"""Takes the original command name given by the AI, and checks if the
string matches a list of common/known hallucinations
"""
synonyms = [
("write_file", "write_to_file"),
("create_file", "write_to_file"),
("search", "google"),
]
for seen_command, actual_command_name in synonyms:
if command_name == seen_command:
return actual_command_name
return command_name
def execute_command(
command_registry: CommandRegistry,
command_name: str,
arguments,
prompt: PromptGenerator,
):
"""Execute the command and return the result
Args:
command_name (str): The name of the command to execute
arguments (dict): The arguments for the command
Returns:
str: The result of the command
"""
try:
cmd = command_registry.commands.get(command_name)
# If the command is found, call it with the provided arguments
if cmd:
return cmd(**arguments)
# TODO: Remove commands below after they are moved to the command registry.
command_name = map_command_synonyms(command_name.lower())
if command_name == "memory_add":
return get_memory(CFG).add(arguments["string"])
# TODO: Change these to take in a file rather than pasted code, if
# non-file is given, return instructions "Input should be a python
# filepath, write your code to file and try again
elif command_name == "task_complete":
shutdown()
else:
for command in prompt.commands:
if (
command_name == command["label"].lower()
or command_name == command["name"].lower()
):
return command["function"](**arguments)
return (
f"Unknown command '{command_name}'. Please refer to the 'COMMANDS'"
" list for available commands and only respond in the specified JSON"
" format."
)
except Exception as e:
return f"Error: {str(e)}"
@command(
"get_text_summary", "Get text summary", '"url": "<url>", "question": "<question>"'
)
@validate_url
def get_text_summary(url: str, question: str) -> str:
"""Return the results of a Google search
Args:
url (str): The url to scrape
question (str): The question to summarize the text for
Returns:
str: The summary of the text
"""
text = scrape_text(url)
summary = summarize_text(url, text, question)
return f""" "Result" : {summary}"""
@command("get_hyperlinks", "Get text summary", '"url": "<url>"')
@validate_url
def get_hyperlinks(url: str) -> Union[str, List[str]]:
"""Return the results of a Google search
Args:
url (str): The url to scrape
Returns:
str or list: The hyperlinks on the page
"""
return scrape_links(url)
def shutdown() -> NoReturn:
"""Shut down the program"""
logger.info("Shutting down...")
quit()
@command(
"start_agent",
"Start GPT Agent",
'"name": "<name>", "task": "<short_task_desc>", "prompt": "<prompt>"',
)
def start_agent(name: str, task: str, prompt: str, model=CFG.fast_llm_model) -> str:
"""Start an agent with a given name, task, and prompt
Args:
name (str): The name of the agent
task (str): The task of the agent
prompt (str): The prompt for the agent
model (str): The model to use for the agent
Returns:
str: The response of the agent
"""
# Remove underscores from name
voice_name = name.replace("_", " ")
first_message = f"""You are {name}. Respond with: "Acknowledged"."""
agent_intro = f"{voice_name} here, Reporting for duty!"
# Create agent
if CFG.speak_mode:
say_text(agent_intro, 1)
key, ack = AGENT_MANAGER.create_agent(task, first_message, model)
if CFG.speak_mode:
say_text(f"Hello {voice_name}. Your task is as follows. {task}.")
# Assign task (prompt), get response
agent_response = AGENT_MANAGER.message_agent(key, prompt)
return f"Agent {name} created with key {key}. First response: {agent_response}"
@command("message_agent", "Message GPT Agent", '"key": "<key>", "message": "<message>"')
def message_agent(key: str, message: str) -> str:
"""Message an agent with a given key and message"""
# Check if the key is a valid integer
if is_valid_int(key):
agent_response = AGENT_MANAGER.message_agent(int(key), message)
else:
return "Invalid key, must be an integer."
# Speak response
if CFG.speak_mode:
say_text(agent_response, 1)
return agent_response
@command("list_agents", "List GPT Agents", "")
def list_agents() -> str:
"""List all agents
Returns:
str: A list of all agents
"""
return "List of agents:\n" + "\n".join(
[str(x[0]) + ": " + x[1] for x in AGENT_MANAGER.list_agents()]
)
@command("delete_agent", "Delete GPT Agent", '"key": "<key>"')
def delete_agent(key: str) -> str:
"""Delete an agent with a given key
Args:
key (str): The key of the agent to delete
Returns:
str: A message indicating whether the agent was deleted or not
"""
result = AGENT_MANAGER.delete_agent(key)
return f"Agent {key} deleted." if result else f"Agent {key} does not exist."

27
autogpt/autogpt.bat Normal file
View File

@@ -0,0 +1,27 @@
@echo off
setlocal enabledelayedexpansion
:FindPythonCommand
for %%A in (python3 python) do (
where /Q %%A
if !errorlevel! EQU 0 (
set "PYTHON_CMD=%%A"
goto :Found
)
)
echo Python not found. Please install Python.
pause
exit /B 1
:Found
%PYTHON_CMD% scripts/check_requirements.py
if errorlevel 1 (
echo
poetry install --without dev
echo
echo Finished installing packages! Starting AutoGPT...
echo
)
poetry run autogpt %*
pause

29
autogpt/autogpt.sh Executable file
View File

@@ -0,0 +1,29 @@
#!/usr/bin/env bash
function find_python_command() {
if command -v python3 &> /dev/null
then
echo "python3"
elif command -v python &> /dev/null
then
echo "python"
else
echo "Python not found. Please install Python."
exit 1
fi
}
PYTHON_CMD=$(find_python_command)
if $PYTHON_CMD -c "import sys; sys.exit(sys.version_info < (3, 10))"; then
if ! $PYTHON_CMD scripts/check_requirements.py; then
echo
poetry install --without dev
echo
echo "Finished installing packages! Starting AutoGPT..."
echo
fi
poetry run autogpt "$@"
else
echo "Python 3.10 or higher is required to run Auto GPT."
fi

View File

@@ -2,13 +2,6 @@ import os
import random
import sys
from dotenv import load_dotenv
if "pytest" in sys.argv or "pytest" in sys.modules or os.getenv("CI"):
print("Setting random seed to 42")
random.seed(42)
# Load the users .env file into environment variables
load_dotenv(verbose=True, override=True)
del load_dotenv

View File

@@ -0,0 +1,5 @@
"""AutoGPT: A GPT powered AI Assistant"""
import autogpt.app.cli
if __name__ == "__main__":
autogpt.app.cli.cli()

View File

@@ -0,0 +1,108 @@
from typing import Optional
from forge.config.ai_directives import AIDirectives
from forge.config.ai_profile import AIProfile
from forge.file_storage.base import FileStorage
from forge.llm.providers import MultiProvider
from autogpt.agents.agent import Agent, AgentConfiguration, AgentSettings
from autogpt.app.config import AppConfig
def create_agent(
agent_id: str,
task: str,
app_config: AppConfig,
file_storage: FileStorage,
llm_provider: MultiProvider,
ai_profile: Optional[AIProfile] = None,
directives: Optional[AIDirectives] = None,
) -> Agent:
if not task:
raise ValueError("No task specified for new agent")
ai_profile = ai_profile or AIProfile()
directives = directives or AIDirectives()
agent = _configure_agent(
agent_id=agent_id,
task=task,
ai_profile=ai_profile,
directives=directives,
app_config=app_config,
file_storage=file_storage,
llm_provider=llm_provider,
)
return agent
def configure_agent_with_state(
state: AgentSettings,
app_config: AppConfig,
file_storage: FileStorage,
llm_provider: MultiProvider,
) -> Agent:
return _configure_agent(
state=state,
app_config=app_config,
file_storage=file_storage,
llm_provider=llm_provider,
)
def _configure_agent(
app_config: AppConfig,
llm_provider: MultiProvider,
file_storage: FileStorage,
agent_id: str = "",
task: str = "",
ai_profile: Optional[AIProfile] = None,
directives: Optional[AIDirectives] = None,
state: Optional[AgentSettings] = None,
) -> Agent:
if state:
agent_state = state
elif agent_id and task and ai_profile and directives:
agent_state = state or create_agent_state(
agent_id=agent_id,
task=task,
ai_profile=ai_profile,
directives=directives,
app_config=app_config,
)
else:
raise TypeError(
"Either (state) or (agent_id, task, ai_profile, directives)"
" must be specified"
)
return Agent(
settings=agent_state,
llm_provider=llm_provider,
file_storage=file_storage,
app_config=app_config,
)
def create_agent_state(
agent_id: str,
task: str,
ai_profile: AIProfile,
directives: AIDirectives,
app_config: AppConfig,
) -> AgentSettings:
return AgentSettings(
agent_id=agent_id,
name=Agent.default_settings.name,
description=Agent.default_settings.description,
task=task,
ai_profile=ai_profile,
directives=directives,
config=AgentConfiguration(
fast_llm=app_config.fast_llm,
smart_llm=app_config.smart_llm,
allow_fs_access=not app_config.restrict_to_workspace,
use_functions_api=app_config.openai_functions,
),
history=Agent.default_settings.history.model_copy(deep=True),
)

View File

@@ -0,0 +1,36 @@
from __future__ import annotations
from typing import TYPE_CHECKING
from forge.file_storage.base import FileStorage
if TYPE_CHECKING:
from autogpt.agents.agent import Agent
from autogpt.app.config import AppConfig
from forge.llm.providers import MultiProvider
from .configurators import _configure_agent
from .profile_generator import generate_agent_profile_for_task
async def generate_agent_for_task(
agent_id: str,
task: str,
app_config: AppConfig,
file_storage: FileStorage,
llm_provider: MultiProvider,
) -> Agent:
ai_profile, task_directives = await generate_agent_profile_for_task(
task=task,
app_config=app_config,
llm_provider=llm_provider,
)
return _configure_agent(
agent_id=agent_id,
task=task,
ai_profile=ai_profile,
directives=task_directives,
app_config=app_config,
file_storage=file_storage,
llm_provider=llm_provider,
)

View File

@@ -0,0 +1,241 @@
import json
import logging
from forge.config.ai_directives import AIDirectives
from forge.config.ai_profile import AIProfile
from forge.llm.prompting import ChatPrompt, LanguageModelClassification, PromptStrategy
from forge.llm.providers import MultiProvider
from forge.llm.providers.schema import (
AssistantChatMessage,
ChatMessage,
CompletionModelFunction,
)
from forge.models.config import SystemConfiguration, UserConfigurable
from forge.models.json_schema import JSONSchema
from autogpt.app.config import AppConfig
logger = logging.getLogger(__name__)
class AgentProfileGeneratorConfiguration(SystemConfiguration):
llm_classification: LanguageModelClassification = UserConfigurable(
default=LanguageModelClassification.SMART_MODEL
)
_example_call: object = {
"name": "create_agent",
"arguments": {
"name": "CMOGPT",
"description": (
"a professional digital marketer AI that assists Solopreneurs "
"in growing their businesses by providing "
"world-class expertise in solving marketing problems "
"for SaaS, content products, agencies, and more."
),
"directives": {
"best_practices": [
(
"Engage in effective problem-solving, prioritization, "
"planning, and supporting execution to address your "
"marketing needs as your virtual "
"Chief Marketing Officer."
),
(
"Provide specific, actionable, and concise advice to "
"help you make informed decisions without the use of "
"platitudes or overly wordy explanations."
),
(
"Identify and prioritize quick wins and cost-effective "
"campaigns that maximize results with minimal time and "
"budget investment."
),
(
"Proactively take the lead in guiding you and offering "
"suggestions when faced with unclear information or "
"uncertainty to ensure your marketing strategy remains "
"on track."
),
],
"constraints": [
"Do not suggest illegal or unethical plans or strategies.",
"Take reasonable budgetary limits into account.",
],
},
},
}
system_prompt: str = UserConfigurable(
default=(
"Your job is to respond to a user-defined task, given in triple quotes, by "
"invoking the `create_agent` function to generate an autonomous agent to "
"complete the task. "
"You should supply a role-based name for the agent (_GPT), "
"an informative description for what the agent does, and 1 to 5 directives "
"in each of the categories Best Practices and Constraints, "
"that are optimally aligned with the successful completion "
"of its assigned task.\n"
"\n"
"Example Input:\n"
'"""Help me with marketing my business"""\n\n'
"Example Call:\n"
"```\n"
f"{json.dumps(_example_call, indent=4)}"
"\n```"
)
)
user_prompt_template: str = UserConfigurable(default='"""{user_objective}"""')
create_agent_function: dict = UserConfigurable(
default=CompletionModelFunction(
name="create_agent",
description="Create a new autonomous AI agent to complete a given task.",
parameters={
"name": JSONSchema(
type=JSONSchema.Type.STRING,
description="A short role-based name for an autonomous agent.",
required=True,
),
"description": JSONSchema(
type=JSONSchema.Type.STRING,
description=(
"An informative one sentence description "
"of what the AI agent does"
),
required=True,
),
"directives": JSONSchema(
type=JSONSchema.Type.OBJECT,
properties={
"best_practices": JSONSchema(
type=JSONSchema.Type.ARRAY,
minItems=1,
maxItems=5,
items=JSONSchema(
type=JSONSchema.Type.STRING,
),
description=(
"One to five highly effective best practices "
"that are optimally aligned with the completion "
"of the given task"
),
required=True,
),
"constraints": JSONSchema(
type=JSONSchema.Type.ARRAY,
minItems=1,
maxItems=5,
items=JSONSchema(
type=JSONSchema.Type.STRING,
),
description=(
"One to five reasonable and efficacious constraints "
"that are optimally aligned with the completion "
"of the given task"
),
required=True,
),
},
required=True,
),
},
).model_dump()
)
class AgentProfileGenerator(PromptStrategy):
default_configuration: AgentProfileGeneratorConfiguration = (
AgentProfileGeneratorConfiguration()
)
def __init__(
self,
llm_classification: LanguageModelClassification,
system_prompt: str,
user_prompt_template: str,
create_agent_function: dict,
):
self._llm_classification = llm_classification
self._system_prompt_message = system_prompt
self._user_prompt_template = user_prompt_template
self._create_agent_function = CompletionModelFunction.model_validate(
create_agent_function
)
@property
def llm_classification(self) -> LanguageModelClassification:
return self._llm_classification
def build_prompt(self, user_objective: str = "", **kwargs) -> ChatPrompt:
system_message = ChatMessage.system(self._system_prompt_message)
user_message = ChatMessage.user(
self._user_prompt_template.format(
user_objective=user_objective,
)
)
prompt = ChatPrompt(
messages=[system_message, user_message],
functions=[self._create_agent_function],
)
return prompt
def parse_response_content(
self,
response: AssistantChatMessage,
) -> tuple[AIProfile, AIDirectives]:
"""Parse the actual text response from the objective model.
Args:
response_content: The raw response content from the objective model.
Returns:
The parsed response.
"""
try:
if not response.tool_calls:
raise ValueError(
f"LLM did not call {self._create_agent_function.name} function; "
"agent profile creation failed"
)
arguments: object = response.tool_calls[0].function.arguments
ai_profile = AIProfile(
ai_name=arguments.get("name"), # type: ignore
ai_role=arguments.get("description"), # type: ignore
)
ai_directives = AIDirectives(
best_practices=arguments.get("directives", {}).get("best_practices"),
constraints=arguments.get("directives", {}).get("constraints"),
resources=[],
)
except KeyError:
logger.debug(f"Failed to parse this response content: {response}")
raise
return ai_profile, ai_directives
async def generate_agent_profile_for_task(
task: str,
app_config: AppConfig,
llm_provider: MultiProvider,
) -> tuple[AIProfile, AIDirectives]:
"""Generates an AIConfig object from the given string.
Returns:
AIConfig: The AIConfig object tailored to the user's input
"""
agent_profile_generator = AgentProfileGenerator(
**AgentProfileGenerator.default_configuration.model_dump() # HACK
)
prompt = agent_profile_generator.build_prompt(task)
# Call LLM with the string as user input
output = await llm_provider.create_chat_completion(
prompt.messages,
model_name=app_config.smart_llm,
functions=prompt.functions,
completion_parser=agent_profile_generator.parse_response_content,
)
# Debug LLM Output
logger.debug(f"AI Config Generator Raw Output: {output.response}")
return output.parsed_result

View File

@@ -0,0 +1,37 @@
# 🤖 Agents
Agent is composed of [🧩 Components](./components.md) and responsible for executing pipelines and some additional logic. The base class for all agents is `BaseAgent`, it has the necessary logic to collect components and execute protocols.
## Important methods
`BaseAgent` provides two abstract methods needed for any agent to work properly:
1. `propose_action`: This method is responsible for proposing an action based on the current state of the agent, it returns `ThoughtProcessOutput`.
2. `execute`: This method is responsible for executing the proposed action, returns `ActionResult`.
## AutoGPT Agent
`Agent` is the main agent provided by AutoGPT. It's a subclass of `BaseAgent`. It has all the [Built-in Components](./built-in-components.md). `Agent` implements the essential abstract methods from `BaseAgent`: `propose_action` and `execute`.
## Building your own Agent
The easiest way to build your own agent is to extend the `Agent` class and add additional components. By doing this you can reuse the existing components and the default logic for executing [⚙️ Protocols](./protocols.md).
```py
class MyComponent(AgentComponent):
pass
class MyAgent(Agent):
def __init__(
self,
settings: AgentSettings,
llm_provider: MultiProvider
file_storage: FileStorage,
app_config: AppConfig,
):
# Call the parent constructor to bring in the default components
super().__init__(settings, llm_provider, file_storage, app_config)
# Add your custom component
self.my_component = MyComponent()
```
For more customization, you can override the `propose_action` and `execute` or even subclass `BaseAgent` directly. This way you can have full control over the agent's components and behavior. Have a look at the [implementation of Agent](https://github.com/Significant-Gravitas/AutoGPT/tree/master/autogpt/autogpt/agents/agent.py) for more details.

View File

@@ -0,0 +1,9 @@
from .agent import Agent
from .agent_manager import AgentManager
from .prompt_strategies.one_shot import OneShotAgentActionProposal
__all__ = [
"AgentManager",
"Agent",
"OneShotAgentActionProposal",
]

View File

@@ -0,0 +1,316 @@
from __future__ import annotations
import inspect
import logging
from typing import TYPE_CHECKING, Any, ClassVar, Optional
import sentry_sdk
from forge.agent.base import BaseAgent, BaseAgentConfiguration, BaseAgentSettings
from forge.agent.protocols import (
AfterExecute,
AfterParse,
CommandProvider,
DirectiveProvider,
MessageProvider,
)
from forge.command.command import Command
from forge.components.action_history import (
ActionHistoryComponent,
EpisodicActionHistory,
)
from forge.components.action_history.action_history import ActionHistoryConfiguration
from forge.components.code_executor.code_executor import (
CodeExecutorComponent,
CodeExecutorConfiguration,
)
from forge.components.code_flow_executor import CodeFlowExecutionComponent
from forge.components.context.context import AgentContext, ContextComponent
from forge.components.file_manager import FileManagerComponent
from forge.components.git_operations import GitOperationsComponent
from forge.components.image_gen import ImageGeneratorComponent
from forge.components.system import SystemComponent
from forge.components.user_interaction import UserInteractionComponent
from forge.components.watchdog import WatchdogComponent
from forge.components.web import WebSearchComponent, WebSeleniumComponent
from forge.file_storage.base import FileStorage
from forge.llm.prompting.schema import ChatPrompt
from forge.llm.prompting.utils import dump_prompt
from forge.llm.providers import (
AssistantFunctionCall,
ChatMessage,
ChatModelResponse,
MultiProvider,
)
from forge.models.action import (
ActionErrorResult,
ActionInterruptedByHuman,
ActionResult,
ActionSuccessResult,
)
from forge.models.config import Configurable
from forge.utils.exceptions import (
AgentException,
AgentTerminated,
CommandExecutionError,
UnknownCommandError,
)
from pydantic import Field
from .prompt_strategies.code_flow import CodeFlowAgentPromptStrategy
from .prompt_strategies.one_shot import (
OneShotAgentActionProposal,
OneShotAgentPromptStrategy,
)
if TYPE_CHECKING:
from autogpt.app.config import AppConfig
logger = logging.getLogger(__name__)
class AgentConfiguration(BaseAgentConfiguration):
pass
class AgentSettings(BaseAgentSettings):
config: AgentConfiguration = Field( # type: ignore
default_factory=AgentConfiguration
)
history: EpisodicActionHistory[OneShotAgentActionProposal] = Field(
default_factory=EpisodicActionHistory[OneShotAgentActionProposal]
)
"""(STATE) The action history of the agent."""
context: AgentContext = Field(default_factory=AgentContext)
class Agent(BaseAgent[OneShotAgentActionProposal], Configurable[AgentSettings]):
default_settings: ClassVar[AgentSettings] = AgentSettings(
name="Agent",
description=__doc__ if __doc__ else "",
)
def __init__(
self,
settings: AgentSettings,
llm_provider: MultiProvider,
file_storage: FileStorage,
app_config: AppConfig,
prompt_strategy_class: type[
OneShotAgentPromptStrategy | CodeFlowAgentPromptStrategy
] = CodeFlowAgentPromptStrategy,
):
super().__init__(settings)
self.llm_provider = llm_provider
prompt_config = prompt_strategy_class.default_configuration.model_copy(
deep=True
)
prompt_config.use_functions_api = (
settings.config.use_functions_api
# Anthropic currently doesn't support tools + prefilling :(
and self.llm.provider_name != "anthropic"
)
self.prompt_strategy = prompt_strategy_class(prompt_config, logger)
self.commands: list[Command] = []
# Components
self.system = SystemComponent()
self.history = (
ActionHistoryComponent(
settings.history,
lambda x: self.llm_provider.count_tokens(x, self.llm.name),
llm_provider,
ActionHistoryConfiguration(
llm_name=app_config.fast_llm, max_tokens=self.send_token_limit
),
)
.run_after(WatchdogComponent)
.run_after(SystemComponent)
)
if not app_config.noninteractive_mode:
self.user_interaction = UserInteractionComponent()
self.file_manager = FileManagerComponent(file_storage, settings)
self.code_executor = CodeExecutorComponent(
self.file_manager.workspace,
CodeExecutorConfiguration(
docker_container_name=f"{settings.agent_id}_sandbox"
),
)
self.git_ops = GitOperationsComponent()
self.image_gen = ImageGeneratorComponent(self.file_manager.workspace)
self.web_search = WebSearchComponent()
self.web_selenium = WebSeleniumComponent(
llm_provider,
app_config.app_data_dir,
)
self.context = ContextComponent(self.file_manager.workspace, settings.context)
self.watchdog = WatchdogComponent(settings.config, settings.history).run_after(
ContextComponent
)
self.code_flow_executor = CodeFlowExecutionComponent(lambda: self.commands)
self.event_history = settings.history
self.app_config = app_config
async def propose_action(self) -> OneShotAgentActionProposal:
"""Proposes the next action to execute, based on the task and current state.
Returns:
The command name and arguments, if any, and the agent's thoughts.
"""
self.reset_trace()
# Get directives
resources = await self.run_pipeline(DirectiveProvider.get_resources)
constraints = await self.run_pipeline(DirectiveProvider.get_constraints)
best_practices = await self.run_pipeline(DirectiveProvider.get_best_practices)
directives = self.state.directives.model_copy(deep=True)
directives.resources += resources
directives.constraints += constraints
directives.best_practices += best_practices
# Get commands
self.commands = await self.run_pipeline(CommandProvider.get_commands)
self._remove_disabled_commands()
# Get messages
messages = await self.run_pipeline(MessageProvider.get_messages)
include_os_info = (
self.code_executor.config.execute_local_commands
if hasattr(self, "code_executor")
else False
)
prompt: ChatPrompt = self.prompt_strategy.build_prompt(
messages=messages,
task=self.state.task,
ai_profile=self.state.ai_profile,
ai_directives=directives,
commands=self.commands,
include_os_info=include_os_info,
)
logger.debug(f"Executing prompt:\n{dump_prompt(prompt)}")
output = await self.complete_and_parse(prompt)
self.config.cycle_count += 1
return output
async def complete_and_parse(
self, prompt: ChatPrompt, exception: Optional[Exception] = None
) -> OneShotAgentActionProposal:
if exception:
prompt.messages.append(ChatMessage.system(f"Error: {exception}"))
response: ChatModelResponse = await self.llm_provider.create_chat_completion(
prompt.messages,
model_name=self.llm.name,
completion_parser=self.prompt_strategy.parse_response_content,
functions=prompt.functions,
prefill_response=prompt.prefill_response,
)
result = response.parsed_result
await self.run_pipeline(AfterParse.after_parse, result)
return result
async def execute(
self,
proposal: OneShotAgentActionProposal,
user_feedback: str = "",
) -> ActionResult:
tool = proposal.use_tool
# Get commands
self.commands = await self.run_pipeline(CommandProvider.get_commands)
self._remove_disabled_commands()
try:
return_value = await self._execute_tool(tool)
result = ActionSuccessResult(outputs=return_value)
except AgentTerminated:
raise
except AgentException as e:
result = ActionErrorResult.from_exception(e)
logger.warning(f"{tool} raised an error: {e}")
sentry_sdk.capture_exception(e)
result_tlength = self.llm_provider.count_tokens(str(result), self.llm.name)
if result_tlength > self.send_token_limit // 3:
result = ActionErrorResult(
reason=f"Command {tool.name} returned too much output. "
"Do not execute this command again with the same arguments."
)
await self.run_pipeline(AfterExecute.after_execute, result)
logger.debug("\n".join(self.trace))
return result
async def do_not_execute(
self, denied_proposal: OneShotAgentActionProposal, user_feedback: str
) -> ActionResult:
result = ActionInterruptedByHuman(feedback=user_feedback)
await self.run_pipeline(AfterExecute.after_execute, result)
logger.debug("\n".join(self.trace))
return result
async def _execute_tool(self, tool_call: AssistantFunctionCall) -> Any:
"""Execute the command and return the result
Args:
tool_call (AssistantFunctionCall): The tool call to execute
Returns:
str: The execution result
"""
# Execute a native command with the same name or alias, if it exists
command = self._get_command(tool_call.name)
try:
result = command(**tool_call.arguments)
if inspect.isawaitable(result):
return await result
return result
except AgentException:
raise
except Exception as e:
raise CommandExecutionError(str(e)) from e
def _get_command(self, command_name: str) -> Command:
for command in reversed(self.commands):
if command_name in command.names:
return command
raise UnknownCommandError(
f"Cannot execute command '{command_name}': unknown command."
)
def _remove_disabled_commands(self) -> None:
self.commands = [
command
for command in self.commands
if not any(
name in self.app_config.disabled_commands for name in command.names
)
]
def find_obscured_commands(self) -> list[Command]:
seen_names = set()
obscured_commands = []
for command in reversed(self.commands):
# If all of the command's names have been seen, it's obscured
if seen_names.issuperset(command.names):
obscured_commands.append(command)
else:
seen_names.update(command.names)
return list(reversed(obscured_commands))

View File

@@ -0,0 +1,46 @@
from __future__ import annotations
import uuid
from pathlib import Path
from forge.file_storage.base import FileStorage
from autogpt.agents.agent import AgentSettings
class AgentManager:
def __init__(self, file_storage: FileStorage):
self.file_manager = file_storage.clone_with_subroot("agents")
@staticmethod
def generate_id(agent_name: str) -> str:
"""Generate a unique ID for an agent given agent name."""
unique_id = str(uuid.uuid4())[:8]
return f"{agent_name}-{unique_id}"
def list_agents(self) -> list[str]:
"""Return all agent directories within storage."""
agent_dirs: list[str] = []
for file_path in self.file_manager.list_files():
if len(file_path.parts) == 2 and file_path.name == "state.json":
agent_dirs.append(file_path.parent.name)
return agent_dirs
def get_agent_dir(self, agent_id: str) -> Path:
"""Return the directory of the agent with the given ID."""
assert len(agent_id) > 0
agent_dir: Path | None = None
if self.file_manager.exists(agent_id):
agent_dir = self.file_manager.root / agent_id
else:
raise FileNotFoundError(f"No agent with ID '{agent_id}'")
return agent_dir
def load_agent_state(self, agent_id: str) -> AgentSettings:
"""Load the state of the agent with the given ID."""
state_file_path = Path(agent_id) / "state.json"
if not self.file_manager.exists(state_file_path):
raise FileNotFoundError(f"Agent with ID '{agent_id}' has no state.json")
state = self.file_manager.read_file(state_file_path)
return AgentSettings.parse_raw(state)

View File

@@ -0,0 +1,355 @@
import inspect
import re
from logging import Logger
from typing import Callable, Iterable, Sequence, get_args, get_origin
from forge.command import Command
from forge.components.code_flow_executor import CodeFlowExecutionComponent
from forge.config.ai_directives import AIDirectives
from forge.config.ai_profile import AIProfile
from forge.json.parsing import extract_dict_from_json
from forge.llm.prompting import ChatPrompt, LanguageModelClassification, PromptStrategy
from forge.llm.prompting.utils import indent
from forge.llm.providers.schema import (
AssistantChatMessage,
AssistantFunctionCall,
ChatMessage,
)
from forge.models.config import SystemConfiguration
from forge.models.json_schema import JSONSchema
from forge.utils.exceptions import InvalidAgentResponseError
from forge.utils.function.code_validation import CodeValidator
from forge.utils.function.model import FunctionDef
from pydantic import BaseModel, Field
from autogpt.agents.prompt_strategies.one_shot import (
AssistantThoughts,
OneShotAgentActionProposal,
OneShotAgentPromptConfiguration,
)
_RESPONSE_INTERFACE_NAME = "AssistantResponse"
class CodeFlowAgentActionProposal(BaseModel):
thoughts: AssistantThoughts
immediate_plan: str = Field(
...,
description="We will be running an iterative process to execute the plan, "
"Write the partial / immediate plan to execute your plan as detailed and "
"efficiently as possible without the help of the reasoning/intelligence. "
"The plan should describe the output of the immediate plan, so that the next "
"iteration can be executed by taking the output into account. "
"Try to do as much as possible without making any assumption or uninformed "
"guesses. Avoid large output at all costs!!!\n"
"Format: Objective[Objective of this iteration, explain what's the use of this "
"iteration for the next one] Plan[Plan that does not require any reasoning or "
"intelligence] Output[Output of the plan / should be small, avoid whole file "
"output]",
)
python_code: str = Field(
...,
description=(
"Write the fully-functional Python code of the immediate plan. "
"The output will be an `async def main() -> str` function of the immediate "
"plan that return the string output, the output will be passed into the "
"LLM context window so avoid returning the whole content!. "
"Use ONLY the listed available functions and built-in Python features. "
"Leverage the given magic functions to implement function calls for which "
"the arguments can't be determined yet. "
"Example:`async def main() -> str:\n"
" return await provided_function('arg1', 'arg2').split('\\n')[0]`"
),
)
FINAL_INSTRUCTION: str = (
"You have to give the answer in the from of JSON schema specified previously. "
"For the `python_code` field, you have to write Python code to execute your plan "
"as efficiently as possible. Your code will be executed directly without any "
"editing, if it doesn't work you will be held responsible. "
"Use ONLY the listed available functions and built-in Python features. "
"Do not make uninformed assumptions "
"(e.g. about the content or format of an unknown file). Leverage the given magic "
"functions to implement function calls for which the arguments can't be determined "
"yet. Reduce the amount of unnecessary data passed into these magic functions "
"where possible, because magic costs money and magically processing large amounts "
"of data is expensive. If you think are done with the task, you can simply call "
"finish(reason='your reason') to end the task, "
"a function that has one `finish` command, don't mix finish with other functions! "
"If you still need to do other functions, "
"let the next cycle execute the `finish` function. "
"Avoid hard-coding input values as input, and avoid returning large outputs. "
"The code that you have been executing in the past cycles can also be buggy, "
"so if you see undesired output, you can always try to re-plan, and re-code. "
)
class CodeFlowAgentPromptStrategy(PromptStrategy):
default_configuration: OneShotAgentPromptConfiguration = (
OneShotAgentPromptConfiguration()
)
def __init__(
self,
configuration: SystemConfiguration,
logger: Logger,
):
self.config = configuration
self.response_schema = JSONSchema.from_dict(
CodeFlowAgentActionProposal.model_json_schema()
)
self.logger = logger
self.commands: Sequence[Command] = [] # Sequence -> disallow list modification
@property
def llm_classification(self) -> LanguageModelClassification:
return LanguageModelClassification.SMART_MODEL # FIXME: dynamic switching
def build_prompt(
self,
*,
messages: list[ChatMessage],
task: str,
ai_profile: AIProfile,
ai_directives: AIDirectives,
commands: Sequence[Command],
**extras,
) -> ChatPrompt:
"""Constructs and returns a prompt with the following structure:
1. System prompt
3. `cycle_instruction`
"""
system_prompt, response_prefill = self.build_system_prompt(
ai_profile=ai_profile,
ai_directives=ai_directives,
commands=commands,
)
self.commands = commands
final_instruction_msg = ChatMessage.system(FINAL_INSTRUCTION)
return ChatPrompt(
messages=[
ChatMessage.system(system_prompt),
ChatMessage.user(f'"""{task}"""'),
*messages,
*(
[final_instruction_msg]
if not any(m.role == "assistant" for m in messages)
else []
),
],
prefill_response=response_prefill,
)
def build_system_prompt(
self,
ai_profile: AIProfile,
ai_directives: AIDirectives,
commands: Iterable[Command],
) -> tuple[str, str]:
"""
Builds the system prompt.
Returns:
str: The system prompt body
str: The desired start for the LLM's response; used to steer the output
"""
response_fmt_instruction, response_prefill = self.response_format_instruction()
system_prompt_parts = (
self._generate_intro_prompt(ai_profile)
+ [
"## Your Task\n"
"The user will specify a task for you to execute, in triple quotes,"
" in the next message. Your job is to complete the task, "
"and terminate when your task is done."
]
+ ["## Available Functions\n" + self._generate_function_headers(commands)]
+ ["## RESPONSE FORMAT\n" + response_fmt_instruction]
)
# Join non-empty parts together into paragraph format
return (
"\n\n".join(filter(None, system_prompt_parts)).strip("\n"),
response_prefill,
)
def response_format_instruction(self) -> tuple[str, str]:
response_schema = self.response_schema.model_copy(deep=True)
assert response_schema.properties
# Unindent for performance
response_format = re.sub(
r"\n\s+",
"\n",
response_schema.to_typescript_object_interface(_RESPONSE_INTERFACE_NAME),
)
response_prefill = f'{{\n "{list(response_schema.properties.keys())[0]}":'
return (
(
f"YOU MUST ALWAYS RESPOND WITH A JSON OBJECT OF THE FOLLOWING TYPE:\n"
f"{response_format}"
),
response_prefill,
)
def _generate_intro_prompt(self, ai_profile: AIProfile) -> list[str]:
"""Generates the introduction part of the prompt.
Returns:
list[str]: A list of strings forming the introduction part of the prompt.
"""
return [
f"You are {ai_profile.ai_name}, {ai_profile.ai_role.rstrip('.')}.",
# "Your decisions must always be made independently without seeking "
# "user assistance. Play to your strengths as an LLM and pursue "
# "simple strategies with no legal complications.",
]
def _generate_function_headers(self, commands: Iterable[Command]) -> str:
function_stubs: list[str] = []
annotation_types_in_context: set[type] = set()
for f in commands:
# Add source code of non-builtin types from function signatures
new_annotation_types = extract_annotation_types(f.method).difference(
annotation_types_in_context
)
new_annotation_types_src = [
f"# {a.__module__}.{a.__qualname__}\n{inspect.getsource(a)}"
for a in new_annotation_types
]
annotation_types_in_context.update(new_annotation_types)
param_descriptions = "\n".join(
f"{param.name}: {param.spec.description}"
for param in f.parameters
if param.spec.description
)
full_function_stub = (
("\n".join(new_annotation_types_src) + "\n" + f.header).strip()
+ "\n"
+ indent(
(
'"""\n'
f"{f.description}\n\n"
f"Params:\n{indent(param_descriptions)}\n"
'"""\n'
"pass"
),
)
)
function_stubs.append(full_function_stub)
return "\n\n\n".join(function_stubs)
async def parse_response_content(
self,
response: AssistantChatMessage,
) -> OneShotAgentActionProposal:
if not response.content:
raise InvalidAgentResponseError("Assistant response has no text content")
self.logger.debug(
"LLM response content:"
+ (
f"\n{response.content}"
if "\n" in response.content
else f" '{response.content}'"
)
)
assistant_reply_dict = extract_dict_from_json(response.content)
parsed_response = CodeFlowAgentActionProposal.model_validate(
assistant_reply_dict
)
if not parsed_response.python_code:
raise ValueError("python_code is empty")
available_functions = {
c.name: FunctionDef(
name=c.name,
arg_types=[(p.name, p.spec.python_type) for p in c.parameters],
arg_descs={p.name: p.spec.description for p in c.parameters},
arg_defaults={
p.name: p.spec.default or "None"
for p in c.parameters
if p.spec.default or not p.spec.required
},
return_type=c.return_type,
return_desc="Output of the function",
function_desc=c.description,
is_async=c.is_async,
)
for c in self.commands
}
available_functions.update(
{
"main": FunctionDef(
name="main",
arg_types=[],
arg_descs={},
return_type="str",
return_desc="Output of the function",
function_desc="The main function to execute the plan",
is_async=True,
)
}
)
code_validation = await CodeValidator(
function_name="main",
available_functions=available_functions,
).validate_code(parsed_response.python_code)
clean_response = response.model_copy()
clean_response.content = parsed_response.model_dump_json(indent=4)
# TODO: prevent combining finish with other functions
if _finish_call := re.search(
r"finish\((reason=)?(.*?)\)", code_validation.functionCode
):
finish_reason = _finish_call.group(2)[1:-1] # remove quotes
result = OneShotAgentActionProposal(
thoughts=parsed_response.thoughts,
use_tool=AssistantFunctionCall(
name="finish",
arguments={"reason": finish_reason},
),
raw_message=clean_response,
)
else:
result = OneShotAgentActionProposal(
thoughts=parsed_response.thoughts,
use_tool=AssistantFunctionCall(
name=CodeFlowExecutionComponent.execute_code_flow.name,
arguments={
"python_code": code_validation.functionCode,
"plan_text": parsed_response.immediate_plan,
},
),
raw_message=clean_response,
)
return result
def extract_annotation_types(func: Callable) -> set[type]:
annotation_types = set()
for annotation in inspect.get_annotations(func).values():
annotation_types.update(_get_nested_types(annotation))
return annotation_types
def _get_nested_types(annotation: type) -> Iterable[type]:
if _args := get_args(annotation):
for a in _args:
yield from _get_nested_types(a)
if not _is_builtin_type(_a := get_origin(annotation) or annotation):
yield _a
def _is_builtin_type(_type: type):
"""Check if a given type is a built-in type."""
import sys
return _type.__module__ in sys.stdlib_module_names

View File

@@ -0,0 +1,292 @@
from __future__ import annotations
import json
import platform
import re
from logging import Logger
import distro
from forge.command import Command
from forge.config.ai_directives import AIDirectives
from forge.config.ai_profile import AIProfile
from forge.json.parsing import extract_dict_from_json
from forge.llm.prompting import ChatPrompt, LanguageModelClassification, PromptStrategy
from forge.llm.prompting.utils import format_numbered_list
from forge.llm.providers.schema import (
AssistantChatMessage,
ChatMessage,
CompletionModelFunction,
)
from forge.llm.providers.utils import function_specs_from_commands
from forge.models.action import ActionProposal
from forge.models.config import SystemConfiguration, UserConfigurable
from forge.models.json_schema import JSONSchema
from forge.models.utils import ModelWithSummary
from forge.utils.exceptions import InvalidAgentResponseError
from pydantic import Field
_RESPONSE_INTERFACE_NAME = "AssistantResponse"
class AssistantThoughts(ModelWithSummary):
past_action_summary: str = Field(
...,
description="Summary of the last action you took, if there is none, "
"you can leave it empty",
)
observations: str = Field(
description="Relevant observations from your last actions (if any)"
)
text: str = Field(description="Thoughts")
reasoning: str = Field(description="Reasoning behind the thoughts")
self_criticism: str = Field(description="Constructive self-criticism")
plan: list[str] = Field(
description="Short list that conveys the long-term plan, "
"considering the progress on your task so far",
)
speak: str = Field(description="Summary of thoughts, to say to user")
def summary(self) -> str:
return self.text
class OneShotAgentActionProposal(ActionProposal):
thoughts: AssistantThoughts # type: ignore
class OneShotAgentPromptConfiguration(SystemConfiguration):
DEFAULT_BODY_TEMPLATE: str = (
"## Constraints\n"
"You operate within the following constraints:\n"
"{constraints}\n"
"\n"
"## Resources\n"
"You can leverage access to the following resources:\n"
"{resources}\n"
"\n"
"## Commands\n"
"These are the ONLY commands you can use."
" Any action you perform must be possible through one of these commands:\n"
"{commands}\n"
"\n"
"## Best practices\n"
"{best_practices}"
)
DEFAULT_CHOOSE_ACTION_INSTRUCTION: str = (
"Determine exactly one command to use next based on the given goals "
"and the progress you have made so far, "
"and respond using the JSON schema specified previously:"
)
body_template: str = UserConfigurable(default=DEFAULT_BODY_TEMPLATE)
choose_action_instruction: str = UserConfigurable(
default=DEFAULT_CHOOSE_ACTION_INSTRUCTION
)
use_functions_api: bool = UserConfigurable(default=False)
#########
# State #
#########
# progress_summaries: dict[tuple[int, int], str] = Field(
# default_factory=lambda: {(0, 0): ""}
# )
class OneShotAgentPromptStrategy(PromptStrategy):
default_configuration: OneShotAgentPromptConfiguration = (
OneShotAgentPromptConfiguration()
)
def __init__(
self,
configuration: OneShotAgentPromptConfiguration,
logger: Logger,
):
self.config = configuration
self.response_schema = JSONSchema.from_dict(
OneShotAgentActionProposal.model_json_schema()
)
self.logger = logger
@property
def llm_classification(self) -> LanguageModelClassification:
return LanguageModelClassification.SMART_MODEL # FIXME: dynamic switching
def build_prompt(
self,
*,
messages: list[ChatMessage],
task: str,
ai_profile: AIProfile,
ai_directives: AIDirectives,
commands: list[Command],
include_os_info: bool,
**extras,
) -> ChatPrompt:
"""Constructs and returns a prompt with the following structure:
1. System prompt
3. `cycle_instruction`
"""
functions = function_specs_from_commands(commands)
system_prompt, response_prefill = self.build_system_prompt(
ai_profile=ai_profile,
ai_directives=ai_directives,
functions=functions,
include_os_info=include_os_info,
)
final_instruction_msg = ChatMessage.user(self.config.choose_action_instruction)
return ChatPrompt(
messages=[
ChatMessage.system(system_prompt),
ChatMessage.user(f'"""{task}"""'),
*messages,
final_instruction_msg,
],
prefill_response=response_prefill,
functions=functions if self.config.use_functions_api else [],
)
def build_system_prompt(
self,
ai_profile: AIProfile,
ai_directives: AIDirectives,
functions: list[CompletionModelFunction],
include_os_info: bool,
) -> tuple[str, str]:
"""
Builds the system prompt.
Returns:
str: The system prompt body
str: The desired start for the LLM's response; used to steer the output
"""
response_fmt_instruction, response_prefill = self.response_format_instruction(
self.config.use_functions_api
)
system_prompt_parts = (
self._generate_intro_prompt(ai_profile)
+ (self._generate_os_info() if include_os_info else [])
+ [
self.config.body_template.format(
constraints=format_numbered_list(ai_directives.constraints),
resources=format_numbered_list(ai_directives.resources),
commands=self._generate_commands_list(functions),
best_practices=format_numbered_list(ai_directives.best_practices),
)
]
+ [
"## Your Task\n"
"The user will specify a task for you to execute, in triple quotes,"
" in the next message. Your job is to complete the task while following"
" your directives as given above, and terminate when your task is done."
]
+ ["## RESPONSE FORMAT\n" + response_fmt_instruction]
)
# Join non-empty parts together into paragraph format
return (
"\n\n".join(filter(None, system_prompt_parts)).strip("\n"),
response_prefill,
)
def response_format_instruction(self, use_functions_api: bool) -> tuple[str, str]:
response_schema = self.response_schema.model_copy(deep=True)
assert response_schema.properties
if use_functions_api and "use_tool" in response_schema.properties:
del response_schema.properties["use_tool"]
# Unindent for performance
response_format = re.sub(
r"\n\s+",
"\n",
response_schema.to_typescript_object_interface(_RESPONSE_INTERFACE_NAME),
)
response_prefill = f'{{\n "{list(response_schema.properties.keys())[0]}":'
return (
(
f"YOU MUST ALWAYS RESPOND WITH A JSON OBJECT OF THE FOLLOWING TYPE:\n"
f"{response_format}"
+ ("\n\nYOU MUST ALSO INVOKE A TOOL!" if use_functions_api else "")
),
response_prefill,
)
def _generate_intro_prompt(self, ai_profile: AIProfile) -> list[str]:
"""Generates the introduction part of the prompt.
Returns:
list[str]: A list of strings forming the introduction part of the prompt.
"""
return [
f"You are {ai_profile.ai_name}, {ai_profile.ai_role.rstrip('.')}.",
"Your decisions must always be made independently without seeking "
"user assistance. Play to your strengths as an LLM and pursue "
"simple strategies with no legal complications.",
]
def _generate_os_info(self) -> list[str]:
"""Generates the OS information part of the prompt.
Params:
config (Config): The configuration object.
Returns:
str: The OS information part of the prompt.
"""
os_name = platform.system()
os_info = (
platform.platform(terse=True)
if os_name != "Linux"
else distro.name(pretty=True)
)
return [f"The OS you are running on is: {os_info}"]
def _generate_commands_list(self, commands: list[CompletionModelFunction]) -> str:
"""Lists the commands available to the agent.
Params:
agent: The agent for which the commands are being listed.
Returns:
str: A string containing a numbered list of commands.
"""
try:
return format_numbered_list([cmd.fmt_line() for cmd in commands])
except AttributeError:
self.logger.warning(f"Formatting commands failed. {commands}")
raise
def parse_response_content(
self,
response: AssistantChatMessage,
) -> OneShotAgentActionProposal:
if not response.content:
raise InvalidAgentResponseError("Assistant response has no text content")
self.logger.debug(
"LLM response content:"
+ (
f"\n{response.content}"
if "\n" in response.content
else f" '{response.content}'"
)
)
assistant_reply_dict = extract_dict_from_json(response.content)
self.logger.debug(
"Parsing object extracted from LLM response:\n"
f"{json.dumps(assistant_reply_dict, indent=4)}"
)
if self.config.use_functions_api:
if not response.tool_calls:
raise InvalidAgentResponseError("Assistant did not use a tool")
assistant_reply_dict["use_tool"] = response.tool_calls[0].function
parsed_response = OneShotAgentActionProposal.model_validate(
assistant_reply_dict
)
parsed_response.raw_message = response.copy()
return parsed_response

View File

@@ -0,0 +1,6 @@
from dotenv import load_dotenv
# Load the users .env file into environment variables
load_dotenv(verbose=True, override=True)
del load_dotenv

View File

@@ -0,0 +1,485 @@
import logging
import os
import pathlib
from collections import defaultdict
from io import BytesIO
from uuid import uuid4
import orjson
from fastapi import APIRouter, FastAPI, UploadFile
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import RedirectResponse, StreamingResponse
from fastapi.staticfiles import StaticFiles
from forge.agent_protocol.api_router import base_router
from forge.agent_protocol.database import AgentDB
from forge.agent_protocol.middlewares import AgentMiddleware
from forge.agent_protocol.models import (
Artifact,
Step,
StepRequestBody,
Task,
TaskArtifactsListResponse,
TaskListResponse,
TaskRequestBody,
TaskStepsListResponse,
)
from forge.components.code_flow_executor import CodeFlowExecutionComponent
from forge.file_storage import FileStorage
from forge.llm.providers import ModelProviderBudget, MultiProvider
from forge.models.action import ActionErrorResult, ActionSuccessResult
from forge.utils.const import ASK_COMMAND, FINISH_COMMAND
from forge.utils.exceptions import AgentFinished, NotFoundError
from hypercorn.asyncio import serve as hypercorn_serve
from hypercorn.config import Config as HypercornConfig
from sentry_sdk import set_user
from autogpt.agent_factory.configurators import configure_agent_with_state, create_agent
from autogpt.agents.agent_manager import AgentManager
from autogpt.app.config import AppConfig
from autogpt.app.utils import is_port_free
logger = logging.getLogger(__name__)
class AgentProtocolServer:
_task_budgets: dict[str, ModelProviderBudget]
def __init__(
self,
app_config: AppConfig,
database: AgentDB,
file_storage: FileStorage,
llm_provider: MultiProvider,
):
self.app_config = app_config
self.db = database
self.file_storage = file_storage
self.llm_provider = llm_provider
self.agent_manager = AgentManager(file_storage)
self._task_budgets = defaultdict(ModelProviderBudget)
async def start(self, port: int = 8000, router: APIRouter = base_router):
"""Start the agent server."""
logger.debug("Starting the agent server...")
if not is_port_free(port):
logger.error(f"Port {port} is already in use.")
logger.info(
"You can specify a port by either setting the AP_SERVER_PORT "
"environment variable or defining AP_SERVER_PORT in the .env file."
)
return
config = HypercornConfig()
config.bind = [f"localhost:{port}"]
app = FastAPI(
title="AutoGPT Server",
description="Forked from AutoGPT Forge; "
"Modified version of The Agent Protocol.",
version="v0.4",
)
# Configure CORS middleware
default_origins = [f"http://localhost:{port}"] # Default only local access
configured_origins = [
origin
for origin in os.getenv("AP_SERVER_CORS_ALLOWED_ORIGINS", "").split(",")
if origin # Empty list if not configured
]
origins = configured_origins or default_origins
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(router, prefix="/ap/v1")
script_dir = os.path.dirname(os.path.realpath(__file__))
frontend_path = (
pathlib.Path(script_dir).joinpath("../../../frontend/build/web").resolve()
)
if os.path.exists(frontend_path):
app.mount("/app", StaticFiles(directory=frontend_path), name="app")
@app.get("/", include_in_schema=False)
async def root():
return RedirectResponse(url="/app/index.html", status_code=307)
else:
logger.warning(
f"Frontend not found. {frontend_path} does not exist. "
"The frontend will not be available."
)
# Used to access the methods on this class from API route handlers
app.add_middleware(AgentMiddleware, agent=self)
config.loglevel = "ERROR"
config.bind = [f"0.0.0.0:{port}"]
logger.info(f"AutoGPT server starting on http://localhost:{port}")
await hypercorn_serve(app, config) # type: ignore
async def create_task(self, task_request: TaskRequestBody) -> Task:
"""
Create a task for the agent.
"""
if user_id := (task_request.additional_input or {}).get("user_id"):
set_user({"id": user_id})
task = await self.db.create_task(
input=task_request.input,
additional_input=task_request.additional_input,
)
# TODO: re-evaluate performance benefit of task-oriented profiles
# logger.debug(f"Creating agent for task: '{task.input}'")
# task_agent = await generate_agent_for_task(
task_agent = create_agent(
agent_id=task_agent_id(task.task_id),
task=task.input,
app_config=self.app_config,
file_storage=self.file_storage,
llm_provider=self._get_task_llm_provider(task),
)
await task_agent.file_manager.save_state()
return task
async def list_tasks(self, page: int = 1, pageSize: int = 10) -> TaskListResponse:
"""
List all tasks that the agent has created.
"""
logger.debug("Listing all tasks...")
tasks, pagination = await self.db.list_tasks(page, pageSize)
response = TaskListResponse(tasks=tasks, pagination=pagination)
return response
async def get_task(self, task_id: str) -> Task:
"""
Get a task by ID.
"""
logger.debug(f"Getting task with ID: {task_id}...")
task = await self.db.get_task(task_id)
return task
async def list_steps(
self, task_id: str, page: int = 1, pageSize: int = 10
) -> TaskStepsListResponse:
"""
List the IDs of all steps that the task has created.
"""
logger.debug(f"Listing all steps created by task with ID: {task_id}...")
steps, pagination = await self.db.list_steps(task_id, page, pageSize)
response = TaskStepsListResponse(steps=steps, pagination=pagination)
return response
async def execute_step(self, task_id: str, step_request: StepRequestBody) -> Step:
"""Create a step for the task."""
logger.debug(f"Creating a step for task with ID: {task_id}...")
# Restore Agent instance
task = await self.get_task(task_id)
agent = configure_agent_with_state(
state=self.agent_manager.load_agent_state(task_agent_id(task_id)),
app_config=self.app_config,
file_storage=self.file_storage,
llm_provider=self._get_task_llm_provider(task),
)
if user_id := (task.additional_input or {}).get("user_id"):
set_user({"id": user_id})
# According to the Agent Protocol spec, the first execute_step request contains
# the same task input as the parent create_task request.
# To prevent this from interfering with the agent's process, we ignore the input
# of this first step request, and just generate the first step proposal.
is_init_step = not bool(agent.event_history)
last_proposal, tool_result = None, None
execute_approved = False
# HACK: only for compatibility with AGBenchmark
if step_request.input == "y":
step_request.input = ""
user_input = step_request.input if not is_init_step else ""
if (
not is_init_step
and agent.event_history.current_episode
and not agent.event_history.current_episode.result
):
last_proposal = agent.event_history.current_episode.action
execute_approved = not user_input
logger.debug(
f"Agent proposed command {last_proposal.use_tool}."
f" User input/feedback: {repr(user_input)}"
)
# Save step request
step = await self.db.create_step(
task_id=task_id,
input=step_request,
is_last=(
last_proposal is not None
and last_proposal.use_tool.name == FINISH_COMMAND
and execute_approved
),
)
agent.llm_provider = self._get_task_llm_provider(task, step.step_id)
# Execute previously proposed action
if last_proposal:
agent.file_manager.workspace.on_write_file = (
lambda path: self._on_agent_write_file(
task=task, step=step, relative_path=path
)
)
if last_proposal.use_tool.name == ASK_COMMAND:
tool_result = ActionSuccessResult(outputs=user_input)
agent.event_history.register_result(tool_result)
elif execute_approved:
step = await self.db.update_step(
task_id=task_id,
step_id=step.step_id,
status="running",
)
try:
# Execute previously proposed action
tool_result = await agent.execute(last_proposal)
except AgentFinished:
additional_output = {}
task_total_cost = agent.llm_provider.get_incurred_cost()
if task_total_cost > 0:
additional_output["task_total_cost"] = task_total_cost
logger.info(
f"Total LLM cost for task {task_id}: "
f"${round(task_total_cost, 2)}"
)
step = await self.db.update_step(
task_id=task_id,
step_id=step.step_id,
output=last_proposal.use_tool.arguments["reason"],
additional_output=additional_output,
)
await agent.file_manager.save_state()
return step
else:
assert user_input
tool_result = await agent.do_not_execute(last_proposal, user_input)
# Propose next action
try:
assistant_response = await agent.propose_action()
next_tool_to_use = assistant_response.use_tool
logger.debug(f"AI output: {assistant_response.thoughts}")
except Exception as e:
step = await self.db.update_step(
task_id=task_id,
step_id=step.step_id,
status="completed",
output=f"An error occurred while proposing the next action: {e}",
)
return step
# Format step output
output = (
(
f"`{last_proposal.use_tool}` returned:"
+ ("\n\n" if "\n" in str(tool_result) else " ")
+ f"{tool_result}\n\n"
)
if last_proposal and last_proposal.use_tool.name != ASK_COMMAND
else ""
)
output += f"{assistant_response.thoughts.speak}\n\n"
if next_tool_to_use.name == CodeFlowExecutionComponent.execute_code_flow.name:
code = next_tool_to_use.arguments["python_code"]
plan = next_tool_to_use.arguments["plan_text"]
output += f"Code for next step:\n```py\n# {plan}\n\n{code}\n```"
else:
output += (
f"Next Command: {next_tool_to_use}"
if next_tool_to_use.name != ASK_COMMAND
else next_tool_to_use.arguments["question"]
)
additional_output = {
**(
{
"last_action": {
"name": last_proposal.use_tool.name,
"args": last_proposal.use_tool.arguments,
"result": (
""
if tool_result is None
else (
orjson.loads(tool_result.model_dump_json())
if not isinstance(tool_result, ActionErrorResult)
else {
"error": str(tool_result.error),
"reason": tool_result.reason,
}
)
),
},
}
if last_proposal and tool_result
else {}
),
**assistant_response.model_dump(),
}
task_cumulative_cost = agent.llm_provider.get_incurred_cost()
if task_cumulative_cost > 0:
additional_output["task_cumulative_cost"] = task_cumulative_cost
logger.debug(
f"Running total LLM cost for task {task_id}: "
f"${round(task_cumulative_cost, 3)}"
)
step = await self.db.update_step(
task_id=task_id,
step_id=step.step_id,
status="completed",
output=output,
additional_output=additional_output,
)
await agent.file_manager.save_state()
return step
async def _on_agent_write_file(
self, task: Task, step: Step, relative_path: pathlib.Path
) -> None:
"""
Creates an Artifact for the written file, or updates the Artifact if it exists.
"""
if relative_path.is_absolute():
raise ValueError(f"File path '{relative_path}' is not relative")
for a in task.artifacts or []:
if a.relative_path == str(relative_path):
logger.debug(f"Updating Artifact after writing to existing file: {a}")
if not a.agent_created:
await self.db.update_artifact(a.artifact_id, agent_created=True)
break
else:
logger.debug(f"Creating Artifact for new file '{relative_path}'")
await self.db.create_artifact(
task_id=step.task_id,
step_id=step.step_id,
file_name=relative_path.parts[-1],
agent_created=True,
relative_path=str(relative_path),
)
async def get_step(self, task_id: str, step_id: str) -> Step:
"""
Get a step by ID.
"""
step = await self.db.get_step(task_id, step_id)
return step
async def list_artifacts(
self, task_id: str, page: int = 1, pageSize: int = 10
) -> TaskArtifactsListResponse:
"""
List the artifacts that the task has created.
"""
artifacts, pagination = await self.db.list_artifacts(task_id, page, pageSize)
return TaskArtifactsListResponse(artifacts=artifacts, pagination=pagination)
async def create_artifact(
self, task_id: str, file: UploadFile, relative_path: str
) -> Artifact:
"""
Create an artifact for the task.
"""
file_name = file.filename or str(uuid4())
data = b""
while contents := file.file.read(1024 * 1024):
data += contents
# Check if relative path ends with filename
if relative_path.endswith(file_name):
file_path = relative_path
else:
file_path = os.path.join(relative_path, file_name)
workspace = self._get_task_agent_file_workspace(task_id)
await workspace.write_file(file_path, data)
artifact = await self.db.create_artifact(
task_id=task_id,
file_name=file_name,
relative_path=relative_path,
agent_created=False,
)
return artifact
async def get_artifact(self, task_id: str, artifact_id: str) -> StreamingResponse:
"""
Download a task artifact by ID.
"""
try:
workspace = self._get_task_agent_file_workspace(task_id)
artifact = await self.db.get_artifact(artifact_id)
if artifact.file_name not in artifact.relative_path:
file_path = os.path.join(artifact.relative_path, artifact.file_name)
else:
file_path = artifact.relative_path
retrieved_artifact = workspace.read_file(file_path, binary=True)
except NotFoundError:
raise
except FileNotFoundError:
raise
return StreamingResponse(
BytesIO(retrieved_artifact),
media_type="application/octet-stream",
headers={
"Content-Disposition": f'attachment; filename="{artifact.file_name}"'
},
)
def _get_task_agent_file_workspace(self, task_id: str | int) -> FileStorage:
agent_id = task_agent_id(task_id)
return self.file_storage.clone_with_subroot(f"agents/{agent_id}/workspace")
def _get_task_llm_provider(self, task: Task, step_id: str = "") -> MultiProvider:
"""
Configures the LLM provider with headers to link outgoing requests to the task.
"""
task_llm_budget = self._task_budgets[task.task_id]
task_llm_provider_config = self.llm_provider._configuration.model_copy(
deep=True
)
_extra_request_headers = task_llm_provider_config.extra_request_headers
_extra_request_headers["AP-TaskID"] = task.task_id
if step_id:
_extra_request_headers["AP-StepID"] = step_id
if task.additional_input and (user_id := task.additional_input.get("user_id")):
_extra_request_headers["AutoGPT-UserID"] = user_id
settings = self.llm_provider._settings.model_copy()
settings.budget = task_llm_budget
settings.configuration = task_llm_provider_config
task_llm_provider = self.llm_provider.__class__(
settings=settings,
logger=logger.getChild(
f"Task-{task.task_id}_{self.llm_provider.__class__.__name__}"
),
)
self._task_budgets[task.task_id] = task_llm_provider._budget # type: ignore
return task_llm_provider
def task_agent_id(task_id: str | int) -> str:
return f"AutoGPT-{task_id}"

216
autogpt/autogpt/app/cli.py Normal file
View File

@@ -0,0 +1,216 @@
"""Main script for the autogpt package."""
from logging import _nameToLevel as logLevelMap
from pathlib import Path
from typing import Optional
import click
from forge.logging.config import LogFormatName
from .telemetry import setup_telemetry
@click.group(invoke_without_command=True)
@click.pass_context
def cli(ctx: click.Context):
setup_telemetry()
# Invoke `run` by default
if ctx.invoked_subcommand is None:
ctx.invoke(run)
@cli.command()
@click.option("-c", "--continuous", is_flag=True, help="Enable Continuous Mode")
@click.option(
"-l",
"--continuous-limit",
type=int,
help="Defines the number of times to run in continuous mode",
)
@click.option("--speak", is_flag=True, help="Enable Speak Mode")
@click.option(
"--install-plugin-deps",
is_flag=True,
help="Installs external dependencies for 3rd party plugins.",
)
@click.option(
"--skip-news",
is_flag=True,
help="Specifies whether to suppress the output of latest news on startup.",
)
@click.option(
"--skip-reprompt",
"-y",
is_flag=True,
help="Skips the re-prompting messages at the beginning of the script",
)
@click.option(
"--ai-name",
type=str,
help="AI name override",
)
@click.option(
"--ai-role",
type=str,
help="AI role override",
)
@click.option(
"--constraint",
type=str,
multiple=True,
help=(
"Add or override AI constraints to include in the prompt;"
" may be used multiple times to pass multiple constraints"
),
)
@click.option(
"--resource",
type=str,
multiple=True,
help=(
"Add or override AI resources to include in the prompt;"
" may be used multiple times to pass multiple resources"
),
)
@click.option(
"--best-practice",
type=str,
multiple=True,
help=(
"Add or override AI best practices to include in the prompt;"
" may be used multiple times to pass multiple best practices"
),
)
@click.option(
"--override-directives",
is_flag=True,
help=(
"If specified, --constraint, --resource and --best-practice will override"
" the AI's directives instead of being appended to them"
),
)
@click.option(
"--debug", is_flag=True, help="Implies --log-level=DEBUG --log-format=debug"
)
@click.option("--log-level", type=click.Choice([*logLevelMap.keys()]))
@click.option(
"--log-format",
help=(
"Choose a log format; defaults to 'simple'."
" Also implies --log-file-format, unless it is specified explicitly."
" Using the 'structured_google_cloud' format disables log file output."
),
type=click.Choice([i.value for i in LogFormatName]),
)
@click.option(
"--log-file-format",
help=(
"Override the format used for the log file output."
" Defaults to the application's global --log-format."
),
type=click.Choice([i.value for i in LogFormatName]),
)
@click.option(
"--component-config-file",
help="Path to a json configuration file",
type=click.Path(exists=True, dir_okay=False, resolve_path=True, path_type=Path),
)
def run(
continuous: bool,
continuous_limit: Optional[int],
speak: bool,
install_plugin_deps: bool,
skip_news: bool,
skip_reprompt: bool,
ai_name: Optional[str],
ai_role: Optional[str],
resource: tuple[str],
constraint: tuple[str],
best_practice: tuple[str],
override_directives: bool,
debug: bool,
log_level: Optional[str],
log_format: Optional[str],
log_file_format: Optional[str],
component_config_file: Optional[Path],
) -> None:
"""
Sets up and runs an agent, based on the task specified by the user, or resumes an
existing agent.
"""
# Put imports inside function to avoid importing everything when starting the CLI
from autogpt.app.main import run_auto_gpt
run_auto_gpt(
continuous=continuous,
continuous_limit=continuous_limit,
skip_reprompt=skip_reprompt,
speak=speak,
debug=debug,
log_level=log_level,
log_format=log_format,
log_file_format=log_file_format,
skip_news=skip_news,
install_plugin_deps=install_plugin_deps,
override_ai_name=ai_name,
override_ai_role=ai_role,
resources=list(resource),
constraints=list(constraint),
best_practices=list(best_practice),
override_directives=override_directives,
component_config_file=component_config_file,
)
@cli.command()
@click.option(
"--install-plugin-deps",
is_flag=True,
help="Installs external dependencies for 3rd party plugins.",
)
@click.option(
"--debug", is_flag=True, help="Implies --log-level=DEBUG --log-format=debug"
)
@click.option("--log-level", type=click.Choice([*logLevelMap.keys()]))
@click.option(
"--log-format",
help=(
"Choose a log format; defaults to 'simple'."
" Also implies --log-file-format, unless it is specified explicitly."
" Using the 'structured_google_cloud' format disables log file output."
),
type=click.Choice([i.value for i in LogFormatName]),
)
@click.option(
"--log-file-format",
help=(
"Override the format used for the log file output."
" Defaults to the application's global --log-format."
),
type=click.Choice([i.value for i in LogFormatName]),
)
def serve(
install_plugin_deps: bool,
debug: bool,
log_level: Optional[str],
log_format: Optional[str],
log_file_format: Optional[str],
) -> None:
"""
Starts an Agent Protocol compliant AutoGPT server, which creates a custom agent for
every task.
"""
# Put imports inside function to avoid importing everything when starting the CLI
from autogpt.app.main import run_auto_gpt_server
run_auto_gpt_server(
debug=debug,
log_level=log_level,
log_format=log_format,
log_file_format=log_file_format,
install_plugin_deps=install_plugin_deps,
)
if __name__ == "__main__":
cli()

View File

@@ -0,0 +1,221 @@
"""Configuration class to store the state of bools for different scripts access."""
from __future__ import annotations
import logging
import os
import re
from pathlib import Path
from typing import Optional, Union
import forge
from forge.config.base import BaseConfig
from forge.llm.providers import CHAT_MODELS, ModelName
from forge.llm.providers.openai import OpenAICredentials, OpenAIModelName
from forge.logging.config import LoggingConfig
from forge.models.config import Configurable, UserConfigurable
from pydantic import SecretStr, ValidationInfo, field_validator
logger = logging.getLogger(__name__)
PROJECT_ROOT = Path(forge.__file__).parent.parent
AZURE_CONFIG_FILE = Path("azure.yaml")
GPT_4_MODEL = OpenAIModelName.GPT4
GPT_3_MODEL = OpenAIModelName.GPT3
class AppConfig(BaseConfig):
name: str = "Auto-GPT configuration"
description: str = "Default configuration for the Auto-GPT application."
########################
# Application Settings #
########################
project_root: Path = PROJECT_ROOT
app_data_dir: Path = project_root / "data"
skip_news: bool = False
skip_reprompt: bool = False
authorise_key: str = UserConfigurable(default="y", from_env="AUTHORISE_COMMAND_KEY")
exit_key: str = UserConfigurable(default="n", from_env="EXIT_KEY")
noninteractive_mode: bool = False
logging: LoggingConfig = LoggingConfig()
component_config_file: Optional[Path] = UserConfigurable(
default=None, from_env="COMPONENT_CONFIG_FILE"
)
##########################
# Agent Control Settings #
##########################
# Model configuration
fast_llm: ModelName = UserConfigurable(
default=OpenAIModelName.GPT3,
from_env="FAST_LLM",
)
smart_llm: ModelName = UserConfigurable(
default=OpenAIModelName.GPT4_TURBO,
from_env="SMART_LLM",
)
temperature: float = UserConfigurable(default=0, from_env="TEMPERATURE")
openai_functions: bool = UserConfigurable(
default=False, from_env=lambda: os.getenv("OPENAI_FUNCTIONS", "False") == "True"
)
embedding_model: str = UserConfigurable(
default="text-embedding-3-small", from_env="EMBEDDING_MODEL"
)
# Run loop configuration
continuous_mode: bool = False
continuous_limit: int = 0
############
# Commands #
############
# General
disabled_commands: list[str] = UserConfigurable(
default_factory=list,
from_env=lambda: _safe_split(os.getenv("DISABLED_COMMANDS")),
)
# File ops
restrict_to_workspace: bool = UserConfigurable(
default=True,
from_env=lambda: os.getenv("RESTRICT_TO_WORKSPACE", "True") == "True",
)
###############
# Credentials #
###############
# OpenAI
openai_credentials: Optional[OpenAICredentials] = None
azure_config_file: Optional[Path] = UserConfigurable(
default=AZURE_CONFIG_FILE, from_env="AZURE_CONFIG_FILE"
)
@field_validator("openai_functions")
def validate_openai_functions(cls, value: bool, info: ValidationInfo):
if value:
smart_llm = info.data["smart_llm"]
assert CHAT_MODELS[smart_llm].has_function_call_api, (
f"Model {smart_llm} does not support tool calling. "
"Please disable OPENAI_FUNCTIONS or choose a suitable model."
)
return value
class ConfigBuilder(Configurable[AppConfig]):
default_settings = AppConfig()
@classmethod
def build_config_from_env(cls, project_root: Path = PROJECT_ROOT) -> AppConfig:
"""Initialize the Config class"""
config = cls.build_agent_configuration()
config.project_root = project_root
# Make relative paths absolute
for k in {
"azure_config_file", # TODO: move from project root
}:
setattr(config, k, project_root / getattr(config, k))
if (
config.openai_credentials
and config.openai_credentials.api_type == SecretStr("azure")
and (config_file := config.azure_config_file)
):
config.openai_credentials.load_azure_config(config_file)
return config
async def assert_config_has_required_llm_api_keys(config: AppConfig) -> None:
"""
Check if API keys (if required) are set for the configured SMART_LLM and FAST_LLM.
"""
from forge.llm.providers.anthropic import AnthropicModelName
from forge.llm.providers.groq import GroqModelName
from pydantic import ValidationError
if set((config.smart_llm, config.fast_llm)).intersection(AnthropicModelName):
from forge.llm.providers.anthropic import AnthropicCredentials
try:
credentials = AnthropicCredentials.from_env()
except ValidationError as e:
if "api_key" in str(e):
logger.error(
"Set your Anthropic API key in .env or as an environment variable"
)
logger.info(
"For further instructions: "
"https://docs.agpt.co/autogpt/setup/#anthropic"
)
raise ValueError("Anthropic is unavailable: can't load credentials") from e
key_pattern = r"^sk-ant-api03-[\w\-]{95}"
# If key is set, but it looks invalid
if not re.search(key_pattern, credentials.api_key.get_secret_value()):
logger.warning(
"Possibly invalid Anthropic API key! "
f"Configured Anthropic API key does not match pattern '{key_pattern}'. "
"If this is a valid key, please report this warning to the maintainers."
)
if set((config.smart_llm, config.fast_llm)).intersection(GroqModelName):
from forge.llm.providers.groq import GroqProvider
from groq import AuthenticationError
try:
groq = GroqProvider()
await groq.get_available_models()
except ValidationError as e:
if "api_key" not in str(e):
raise
logger.error("Set your Groq API key in .env or as an environment variable")
logger.info(
"For further instructions: https://docs.agpt.co/autogpt/setup/#groq"
)
raise ValueError("Groq is unavailable: can't load credentials")
except AuthenticationError as e:
logger.error("The Groq API key is invalid!")
logger.info(
"For instructions to get and set a new API key: "
"https://docs.agpt.co/autogpt/setup/#groq"
)
raise ValueError("Groq is unavailable: invalid API key") from e
if set((config.smart_llm, config.fast_llm)).intersection(OpenAIModelName):
from forge.llm.providers.openai import OpenAIProvider
from openai import AuthenticationError
try:
openai = OpenAIProvider()
await openai.get_available_models()
except ValidationError as e:
if "api_key" not in str(e):
raise
logger.error(
"Set your OpenAI API key in .env or as an environment variable"
)
logger.info(
"For further instructions: https://docs.agpt.co/autogpt/setup/#openai"
)
raise ValueError("OpenAI is unavailable: can't load credentials")
except AuthenticationError as e:
logger.error("The OpenAI API key is invalid!")
logger.info(
"For instructions to get and set a new API key: "
"https://docs.agpt.co/autogpt/setup/#openai"
)
raise ValueError("OpenAI is unavailable: invalid API key") from e
def _safe_split(s: Union[str, None], sep: str = ",") -> list[str]:
"""Split a string by a separator. Return an empty list if the string is None."""
if s is None:
return []
return s.split(sep)

View File

@@ -0,0 +1,83 @@
"""Configurator module."""
from __future__ import annotations
import logging
from typing import Literal, Optional
import click
from forge.llm.providers import ModelName, MultiProvider
from autogpt.app.config import GPT_3_MODEL, AppConfig
logger = logging.getLogger(__name__)
async def apply_overrides_to_config(
config: AppConfig,
continuous: bool = False,
continuous_limit: Optional[int] = None,
skip_reprompt: bool = False,
skip_news: bool = False,
) -> None:
"""Updates the config object with the given arguments.
Args:
config (Config): The config object to update.
continuous (bool): Whether to run in continuous mode.
continuous_limit (int): The number of times to run in continuous mode.
skip_reprompt (bool): Whether to skip the re-prompting messages on start.
speak (bool): Whether to enable speak mode.
debug (bool): Whether to enable debug mode.
log_level (int): The global log level for the application.
log_format (str): The format for the log(s).
log_file_format (str): Override the format for the log file.
skips_news (bool): Whether to suppress the output of latest news on startup.
"""
config.continuous_mode = False
if continuous:
logger.warning(
"Continuous mode is not recommended. It is potentially dangerous and may"
" cause your AI to run forever or carry out actions you would not usually"
" authorise. Use at your own risk.",
)
config.continuous_mode = True
if continuous_limit:
config.continuous_limit = continuous_limit
# Check if continuous limit is used without continuous mode
if continuous_limit and not continuous:
raise click.UsageError("--continuous-limit can only be used with --continuous")
# Check availability of configured LLMs; fallback to other LLM if unavailable
config.fast_llm, config.smart_llm = await check_models(
(config.fast_llm, "fast_llm"), (config.smart_llm, "smart_llm")
)
if skip_reprompt:
config.skip_reprompt = True
if skip_news:
config.skip_news = True
async def check_models(
*models: tuple[ModelName, Literal["smart_llm", "fast_llm"]]
) -> tuple[ModelName, ...]:
"""Check if model is available for use. If not, return gpt-3.5-turbo."""
multi_provider = MultiProvider()
available_models = await multi_provider.get_available_chat_models()
checked_models: list[ModelName] = []
for model, model_type in models:
if any(model == m.name for m in available_models):
checked_models.append(model)
else:
logger.warning(
f"You don't have access to {model}. "
f"Setting {model_type} to {GPT_3_MODEL}."
)
checked_models.append(GPT_3_MODEL)
return tuple(checked_models)

View File

@@ -0,0 +1,19 @@
import logging
import click
logger = logging.getLogger(__name__)
def clean_input(prompt: str = ""):
try:
# ask for input, default when just pressing Enter is y
logger.debug("Asking user via keyboard...")
return click.prompt(
text=prompt, prompt_suffix=" ", default="", show_default=False
)
except KeyboardInterrupt:
logger.info("You interrupted AutoGPT")
logger.info("Quitting...")
exit(0)

797
autogpt/autogpt/app/main.py Normal file
View File

@@ -0,0 +1,797 @@
"""
The application entry point. Can be invoked by a CLI or any other front end application.
"""
import enum
import logging
import math
import os
import re
import signal
import sys
from pathlib import Path
from types import FrameType
from typing import TYPE_CHECKING, Optional
from colorama import Fore, Style
from forge.agent_protocol.database import AgentDB
from forge.components.code_executor.code_executor import (
is_docker_available,
we_are_running_in_a_docker_container,
)
from forge.config.ai_directives import AIDirectives
from forge.config.ai_profile import AIProfile
from forge.file_storage import FileStorageBackendName, get_storage
from forge.llm.providers import MultiProvider
from forge.logging.config import configure_logging
from forge.logging.utils import print_attribute, speak
from forge.models.action import ActionInterruptedByHuman, ActionProposal
from forge.models.utils import ModelWithSummary
from forge.utils.const import FINISH_COMMAND
from forge.utils.exceptions import AgentTerminated, InvalidAgentResponseError
from autogpt.agent_factory.configurators import configure_agent_with_state, create_agent
from autogpt.agents.agent_manager import AgentManager
from autogpt.agents.prompt_strategies.one_shot import AssistantThoughts
from autogpt.app.config import (
AppConfig,
ConfigBuilder,
assert_config_has_required_llm_api_keys,
)
if TYPE_CHECKING:
from autogpt.agents.agent import Agent
from .configurator import apply_overrides_to_config
from .input import clean_input
from .setup import apply_overrides_to_ai_settings, interactively_revise_ai_settings
from .spinner import Spinner
from .utils import (
coroutine,
get_legal_warning,
markdown_to_ansi_style,
print_git_branch_info,
print_motd,
print_python_version_info,
)
@coroutine
async def run_auto_gpt(
continuous: bool = False,
continuous_limit: Optional[int] = None,
skip_reprompt: bool = False,
speak: bool = False,
debug: bool = False,
log_level: Optional[str] = None,
log_format: Optional[str] = None,
log_file_format: Optional[str] = None,
skip_news: bool = False,
install_plugin_deps: bool = False,
override_ai_name: Optional[str] = None,
override_ai_role: Optional[str] = None,
resources: Optional[list[str]] = None,
constraints: Optional[list[str]] = None,
best_practices: Optional[list[str]] = None,
override_directives: bool = False,
component_config_file: Optional[Path] = None,
):
# Set up configuration
config = ConfigBuilder.build_config_from_env()
# Storage
local = config.file_storage_backend == FileStorageBackendName.LOCAL
restrict_to_root = not local or config.restrict_to_workspace
file_storage = get_storage(
config.file_storage_backend,
root_path=Path("data"),
restrict_to_root=restrict_to_root,
)
file_storage.initialize()
# Set up logging module
if speak:
config.tts_config.speak_mode = True
configure_logging(
debug=debug,
level=log_level,
log_format=log_format,
log_file_format=log_file_format,
config=config.logging,
tts_config=config.tts_config,
)
await assert_config_has_required_llm_api_keys(config)
await apply_overrides_to_config(
config=config,
continuous=continuous,
continuous_limit=continuous_limit,
skip_reprompt=skip_reprompt,
skip_news=skip_news,
)
llm_provider = _configure_llm_provider(config)
logger = logging.getLogger(__name__)
if config.continuous_mode:
for line in get_legal_warning().split("\n"):
logger.warning(
extra={
"title": "LEGAL:",
"title_color": Fore.RED,
"preserve_color": True,
},
msg=markdown_to_ansi_style(line),
)
if not config.skip_news:
print_motd(logger)
print_git_branch_info(logger)
print_python_version_info(logger)
print_attribute("Smart LLM", config.smart_llm)
print_attribute("Fast LLM", config.fast_llm)
if config.continuous_mode:
print_attribute("Continuous Mode", "ENABLED", title_color=Fore.YELLOW)
if continuous_limit:
print_attribute("Continuous Limit", config.continuous_limit)
if config.tts_config.speak_mode:
print_attribute("Speak Mode", "ENABLED")
if we_are_running_in_a_docker_container() or is_docker_available():
print_attribute("Code Execution", "ENABLED")
else:
print_attribute(
"Code Execution",
"DISABLED (Docker unavailable)",
title_color=Fore.YELLOW,
)
# Let user choose an existing agent to run
agent_manager = AgentManager(file_storage)
existing_agents = agent_manager.list_agents()
load_existing_agent = ""
if existing_agents:
print(
"Existing agents\n---------------\n"
+ "\n".join(f"{i} - {id}" for i, id in enumerate(existing_agents, 1))
)
load_existing_agent = clean_input(
"Enter the number or name of the agent to run,"
" or hit enter to create a new one:",
)
if re.match(r"^\d+$", load_existing_agent.strip()) and 0 < int(
load_existing_agent
) <= len(existing_agents):
load_existing_agent = existing_agents[int(load_existing_agent) - 1]
if load_existing_agent != "" and load_existing_agent not in existing_agents:
logger.info(
f"Unknown agent '{load_existing_agent}', "
f"creating a new one instead.",
extra={"color": Fore.YELLOW},
)
load_existing_agent = ""
# Either load existing or set up new agent state
agent = None
agent_state = None
############################
# Resume an Existing Agent #
############################
if load_existing_agent:
agent_state = None
while True:
answer = clean_input("Resume? [Y/n]")
if answer == "" or answer.lower() == "y":
agent_state = agent_manager.load_agent_state(load_existing_agent)
break
elif answer.lower() == "n":
break
if agent_state:
agent = configure_agent_with_state(
state=agent_state,
app_config=config,
file_storage=file_storage,
llm_provider=llm_provider,
)
apply_overrides_to_ai_settings(
ai_profile=agent.state.ai_profile,
directives=agent.state.directives,
override_name=override_ai_name,
override_role=override_ai_role,
resources=resources,
constraints=constraints,
best_practices=best_practices,
replace_directives=override_directives,
)
if (
(current_episode := agent.event_history.current_episode)
and current_episode.action.use_tool.name == FINISH_COMMAND
and not current_episode.result
):
# Agent was resumed after `finish` -> rewrite result of `finish` action
finish_reason = current_episode.action.use_tool.arguments["reason"]
print(f"Agent previously self-terminated; reason: '{finish_reason}'")
new_assignment = clean_input(
"Please give a follow-up question or assignment:"
)
agent.event_history.register_result(
ActionInterruptedByHuman(feedback=new_assignment)
)
# If any of these are specified as arguments,
# assume the user doesn't want to revise them
if not any(
[
override_ai_name,
override_ai_role,
resources,
constraints,
best_practices,
]
):
ai_profile, ai_directives = await interactively_revise_ai_settings(
ai_profile=agent.state.ai_profile,
directives=agent.state.directives,
app_config=config,
)
else:
logger.info("AI config overrides specified through CLI; skipping revision")
######################
# Set up a new Agent #
######################
if not agent:
task = ""
while task.strip() == "":
task = clean_input(
"Enter the task that you want AutoGPT to execute,"
" with as much detail as possible:",
)
ai_profile = AIProfile()
additional_ai_directives = AIDirectives()
apply_overrides_to_ai_settings(
ai_profile=ai_profile,
directives=additional_ai_directives,
override_name=override_ai_name,
override_role=override_ai_role,
resources=resources,
constraints=constraints,
best_practices=best_practices,
replace_directives=override_directives,
)
# If any of these are specified as arguments,
# assume the user doesn't want to revise them
if not any(
[
override_ai_name,
override_ai_role,
resources,
constraints,
best_practices,
]
):
(
ai_profile,
additional_ai_directives,
) = await interactively_revise_ai_settings(
ai_profile=ai_profile,
directives=additional_ai_directives,
app_config=config,
)
else:
logger.info("AI config overrides specified through CLI; skipping revision")
agent = create_agent(
agent_id=agent_manager.generate_id(ai_profile.ai_name),
task=task,
ai_profile=ai_profile,
directives=additional_ai_directives,
app_config=config,
file_storage=file_storage,
llm_provider=llm_provider,
)
file_manager = agent.file_manager
if file_manager and not agent.config.allow_fs_access:
logger.info(
f"{Fore.YELLOW}"
"NOTE: All files/directories created by this agent can be found "
f"inside its workspace at:{Fore.RESET} {file_manager.workspace.root}",
extra={"preserve_color": True},
)
# TODO: re-evaluate performance benefit of task-oriented profiles
# # Concurrently generate a custom profile for the agent and apply it once done
# def update_agent_directives(
# task: asyncio.Task[tuple[AIProfile, AIDirectives]]
# ):
# logger.debug(f"Updating AIProfile: {task.result()[0]}")
# logger.debug(f"Adding AIDirectives: {task.result()[1]}")
# agent.state.ai_profile = task.result()[0]
# agent.state.directives = agent.state.directives + task.result()[1]
# asyncio.create_task(
# generate_agent_profile_for_task(
# task, app_config=config, llm_provider=llm_provider
# )
# ).add_done_callback(update_agent_directives)
# Load component configuration from file
if _config_file := component_config_file or config.component_config_file:
try:
logger.info(f"Loading component configuration from {_config_file}")
agent.load_component_configs(_config_file.read_text())
except Exception as e:
logger.error(f"Could not load component configuration: {e}")
#################
# Run the Agent #
#################
try:
await run_interaction_loop(agent)
except AgentTerminated:
agent_id = agent.state.agent_id
logger.info(f"Saving state of {agent_id}...")
# Allow user to Save As other ID
save_as_id = clean_input(
f"Press enter to save as '{agent_id}',"
" or enter a different ID to save to:",
)
# TODO: allow many-to-one relations of agents and workspaces
await agent.file_manager.save_state(
save_as_id.strip() if not save_as_id.isspace() else None
)
@coroutine
async def run_auto_gpt_server(
debug: bool = False,
log_level: Optional[str] = None,
log_format: Optional[str] = None,
log_file_format: Optional[str] = None,
install_plugin_deps: bool = False,
):
from .agent_protocol_server import AgentProtocolServer
config = ConfigBuilder.build_config_from_env()
# Storage
local = config.file_storage_backend == FileStorageBackendName.LOCAL
restrict_to_root = not local or config.restrict_to_workspace
file_storage = get_storage(
config.file_storage_backend,
root_path=Path("data"),
restrict_to_root=restrict_to_root,
)
file_storage.initialize()
# Set up logging module
configure_logging(
debug=debug,
level=log_level,
log_format=log_format,
log_file_format=log_file_format,
config=config.logging,
tts_config=config.tts_config,
)
await assert_config_has_required_llm_api_keys(config)
await apply_overrides_to_config(
config=config,
)
llm_provider = _configure_llm_provider(config)
# Set up & start server
database = AgentDB(
database_string=os.getenv("AP_SERVER_DB_URL", "sqlite:///data/ap_server.db"),
debug_enabled=debug,
)
port: int = int(os.getenv("AP_SERVER_PORT", default=8000))
server = AgentProtocolServer(
app_config=config,
database=database,
file_storage=file_storage,
llm_provider=llm_provider,
)
await server.start(port=port)
logging.getLogger().info(
f"Total OpenAI session cost: "
f"${round(sum(b.total_cost for b in server._task_budgets.values()), 2)}"
)
def _configure_llm_provider(config: AppConfig) -> MultiProvider:
multi_provider = MultiProvider()
for model in [config.smart_llm, config.fast_llm]:
# Ensure model providers for configured LLMs are available
multi_provider.get_model_provider(model)
return multi_provider
def _get_cycle_budget(continuous_mode: bool, continuous_limit: int) -> int | float:
# Translate from the continuous_mode/continuous_limit config
# to a cycle_budget (maximum number of cycles to run without checking in with the
# user) and a count of cycles_remaining before we check in..
if continuous_mode:
cycle_budget = continuous_limit if continuous_limit else math.inf
else:
cycle_budget = 1
return cycle_budget
class UserFeedback(str, enum.Enum):
"""Enum for user feedback."""
AUTHORIZE = "GENERATE NEXT COMMAND JSON"
EXIT = "EXIT"
TEXT = "TEXT"
async def run_interaction_loop(
agent: "Agent",
) -> None:
"""Run the main interaction loop for the agent.
Args:
agent: The agent to run the interaction loop for.
Returns:
None
"""
# These contain both application config and agent config, so grab them here.
app_config = agent.app_config
ai_profile = agent.state.ai_profile
logger = logging.getLogger(__name__)
cycle_budget = cycles_remaining = _get_cycle_budget(
app_config.continuous_mode, app_config.continuous_limit
)
spinner = Spinner(
"Thinking...", plain_output=app_config.logging.plain_console_output
)
stop_reason = None
def graceful_agent_interrupt(signum: int, frame: Optional[FrameType]) -> None:
nonlocal cycle_budget, cycles_remaining, spinner, stop_reason
if stop_reason:
logger.error("Quitting immediately...")
sys.exit()
if cycles_remaining in [0, 1]:
logger.warning("Interrupt signal received: shutting down gracefully.")
logger.warning(
"Press Ctrl+C again if you want to stop AutoGPT immediately."
)
stop_reason = AgentTerminated("Interrupt signal received")
else:
restart_spinner = spinner.running
if spinner.running:
spinner.stop()
logger.error(
"Interrupt signal received: stopping continuous command execution."
)
cycles_remaining = 1
if restart_spinner:
spinner.start()
def handle_stop_signal() -> None:
if stop_reason:
raise stop_reason
# Set up an interrupt signal for the agent.
signal.signal(signal.SIGINT, graceful_agent_interrupt)
#########################
# Application Main Loop #
#########################
# Keep track of consecutive failures of the agent
consecutive_failures = 0
while cycles_remaining > 0:
logger.debug(f"Cycle budget: {cycle_budget}; remaining: {cycles_remaining}")
########
# Plan #
########
handle_stop_signal()
# Have the agent determine the next action to take.
if not (_ep := agent.event_history.current_episode) or _ep.result:
with spinner:
try:
action_proposal = await agent.propose_action()
except InvalidAgentResponseError as e:
logger.warning(f"The agent's thoughts could not be parsed: {e}")
consecutive_failures += 1
if consecutive_failures >= 3:
logger.error(
"The agent failed to output valid thoughts"
f" {consecutive_failures} times in a row. Terminating..."
)
raise AgentTerminated(
"The agent failed to output valid thoughts"
f" {consecutive_failures} times in a row."
)
continue
else:
action_proposal = _ep.action
consecutive_failures = 0
###############
# Update User #
###############
# Print the assistant's thoughts and the next command to the user.
update_user(
ai_profile,
action_proposal,
speak_mode=app_config.tts_config.speak_mode,
)
##################
# Get user input #
##################
handle_stop_signal()
if cycles_remaining == 1: # Last cycle
feedback_type, feedback, new_cycles_remaining = await get_user_feedback(
app_config,
ai_profile,
)
if feedback_type == UserFeedback.AUTHORIZE:
if new_cycles_remaining is not None:
# Case 1: User is altering the cycle budget.
if cycle_budget > 1:
cycle_budget = new_cycles_remaining + 1
# Case 2: User is running iteratively and
# has initiated a one-time continuous cycle
cycles_remaining = new_cycles_remaining + 1
else:
# Case 1: Continuous iteration was interrupted -> resume
if cycle_budget > 1:
logger.info(
f"The cycle budget is {cycle_budget}.",
extra={
"title": "RESUMING CONTINUOUS EXECUTION",
"title_color": Fore.MAGENTA,
},
)
# Case 2: The agent used up its cycle budget -> reset
cycles_remaining = cycle_budget + 1
logger.info(
"-=-=-=-=-=-=-= COMMAND AUTHORISED BY USER -=-=-=-=-=-=-=",
extra={"color": Fore.MAGENTA},
)
elif feedback_type == UserFeedback.EXIT:
logger.warning("Exiting...")
exit()
else: # user_feedback == UserFeedback.TEXT
pass
else:
feedback = ""
# First log new-line so user can differentiate sections better in console
print()
if cycles_remaining != math.inf:
# Print authorized commands left value
print_attribute(
"AUTHORIZED_COMMANDS_LEFT", cycles_remaining, title_color=Fore.CYAN
)
###################
# Execute Command #
###################
# Decrement the cycle counter first to reduce the likelihood of a SIGINT
# happening during command execution, setting the cycles remaining to 1,
# and then having the decrement set it to 0, exiting the application.
if not feedback:
cycles_remaining -= 1
if not action_proposal.use_tool:
continue
handle_stop_signal()
if not feedback:
result = await agent.execute(action_proposal)
else:
result = await agent.do_not_execute(action_proposal, feedback)
if result.status == "success":
logger.info(result, extra={"title": "SYSTEM:", "title_color": Fore.YELLOW})
elif result.status == "error":
logger.warning(
f"Command {action_proposal.use_tool.name} returned an error: "
f"{result.error or result.reason}"
)
def update_user(
ai_profile: AIProfile,
action_proposal: "ActionProposal",
speak_mode: bool = False,
) -> None:
"""Prints the assistant's thoughts and the next command to the user.
Args:
config: The program's configuration.
ai_profile: The AI's personality/profile
command_name: The name of the command to execute.
command_args: The arguments for the command.
assistant_reply_dict: The assistant's reply.
"""
from forge.components.code_flow_executor import CodeFlowExecutionComponent
from forge.llm.prompting.utils import indent
logger = logging.getLogger(__name__)
print_assistant_thoughts(
ai_name=ai_profile.ai_name,
thoughts=action_proposal.thoughts,
speak_mode=speak_mode,
)
if speak_mode:
speak(f"I want to execute {action_proposal.use_tool.name}")
# First log new-line so user can differentiate sections better in console
print()
safe_tool_name = remove_ansi_escape(action_proposal.use_tool.name)
if safe_tool_name == CodeFlowExecutionComponent.execute_code_flow.name:
plan = action_proposal.use_tool.arguments["plan_text"]
code = action_proposal.use_tool.arguments["python_code"]
logger.info(
f"\n{indent(code, f'{Fore.GREEN}>>> {Fore.RESET}')}\n",
extra={
"title": "PROPOSED ACTION:",
"title_color": Fore.GREEN,
"preserve_color": True,
},
)
logger.debug(
f"{plan}\n", extra={"title": "EXPLANATION:", "title_color": Fore.YELLOW}
)
else:
logger.info(
str(action_proposal.use_tool),
extra={
"title": "PROPOSED ACTION:",
"title_color": Fore.GREEN,
"preserve_color": True,
},
)
async def get_user_feedback(
config: AppConfig,
ai_profile: AIProfile,
) -> tuple[UserFeedback, str, int | None]:
"""Gets the user's feedback on the assistant's reply.
Args:
config: The program's configuration.
ai_profile: The AI's configuration.
Returns:
A tuple of the user's feedback, the user's input, and the number of
cycles remaining if the user has initiated a continuous cycle.
"""
logger = logging.getLogger(__name__)
# ### GET USER AUTHORIZATION TO EXECUTE COMMAND ###
# Get key press: Prompt the user to press enter to continue or escape
# to exit
logger.info(
f"Enter '{config.authorise_key}' to authorise command, "
f"'{config.authorise_key} -N' to run N continuous commands, "
f"'{config.exit_key}' to exit program, or enter feedback for "
f"{ai_profile.ai_name}..."
)
user_feedback = None
user_input = ""
new_cycles_remaining = None
while user_feedback is None:
# Get input from user
console_input = clean_input(Fore.MAGENTA + "Input:" + Style.RESET_ALL)
# Parse user input
if console_input.lower().strip() == config.authorise_key:
user_feedback = UserFeedback.AUTHORIZE
elif console_input.lower().strip() == "":
logger.warning("Invalid input format.")
elif console_input.lower().startswith(f"{config.authorise_key} -"):
try:
user_feedback = UserFeedback.AUTHORIZE
new_cycles_remaining = abs(int(console_input.split(" ")[1]))
except ValueError:
logger.warning(
f"Invalid input format. "
f"Please enter '{config.authorise_key} -N'"
" where N is the number of continuous tasks."
)
elif console_input.lower() in [config.exit_key, "exit"]:
user_feedback = UserFeedback.EXIT
else:
user_feedback = UserFeedback.TEXT
user_input = console_input
return user_feedback, user_input, new_cycles_remaining
def print_assistant_thoughts(
ai_name: str,
thoughts: str | ModelWithSummary | AssistantThoughts,
speak_mode: bool = False,
) -> None:
logger = logging.getLogger(__name__)
thoughts_text = remove_ansi_escape(
thoughts.text
if isinstance(thoughts, AssistantThoughts)
else thoughts.summary()
if isinstance(thoughts, ModelWithSummary)
else thoughts
)
print_attribute(
f"{ai_name.upper()} THOUGHTS", thoughts_text, title_color=Fore.YELLOW
)
if isinstance(thoughts, AssistantThoughts):
if thoughts.observations:
print_attribute(
"OBSERVATIONS",
remove_ansi_escape(thoughts.observations),
title_color=Fore.YELLOW,
)
print_attribute(
"REASONING", remove_ansi_escape(thoughts.reasoning), title_color=Fore.YELLOW
)
if assistant_thoughts_plan := remove_ansi_escape(
"\n".join(f"- {p}" for p in thoughts.plan)
):
print_attribute("PLAN", "", title_color=Fore.YELLOW)
# If it's a list, join it into a string
if isinstance(assistant_thoughts_plan, list):
assistant_thoughts_plan = "\n".join(assistant_thoughts_plan)
elif isinstance(assistant_thoughts_plan, dict):
assistant_thoughts_plan = str(assistant_thoughts_plan)
# Split the input_string using the newline character and dashes
lines = assistant_thoughts_plan.split("\n")
for line in lines:
line = line.lstrip("- ")
logger.info(
line.strip(), extra={"title": "- ", "title_color": Fore.GREEN}
)
print_attribute(
"SELF-CRITICISM",
remove_ansi_escape(thoughts.self_criticism),
title_color=Fore.YELLOW,
)
# Speak the assistant's thoughts
if assistant_thoughts_speak := remove_ansi_escape(thoughts.speak):
if speak_mode:
speak(assistant_thoughts_speak)
else:
print_attribute(
"TL;DR", assistant_thoughts_speak, title_color=Fore.YELLOW
)
else:
speak(thoughts_text)
def remove_ansi_escape(s: str) -> str:
return s.replace("\x1B", "")

View File

@@ -0,0 +1,203 @@
"""Set up the AI and its goals"""
import logging
from typing import Optional
from forge.config.ai_directives import AIDirectives
from forge.config.ai_profile import AIProfile
from forge.logging.utils import print_attribute
from autogpt.app.config import AppConfig
from .input import clean_input
logger = logging.getLogger(__name__)
def apply_overrides_to_ai_settings(
ai_profile: AIProfile,
directives: AIDirectives,
override_name: Optional[str] = "",
override_role: Optional[str] = "",
replace_directives: bool = False,
resources: Optional[list[str]] = None,
constraints: Optional[list[str]] = None,
best_practices: Optional[list[str]] = None,
):
if override_name:
ai_profile.ai_name = override_name
if override_role:
ai_profile.ai_role = override_role
if replace_directives:
if resources:
directives.resources = resources
if constraints:
directives.constraints = constraints
if best_practices:
directives.best_practices = best_practices
else:
if resources:
directives.resources += resources
if constraints:
directives.constraints += constraints
if best_practices:
directives.best_practices += best_practices
async def interactively_revise_ai_settings(
ai_profile: AIProfile,
directives: AIDirectives,
app_config: AppConfig,
):
"""Interactively revise the AI settings.
Args:
ai_profile (AIConfig): The current AI profile.
ai_directives (AIDirectives): The current AI directives.
app_config (Config): The application configuration.
Returns:
AIConfig: The revised AI settings.
"""
logger = logging.getLogger("revise_ai_profile")
revised = False
while True:
# Print the current AI configuration
print_ai_settings(
title="Current AI Settings" if not revised else "Revised AI Settings",
ai_profile=ai_profile,
directives=directives,
logger=logger,
)
if (
clean_input("Continue with these settings? [Y/n]").lower()
or app_config.authorise_key
) == app_config.authorise_key:
break
# Ask for revised ai_profile
ai_profile.ai_name = (
clean_input("Enter AI name (or press enter to keep current):")
or ai_profile.ai_name
)
ai_profile.ai_role = (
clean_input("Enter new AI role (or press enter to keep current):")
or ai_profile.ai_role
)
# Revise constraints
i = 0
while i < len(directives.constraints):
constraint = directives.constraints[i]
print_attribute(f"Constraint {i+1}:", f'"{constraint}"')
new_constraint = (
clean_input(
f"Enter new constraint {i+1}"
" (press enter to keep current, or '-' to remove):",
)
or constraint
)
if new_constraint == "-":
directives.constraints.remove(constraint)
continue
elif new_constraint:
directives.constraints[i] = new_constraint
i += 1
# Add new constraints
while True:
new_constraint = clean_input(
"Press enter to finish, or enter a constraint to add:",
)
if not new_constraint:
break
directives.constraints.append(new_constraint)
# Revise resources
i = 0
while i < len(directives.resources):
resource = directives.resources[i]
print_attribute(f"Resource {i+1}:", f'"{resource}"')
new_resource = (
clean_input(
f"Enter new resource {i+1}"
" (press enter to keep current, or '-' to remove):",
)
or resource
)
if new_resource == "-":
directives.resources.remove(resource)
continue
elif new_resource:
directives.resources[i] = new_resource
i += 1
# Add new resources
while True:
new_resource = clean_input(
"Press enter to finish, or enter a resource to add:",
)
if not new_resource:
break
directives.resources.append(new_resource)
# Revise best practices
i = 0
while i < len(directives.best_practices):
best_practice = directives.best_practices[i]
print_attribute(f"Best Practice {i+1}:", f'"{best_practice}"')
new_best_practice = (
clean_input(
f"Enter new best practice {i+1}"
" (press enter to keep current, or '-' to remove):",
)
or best_practice
)
if new_best_practice == "-":
directives.best_practices.remove(best_practice)
continue
elif new_best_practice:
directives.best_practices[i] = new_best_practice
i += 1
# Add new best practices
while True:
new_best_practice = clean_input(
"Press enter to finish, or add a best practice to add:",
)
if not new_best_practice:
break
directives.best_practices.append(new_best_practice)
revised = True
return ai_profile, directives
def print_ai_settings(
ai_profile: AIProfile,
directives: AIDirectives,
logger: logging.Logger,
title: str = "AI Settings",
):
print_attribute(title, "")
print_attribute("-" * len(title), "")
print_attribute("Name :", ai_profile.ai_name)
print_attribute("Role :", ai_profile.ai_role)
print_attribute("Constraints:", "" if directives.constraints else "(none)")
for constraint in directives.constraints:
logger.info(f"- {constraint}")
print_attribute("Resources:", "" if directives.resources else "(none)")
for resource in directives.resources:
logger.info(f"- {resource}")
print_attribute("Best practices:", "" if directives.best_practices else "(none)")
for best_practice in directives.best_practices:
logger.info(f"- {best_practice}")

View File

@@ -8,13 +8,20 @@ import time
class Spinner:
"""A simple spinner class"""
def __init__(self, message: str = "Loading...", delay: float = 0.1) -> None:
def __init__(
self,
message: str = "Loading...",
delay: float = 0.1,
plain_output: bool = False,
) -> None:
"""Initialize the spinner class
Args:
message (str): The message to display.
delay (float): The delay between each spinner update.
plain_output (bool): Whether to display the spinner or not.
"""
self.plain_output = plain_output
self.spinner = itertools.cycle(["-", "/", "|", "\\"])
self.delay = delay
self.message = message
@@ -23,18 +30,33 @@ class Spinner:
def spin(self) -> None:
"""Spin the spinner"""
if self.plain_output:
self.print_message()
return
while self.running:
sys.stdout.write(f"{next(self.spinner)} {self.message}\r")
sys.stdout.flush()
self.print_message()
time.sleep(self.delay)
sys.stdout.write(f"\r{' ' * (len(self.message) + 2)}\r")
def __enter__(self):
"""Start the spinner"""
def print_message(self):
sys.stdout.write(f"\r{' ' * (len(self.message) + 2)}\r")
sys.stdout.write(f"{next(self.spinner)} {self.message}\r")
sys.stdout.flush()
def start(self):
self.running = True
self.spinner_thread = threading.Thread(target=self.spin)
self.spinner_thread.start()
def stop(self):
self.running = False
if self.spinner_thread is not None:
self.spinner_thread.join()
sys.stdout.write(f"\r{' ' * (len(self.message) + 2)}\r")
sys.stdout.flush()
def __enter__(self):
"""Start the spinner"""
self.start()
return self
def __exit__(self, exc_type, exc_value, exc_traceback) -> None:
@@ -45,21 +67,4 @@ class Spinner:
exc_value (Exception): The exception value.
exc_traceback (Exception): The exception traceback.
"""
self.running = False
if self.spinner_thread is not None:
self.spinner_thread.join()
sys.stdout.write(f"\r{' ' * (len(self.message) + 2)}\r")
sys.stdout.flush()
def update_message(self, new_message, delay=0.1):
"""Update the spinner message
Args:
new_message (str): New message to display.
delay (float): The delay in seconds between each spinner update.
"""
time.sleep(delay)
sys.stdout.write(
f"\r{' ' * (len(self.message) + 2)}\r"
) # Clear the current message
sys.stdout.flush()
self.message = new_message
self.stop()

View File

@@ -0,0 +1,64 @@
import os
import click
from colorama import Fore, Style
from .utils import (
env_file_exists,
get_git_user_email,
set_env_config_value,
vcs_state_diverges_from_master,
)
def setup_telemetry() -> None:
if os.getenv("TELEMETRY_OPT_IN") is None:
# If no .env file is present, don't bother asking to enable telemetry,
# to prevent repeated asking in non-persistent environments.
if not env_file_exists():
return
allow_telemetry = click.prompt(
f"""
{Style.BRIGHT}❓ Do you want to enable telemetry? ❓{Style.NORMAL}
This means AutoGPT will send diagnostic data to the core development team when something
goes wrong, and will help us to diagnose and fix problems earlier and faster. It also
allows us to collect basic performance data, which helps us find bottlenecks and other
things that slow down the application.
By entering 'yes', you confirm that you have read and agree to our Privacy Policy,
which is available here:
https://www.notion.so/auto-gpt/Privacy-Policy-ab11c9c20dbd4de1a15dcffe84d77984
Please enter 'yes' or 'no'""",
type=bool,
)
set_env_config_value("TELEMETRY_OPT_IN", "true" if allow_telemetry else "false")
click.echo(
f"❤️ Thank you! Telemetry is {Fore.GREEN}enabled{Fore.RESET}."
if allow_telemetry
else f"👍 Telemetry is {Fore.RED}disabled{Fore.RESET}."
)
click.echo(
"💡 If you ever change your mind, you can change 'TELEMETRY_OPT_IN' in .env"
)
click.echo()
if os.getenv("TELEMETRY_OPT_IN", "").lower() == "true":
_setup_sentry()
def _setup_sentry() -> None:
import sentry_sdk
sentry_sdk.init(
dsn="https://dc266f2f7a2381194d1c0fa36dff67d8@o4505260022104064.ingest.sentry.io/4506739844710400", # noqa
enable_tracing=True,
environment=os.getenv(
"TELEMETRY_ENVIRONMENT",
"production" if not vcs_state_diverges_from_master() else "dev",
),
)
# Allow Sentry to distinguish between users
sentry_sdk.set_user({"email": get_git_user_email(), "ip_address": "{{auto}}"})

View File

@@ -0,0 +1,247 @@
import asyncio
import contextlib
import functools
import logging
import os
import re
import socket
import sys
from pathlib import Path
from typing import Any, Callable, Coroutine, ParamSpec, TypeVar, cast
import requests
from colorama import Fore, Style
from git import InvalidGitRepositoryError, Repo
P = ParamSpec("P")
T = TypeVar("T")
logger = logging.getLogger(__name__)
def get_bulletin_from_web():
try:
response = requests.get(
"https://raw.githubusercontent.com/Significant-Gravitas/AutoGPT/master/autogpt/BULLETIN.md" # noqa: E501
)
if response.status_code == 200:
return response.text
except requests.exceptions.RequestException:
pass
return ""
def get_current_git_branch() -> str:
try:
repo = Repo(search_parent_directories=True)
branch = repo.active_branch
return branch.name
except InvalidGitRepositoryError:
return ""
def vcs_state_diverges_from_master() -> bool:
"""
Returns whether a git repo is present and contains changes that are not in `master`.
"""
paths_we_care_about = "autogpt/autogpt/**/*.py"
try:
repo = Repo(search_parent_directories=True)
# Check for uncommitted changes in the specified path
uncommitted_changes = repo.index.diff(None, paths=paths_we_care_about)
if uncommitted_changes:
return True
# Find OG AutoGPT remote
for remote in repo.remotes:
if remote.url.endswith(
tuple(
# All permutations of old/new repo name and HTTP(S)/Git URLs
f"{prefix}{path}"
for prefix in ("://github.com/", "git@github.com:")
for path in (
f"Significant-Gravitas/{n}.git" for n in ("AutoGPT", "Auto-GPT")
)
)
):
og_remote = remote
break
else:
# Original AutoGPT remote is not configured: assume local codebase diverges
return True
master_branch = og_remote.refs.master
with contextlib.suppress(StopIteration):
next(repo.iter_commits(f"HEAD..{master_branch}", paths=paths_we_care_about))
# Local repo is one or more commits ahead of OG AutoGPT master branch
return True
# Relevant part of the codebase is on master
return False
except InvalidGitRepositoryError:
# No git repo present: assume codebase is a clean download
return False
def get_git_user_email() -> str:
try:
repo = Repo(search_parent_directories=True)
return cast(str, repo.config_reader().get_value("user", "email", default=""))
except InvalidGitRepositoryError:
return ""
def get_latest_bulletin() -> tuple[str, bool]:
exists = os.path.exists("data/CURRENT_BULLETIN.md")
current_bulletin = ""
if exists:
current_bulletin = open(
"data/CURRENT_BULLETIN.md", "r", encoding="utf-8"
).read()
new_bulletin = get_bulletin_from_web()
is_new_news = new_bulletin != "" and new_bulletin != current_bulletin
news_header = Fore.YELLOW + "Welcome to AutoGPT!\n"
if new_bulletin or current_bulletin:
news_header += (
"Below you'll find the latest AutoGPT News and feature updates!\n"
"If you don't wish to see this message, you "
"can run AutoGPT with the *--skip-news* flag.\n"
)
if new_bulletin and is_new_news:
open("data/CURRENT_BULLETIN.md", "w", encoding="utf-8").write(new_bulletin)
current_bulletin = f"{Fore.RED}::NEW BULLETIN::{Fore.RESET}\n\n{new_bulletin}"
return f"{news_header}\n{current_bulletin}", is_new_news
def markdown_to_ansi_style(markdown: str):
ansi_lines: list[str] = []
for line in markdown.split("\n"):
line_style = ""
if line.startswith("# "):
line_style += Style.BRIGHT
else:
line = re.sub(
r"(?<!\*)\*(\*?[^*]+\*?)\*(?!\*)",
rf"{Style.BRIGHT}\1{Style.NORMAL}",
line,
)
if re.match(r"^#+ ", line) is not None:
line_style += Fore.CYAN
line = re.sub(r"^#+ ", "", line)
ansi_lines.append(f"{line_style}{line}{Style.RESET_ALL}")
return "\n".join(ansi_lines)
def get_legal_warning() -> str:
legal_text = """
## DISCLAIMER AND INDEMNIFICATION AGREEMENT
### PLEASE READ THIS DISCLAIMER AND INDEMNIFICATION AGREEMENT CAREFULLY BEFORE USING THE AUTOGPT SYSTEM. BY USING THE AUTOGPT SYSTEM, YOU AGREE TO BE BOUND BY THIS AGREEMENT.
## Introduction
AutoGPT (the "System") is a project that connects a GPT-like artificial intelligence system to the internet and allows it to automate tasks. While the System is designed to be useful and efficient, there may be instances where the System could perform actions that may cause harm or have unintended consequences.
## No Liability for Actions of the System
The developers, contributors, and maintainers of the AutoGPT project (collectively, the "Project Parties") make no warranties or representations, express or implied, about the System's performance, accuracy, reliability, or safety. By using the System, you understand and agree that the Project Parties shall not be liable for any actions taken by the System or any consequences resulting from such actions.
## User Responsibility and Respondeat Superior Liability
As a user of the System, you are responsible for supervising and monitoring the actions of the System while it is operating on your
behalf. You acknowledge that using the System could expose you to potential liability including but not limited to respondeat superior and you agree to assume all risks and liabilities associated with such potential liability.
## Indemnification
By using the System, you agree to indemnify, defend, and hold harmless the Project Parties from and against any and all claims, liabilities, damages, losses, or expenses (including reasonable attorneys' fees and costs) arising out of or in connection with your use of the System, including, without limitation, any actions taken by the System on your behalf, any failure to properly supervise or monitor the System, and any resulting harm or unintended consequences.
""" # noqa: E501
return legal_text
def print_motd(logger: logging.Logger):
motd, is_new_motd = get_latest_bulletin()
if motd:
motd = markdown_to_ansi_style(motd)
for motd_line in motd.split("\n"):
logger.info(
extra={
"title": "NEWS:",
"title_color": Fore.GREEN,
"preserve_color": True,
},
msg=motd_line,
)
if is_new_motd:
input(
Fore.MAGENTA
+ Style.BRIGHT
+ "NEWS: Bulletin was updated! Press Enter to continue..."
+ Style.RESET_ALL
)
def print_git_branch_info(logger: logging.Logger):
git_branch = get_current_git_branch()
if git_branch and git_branch != "master":
logger.warning(
f"You are running on `{git_branch}` branch"
" - this is not a supported branch."
)
def print_python_version_info(logger: logging.Logger):
if sys.version_info < (3, 10):
logger.error(
"WARNING: You are running on an older version of Python. "
"Some people have observed problems with certain "
"parts of AutoGPT with this version. "
"Please consider upgrading to Python 3.10 or higher.",
)
ENV_FILE_PATH = Path(__file__).parent.parent.parent / ".env"
def env_file_exists() -> bool:
return ENV_FILE_PATH.is_file()
def set_env_config_value(key: str, value: str) -> None:
"""Sets the specified env variable and updates it in .env as well"""
os.environ[key] = value
with ENV_FILE_PATH.open("r+") as file:
lines = file.readlines()
file.seek(0)
key_already_in_file = False
for line in lines:
if re.match(rf"^(?:# )?{key}=.*$", line):
file.write(f"{key}={value}\n")
key_already_in_file = True
else:
file.write(line)
if not key_already_in_file:
file.write(f"{key}={value}\n")
file.truncate()
def is_port_free(port: int, host: str = "127.0.0.1"):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
try:
s.bind((host, port)) # Try to bind to the port
return True # If successful, the port is free
except OSError:
return False # If failed, the port is likely in use
def coroutine(f: Callable[P, Coroutine[Any, Any, T]]) -> Callable[P, T]:
@functools.wraps(f)
def wrapper(*args: P.args, **kwargs: P.kwargs):
return asyncio.run(f(*args, **kwargs))
return wrapper

View File

@@ -0,0 +1,7 @@
azure_api_type: azure
azure_api_version: api-version-for-azure
azure_endpoint: your-azure-openai-endpoint
azure_model_map:
gpt-3.5-turbo-0125: gpt35-deployment-id-for-azure
gpt-4-turbo-preview: gpt4-deployment-id-for-azure
text-embedding-3-small: embedding-deployment-id-for-azure

Some files were not shown because too many files have changed in this diff Show More