Compare commits

...

3902 Commits

Author SHA1 Message Date
Aarushi
81953eb3ba update gha account iams for ci 2024-09-22 12:03:04 +01:00
Zamil Majdy
612e7cfed5 feat(rnd): Route to /login on authenticated requests (#8111) 2024-09-21 23:50:55 +07:00
Zamil Majdy
52ee846744 fix(platform): Fix logging incomplete information & LLM missing error (#8128) 2024-09-21 15:18:36 +00:00
Zamil Majdy
62a3e1c127 fix(rnd): Fix broken list input pin execution ordering & unlinked dynamic pins on save (#8108) 2024-09-21 22:11:35 +07:00
Swifty
ef7cfbb860 refactor: AutoGPT Platform Stealth Launch Repo Re-Org (#8113)
Restructuring the Repo to make it clear the difference between classic autogpt and the autogpt platform:
* Move the "classic" projects `autogpt`, `forge`, `frontend`, and `benchmark` into a `classic` folder
  * Also rename `autogpt` to `original_autogpt` for absolute clarity
* Rename `rnd/` to `autogpt_platform/`
  * `rnd/autogpt_builder` -> `autogpt_platform/frontend`
  * `rnd/autogpt_server` -> `autogpt_platform/backend`
* Adjust any paths accordingly
2024-09-20 16:50:43 +02:00
Aarushi
2dfc927f03 tweak(docs) add to docs supabase submodule steps (#8115)
add to docs
2024-09-20 10:39:52 +01:00
Aarushi
e3f35d79c7 tweak(.github): Update pr template wording (#8103)
* update pr template wording

* add what and how

* Update .github/PULL_REQUEST_TEMPLATE.md

---------

Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
2024-09-19 12:44:50 +00:00
Aarushi
0040495143 tweak(.github): Update PR template (#8100)
* update PR template

* Update .github/PULL_REQUEST_TEMPLATE.md

Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>

* add note

* typo

---------

Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>
2024-09-19 13:00:16 +01:00
Aarushi
d3eac86f9a fix(frontend): Update REST API port (#8096)
update server port to 8006

Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-09-19 01:06:04 +02:00
Zamil Majdy
c3cb90ac20 feat(rnd): Add initial block execution credit accounting UI on AutoGPT Builder (#8078) 2024-09-19 04:21:40 +07:00
matanm
9b5bf81d7c Fix typo in Groq setup docs (#8018)
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-09-18 20:22:57 +00:00
Nicholas Tindle
86db4deef9 feat(server): backend analytics endpoints (#8030) 2024-09-18 18:23:20 +00:00
Aarushi
d8f989daf8 docs(rnd): Update submodules info in readme (#8095)
update submodules info in readme
2024-09-18 18:59:23 +01:00
Aarushi
00f2b134cb tweak(rnd): add env var to docker compose so no messing with .env (#8091)
add env var to docker compose so no messing with .env
2024-09-18 16:39:15 +01:00
Aarushi
a3959712dc tweak(builder): Update .env.example server url with right port (#8090)
update server url with right port
2024-09-18 15:51:44 +01:00
Aarushi
8477b25c5a tweak(builder) Add local supabse credentials (#8089)
add local supabse credentials
2024-09-18 15:45:09 +01:00
Swifty
f133c9c1ef fix(rnd): incorrect docker image for migrate (#8086)
fix incorrect docker image for migrate
2024-09-18 15:21:38 +02:00
Aarushi
dc72ec97bc feat(rnd): Add support for supabase locally (#8077)
* add just auth for now

* add supabase script

* add to docker compose

* update docker compose

* tweak(rnd) Add prefix in logs (#8001)

* add prefix

* fix typos

* fix conflicts

* feat(rnd): Reduce container size remove dep with forge and autogpt (#8040)

* Remove forge and autogpt

* update lock files

* Update build process to reduce image size

* Reduced built image size

* fixed docker compose watch

* Updated logging

* updated env.example

* formatting

* linting issue

* linting not working in github actions..

* trying to get around github action linting issue

* updated version

* sleep for prisma issues

* add exp backoff on connection issues

* updated config based on review comments

* Sorting alphabetical

* updated default config

* updated depends checks

* fixed missing prisma binaries

* remove dead layer

* remove try

* remove dead layer

* updated lock file

* add to docker compose

* update for init

* add local supabase variables to docker compose

* wip supbase connectioon

* subabase submodule

* combined docker file wth new supbase url pointing to kong

* updated combined

* ngix

* updated docker compose without frontend

* updated docker compose

* update to remove frontend

* update docs

* update newline

* remove unescessary change

---------

Co-authored-by: Swifty <craigswift13@gmail.com>
2024-09-18 09:50:39 +01:00
Nicholas Tindle
0c915cb558 feat(server): anthropic updates, csv, sampling, and code blocks (#7803)
Co-authored-by: Bentlybro <tomnoon9@gmail.com>
2024-09-17 21:29:35 -05:00
Nicholas Tindle
f6ab15db47 feat(market): add filters to the market queries (#8064) 2024-09-17 14:59:25 +00:00
Krzysztof Czerwinski
80161decb9 feat(server): Add credentials API endpoints (#8024)
- Add two endpoints to OAuth `integrations.py`:
  - `GET /integrations/{provider}/credentials` - list all credentials for a provider, without secrets (metadata only)
   - `GET /integrations/{provider}/credentials/{cred_id}` - retrieve a set of credentials (including secrets)

- Add `username` property to `Credentials` types
   - Add logic to populate `username` in OAuth handlers

- Expand `CredentialsMetaResponse` and remove `credentials_` prefix from properties

- Fix `autogpt_libs` dependency caching issue

- Remove accidentally duplicated OAuth handler files in `autogpt_server/integrations`
2024-09-17 11:16:16 +00:00
Swifty
0bf8edcd96 fix(autogpt_server): Fix vulnerability in Dockerfile (#8071) 2024-09-17 11:37:22 +01:00
Zamil Majdy
b1347a92de fix(rnd): Fix execution error on non-saved agent (#8054) 2024-09-16 19:35:31 +00:00
Nicholas Tindle
22ce8e0047 feat(builder): sentry integration (#8053) 2024-09-16 23:19:52 +07:00
Bently
5a7193cfb7 Feat(Builder): Add Runner input and ouput screens (#8038)
* Feat(Builder): Add Runner input and ouput screens

* Fix run button not working

* prettier

* prettier again -- forgot flow

* fix input scaling + auto close on run

* removed "Runner Input" button to make it auto open runner input if input block is  + Fixed issue with output not showing in output UI

* replaced runner output icon and added a new icon for it

* replaced IconOutput icon with LogOut from lucide-react

* prettier

* fix type safety issue + add error handling for formatOutput

* Updates based on comments

* prettier for utils
2024-09-16 13:05:07 +02:00
Zamil Majdy
c1f301ab8b feat(rnd): Add initial credit accounting system for block execution (#8047)
### Background

We need a way to set an execution quota per user for each block execution.

### Changes 🏗️

* Introduced a `UserBlockCredit`, a transaction table tracking the block usage along with it cost/quota.
* The tracking is toggled by `ENABLE_CREDIT` config, default = false.
* Introduced  `BLOCK_COSTS` | `GET /blocks/costs` as a source of information for the cost on each block depending on the input configuration.

Improvements:
* Refactor logging in manager.py to always print a prefix and pass the metadata.
* Make executionStatus on AgentNodeExecution prisma enum. And add executionStatus on AgentGraphExecution.
* Use executionStatus from AgentGraphExecution to improve waiting logic on test_manager.py.
2024-09-14 23:47:28 +07:00
Zamil Majdy
f32244a112 fix(rnd): Fix broken save feature on Agent Builder (#8052) 2024-09-13 18:04:51 -05:00
Aarushi
9395706841 fix(rnd,market): Fix docker issues with market, and DB connection (#8050)
fix docker issues with market, and DB connection
2024-09-13 16:15:06 +01:00
SwiftyOS
a98677b79d Revert "updated lock file"
This reverts commit 056eb46c0f.
2024-09-12 17:59:39 +02:00
SwiftyOS
056eb46c0f updated lock file 2024-09-12 16:18:13 +02:00
Swifty
6fde030c37 feat(rnd): Reduce container size remove dep with forge and autogpt (#8040)
* Remove forge and autogpt

* update lock files

* Update build process to reduce image size

* Reduced built image size

* fixed docker compose watch

* Updated logging

* updated env.example

* formatting

* linting issue

* linting not working in github actions..

* trying to get around github action linting issue

* updated version

* sleep for prisma issues

* add exp backoff on connection issues

* updated config based on review comments

* Sorting alphabetical

* updated default config

* updated depends checks

* fixed missing prisma binaries

* remove dead layer

* remove try

* remove dead layer
2024-09-12 13:03:37 +02:00
Aarushi
bf1e01d423 tweak(rnd) Add prefix in logs (#8001)
* add prefix

* fix typos

* fix conflicts
2024-09-12 11:48:47 +01:00
Zamil Majdy
52c731abd6 fix(rnd): Fix decorator function type hint (#8043) 2024-09-12 05:35:33 +07:00
Aarushi
c8fbce643e fix(rnd): Add connection timeout (#8041)
add connection timeout
2024-09-11 18:32:07 +01:00
Swifty
6c001bd595 Create Input Node Custom UI Node (#8016) 2024-09-11 14:14:03 +02:00
Aarushi
f5b89672f8 feat(rnd): Add k8s default health check (#8037)
add k8s default health check
2024-09-11 12:30:34 +01:00
Aarushi
76480ffa03 fix(rnd): Update port in market (#8036)
update port
2024-09-11 12:19:11 +01:00
Aarushi
ab60a57379 tweak(rnd): Ignore .env in market (#8035)
ignore .env
2024-09-11 11:01:34 +01:00
Aarushi
1d9b01fc77 tweak(rnd): Use docker compose not docker-compose (#8034)
* use docker compose not docker-compose

* linting
2024-09-11 10:20:31 +01:00
Swifty
e81d9f9f0b docker nits (#8033) 2024-09-11 10:31:12 +02:00
Bentlybro
0d5d0270ea Merge branch 'master' of https://github.com/Significant-Gravitas/AutoGPT 2024-09-10 18:24:53 +01:00
SwiftyOS
bd25f9223c expose schedular port and fix marketplace port 2024-09-10 17:09:39 +02:00
SwiftyOS
07305b55ff fix(rnd) use migrate deploy 2024-09-10 16:18:42 +02:00
SwiftyOS
cdfe3e5fbc Updated rnd/README.md 2024-09-10 16:16:16 +02:00
Swifty
e992cdf8c2 Fixing docker setup for local testing (#8026)
* Fixing docker setup

* Updated docker compose setup

* update helm charts

* Corrected agent server host name
2024-09-10 15:46:22 +02:00
Aarushi
ebd2ecd84c docs(server): Update docs (#8031)
update docs
2024-09-10 10:24:54 +01:00
Aarushi
0b919522ae feat(rnd): Split Execution Manager (#8008)
* split execution manager and removed ns and use direct uri with k8s and docker specific dns

* formating

* split execution manager

* refactor(builder): Fix linting warning and errors (#8021)

* Fix lint errors

* Fix dependency loop

* address feedback

* docker compose

* remove ns entirely

* remove yarn lock changes

* update readme

* remove ref

* dockerfile and log

* update log

* debug

* rename to executor

* remove execution from rest

* exec.py

* linting

* udpate tests to use config

* fix test

---------

Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>
2024-09-10 10:05:31 +01:00
Nicholas Tindle
ef691359b7 feat: document the use of isolation better (#8028) 2024-09-09 20:55:05 +00:00
Aarushi
f8815c3053 fix(builder): Use escaped apostrophe (#8027)
* use escaped apostrophe

* linter
2024-09-09 18:08:32 +00:00
Reinier van der Leer
a60ed21404 feat(server): Add OAuth flow endpoints for integrations (#7872)
- feat(server): Initial draft of OAuth init and exchange endpoints
  - Add `supabase` dependency
  - Add Supabase credentials to `Secrets`
  - Add `get_supabase` utility to `.server.utils`
  - Add `.server.integrations` API segment with initial implementations for OAuth init and exchange endpoints
- Move integration OAuth handlers to `autogpt_server.integrations.oauth`
- Change constructor of `SupabaseIntegrationCredentialsStore` to take a Supabase client
- Fix type issues in `GoogleOAuthHandler`
2024-09-09 17:21:56 +02:00
Krzysztof Czerwinski
2618d1d87c refactor(builder): Fix linting warning and errors (#8021)
* Fix lint errors

* Fix dependency loop
2024-09-09 09:54:36 +02:00
Andy Hooker
e17ea22a0a feat(builder): Aligning error and loading for NextJS best practices (#7894)
* feat(builder): Add skeleton loading components for Monitor views

Introduce skeleton components for Agents, Flow Runs List, and Flow Runs Status sections to enhance loading state indication. These components help improve user experience by visually outlining content placeholders while data is being fetched.

* feat(builder): Leveraging NextJS's error boundary with error.tsx

Replace the basic error page with a more detailed and interactive error component. The new component includes a retry option, a link to the homepage, and logs the error details to the console. It also aligns with NextJS standards

---------
2024-09-08 12:47:36 +02:00
Nicholas Tindle
60669903a0 fix: couple block categories improved (#8017) 2024-09-06 22:47:40 -05:00
Zamil Majdy
b1b31390a4 feat(rnd): Add creation & update time for AgentGraphExecutionSchedule, AgentGraphExecution, and AgentGraph (#8015) 2024-09-06 21:29:53 +00:00
Nicholas Tindle
3c12a398ae feat: marketplace analytics (#7998) 2024-09-06 19:22:24 +00:00
Aarushi
126d070396 tweak(rnd,redis) Make redis logging more clear (#8014)
make redis logging more clear
2024-09-06 15:23:33 +00:00
Reinier van der Leer
090f22b05c fix(server): Improve logging consistency (#8012)
- Make process/service startup/shutdown messages consistent
- Configure `uvicorn` to use our logging config instead of its own
- Replace `print(..)` statements in ws_api.py with log statements
- Improve log statements in ws_api.py
2024-09-06 17:05:30 +02:00
Reinier van der Leer
1b9adf5434 fix(server): Always JSON-encode AgentNodeExecutionInputOutput data (#8010)
- Handle JSON-encoding inside `.data.execution.upsert_execution_output(..)` to ensure it is always encoded the same
- Amend `.executor.manager.execute_node(..)` to pass unencoded data into `upsert_execution_output(..)`
2024-09-06 16:58:04 +02:00
Reinier van der Leer
3bd8040d6a feat(server): Clean up resources when spinning down services/processes (#7938)
- Add SIGTERM handler and `cleanup()` hook to `AppProcess`
- Implement `cleanup()` on `AppService` to close DB and Redis connections
- Implement `cleanup()` on `ExecutionManager` to shut down worker pool
- Add `atexit` and SIGTERM handlers to node executor to close DB connection and shut down node workers
- Improve logging in `.executor.manager`
- Fix shutdown order of `.util.test:SpinTestServer`
2024-09-06 16:50:59 +02:00
Aarushi
b12dba13f4 docs(readme) Update readme to include non docker steps (#8013)
update readme
2024-09-06 15:33:17 +01:00
Swifty
2cae9ba8da feat(server): Updated Output block (#7997)
* Add Block UI Types and StickyNote Block

* Renamed StickyNote to Note

* Add comment

* Updated Input Block

* rename default_values to placeholder_values

* Update sample graph

* Update input block output to match previous change

* fixing test

* Updated the output block

* re-remove old output block
2024-09-06 15:56:41 +02:00
Swifty
3753906482 feat(builder): Block UI Types and StickyNote (#7994)
* Add Block UI Types and StickyNote Block

* Renamed StickyNote to Note

* Add comment
2024-09-06 15:52:03 +02:00
Swifty
fd54ad8666 update(server): update input nodes (#7996)
* Add Block UI Types and StickyNote Block

* Updated Input Block
2024-09-06 13:27:37 +01:00
Zamil Majdy
e645cc4b33 tweak(rnd): Remove duplicated call 2024-09-05 17:20:55 -05:00
Zamil Majdy
010a8ffaaf tweak(rnd): Stop publishing custom Sentry metrics (#8000) 2024-09-05 21:51:00 +00:00
Zamil Majdy
2df325d033 fix(rnd): Fix prisma connection acquisition intermittent error on linux (#7999) 2024-09-06 03:22:25 +07:00
Nicholas Tindle
79ebc4c13b feat(builder): promotion/demotion of featured agents (#7932) 2024-09-05 20:04:11 +00:00
Zamil Majdy
e5eb42d84a tweak(rnd): Post infra change cleanup - fix process creation lifecycle (#7981) 2024-09-06 01:41:24 +07:00
Bently
d62b940baf Feat(Monitor/Builder): Fix loading of "Import from file" modal (#7976)
* Feat(Monitor/Builder): Fix loading of "Import from file" modal

* prettier

* prettier - forgot page.tsx
2024-09-05 15:02:48 +00:00
Reinier van der Leer
8fd22bcfd7 feat(server, builder): Implement "STOP" button for graph runs (#7892)
- feat(builder): Add "Stop Run" buttons to monitor and builder
  - Implement additional state management in `useAgentGraph` hook
    - Add "stop" request mechanism
    - Implement execution status tracking using WebSockets
    - Add `isSaving`, `isRunning`, `isStopping` outputs
    - Add `requestStopRun` method
      - Rename `requestSaveRun` to `requestSaveAndRun` for clarity
  - Add needed functionality for the above to `AutoGPTServerAPI` client
    - Add `stopGraphExecution` method
    - Add support for multiple handlers per WebSocket method
    - Fix parsing of timestamps in `execution_event` WebSocket messages
  - Add `IconSquare` from Lucide to `@/components/ui/icons`

- feat(server): Add `POST /graphs/{graph_id}/executions/{graph_exec_id}/stop` route
  - Add `stop_graph_run` method to `AgentServer`

- feat(server): Add `cancel_execution` method to `ExecutionManager`
  - Replace node executor `ProcessPoolExecutor` by `multiprocessing.Pool` (which has a `terminate()` method)
    - Remove now unnecessary `Executor.wait_future(..)` method
  - Add `get_graph_execution(..)` in `.data.execution`

- fix(server): Reduce number of node executors to 5 per graph executor
  This is necessary because `multiprocessing.Pool` spawns its workers on init, instead of based on demand like `ProcessPoolExecutor` does

- dx(server): Improve debug logging in `ExecutionManager`
- ci(server): Add debug logging mode to CI Pytest step

### Other improvements
Server:
- Improve output type of `ExecutionManager.add_execution(..)`
- Renamed a few things in `.server.rest_api` for consistency

Front end:
- Improved typing in `AutoGPTServerAPI` client
2024-09-05 14:42:28 +02:00
Bently
11827835a0 Feat(Builder): Add tooltips to Blocks and Save buttons (#7975) 2024-09-05 12:04:29 +00:00
Zamil Majdy
70fab8711a fix(rnd): avoid duplicating name on input/output pin for blocks (#7979) 2024-09-05 10:54:02 +00:00
Swifty
8ec015ba72 fix(builder): update tutorial routing to work on safari (#7992) 2024-09-05 10:27:15 +00:00
SwiftyOS
bc7d2f0f37 added test password as default for redis queue 2024-09-05 11:41:53 +02:00
Zamil Majdy
54694709bb tweak(rnd): Hide non required field on Blocks (#7977)
Add prompt_values for LLM block, and make it non-advanced.
Make all-field, advanced by default.
cleanup .env.example and .env.template
2024-09-05 05:00:14 +07:00
Zamil Majdy
b4b5a09b6b fix(rnd): Dockerfile Avoid full rebuild on each file change (#7971)
Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
2024-09-04 17:30:13 +00:00
Reinier van der Leer
82239dd129 fix(server): Fix node input concurrency deadlock (#7936)
In `autogpt_server.util.lock:KeyedMutex`:
- track number of pending requests for each lock
- only remove a lock from `self.locks` when the number of pending lock requests hits 0
2024-09-04 18:13:35 +02:00
Aarushi
078ad29356 update docker compose (#7972) 2024-09-04 16:19:41 +01:00
Aarushi
5000aa7ee0 tweak(rnd,docker) Remove SQLite (#7966)
* move migrations, update networking and dockignore

* update docs

* remove sqlite from ci

* remove schema linting checks

* fix formatting

* remove schema linting

* add test script

* formatting and linting

* stop pg not down

* seperate test db

* diff port

* remove duplicate
2024-09-04 10:18:57 +01:00
Bently
dc1077f893 Feat(Builder): Replace `Math Block with Calculator Block` (#7969) 2024-09-04 08:12:01 +00:00
Swifty
80df44a978 feat(server): Add endpoint to calculate required graph inputs (#7965) 2024-09-04 09:45:45 +02:00
Zamil Majdy
c2a79d2f10 feat(rnd): Add Node & Graph level execution stats instrumentation (#7957)
### **User description**
### Background

The scope of this change is collecting the required information that will be needed for the execution analytics.

### Changes 🏗️

* Add sentry integration.
* Refactor logging_metadata on manager.py.
* Collect graph-level & node-level instrumentation.
* Introduced `stats` column for `AgentNodeExecution` & `AgentGraphExecution`.
2024-09-04 02:45:19 +07:00
Bently
7db85a8990 Feat(Builder): Update tutorial to work with latest block UI (#7962)
* Feat(Builder): Update tutorial to work with latest block UI

* prettier
2024-09-03 14:56:55 +00:00
Krzysztof Czerwinski
0454a9a7be fix(builder): Prevent zooming on input field modal
- Add `nowheel` class to Textarea parent div
2024-09-03 14:30:35 +02:00
Krzysztof Czerwinski
09951fed4b feat(builder, server): Add advanced block inputs (#7934)
- Add `advanced` to `SchemaField` and pass it to `json_extra`
- Add `advanced` to `BlockIOSubSchemaMeta` type
- Update `CustomNode`, so that:
  - non-required advanced inputs are hidden
  - non-advanced and required inputs are always shown
2024-09-03 12:01:42 +01:00
Aarushi
6204d82d84 feat(server): Integrate forge.logging (#7915)
* feat(server): Integrate `forge.logging`

- Add `configure_logging()` in `.util.logging` - a wrapper for `forge.logging.configure_logging()` with project-specific extras
- Call `configure_logging()` in `.app.main()`, and in child process initializers (e.g. `AppProcess.execute_run_command(..)`, `ExecutorManager.on_graph_executor_start()`)
- Change some `logger.warning` statements to `logger.info` where appropriate

* fix warnings to info

* fix(rnd): Fix broken test and Input/Output block field renaming

* Rename

* fix(rnd): Fix flaky CI

* feat(server): Add OAuth handlers for GitHub, Notion, Google & amend store data structure (#7868)

- Add `BaseOAuthHandler` + 3 initial implementations
  - Add `GitHubOAuthHandler`
  - Add `NotionOAuthHandler`
  - Add `GoogleOAuthHandler`
- Amend `OAuth2Credentials` type
  - Add `metadata` attribute
  - Make `access_token_expires_at`, `refresh_token`, `refresh_token_expires_at` optional

* extend GCP Logger

* update manager & add flag

* linting

* use default logger behaviour

* update messages

* update another message

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
2024-09-03 11:56:21 +01:00
Krzysztof Czerwinski
8c9fe5c167 feat(builder): Resizable input modal (#7955)
- Add minimize/maximize button in the corner of modal to make it significantly larger and centered
- Add copy button to copy all text
- Add optional `title` to display as a modal header
2024-09-03 11:42:25 +01:00
Reinier van der Leer
71de1a6a5e fix(server): Fix type checking and propagation issues (#7941)
- fix type propagation by `AppService.run_and_wait(..)`
- fix type propagation by `@expose` and add note
- fix type propagation by `wait(..)` in `.executor.manager.execute_node(..)`
- fix type propagation by `wait(..)` in `.executor.manager._enqueue_next_nodes(..)`
- remove unnecessary null checks for `.data.graph.get_node(..)`
- fix type issue in `ExecutionScheduler`
- reduce use of `# type: ignore` in `.data.execution`
- reduce usage of `# type: ignore` in `.executor.manager`
- reduce usage of `# type: ignore` in `.server`
- reduce usage of `# type: ignore` in cli.py
- update `pyright` to v1.1.378
2024-09-02 14:13:56 +00:00
Bently
956165adf3 Feat(Builder): Fix block menu width (#7946) 2024-09-02 09:54:52 +00:00
Aarushi
e4dc16a867 docs(server): Update docs with new docker compose steps (#7944)
* update setup

* add docker links
2024-09-02 10:55:54 +02:00
Aarushi
cfa0b6610c feat(rnd,infra): Pull out websockets away from server api (#7899)
* standalone websocket server

* add websocket url

* wip: talk to ws directly

* rename to api server

* dockerfile and queue

* fix paths

* update poetry lock

* helm charts for websockets

* create seperate deployments for websockets and rest server with redis queue for async comms

* delete duplicate queue

* add depends in ws_api

* singleton for conn manager

* update from review

* fix CI

* address feedback

* update readme

* update docker file and add migration step in readm

* ad watch

* add step to copy example env file

* put connect back in
2024-09-02 10:32:51 +02:00
Krzysztof Czerwinski
933baa0e8d feat(builder): Store and display output data history in nodes (#7930)
- Update styling and use tailwind more
- Add `react-toast` dependency
- Fix output button not changing checked state on execution
- Make status a badge in node's corner
- Rename `output_data` to `executionResults` and store multiple results with execution UUIDs
- Add `DataTable` component that displays execution outputs
- Outputs can be copied and there's a toast displayed as a feedback
2024-09-01 11:18:57 +01:00
Bently
370b2dabe8 Feat(Builder): Add block categories to block menu (#7918) 2024-08-31 19:22:37 +00:00
Nicholas Tindle
baa00a5b03 feat(builder,server): add review of agent submissions to the admin portal (#7914)
Co-authored-by: Aarushi <aarushik93@gmail.com>
2024-08-30 18:20:59 +00:00
Zamil Majdy
60a8e00578 fix(rnd): Fix overflowing card due to long block name (#7931) 2024-08-30 18:02:55 +00:00
Bently
85e7d678ce Feat(Builder): Fix Multiple Connections Between Pins (#7924) 2024-08-30 18:15:18 +01:00
Krzysztof Czerwinski
476b307d69 feat(builder): Draw selected edges above nodes (#7893) 2024-08-30 16:39:22 +01:00
Bently
5dbfb4e3f1 feat(builder): Turn block border red on error (#7910)
* Turn block border red on error

* prettier
2024-08-30 15:09:19 +00:00
Zamil Majdy
f6d09c74f5 feat(rnd): Rename Blocks (#7925)
### Background

Standardize block names with a focus of making them intuitive to a non-technical person.

### Changes 🏗️

Replace these names:
* TextLlmCallBlock -> AITextGeneratorBlock
* ObjectLlmCallBlock -> AIStructuredResponseBlock
* AdvancedLlmCallBlock -> AIConversationBlock
* CreateTalkingAvatarClipBlock -> CreateTalkingAvatarVideoBlock
* DiscordReaderBlock -> ReadDiscordMessagesBlock
* DiscordMessageSenderBlock -> SendDiscordMessageBlock
* YouTubeTranscriberBlock -> TranscribeYouTubeVideoBlock
* CreateMediumPostBlock -> PublishToMediumBlock
* ForEachBlock -> ListIteratorBlock
* MathsBlock -> CalculatorBlock
* CounterBlock -> CountItemsBlock
* ValueBlock -> StoreValueBlock
* PrintingBlock -> PrintToConsoleBlock
* DictionaryAddEntryBlock -> AddToDictionaryBlock
* ListAddEntryBlock -> AddToListBlock
* ObjectLookupBlock -> FindInDictionaryBlock
* RedditGetPostsBlock -> GetRedditPostsBlock
* RedditPostCommentBlock -> PostRedditCommentBlock
* WikipediaSummaryBlock -> GetWikipediaSummaryBlock
* WebSearchBlock -> SearchTheWebBlock
* WebScraperBlock -> ExtractWebsiteContentBlock
* GetOpenWeatherMapBlock -> GetWeatherInformationBlock
* HttpRequestBlock -> SendWebRequestBlock
* CurrentTimeBlock -> GetCurrentTimeBlock
* CurrentDateBlock -> GetCurrentDateBlock
* CurrentDateAndTimeBlock -> GetCurrentDateAndTimeBlock
* TimerBlock -> CountdownTimerBlock
* RSSReaderBlock -> ReadRSSFeedBlock
* TextMatcherBlock -> MatchTextPatternBlock
* TextParserBlock -> ExtractTextInformationBlock
* TextFormatterBlock -> FillTextTemplateBlock
* TextCombinerBlock -> CombineTextsBlock
2024-08-30 21:36:42 +07:00
Zamil Majdy
6d17e627e8 fix(rnd): Add null checking & remove console logs on Input UI component (#7927)
fix(rnd): And null checking & remove logs
2024-08-30 12:21:09 +00:00
Bently
5cfa807f00 Feat(Builder): Make the copy block button work (#7920)
* Feat(Builder): Make the copy block button work

* prettier

* Fixes

* fix block id

* prettier

* fix type
2024-08-30 11:48:33 +00:00
Bently
6fff06f0f6 Feat(Builder): Fix delete block is non-undoable (#7922)
* Feat(Builder): Fix delete block is non-undoable

* prettier
2024-08-30 08:05:37 +00:00
Aarushi
cbe553a547 feat(infra): Add deployment for Market (#7907)
* deployment for marketplace

* set up deployment for marketplace
update nodes

update helm

* update health check & allow builder origin
2024-08-29 18:23:40 +00:00
Reinier van der Leer
96ef35536c ci(server): Run tests even if linting fails 2024-08-29 15:42:49 +02:00
Reinier van der Leer
087d3a3760 test(server): Add type to server fixture usages 2024-08-29 15:42:15 +02:00
Zamil Majdy
5da58aa284 fix(rnd): Fix jumping caret problem on builder input text field (#7917)
Issue 1:
Input text field cursor keeps moving to the end of the text.
Try to type "Hello World!" into the input text. Then try to type "some string" in the middle of the "Hello" and "World".

Issue 2:
History should only tracks on the input box onBlur/onLeave
Try to type a "longcharacters" and try to undo it, the undo is removing 1 character at a time, polluting the history, and make the undo pretty much unusable.

Issue 3:
KeyValue & ArrayInput is non-undoable.
Try to add key-value or add an entry to the list, it doesn't undo the value, but you need to click as many number of entries being added to make the undo work again
2024-08-29 13:12:10 +00:00
Bently
7de12a2200 Feat(Builder): Add first guide tutorial (#7862)
* Feat(Builder): Add first guide tutorial

* added more steps + some fixes

* added local storage to fix starting every time going to build

* update copy & paste to support mac

* small fix

* Prettier fixes

* Added "Skip Tutorial" button to first step

* some fixes based on requests

* revert camelCase change

* add ability to use url to reset tutorial

* prettier

* Added Tutorial button next to tally

* prettier

* change pinBlocksPopover to setPinBlocksPopover

* fixes + update + prettier

* made the resetTutorial url dynamic

* force to /build on reset tutorial

* fix renaming

* prettier
2024-08-29 07:53:45 -05:00
Reinier van der Leer
8f1c63a7ea feat(server): Add OAuth handlers for GitHub, Notion, Google & amend store data structure (#7868)
- Add `BaseOAuthHandler` + 3 initial implementations
  - Add `GitHubOAuthHandler`
  - Add `NotionOAuthHandler`
  - Add `GoogleOAuthHandler`
- Amend `OAuth2Credentials` type
  - Add `metadata` attribute
  - Make `access_token_expires_at`, `refresh_token`, `refresh_token_expires_at` optional
2024-08-29 09:11:37 +00:00
Zamil Majdy
6ec200f912 fix(rnd): Fix flaky CI 2024-08-28 15:59:51 -05:00
Zamil Majdy
b5db7f575e Rename 2024-08-28 15:56:02 -05:00
Zamil Majdy
98c909f99f fix(rnd): Fix broken test and Input/Output block field renaming 2024-08-28 15:54:48 -05:00
Krzysztof Czerwinski
c5615aa862 fix(builder): Prevent overflow in node output (#7912) 2024-08-28 16:27:42 +01:00
Bently
e725305e15 fix(builder): Set default value in NodeStringInput to silence uncontrolled input warning (#7909)
add default value to fix bug
2024-08-28 12:44:06 +01:00
Aarushi
9551f54c35 feat(infra): Add websockets IP (#7905)
tf changes from original branch to unblock other work
2024-08-27 20:35:31 +01:00
Bently
777f7d25bf Fix copy-paste of text creating unintended blocks (#7903) 2024-08-27 11:49:35 +01:00
Zamil Majdy
ea6f37bf98 feat(rnd): Integrate Jinja2 into TextFormatter (#7891)
Add Jinja2 to TextFormatter while maintaining backward compatibility.
2024-08-27 07:17:57 +00:00
Krzysztof Czerwinski
299530cf95 refactor(builder): Update ReactFlow to version 12 & split up Flow.tsx (#7808)
Update ReactFlow to version 12 and split `Flow.tsx` into `useAgentGraph` hook that takes care of agent state and API calls to the server.

- Update ReactFlow to v12 ([migration guide](https://reactflow.dev/learn/troubleshooting/migrate-to-v12))
- Move `setIsAnyModalOpen` to `FlowContext`
- Make `setHardcodedValues` and `setErrors` functions of `CustomNode` and utilize new `updateNodeData` ReactFlow API
- Fix type errors
- `useAgentGraph` hook
  - Take care of all API calls, websocket, agent state and logic
  - Make saving and execution async and thus more consistent and reliable
	- Save&run requests are state
	- Wait for node ids to sync with backend reactively
	- Queue execution updates
  - Memoize functions using `useCallback`
2024-08-26 11:45:05 +01:00
Nicholas Tindle
1df7d527dd Remove debug (#7890) 2024-08-25 17:59:41 +00:00
Aarushi
407cf858e7 fix(server): Ensure nameserver is started before other processes (#7788)
ensure nameserver is started before other processes
2024-08-24 20:54:11 +00:00
Aarushi
a670b384f6 tweak(infra): Add 1 more node to GKE (#7889)
add one more node
2024-08-24 18:53:24 +01:00
Zamil Majdy
f9b8b0a41a feat(rnd): Add dynamic input pin for input object construction (#7871)
### Background

Currently, there is no way to construct the output of nodes into a composite data structure (list/dict/object) using the builder UI.

The backend already supports this feature by connecting the output pin to the input pin using these format:
* <pin_name>_$_<list_index> for constructing list
* <pin_name>_#_<dict_key> for constructing dict
* <pin_name>_@_<field_name> for constructing object

The scope of this PR is implementing the UX for this in the builder UI.

### Changes 🏗️

<img width="765" alt="image" src="https://github.com/user-attachments/assets/8fc319a4-1350-410f-98cf-24f2aa2bc34b">

This allows you to add more pins in a key value & list input: `_$_` list constructor & `_#_` dict constructor.
2024-08-23 18:21:38 +00:00
Zamil Majdy
e59e138352 fix(rnd): Prevent boolean with no default value on AGPT-builder (#7884)
### Background

Boolean without default value is a UX problem. It's currently displayed as a toggle and it has no way to describe the `null` value.
So we need to prevent blocks from introducing a nullable boolean.

### Changes 🏗️

Add explicit check to prevent nullable boolean. Fix existing block field that has nullable boolean.
2024-08-23 18:03:21 +00:00
Aarushi
a95ee693dd fix(rnd): Add missing libs folder (#7887)
add missing libs folder
2024-08-23 16:42:24 +00:00
Aarushi
26f56114d1 feat(infra): Add ws server infra changes (#7886)
add ws server infra changes
2024-08-23 11:25:57 -05:00
Aarushi
45ace8ccab Add number of workers to environment variables in in charts (#7869)
add workers to env vars
2024-08-23 20:21:51 +07:00
Aarushi
95af63b5ad feat(libs): Add integration credentials store (#7826)
- Add `SupabaseIntegrationCredentialsStore` in `.supabase_integration_credentials_store`
- Add `supabase` dependency
- Add `pydantic` dependency

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-08-23 12:39:26 +02:00
Aarushi
012bad72e8 feat(rnd,blocks): Add D-ID Block (#7798)
* talking head

* linting

* remove clip id, not needed

* add more descriptive name

* add min requirement to polling attempts and intervals

* add docs and link to docs

* remove extra space

* force new tab

* fix linting

* add did key to .env.template
2024-08-23 09:39:55 +01:00
Nicholas Tindle
efcd0f93ed ci(all): take two on the global status checker (#7849)
* ci(all): fundamentally change how we do this

* Update workflow-checker.yml

* ci: dupe and move file in attempt to figure out why its not accessible

* Update workflow-checker.yml

* fix: sleep before checking, move files, improve code

* Update workflow-checker.yml

* Update check_actions_status.py

* Update check_actions_status.py

* Update workflow-checker.yml

* Update workflow-checker.yml

* ci: remove debug, add more

* Update check_actions_status.py

* Update check_actions_status.py

* Update check_actions_status.py

* Revert "Update check_actions_status.py"

This reverts commit 36134527af.

* Revert "Update check_actions_status.py"

This reverts commit 828aabf532.

* Update check_actions_status.py

* Update check_actions_status.py

* Update check_actions_status.py

* Update check_actions_status.py
2024-08-22 07:06:15 -05:00
Swifty
4c32b46d40 feat(builder): Add google analytics to the project (#7860) 2024-08-22 10:24:12 +01:00
Konstantinos Voulgaropoulos
41fbfe35fb tweak(rnd): Trim Whitespace from BlockSecret to Prevent Authentication Issues (#7789)
* ensure secret value of BlockSecret is always trimmed

* avoid logging secret values when trimming
2024-08-21 14:44:26 -05:00
Zamil Majdy
c719e4f177 fix(rnd): Fix JS event-loop freeze caused by websocket connection retry (#7861)
### Background

Websocket connection retry has no backoff period which causes event-loop freeze.

### Changes 🏗️

Add a back-off period on retry.
2024-08-21 21:41:15 +07:00
Zamil Majdy
3d62cec553 fix(rnd): Guarantee execution ordering per node by waiting the node completion (#7855)
### Background

We don't have an ordering guarantee on the node execution.
Let's say we have a node that has to execute different data A, B, and C.
The current implementation limits the execution to 1 execution at a time, but there is no guarantee that A, B, and C will be executed in order.

The initial implementation did not have any restrictions, so it used to be A, B, and C executed in parallel
In the current implementation with the per-node constraint, it's A, B, C are executed serially but with no guarantee of ordering.

The scope of this PR is to guarantee that order.

### Changes 🏗️

Guaranteeing the execution per node ordering by avoiding any re-enqueue mechanism. If there are two executions run in the same node, the first one will be executed and the other will block. The blocking mechanism is indeed sub-optimal, the performance improvement can be done later (a follow-up issue will be added).
2024-08-21 19:08:18 +07:00
Aarushi
fa12564954 bug(infra): Add frontend config to ingres (#7854)
add frontend config to ingres
2024-08-21 11:31:16 +01:00
Nicholas Tindle
f6d8e597e1 clean(builder): learned we should be using this to keep our tailwind classes sorted (#7836) 2024-08-21 05:14:21 -05:00
Krzysztof Czerwinski
a1cbc101a5 fix(builder): Correctly display static links on new edges (#7851)
Fix static links on edge creation
2024-08-21 10:24:01 +01:00
Aarushi
afc8338145 feat(infra) Create builder account with necessary permissions (#7840)
* create builder account with necessary permissions

* remove unrelated changes
2024-08-21 10:18:51 +01:00
Aarushi
7fe4e455fd feat(infra): Ensure http is always redirected to HTTPS (#7853)
redirect to https always
2024-08-21 10:01:06 +01:00
Bently
52d40d0f8b Feat(Builder): Make blocks spawn in the center of the screen not at 0,0 (#7805)
Feat(Builder): Make nodes spawn in the center of the screen not at 0,0
2024-08-20 15:05:12 +01:00
Aarushi
9e35f8c5cb tweak(infra): Rename builder for consistency (#7837)
rename builder for consistency
2024-08-20 13:37:40 +01:00
Nicholas Tindle
c0afb133a7 feat(builder): checkbox for tos on login page and submit agent (#7745)
* feat(builder): checkbox for tos on login page

* feat(builder): submit agent page

DOES NOT WORK

* feat(builder): basic upload (not working)

* feat(builder): submit page more working but still not

* fix(builder): working categories, not dynamic

* feat(builder, server): enable submissions (auth error)

* fix(lint): linting

* feat(builder): submit page terms of service

* fix(builder): update lockfile

* lint(builder): lint marketplace files
2024-08-20 07:04:22 -05:00
Zamil Majdy
526364297c feat(rnd): Add staticOutput field on block API (#7802) 2024-08-16 22:13:10 +07:00
Krzysztof Czerwinski
aed067e61c feat(builder): Support static connections (#7799)
- Add static link/connection support on the frontend and display them as dashed lines
- Remove queueing for static connections - there'll always be only one bead waiting at the end
- Make beads slightly larger and further from the end arrow
2024-08-16 13:39:48 +01:00
Zamil Majdy
653eb4964f fix(rnd): Fix graph validation error message (#7797) 2024-08-16 17:10:11 +07:00
SwiftyOS
406206f5d0 Add categories to all the blocks 2024-08-16 10:11:30 +02:00
SwiftyOS
1e05d6a8e9 added categories 2024-08-16 10:10:18 +02:00
Krzysztof Czerwinski
848637bfeb feat(builder): Visualise data beads on connections (#7791)
* Visualise data beads on edges

* Add `useBezierPath` hook

* Fix edge color on load

* Updates

* Merge branch 'master' into kpczerwinski/open-1580-visualise-data-coming-down-connections

* Add `visualizeBeads` state in `FlowEditor`

* Add `FlowContext`

Allow disabling beads animation

* fix(builder): linting

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-08-14 13:29:19 -05:00
Swifty
cea81bfe4e feat(builder): Updated Block Categories and colouring (#7794)
* Updated Block Categories

* formatting

* Added category coloring
2024-08-14 11:06:01 +02:00
Zamil Majdy
1e92c284d9 fix(rnd): Fix text blocks, make outbound links on ValueBlock static (#7796) 2024-08-14 10:03:43 +01:00
Swifty
98c1cb8ff9 feat(builder): Added tooltips for blocks (#7793) 2024-08-14 10:41:01 +02:00
Zamil Majdy
58dc8296db fix(rnd): Fix unparsed string on HTTP block (#7795) 2024-08-14 06:19:46 +02:00
Zamil Majdy
4782f4383c fix(rnd): string to list auto-conversion 2024-08-13 18:08:24 +02:00
Zamil Majdy
2b60a392fb fix(rnd): Fix broken test 2024-08-13 17:51:59 +02:00
Konstantinos Voulgaropoulos
f30b2cdf25 inclusion of poetry run prisma generate in the documentation (#7790) 2024-08-13 10:46:28 -05:00
Zamil Majdy
9084c31662 fix(rnd): Make discord bot continuously running (#7792) 2024-08-13 10:39:39 -05:00
SwiftyOS
183c72b2d0 fix typo 2024-08-13 15:07:57 +02:00
Swifty
55e100ee1e tweak(builder) Changes to transparency, connector color and title boldness (#7766)
Changes to transparency, connector color and title boldness
2024-08-13 15:07:07 +02:00
Toran Bruce Richards
82c5cd2d79 Add Advanced Chatbot with History using Discord (#7786)
* Add Advanced Chatbot with History using Discord

* Update Discord Chatbot with History_v145.json

update is_active to false and is_template to true

---------

Co-authored-by: Bently <tomnoon9@gmail.com>
2024-08-13 09:03:14 +01:00
Aarushi
f0ab795248 fix(builder,server) Add missing create user calls (#7784)
* fix missing create user calls

* formating and linting
2024-08-09 16:49:21 +01:00
Zamil Majdy
5b9caa4345 fix(rnd): Added run-time implicit type conversion on agent node execution (#7775)
The execution graph is supposed to be typed, but there are cases where generic types like Any were used, and there are cases, where incompatible data passed into the wrong type. 

If such a thing happens on runtime, we should do the best-effort conversion instead of breaking the run. E.g.: try to json-stringify the object to str input, or try to parse number in the string to int input, etc.
2024-08-09 20:38:33 +07:00
Bently
1e054064f6 Feat(Builder): Allow for zooming out more on builder UI (#7760)
add min and max zoom
2024-08-09 07:43:06 -05:00
Aarushi
646d98470f fix(builder): Temporarily disbale TS checks (#7777)
* disable ts checks temporarily

* prettier
2024-08-09 09:59:39 +01:00
Reinier van der Leer
5a68be5419 refactor(server, builder): Remove unused/duplicate WebSocket endpoints (#7740)
* Remove WS API method `runGraph` in favor of REST method `executeGraph`

* Remove unused WebSocket methods from `autogpt_server.server`
2024-08-08 17:01:37 +02:00
Reinier van der Leer
2ff8a0743a fix(server): Make userId required on DB entities and apply default ID to existing entries (#7755)
* Make `userId` required on DB entities `AgentGraph`, `AgentGraphExecution`, and `AgentGraphExecutionSchedule`

* Add SQLite and Postgres migrations to make `userId` required and set `userId` to `3e53486c-cf57-477e-ba2a-cb02dc828e1a` on existing entries without `userId`

* Amend `create_graph` endpoint and `.data.graph`, `.data.execution` methods to handle required `user_id`

* Add `.data.user.DEFAULT_USER_ID` constant to replace hardcoded literals
2024-08-08 16:57:59 +02:00
Reinier van der Leer
582571631e fix+refactor(builder): Sort out FlowEditor+ReactFlow state management (#7737)
* refactor(builder): Migrate `FlowEditor` to use ReactFlow's state management system

  We have been keeping two copies of node and edge data: one inside ReactFlow and one outside.
  It works, but it's accidental and implicit and there is no reason to be using shadow copies rather than a single data source.

  - Replace `useNodesState` and `useEdgesState` with `useReactFlow` hook
  - Use `addNodes`, `addEdges`, and `deleteElements` where appropriate instead of `setNodes`/`setEdges` to allow use of event hooks
  - Consolidate all edge -> node state sync logic into `onEdgesChange` event handler
    This replaces `updateNodesOnEdgeChange`, part of `onConnect`, and `onEdgesDelete`.
  - Move node deletion logic from `CustomNode` to `FlowEditor:onNodesChange`

* fix(builder): Refactor and fix copy-paste mechanism
  - Rename variables for readability
  - Use an ID map to correctly set the source and target IDs for the pasted edges
2024-08-08 16:18:15 +02:00
Reinier van der Leer
bf10df612e feat(builder): Move /monitor to / (#7769)
- Move `monitor/page.tsx` to `page.tsx`
- Remove redirect from `/` to `/build`
- Set temporary redirect from `/monitor` to `/` to prevent breaking UX (may be removed after a grace period, e.g. 2024-09-01)
2024-08-08 16:07:12 +02:00
SwiftyOS
c577d04692 Changed background to white and add an effect on it 2024-08-08 15:50:59 +02:00
Swifty
85d895ef77 tweak(builder): Node styling (#7763)
* wix width

* teak(builder): blocks control styling

* tweak node styling

* formatting
2024-08-08 13:16:38 +01:00
Swifty
deacc2bd8f tweak(builder) block control styling (#7762)
* wix width

* teak(builder): blocks control styling
2024-08-08 13:15:04 +01:00
Swifty
3eb0d73461 fix(builder): Fix the control panel being too narrow for its elements (#7758)
wix width
2024-08-08 13:38:40 +02:00
Swifty
be0f6498ed fix(builder): Added header background and moved some styling to tailwind (#7756)
Added header background and moved some styling to tailwind
2024-08-08 12:12:20 +01:00
Swifty
0bab2714e9 feat(market): Agent Submission Process (#7718)
* adding auth to store

* Add ability to submit agents and review them before being added to the market

* Added auth decorator

* Added auth to market api client

* fix(builder): Fix drag-select behavior on `NodeKeyValueInput`

* fix(github): Added in fallback variables for postgres testing (#7715)

Co-authored-by: Leslie Cruz <lelcruz@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>

* feat(builder): basic tally feedback form (#7725)

* removed database changes

* moved auth to libs project

* fixed formatting

* cleaned up auth

* Added tests and database migration

* delete decorator
2024-08-08 11:12:35 +02:00
Aarushi
9c74d76a3a fix(tests): Ensure user ID is not None on schedule in tests (#7749)
* ensure user id is never None on schedule

* remove comment
2024-08-08 11:11:57 +02:00
Bently
78e96f8a1a Feat(Builder): Add TimerBlock (#7728) 2024-08-08 09:59:06 +01:00
Bently
904b444b13 Feat(Builder): Add email sending block (#7736) 2024-08-08 10:57:39 +02:00
Andy Hooker
3cad0f89ee feat(builder): Standardize icons and integrate with ControlPanel and NavBar (#7743)
* feat(builder): Add new icons and integrate with ControlPanel

Introduce SVG icons and replace ControlPanel dependencies with new icons. The ControlPanel component now uses the new icon components for improved consistency.

* feat(builder): add additional icon and update icons in NavBar

Introduced the new icon with relevant documentation and examples. Replaced existing icon imports with the newly defined icons in the NavBar component for consistency.

* feat(builder): Add icon for megaphone and replace usage

Introduced the IconMegaphone for reuse across the application. Updated TallyPopup to utilize IconMegaphone instead of the previous Megaphone icon from lucide-react.

* fix(builder): Running prettier to format changed files.

Adjusted various files for consistent code formatting. Ensured proper spacing and alignment of imports, JSX tags, and object properties to enhance readability and maintain coding standards. No functional changes made.
2024-08-08 10:55:57 +02:00
lelcruz
8131fc385b fix(builder): Added option to pan view to center agents on build screen (#7742)
Co-authored-by: Leslie Cruz <lelcruz@users.noreply.github.com>
Co-authored-by: Bently <tomnoon9@gmail.com>
2024-08-08 10:54:37 +02:00
Reinier van der Leer
335fea8605 fix(builder): Always show connected optional pins on node (#7724)
- Always show connected optional pins on node
- Refactor `hasOptionalFields()` to a constant `hasOptionalFields`
2024-08-08 10:48:14 +02:00
Reinier van der Leer
55d32f0324 fix(builder): Automatically (re)connect websocket when sending message (#7739)
- Amend `AutoGPTServerAPI.sendWebSocketMessage(..)` to automatically (re)connect the websocket if disconnected
- Amend `AutoGPTServerAPI.connectWebSocket()` to prevent race conditions
2024-08-08 09:09:50 +01:00
Swifty
56ce7ac628 feat(market): Added Auth to Market and Protect routes (#7717)
* adding auth to store

* Added auth decorator

* Added auth to market api client

* removed database changes

* moved auth to libs project

* fixed formatting

* Switched to using fastapi dependencies

* Return a user object

* removed logging of the token

* Added tests
2024-08-08 09:28:44 +02:00
Zamil Majdy
81adf84032 fix(rnd): Fix flaky CurrentDateAndTimeBlock test (#7741)
### Background

CurrentDateAndTimeBlock would fail if the test is not complete within 1-second wall-time.
In the case a test started at the second 01:59:59, it becomes flaky.

We can change the test to only assert the type. But this is also a good chance to add more assertion options for Block: a custom function.

### Changes 🏗️

Change assertion for the time block using an additional margin of error.
2024-08-07 23:44:47 -05:00
Aarushi
f8d07a27af feat(builder): Add jwt support on websockets (#7734)
add jwt support on websockets
2024-08-07 14:47:35 +01:00
Aarushi
1bad26657c feat(rnd): Add user management (#7663)
* add user management support

* fixing tests

* fix formatting and linting

* default user, formatting & linting

* remove unused code

* remove default creation when auth enabled

* add client side calls

* addressing feedback

* prettier

* add defaults for websockets

* linting

---------

Co-authored-by: Swifty <craigswift13@gmail.com>
2024-08-07 14:15:29 +01:00
Nicholas Tindle
31dbb543a2 feat(builder): basic tally feedback form (#7725) 2024-08-07 09:14:18 +02:00
lelcruz
60d25135e6 fix(github): Added in fallback variables for postgres testing (#7715)
Co-authored-by: Leslie Cruz <lelcruz@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-08-06 15:09:02 -05:00
Reinier van der Leer
4678ed2e57 fix(builder): Fix drag-select behavior on NodeKeyValueInput 2024-08-06 20:53:22 +02:00
Nicholas Tindle
98a07f1265 Add new agent ideas to docs (#7716) 2024-08-06 13:45:28 -05:00
Bently
5e8ff5e3ed Feat(Builder): Add discord bot templates (#7711)
Add discord bot templates
2024-08-06 19:44:43 +01:00
Bently
89adcefd63 Feat(Builder): added time blocks (#7710)
* added time blocks

* lint & format
2024-08-06 13:43:43 -05:00
Reinier van der Leer
d82e577196 feat(builder): Rewrite & split up node inputs (#7722)
- feat(builder): Rewrite & split up `NodeInputField`
  - Create `NodeObjectInputTree`
  - Create `NodeGenericInputField`
  - Create `NodeKeyValueInput`
  - Create `NodeArrayInput`
  - Create `NodeStringInput`
  - Create `NodeNumberInput`
  - Create `NodeBooleanInput`
  - Create `NodeFallbackInput`
  - Create `ClickableInput` from `renderClickableInput(..)`
  - Amend usage in `CustomNode`
  - Remove deprecated/unused styling from `flow.css` and `customnode.css`
  - Fix alignment between `NodeHandle` and `NodeInputField`
  - Split up `BlockIOSchema` & rename to `BlockIOSubSchema`
    - Create `BlockIOObjectSubSchema`
    - Create `BlockIOKVSubSchema`
    - Create `BlockIOArraySubSchema`
    - Create `BlockIOStringSubSchema`
    - Create `BlockIONumberSubSchema`
    - Create `BlockIOBooleanSubSchema`
    - Create `BlockIONullSubSchema`
  - Install `Select` component from shad/cn

- refactor(builder): Replace boilerplate `button` styling with `Button` components

- refactor(builder): Move `NodeInputField.tsx` to `node-input-components.tsx`

---------

Co-authored-by: Krzysztof Czerwinski <kpczerwinski@gmail.com>
2024-08-06 20:32:49 +02:00
Andy Hooker
e6cc8687a5 feat(builder): Refactor components and types for monitoring page streamlining (#7714) 2024-08-05 21:13:08 -05:00
Aarushi
fbad0d01ee feat(rnd, infra): Add deployment for frontend (#7705)
* add helm charts

* dont check in secrets
2024-08-05 21:12:57 +01:00
Zamil Majdy
fe5c1968bc fix(rnd): Cleanup block names and add explicit block name check (#7709) 2024-08-05 17:58:03 +00:00
Swifty
951abf6d5b feat(rnd) Agent Marketplace MVP (#7657)
* Added listing, sorting, filtering and ordering of agents

* feat(market): general upkeep for vscode and small docs

* feat(market): most of search

* fix(market): hinting on the sort was weird + linting

* feat(market): migrations and schema updates

* lint(market): autolint

* feat(market): better search

* feat(market): file download

* feat(market): analytics of downloads

* Added tracking of views

* changed all imports to be fully qualified

* Upgrade sentry sdk

* Added an admin endpoint to submit new agents

* fixes

* Added endpoint that just tracks download

* Starting adding the marketplace page

* Marketplace client

* Create template of the marketplace page

* Updated client

* fix(market): debug port

* feat(market): agents by downloads

* fix(market, builder): hook up frontend and backend

* feat(builder, market): build a "better" market page that loads data

* feat(builder): updated search (working) and page (kinda working)

* feat(builder): add a feature agents ui (not backed yet)

* feat(builder): improve detail page content

* Added run script

* Added pre populate database command

* Add AnalyticsTracker on create agent

* Add download counts for top agents

* Add hb page prometheus metrics

* Added featured agents funcitonality

* renamed endpoint to health

* Adding download flow

* normalised api routes

* update readme

* feat(market) : default featured

* formatting

* revert changes to autogpt and forge

* Updated Readme

* Eerror when creating an agent from a template installed from (#7697)

fix creating graph from template

* Add dockerfile

* z level fix

* Updated env vars

* updated populate url

* formatting

* fixed linting error

* Set defaults

* Allow only next.js dev server

* fixed url

* removed graph reassignment as due to change in master

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-08-05 16:51:17 +02:00
SwiftyOS
9ae6389c6c fix(autogpt_server): Incorrect graph reassignment 2024-08-05 16:16:56 +02:00
Zamil Majdy
4cf1dd30f1 feat(rnd): Introduce Sub-Graph on Agent Server (#7693)
### Background

This change brings the capability to decompose a graph into sub-graphs. The objective of this feature is to allow a user to build a visually modular, and easier-to-understand graph. Also, allowing you to import a graph into your existing graph, without decluttering your existing graph.

This feature will require more implementation on the UI side, to allow the grouping of subgraph to be represented as a node in the builder.

### Changes 🏗️

Introduced a subgraph functionality with the following property:

* Sub-graph is simply a set of nodes that are grouped together, making it representable as a node.
* Sub-graph input & output pins/schema are the `InputBlock` / `OutputBlock` nodes present in the subgraph.
* The previous point implies that connecting two nodes from different sub-graphs, other than input/output nodes, is not allowed.
* Graph can be nested, but defined flatly, e.g.: graph is now only represented by three components: nodes, links, and subgraphs (a set of list of nodes). A nested subgraph is simply connecting a node inside a subgraph into another `InputBlock` node of another subgraph.
2024-08-05 16:48:14 +07:00
Swifty
c7fdfa0f77 fix(builder): Apply Prettier Formatting (#7695)
formatting
2024-08-05 09:18:08 +02:00
Andy Hooker
6fa7d22c91 feat(builder): Addition of prettier for aligned of development styles (#7629)
* fix(builder): Adding prettier configuration files and to package.

* fix(builder): Running script "format" added to the package.json

* feat(builder): Adding a job to the yaml file. This job will run "format" which leverages prettier.

* feat(builder): Running script "format" and merging master

* feat(builder): Setting configuration to prettier defaults in .prettierrc.json, and adding a requested newline in the .prettierignore

* feat(builder): Updating the CI to not add a job for prettier but instead add a check to verify prettier was run before commiting.

* feat(builder): Confirming CI update fails when user does not run prettier first. Updating with file changes after prettier

* feat(builder): Running prettier write to fix warnings

* fix(builder): Removing .prett
per PR change request

* fix(builder): Running prettier formatter

* fix(builder): Running prettier formatter check found additional files

* fix(builder): Running prettier format

* fix(builder): Removing running "format" command from PR due to a change request.

* fix(builder): Removing running "format" command from PR due to a change request.

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-08-05 09:14:02 +02:00
Amelia Bruno
52bd033a02 tweak(setup): Improvements to setup script (#7469)
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
2024-08-05 00:13:25 -05:00
Andy Hooker
bb5baadeb2 feat(builder): Implementation of UI / UX improvement to editor (#7690)
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-08-05 00:09:31 -05:00
Andy Hooker
db97b24518 feat(builder): Addition of blocks control component (#7688)
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-08-04 23:58:12 -05:00
Andy Hooker
533d7b7da8 feat(builder): Addition of SaveControl component for ControlPanel (#7687)
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-08-04 23:39:42 -05:00
Andy Hooker
183c2a4845 feat(builder): Addition ControlPanel and Separator components (#7680) 2024-08-04 23:38:14 -05:00
alex
6440a8e217 fix punctuation in setup.md (#7689) 2024-08-04 06:53:32 -07:00
Toran Bruce Richards
e0930ba39d feat(Block): Add AdvancedLlmCallBlock (#7677)
* feat(Block): Add AdvancedLlmCallBlock

Adds a block for handling advanced LLM calls, enabling messages to be handled within the AutoGPT builder.

* fix linting
2024-08-02 18:17:03 -05:00
Andy Hooker
a21fd30fce fix(github): Update CODEOWNERS for rnd directories (#7684)
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-08-02 17:23:28 -05:00
Nicholas Tindle
e2df2cd90d Revert "feat(builder): Rewrite node input UI" (#7685) 2024-08-02 17:07:03 -05:00
Toran Bruce Richards
6bdb849150 feat(Block): Add blocks for Building Lists, Dictionaries & Strings (#7678)
* feat(Block): Add block for building lists

* feat(Block): Add block for building dictionaries

* feat(Block): Add TextCombinerBlock for combining multiple input texts

* Fix linting issues where default values are None

---------

Co-authored-by: Bently <tomnoon9@gmail.com>
2024-08-02 16:49:51 -05:00
Bently
8469fafc6f Feat(Builder): Discord bots blocks (#7670)
* Super early version of the discord bots blocks

* updated to add secrets for token + other fixes

* lint & format

* rename DiscordBot to DiscordReader

* add discord-py

* fix poetry lock

* rm duplicated file

* updated name to add Block to end

* update .env.template to add DISCORD_BOT_TOKEN

* updates to add description Field

* swap channel name and message content + add field description

---------

Co-authored-by: Bently <bently@bentlybro.com>
2024-08-02 22:21:58 +01:00
Reinier van der Leer
3c2c3e57a0 feat(builder): Rewrite node input UI (#7626)
- feat(builder): Rewrite & split up `NodeInputField`
  - Create `NodeObjectInputTree`
  - Create `NodeGenericInputField`
  - Create `NodeKeyValueInput`
  - Create `NodeArrayInput`
  - Create `NodeStringInput`
  - Create `NodeNumberInput`
  - Create `NodeBooleanInput`
  - Create `NodeFallbackInput`
  - Create `ClickableInput` from `renderClickableInput(..)`
  - Amend usage in `CustomNode`
  - Remove deprecated/unused styling from `flow.css` and `customnode.css`
  - Fix alignment between `NodeHandle` and `NodeInputField`
  - Split up `BlockIOSchema` & rename to `BlockIOSubSchema`
    - Create `BlockIOObjectSubSchema`
    - Create `BlockIOKVSubSchema`
    - Create `BlockIOArraySubSchema`
    - Create `BlockIOStringSubSchema`
    - Create `BlockIONumberSubSchema`
    - Create `BlockIOBooleanSubSchema`
    - Create `BlockIONullSubSchema`
  - Install `Select` component from shad/cn

- refactor(builder): Move `NodeInputField.tsx` to `node-input.tsx`
2024-08-02 19:28:46 +01:00
lelcruz
ec6bae0467 fix(documentation): Corrected Markdown formatting for server start command (#7649)
Co-authored-by: Leslie Cruz <lelcruz@users.noreply.github.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-08-02 12:33:12 -05:00
Bently
f5fe96260e Fix(Builder): beautifyString duplicated import (#7679) 2024-08-02 15:39:42 +01:00
SwiftyOS
49a18437ac fix(builder) fix merge conflict errors 2024-08-02 16:29:55 +02:00
Reinier van der Leer
3cee893314 fix(builder): Rewrite additionalProperties input field (#7608)
Co-authored-by: Swifty <craigswift13@gmail.com>
2024-08-02 16:11:38 +02:00
Reinier van der Leer
5d1035aeb0 fix(builder): Fix BlockSchema handling & type propagation (#7604)
- Merge `Flow.tsx:CustomNodeData` type definition into `CustomNode.tsx:CustomNodeData`
- Move `lib/types:BlockSchema` type definition into `lib/autogpt-server-api/types` in place of `ObjectSchema`
- Expand and rename `BlockSchema` -> `BlockIOSchema` + `BlockIORootSchema`
- Fix all `BlockIOSchema` related type narrowing checks
- Add warning messages to fallback cases in `NodeInputField` logic

Co-authored-by: Swifty <craigswift13@gmail.com>
2024-08-02 16:09:46 +02:00
Bently
2e2c6fed52 feat(Builder): Implement undo/redo functionality (#7559)
* feat(Builder): Implement undo/redo functionality

* updates to work with latest UI

* add CTRL + Z & CTRL + Y support

* fixed undo/redo for inputs in nodes

* fix for deleting node

* fixes to make the undo/redo work better

* small fix

* Updates based on feedback

* add margin right to space out buttons

* added CTRL + SHIFT + Z for redo
2024-08-02 16:06:40 +02:00
Krzysztof Czerwinski
ca9c52f76a feat(builder): Add Supabase Auth, session and sign in UI (#7655)
This PR adds Supabase Auth (cloud) integration, login and profile UI, configures password login and three OAuth providers: Google, GitHub and Discord.

For `Account` button to show up and ability to login two env vars need to be set in `.env.local`: `NEXT_PUBLIC_SUPABASE_URL` and `NEXT_PUBLIC_SUPABASE_ANON_KEY`. OAuth providers are by the Supabase and don't require env vars.

Email confirmation (for email/password signup) is disabled because there's limit of 3 emails per hour without custom SMTP server configuration. [Link](https://supabase.com/dashboard/project/adfjtextkuilwuhzdjpf/auth/templates) to configure custom SMTP server and email template.

### Added dependencies:
- "@supabase/ssr": "^0.4.0"
- "@supabase/supabase-js": "^2.45.0"
- "react-icons": "^5.2.1"

### Added pages/routes:
- `app/auth/auth-code-error/page.tsx`: displayed when login using OAuth provider fails
- `app/auth/callback/route.ts`: route accessed when logging in using OAuth provider; it passes session code to Supabase
- `app/auth/confirm/route.ts`: accessed when confirming email, users will be directed here from email they get after signing in.
- `app/error/page.tsx`: Generic error page without explanation (any errors should be visible in the console)
- `app/login/page.tsx` and `app/login/actions.ts`: Login page and related login/signup server actions
- `app/profile/page.tsx`: Profile page, displays email address of the user and button to logout

### Changes
- Update `layout.tsx`: add `Log In` button and make icons consistent. The log in button shows up if user is logged out, avatar is shown when logged in, and if supabase is unavailable nothing shows up.
- Login form is verified using `zod` on the frontend (recommended by shadcn) and in case login fails feedback is displayed. On successful login users are redirected to `/profile`
- Add `PasswordInput` component, [source](https://gist.github.com/mjbalcueva/b21f39a8787e558d4c536bf68e267398)
- Add `SupabaseProvider` with context for Supabase accessed via hook `useSupabase(): { supabase: SupabaseClient | null, isLoading: boolean }`
- Add `useUser` hook to get `{ user, session, isLoading, error }` on the client 
- Add `getServerUser`: async function to get `{ user: User | null, error: string | null }` on the server side
- Add `src/middleware.ts` and `client.ts`, `server.ts`, `middleware.ts` in `src/lib/supabase` which are utility functions and middleware to refresh auth token
2024-08-02 12:58:28 +01:00
Zamil Majdy
973822d973 feat(rnd): Add InputBlock & OutputBlock (#7654)
### Background

We need an explicit block for providing input & output for the graph.
This will later allow us to build a subgraph with pre-declared input & output schema.
This will also allow us to set input for the node in the middle of the graph, and enable a graph to have output values.

### Changes 🏗️

* Add InputBlock & OutputBlock
* Add graph structure validation  on the graph execution step that asserts the following property:
    - All mandatory input pin, has to be connected or have a default value, except the `InputBlock` node.
    - All links have to connect valid nodes, and the sink & source name using the valid block field.
2024-08-02 13:33:34 +07:00
Bently
e773329391 Feat(Builder): Clear Status and Output upon graph edit (#7656)
* Feat(Builder): Clear Status and Output upon graph edit

* close output dropdown on graph edit

* make deleting edge clear block outputs

* make it so deleting nodes clears block output
2024-08-01 17:21:01 +01:00
Zamil Majdy
c9d41e69bd feat(rnd): Add postgres schema check on linting step + auto gen migration and schema sync command (poetry run schema) (#7667)
### Background

Migration not being synced has caused issues and CI is not catching this yet.

### Changes 🏗️

* Added schema check in both sqlite & postgres prisma.schema on linting step.
* Introduced `poetry run schema` for syncing prisma.schema + generating migration in both files.
2024-08-01 20:11:07 +07:00
Nicholas Tindle
08905d71f9 docs(server): add docs link to server readme (#7638)
Co-authored-by: Swifty <craigswift13@gmail.com>
2024-08-01 14:32:08 +02:00
Aarushi
8becde370c docs(ollama) Add ollama to mkdocs (#7666)
add ollama to mkdocs
2024-08-01 13:14:40 +01:00
Aarushi
dccc33152b feat(docs) Add how to run ollama with AutoGPT (#7665)
add ollama howto
2024-08-01 12:12:01 +01:00
Aarushi
b23bd9c479 feat(server): Add JWT validation (#7642)
* add auth middleware

* update readnme

* Update rnd/autogpt_server/pyproject.toml

Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>

* address newline feedback

* update poetry lock

---------

Co-authored-by: Krzysztof Czerwinski <34861343+kcze@users.noreply.github.com>
2024-08-01 11:11:40 +01:00
Aarushi
ac45b7cae9 feat(rnd,infra): Add Helm linting in CI (#7633)
* Set up helm and tf for backend

* update helm charts and settings

* remove example files

* use latest tag

* delay and timeouts for probes

* env based pyro host

* default backend

* linting

* add helm linting in CI

* read from settings

* fix formatting

* update to use config
2024-08-01 09:22:04 +01:00
Aarushi
3d54a9103c feat(rnd, infra): Add deployment for backend (#7612)
* Set up helm and tf for backend

* update helm charts and settings

* remove example files

* use latest tag

* delay and timeouts for probes

* env based pyro host

* default backend

* linting

* read from settings

* fix formatting

* update to use config
2024-08-01 09:21:12 +01:00
Nicholas Tindle
ca7182403b fix(server): enable other methods of setting configs outside of the config.json file (#7645) 2024-07-31 12:33:36 -05:00
Zamil Majdy
53826ab360 fix(rnd): Fix bug caused by different AJV version (#7653) 2024-07-31 16:47:31 +07:00
Andy Hooker
eac5548023 feat(builder): UI / UX upgrade and simplification of tailwind styles (#7647)
* fix(builder): Implementing a basic shadCn theme until color palette is decided upon

* feat(builder): Separating NavBar into its own component and providing a standard UI/UX Approach

* feat(builder): Removing old implementation of logo, removing excessive css implementation, updating styles to better support standard desktop views.

* feature(builder): Addition of UI component Sheet from ShadCn for update
2024-07-31 10:43:13 +02:00
Zamil Majdy
122f544966 fix(rnd): Disable unused prisma connection on pyro API Server process (#7641)
### Background

Pyro for API Server is not using Prisma, but still holding a Prisma connection.
The fast-API thread is also holding a Prisma connection, making Prisma connected in two different loop within a single process.

### Changes 🏗️

Disable a Prisma connection on Pyro thread for Server API process.
Fix test flakiness issue due to concurrency issue.
2024-07-30 22:33:28 +07:00
Zamil Majdy
29ba4c2c73 feat(rnd): Add freezed/static input link feature for retaining input data to be re-used in multiple node executions (#7631)
### Background

Input from the input pin is consumed only once. While this is required in most of the use cases, there are some cases where the input can only be produced once, and that input needs to be re-used just like an input default value, that is passively providing input data, without triggering any execution. The scope of this change is providing that functionality in the link level, this property will be called **`static link`** in this system.

### Changes 🏗️

Provides a static link feature with the following behaviours:
* A link can be marked `static` to become a static link.
* Once a node produces an output it will persist the output data and propagate the output to the other nodes through the link, for a static link, instead of making the data queued in the input pin, it will override the default value.
* Any input executions still waiting for the input will be backfilled using this output produced by the static link.
* And any upcoming executions that will use the input will always reuse the output produced by the static link.

See the added test to see the expected usage.
2024-07-30 10:37:38 +07:00
Nicholas Tindle
76feead3b1 docs(server): written setup guide for server (#7595)
Co-authored-by: Swifty <craigswift13@gmail.com>
2024-07-29 22:24:03 +01:00
Bently
081df805df Fix(Builder): Copy and Paste when editing textbox causes issue (#7636)
Fix(Builder): Copy and Paste when editing textbox causes graph elements to be erroneously pasted
2024-07-29 21:55:19 +01:00
Nicholas Tindle
acc1d79146 feat(builder): add delete handles to the edges and nodes (#7614)
Co-authored-by: Andy Hooker <58448663+andrewhooker2@users.noreply.github.com>
Co-authored-by: Toran Bruce Richards <toran.richards@gmail.com>
2024-07-29 21:30:56 +01:00
Nicholas Tindle
07811b2133 fix(builder): show colors for all statuses (#7625) 2024-07-29 20:04:48 +01:00
Amr Aly
01b6c2d4bf Update README.advanced.md (#7607)
* Update README.advanced.md

The copy .env command is wrong. it should be .env.example instead of env.example

* fix(server): extra space removal

---------

Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
2024-07-29 12:00:58 +01:00
Krzysztof Czerwinski
905b1df218 feat(builder): Add input validation on the frontend (#7606)
- Add `ajv` dependency to check values against json schema
- Add `errors` and `setErrors` to `CustomNodeData`
- Add `validateNodes` run before executing agent
- Add `*` on labels for required fields
- Add `setNestedProperty` and `removeEmptyStringsAndNulls` utility function
2024-07-29 10:17:27 +01:00
Andy Hooker
edf84fb9f8 feat(builder): Apply standard theming for shadCn and centralize providers (#7622) 2024-07-26 17:59:44 -05:00
Swifty
b62c24dc77 Add Marketplace template (#7605)
* init

* Added sentry.io integration

* updated readme
2024-07-26 17:11:26 +02:00
Zamil Majdy
dfa855f533 fix(rnd): Fix broken server execution update due to split prisma connection to different loops (#7620) 2024-07-26 15:47:41 +01:00
Aarushi
da2111bafb fix(server): Add missing PG migrations (#7619)
missing migrations
2024-07-26 14:38:05 +01:00
Reinier van der Leer
b2dba39810 fix(builder/api-client): Fix websocket client types (#7603)
- Fix type signatures of `sendWebSocketMessage(..)`, `onWebSocketMessage(..)`, `runGraph(..)` in `autogpt-server-api/client`
  - Add `WebsocketMessageTypeMap`

- Fix type signature of `updateNodesWithExecutionData` in `FlowEditor`
2024-07-26 13:26:11 +02:00
Zamil Majdy
d2a5bb286f feat(rnd): Fix concurrency issue on Agent Server & Apply max-1-execution-per-node constraint in graph execution (#7551)
### Background

When multiple executors are executing the same node within the same graph execution, two node executions can read the same queue of input and read the same value—making the data that is supposed to be consumed once, consumed by two executions. The lack of lock & concurrency support for parallel execution within a single graph causes this issue.

Node concurrency also introduces poor UX in the current frontend implementation, when two nodes are executed in parallel, the current UI will not display its parallel execution update, but instead, it shows the updates that override each other. Until the execution observability is improved on the builder UI, this capability will be limited.

### Changes 🏗️

The scope of this change is to solve this issue by:
* Decouple Graph execution & Node execution, each has its own configured process pool.
* Make sure there is only 1 execution per node (we still allow parallel executions on different nodes) in a graph.
* Fixed concurrency issue by adding distributed lock API on agent_server.
* Few cleanups:
    - Add more logging with geid & neid prefix on graph/node executions
    - Moved execution status update to agent-server for a single source of status update (required by conn-manager/web-socket)
    - Configured node parallelism to 10 & graph parallelism to 10 by default, so in the very rare worst-case, there can be 100 node executions.
    - Re-use server resource for each integration test run
2024-07-26 17:08:03 +07:00
Toran Bruce Richards
36b9a0a930 feat(Blocks): Add conditional logic block (#7536)
Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-07-25 14:25:07 -05:00
Aarushi
f40db85b43 feat(rnd, infra) Add static ips module (#7588)
* add terraform

* gitignore update

* linting

* formatting and linting in ci

* store state in backend bucket

* Update .github/workflows/autogpt-infra-ci.yml

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

* add static ips module

* formatting

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
Co-authored-by: Swifty <craigswift13@gmail.com>
2024-07-25 17:50:19 +01:00
Reinier van der Leer
0767b17779 dx: Set Python type checking mode to "basic" for all subprojects (#7599) 2024-07-25 12:25:56 +01:00
Nicholas Tindle
0f0c13bae8 fix(server): gitignore was missing new file name (#7596)
Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
2024-07-25 10:07:16 +01:00
A.Daee
3b0cd9518d feat(froge): Improvement in web components (#7068)
- Add `duckduckgo_backend` field to `WebSearchComponent` configuration
- Add `selenium_proxy` to `WebSeleniumComponent` configuration
- Update docs
2024-07-25 10:02:34 +01:00
Aarushi
22b6dbbf6a feat(rnd,infra) Set up terraform (#7565)
* add terraform

* gitignore update

* linting

* formatting and linting in ci

* store state in backend bucket
2024-07-25 09:45:36 +01:00
Reinier van der Leer
d9a1a1edc8 fix(builder): Correctly load node connections (#7592)
- Set `node.data.connections` based on `graph.links` in `loadGraph(..)`
- Use reactflow's built-in `useNodesState`, `useEdgesState` to replace some boilerplate functions that do exactly the same

Resolves #7392
2024-07-25 09:30:35 +01:00
vasnt
3c0d37d5d1 docs(forge):fix #7198 dead image links (#7593)
Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
2024-07-24 22:55:07 -05:00
Bently
c98061bc3b fix(Builder): fixes to copy and pasted blocks (#7591)
* fix(Builder): fixes to copy and pasted blocks

* clear the blocks state on paste
2024-07-24 17:00:59 +01:00
Toran Bruce Richards
a8c0cbef54 refactor(Blocks): Simplify MathsBlock and CounterBlock to Return Numeric Results Only (#7582)
* refactor(MathsBlock): Simplify output to return numeric result directly

- Remove MathsResult class and explanation field
- Update Output schema to use float type
- Simplify run method to yield numeric result only
- Adjust error handling to return inf or nan for errors
- Update test cases to reflect new output structure

* run format

* refactor(CounterBlock): Simplify output to return count as integer

- Remove CounterResult class
- Update Output schema to use int type directly
- Simplify run method to yield count without explanation
- Modify error handling to return -1 for any errors
- Update test case to reflect new output structure
2024-07-24 08:55:18 -05:00
Zamil Majdy
8ccd14c4bf fix(rnd): Disable BlockInstallationBlock and add disable field for block (#7583) 2024-07-24 08:52:14 -05:00
Nicholas Tindle
3e384c9771 ci(server): add sqlite processing (#7586)
* ci(server): add sqlite processing

* ci(server): try setting DATABASE_URL based on db platform

* fix(server): swap default back to sqlite

* ci(server): go back to database url

---------

Co-authored-by: Aarushi <50577581+aarushik93@users.noreply.github.com>
2024-07-24 14:46:39 +01:00
Aarushi
22f2a05f08 feat(server) Fix schema file (#7589)
* fix schema file

* remove invalide migrations

* make sqlite url hardcode
2024-07-24 14:31:48 +01:00
Krzysztof Czerwinski
e94a7b08c9 refactor(builder): Move renderInputField to NodeInputField component (#7581) 2024-07-24 11:14:20 +01:00
Aarushi
7b8928f49b feat(server) Update readme (#7580)
update readme
2024-07-24 16:53:09 +07:00
Aarushi
699087e289 feat(rnd) Add dockerfiles (#7523)
* replace SQLite with Postgres

* dockerfiles and optional docker compose set up

* Update rnd/autogpt_builder/Dockerfile

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

* address feedback

* Update .dockerignore

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

* Remove example files folder

* remove backend and frontend from docker compose

---------

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2024-07-24 10:01:22 +01:00
Bently
aa8ca37f86 feat(Builder): Work on copy and paste of blocks (#7564)
Co-authored-by: Swifty <craigswift13@gmail.com>
2024-07-24 09:30:48 +01:00
Toran Bruce Richards
8bdb48cba4 feat(blocks): Add basic YouTube transcriber block (#7495)
* feat: Add YouTubeTranscriber block for extracting transcripts from YouTube videos

* feat: Add youtube-transcript-api dependency to pyproject.toml

* feat: Add SchemaField and test_mock to YoutTube Transcriber.

* feat: update lock

* fix(server): the agbenchmark was out of date

* fix(server): linting

* fix(server): drop mock

* fix(server): poetry locked in

* fix(server): test had ... at the end?

---------

Co-authored-by: Nicholas Tindle <nicholas.tindle@agpt.co>
2024-07-24 09:00:09 +01:00
Bently
03ea51b266 feat(Builder): Limit Output preview size (#7554)
* feat(Builder): Limit Output preview size

* fix indent
2024-07-24 09:23:43 +02:00
Aarushi
77034f2df0 feat(blocks): Add 405b on ollama (#7573)
405b on ollama
2024-07-24 09:22:18 +02:00
Nicholas Tindle
ccf4397883 feat(server): author and contributor information on blocks (#7575) 2024-07-24 09:19:33 +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
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
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
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
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
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
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
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
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
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
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
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
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
Swifty
2cca4fa47f clean(benchmark): Remove Depreciated Challenges (#7144)
* Remove depreciated challanges

* Update license and pyproject.toml
2024-05-20 15:01:36 +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
4f81246fd4 Fix poetry install issue on ARM64 & python 3.12 (#7145) 2024-05-14 09:10:55 -05: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
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
2940 changed files with 891176 additions and 17472 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 +0,0 @@
.*
*.template
*.yaml
*.yml
*.md
*.png
!BULLETIN.md

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

13
.gitattributes vendored
View File

@@ -1,5 +1,10 @@
# Exclude VCR cassettes from stats
tests/**/cassettes/**.y*ml linguist-generated
classic/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
classic/forge/tests/vcr_cassettes/**/**.y*ml linguist-generated
* text=auto

7
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1,7 @@
* @Significant-Gravitas/maintainers
.github/workflows/ @Significant-Gravitas/devops
classic/forge/ @Significant-Gravitas/forge-maintainers
classic/benchmark/ @Significant-Gravitas/benchmark-maintainers
classic/frontend/ @Significant-Gravitas/frontend-maintainers
autogpt_platform/infra @Significant-Gravitas/devops
.github/CODEOWNERS @Significant-Gravitas/admins

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,23 @@
<!-- ⚠️ 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: -->
### Testing 🔍
> [!NOTE]
Only for the new autogpt platform, currently in autogpt_platform/
<!--
Please make sure your changes have been tested and are in good working condition.
Here is a list of our critical paths, if you need some inspiration on what and how to test:
-->
<!-- 📢 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. -->
- Create from scratch and execute an agent with at least 3 blocks
- Import an agent from file upload, and confirm it executes correctly
- Upload agent to marketplace
- Import an agent from marketplace and confirm it executes correctly
- Edit an agent from monitor, and confirm it executes correctly

27
.github/labeler.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
Classic AutoGPT Agent:
- changed-files:
- any-glob-to-any-file: classic/original_autogpt/**
Classic Benchmark:
- changed-files:
- any-glob-to-any-file: classic/benchmark/**
Classic Frontend:
- changed-files:
- any-glob-to-any-file: classic/frontend/**
Forge:
- changed-files:
- any-glob-to-any-file: classic/forge/**
documentation:
- changed-files:
- any-glob-to-any-file: docs/**
platform/frontend:
- changed-files:
- any-glob-to-any-file: autogpt_platform/frontend/**
platform/backend:
- changed-files:
- any-glob-to-any-file: autogpt_platform/backend/**

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

138
.github/workflows/classic-autogpt-ci.yml vendored Normal file
View File

@@ -0,0 +1,138 @@
name: Classic - AutoGPT CI
on:
push:
branches: [ master, development, ci-test* ]
paths:
- '.github/workflows/classic-autogpt-ci.yml'
- 'classic/original_autogpt/**'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/classic-autogpt-ci.yml'
- 'classic/original_autogpt/**'
concurrency:
group: ${{ format('classic-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: classic/original_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('classic/original_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: classic/original_autogpt/logs/

View File

@@ -1,11 +1,11 @@
name: Purge Docker CI cache
name: Classic - 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,21 @@ 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:
context: classic/
file: classic/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 +39,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 }}

View File

@@ -0,0 +1,166 @@
name: Classic - AutoGPT Docker CI
on:
push:
branches: [ master, development ]
paths:
- '.github/workflows/classic-autogpt-docker-ci.yml'
- 'classic/original_autogpt/**'
- 'classic/forge/**'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/classic-autogpt-docker-ci.yml'
- 'classic/original_autogpt/**'
- 'classic/forge/**'
concurrency:
group: ${{ format('classic-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: classic/original_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:
context: classic/
file: classic/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:
context: classic/
file: classic/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: Classic - AutoGPT Docker Release
on:
release:
@@ -16,31 +16,36 @@ 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:
context: classic/
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 +53,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 +69,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 }}

View File

@@ -0,0 +1,76 @@
name: Classic - Agent smoke tests
on:
workflow_dispatch:
schedule:
- cron: '0 8 * * *'
push:
branches: [ master, development, ci-test* ]
paths:
- '.github/workflows/classic-autogpts-ci.yml'
- 'classic/original_autogpt/**'
- 'classic/forge/**'
- 'classic/benchmark/**'
- 'classic/run'
- 'classic/cli.py'
- 'classic/setup.py'
- '!**/*.md'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/classic-autogpts-ci.yml'
- 'classic/original_autogpt/**'
- 'classic/forge/**'
- 'classic/benchmark/**'
- 'classic/run'
- 'classic/cli.py'
- 'classic/setup.py'
- '!**/*.md'
defaults:
run:
shell: bash
working-directory: classic
jobs:
serve-agent-protocol:
runs-on: ubuntu-latest
strategy:
matrix:
agent-name: [ original_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: ./classic/${{ 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' }}

View File

@@ -0,0 +1,169 @@
name: Classic - AGBenchmark CI
on:
push:
branches: [ master, development, ci-test* ]
paths:
- 'classic/benchmark/**'
- '!classic/benchmark/reports/**'
- .github/workflows/classic-benchmark-ci.yml
pull_request:
branches: [ master, development, release-* ]
paths:
- 'classic/benchmark/**'
- '!classic/benchmark/reports/**'
- .github/workflows/classic-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: classic/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('classic/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: classic
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)|(../classic/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: Classic - 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: ./classic/benchmark/
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
- name: Build project for distribution
working-directory: ./classic/benchmark/
run: poetry build
- name: Install dependencies
working-directory: ./classic/benchmark/
run: poetry install
- name: Check Version
working-directory: ./classic/benchmark/
id: check-version
run: |
echo version=$(poetry version --short) >> $GITHUB_OUTPUT
- name: Create Release
uses: ncipollo/release-action@v1
with:
artifacts: "classic/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: ./classic/benchmark/
run: poetry publish -u __token__ -p ${{ secrets.PYPI_API_TOKEN }}

236
.github/workflows/classic-forge-ci.yml vendored Normal file
View File

@@ -0,0 +1,236 @@
name: Classic - Forge CI
on:
push:
branches: [ master, development, ci-test* ]
paths:
- '.github/workflows/classic-forge-ci.yml'
- 'classic/forge/**'
- '!classic/forge/tests/vcr_cassettes'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/classic-forge-ci.yml'
- 'classic/forge/**'
- '!classic/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: classic/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('classic/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: classic/forge/logs/

View File

@@ -0,0 +1,60 @@
name: Classic - Frontend CI/CD
on:
push:
branches:
- master
- development
- 'ci-test*' # This will match any branch that starts with "ci-test"
paths:
- 'classic/frontend/**'
- '.github/workflows/classic-frontend-ci.yml'
pull_request:
paths:
- 'classic/frontend/**'
- '.github/workflows/classic-frontend-ci.yml'
jobs:
build:
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
env:
BUILD_BRANCH: ${{ format('classic-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 classic/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 classic/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: classic/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 }}"

View File

@@ -0,0 +1,151 @@
name: Classic - Python checks
on:
push:
branches: [ master, development, ci-test* ]
paths:
- '.github/workflows/classic-python-checks-ci.yml'
- 'classic/original_autogpt/**'
- 'classic/forge/**'
- 'classic/benchmark/**'
- '**.py'
- '!classic/forge/tests/vcr_cassettes'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/classic-python-checks-ci.yml'
- 'classic/original_autogpt/**'
- 'classic/forge/**'
- 'classic/benchmark/**'
- '**.py'
- '!classic/forge/tests/vcr_cassettes'
concurrency:
group: ${{ format('classic-python-checks-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: |
original_autogpt:
- classic/original_autogpt/autogpt/**
- classic/original_autogpt/tests/**
- classic/original_autogpt/poetry.lock
forge:
- classic/forge/forge/**
- classic/forge/tests/**
- classic/forge/poetry.lock
benchmark:
- classic/benchmark/agbenchmark/**
- classic/benchmark/tests/**
- classic/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 classic/${{ matrix.sub-package }} install
# Lint
- name: Lint (isort)
run: poetry run isort --check .
working-directory: classic/${{ matrix.sub-package }}
- name: Lint (Black)
if: success() || failure()
run: poetry run black --check .
working-directory: classic/${{ matrix.sub-package }}
- name: Lint (Flake8)
if: success() || failure()
run: poetry run flake8 .
working-directory: classic/${{ 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 classic/${{ matrix.sub-package }} install
# Typecheck
- name: Typecheck
if: success() || failure()
run: poetry run pyright
working-directory: classic/${{ matrix.sub-package }}

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

View File

@@ -0,0 +1,56 @@
name: AutoGPT Platform - Infra
on:
push:
branches: [ master ]
paths:
- '.github/workflows/platform-autogpt-infra-ci.yml'
- 'autogpt_platform/infra/**'
pull_request:
paths:
- '.github/workflows/platform-autogpt-infra-ci.yml'
- 'autogpt_platform/infra/**'
defaults:
run:
shell: bash
working-directory: autogpt_platform/infra
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: TFLint
uses: pauloconnor/tflint-action@v0.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tflint_path: terraform/
tflint_recurse: true
tflint_changed_only: false
- name: Set up Helm
uses: azure/setup-helm@v4.2.0
with:
version: v3.14.4
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.6.0
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch ${{ github.event.repository.default_branch }}

View File

@@ -0,0 +1,155 @@
name: AutoGPT Platform - Backend CI
on:
push:
branches: [master, development, ci-test*]
paths:
- ".github/workflows/platform-backend-ci.yml"
- "autogpt_platform/backend/**"
pull_request:
branches: [master, development, release-*]
paths:
- ".github/workflows/platform-backend-ci.yml"
- "autogpt_platform/backend/**"
concurrency:
group: ${{ format('backend-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_platform/backend
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 || 'postgres' }}
password: ${{ secrets.DB_PASS || 'postgres' }}
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('autogpt_platform/backend/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
- name: Run Database Migrations
run: poetry run prisma migrate dev --name updates
env:
CONNECTION_STR: ${{ steps.postgres.outputs.connection-uri }}
- id: lint
name: Run Linter
run: poetry run lint
- name: Run pytest with coverage
run: |
if [[ "${{ runner.debug }}" == "1" ]]; then
poetry run pytest -vv -o log_cli=true -o log_cli_level=DEBUG test
else
poetry run pytest -vv test
fi
if: success() || (failure() && steps.lint.outcome == 'failure')
env:
LOG_LEVEL: ${{ runner.debug && 'DEBUG' || 'INFO' }}
env:
CI: true
PLAIN_OUTPUT: True
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
DB_USER: ${{ secrets.DB_USER || 'postgres' }}
DB_PASS: ${{ secrets.DB_PASS || 'postgres' }}
DB_NAME: postgres
DB_PORT: 5432
RUN_ENV: local
PORT: 8080
DATABASE_URL: postgresql://${{ secrets.DB_USER || 'postgres' }}:${{ secrets.DB_PASS || 'postgres' }}@localhost:5432/${{ secrets.DB_NAME || 'postgres'}}
# - name: Upload coverage reports to Codecov
# uses: codecov/codecov-action@v4
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# flags: backend,${{ runner.os }}

View File

@@ -0,0 +1,41 @@
name: AutoGPT Platform - Frontend CI
on:
push:
branches: [ master ]
paths:
- '.github/workflows/platform-frontend-ci.yml'
- 'autogpt_platform/frontend/**'
pull_request:
paths:
- '.github/workflows/platform-frontend-ci.yml'
- 'autogpt_platform/frontend/**'
defaults:
run:
shell: bash
working-directory: autogpt_platform/frontend
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: Check formatting with Prettier
run: |
npx prettier --check .
- name: Run lint
run: |
npm run lint

View File

@@ -0,0 +1,34 @@
name: Repo - 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,9 +1,12 @@
name: "Pull Request auto-label"
name: Repo - 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:
- 'classic/forge/tests/vcr_cassettes'
- 'classic/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

20
.github/workflows/repo-stats.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Repo - Github 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,31 @@
name: Repo - PR Status Checker
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
status-check:
name: Check PR Status
runs-on: ubuntu-latest
steps:
# - name: Wait some time for all actions to start
# run: sleep 30
- uses: actions/checkout@v4
# with:
# fetch-depth: 0
- 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: Check PR Status
run: |
echo "Current directory before running Python script:"
pwd
echo "Attempting to run Python script:"
python .github/workflows/scripts/check_actions_status.py
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -0,0 +1,109 @@
import json
import os
import requests
import sys
import time
from typing import Dict, List, Tuple
def get_environment_variables() -> Tuple[str, str, str, str, str]:
"""Retrieve and return necessary environment variables."""
try:
with open(os.environ["GITHUB_EVENT_PATH"]) as f:
event = json.load(f)
sha = event["pull_request"]["head"]["sha"]
return (
os.environ["GITHUB_API_URL"],
os.environ["GITHUB_REPOSITORY"],
sha,
os.environ["GITHUB_TOKEN"],
os.environ["GITHUB_RUN_ID"],
)
except KeyError as e:
print(f"Error: Missing required environment variable or event data: {e}")
sys.exit(1)
def make_api_request(url: str, headers: Dict[str, str]) -> Dict:
"""Make an API request and return the JSON response."""
try:
print("Making API request to:", url)
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
return response.json()
except requests.RequestException as e:
print(f"Error: API request failed. {e}")
sys.exit(1)
def process_check_runs(check_runs: List[Dict]) -> Tuple[bool, bool]:
"""Process check runs and return their status."""
runs_in_progress = False
all_others_passed = True
for run in check_runs:
if str(run["name"]) != "Check PR Status":
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:
runs_in_progress = True
print(f"Check run {run['name']} (ID: {run['id']}) is still {status}.")
all_others_passed = False
else:
print(
f"Skipping check run {run['name']} (ID: {run['id']}) as it is the current run."
)
return runs_in_progress, all_others_passed
def main():
api_url, repo, sha, github_token, current_run_id = get_environment_variables()
endpoint = f"{api_url}/repos/{repo}/commits/{sha}/check-runs"
headers = {
"Accept": "application/vnd.github.v3+json",
}
if github_token:
headers["Authorization"] = f"token {github_token}"
print(f"Current run ID: {current_run_id}")
while True:
data = make_api_request(endpoint, headers)
check_runs = data["check_runs"]
print("Processing check runs...")
print(check_runs)
runs_in_progress, all_others_passed = process_check_runs(check_runs)
if not runs_in_progress:
break
print(
"Some check runs are still in progress. Waiting 3 minutes before checking again..."
)
time.sleep(180)
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)
if __name__ == "__main__":
main()

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 }}

36
.gitignore vendored
View File

@@ -1,26 +1,21 @@
## Original ignores
autogpt/keys.py
autogpt/*json
autogpt/node_modules/
autogpt/__pycache__/keys.cpython-310.pyc
autogpt/auto_gpt_workspace
package-lock.json
*.pyc
.github_access_token
classic/original_autogpt/keys.py
classic/original_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
classic/benchmark/agbenchmark/reports/
# Nodejs
package-lock.json
# Allow for locally private items
# private
pri*
# ignore
ig*
.github_access_token
LICENSE.rtf
autogpt_platform/backend/settings.py

6
.gitmodules vendored Normal file
View File

@@ -0,0 +1,6 @@
[submodule "classic/forge/tests/vcr_cassettes"]
path = classic/forge/tests/vcr_cassettes
url = https://github.com/Significant-Gravitas/Auto-GPT-test-cassettes
[submodule "autogpt_platform/supabase"]
path = autogpt_platform/supabase
url = https://github.com/supabase/supabase.git

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 classic/original_autogpt run isort
files: ^classic/original_autogpt/
types: [file, python]
language: system
- id: isort-forge
name: Lint (isort) - Forge
entry: poetry -C classic/forge run isort
files: ^classic/forge/
types: [file, python]
language: system
- id: isort-benchmark
name: Lint (isort) - Benchmark
entry: poetry -C classic/benchmark run isort
files: ^classic/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: ^classic/original_autogpt/(autogpt|scripts|tests)/
args: [--config=classic/original_autogpt/.flake8]
- id: flake8
name: Lint (Flake8) - Forge
alias: flake8-forge
files: ^classic/forge/(forge|tests)/
args: [--config=classic/forge/.flake8]
- id: flake8
name: Lint (Flake8) - Benchmark
alias: flake8-benchmark
files: ^classic/benchmark/(agbenchmark|tests)/((?!reports).)*[/.]
args: [--config=classic/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 classic/original_autogpt run pyright
args: [-p, autogpt, autogpt]
# include forge source (since it's a path dependency) but exclude *_test.py files:
files: ^(classic/original_autogpt/((autogpt|scripts|tests)/|poetry\.lock$)|classic/forge/(classic/forge/.*(?<!_test)\.py|poetry\.lock)$)
types: [file]
language: system
pass_filenames: false
- id: pyright
name: Typecheck - Forge
alias: pyright-forge
entry: poetry -C classic/forge run pyright
args: [-p, forge, forge]
files: ^classic/forge/(classic/forge/|poetry\.lock$)
types: [file]
language: system
pass_filenames: false
- id: pyright
name: Typecheck - Benchmark
alias: pyright-benchmark
entry: poetry -C classic/benchmark run pyright
args: [-p, benchmark, benchmark]
files: ^classic/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 classic/original_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: ^(classic/original_autogpt/((autogpt|tests)/|poetry\.lock$)|classic/forge/(classic/forge/.*(?<!_test)\.py|poetry\.lock)$)
language: system
pass_filenames: false
- id: pytest-forge
name: Run tests - Forge (excl. slow tests)
entry: bash -c 'cd classic/forge && poetry run pytest --cov=forge -m "not slow"'
files: ^classic/forge/(classic/forge/|tests/|poetry\.lock$)
language: system
pass_filenames: false
- id: pytest-benchmark
name: Run tests - Benchmark
entry: bash -c 'cd classic/benchmark && poetry run pytest --cov=benchmark'
files: ^classic/benchmark/(agbenchmark/|tests/|poetry\.lock$)
language: system
pass_filenames: false
always_run: true

61
.vscode/all-projects.code-workspace vendored Normal file
View File

@@ -0,0 +1,61 @@
{
"folders": [
{
"name": "autogpt_server",
"path": "../autogpt_platform/autogpt_server"
},
{
"name": "autogpt_builder",
"path": "../autogpt_platform/autogpt_builder"
},
{
"name": "market",
"path": "../autogpt_platform/market"
},
{
"name": "lib",
"path": "../autogpt_platform/autogpt_libs"
},
{
"name": "infra",
"path": "../autogpt_platform/infra"
},
{
"name": "docs",
"path": "../docs"
},
{
"name": "[root]",
"path": ".."
},
{
"name": "classic - autogpt",
"path": "../classic/original_autogpt"
},
{
"name": "classic - benchmark",
"path": "../classic/benchmark"
},
{
"name": "classic - forge",
"path": "../classic/forge"
},
{
"name": "classic - frontend",
"path": "../classic/frontend"
},
],
"settings": {
"python.analysis.typeCheckingMode": "basic"
},
"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

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

259
README.md

File diff suppressed because one or more lines are too long

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

@@ -1,5 +0,0 @@
"""Auto-GPT: A GPT powered AI Assistant"""
import autogpt.cli
if __name__ == "__main__":
autogpt.cli.main()

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."

View File

@@ -1,109 +0,0 @@
"""Main script for the autogpt package."""
import click
@click.group(invoke_without_command=True)
@click.option("-c", "--continuous", is_flag=True, help="Enable Continuous Mode")
@click.option(
"--skip-reprompt",
"-y",
is_flag=True,
help="Skips the re-prompting messages at the beginning of the script",
)
@click.option(
"--ai-settings",
"-C",
help="Specifies which ai_settings.yaml file to use, will also automatically skip the re-prompt.",
)
@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("--debug", is_flag=True, help="Enable Debug Mode")
@click.option("--gpt3only", is_flag=True, help="Enable GPT3.5 Only Mode")
@click.option("--gpt4only", is_flag=True, help="Enable GPT4 Only Mode")
@click.option(
"--use-memory",
"-m",
"memory_type",
type=str,
help="Defines which Memory backend to use",
)
@click.option(
"-b",
"--browser-name",
help="Specifies which web-browser to use when using selenium to scrape the web.",
)
@click.option(
"--allow-downloads",
is_flag=True,
help="Dangerous: Allows Auto-GPT to download files natively.",
)
@click.option(
"--skip-news",
is_flag=True,
help="Specifies whether to suppress the output of latest news on startup.",
)
@click.option(
# TODO: this is a hidden option for now, necessary for integration testing.
# We should make this public once we're ready to roll out agent specific workspaces.
"--workspace-directory",
"-w",
type=click.Path(),
hidden=True,
)
@click.option(
"--install-plugin-deps",
is_flag=True,
help="Installs external dependencies for 3rd party plugins.",
)
@click.pass_context
def main(
ctx: click.Context,
continuous: bool,
continuous_limit: int,
ai_settings: str,
skip_reprompt: bool,
speak: bool,
debug: bool,
gpt3only: bool,
gpt4only: bool,
memory_type: str,
browser_name: str,
allow_downloads: bool,
skip_news: bool,
workspace_directory: str,
install_plugin_deps: bool,
) -> None:
"""
Welcome to AutoGPT an experimental open-source application showcasing the capabilities of the GPT-4 pushing the boundaries of AI.
Start an Auto-GPT assistant.
"""
# Put imports inside function to avoid importing everything when starting the CLI
from autogpt.main import run_auto_gpt
if ctx.invoked_subcommand is None:
run_auto_gpt(
continuous,
continuous_limit,
ai_settings,
skip_reprompt,
speak,
debug,
gpt3only,
gpt4only,
memory_type,
browser_name,
allow_downloads,
skip_news,
workspace_directory,
install_plugin_deps,
)
if __name__ == "__main__":
main()

View File

@@ -1,31 +0,0 @@
"""Code evaluation module."""
from __future__ import annotations
from autogpt.commands.command import command
from autogpt.llm import call_ai_function
@command(
"analyze_code",
"Analyze Code",
'"code": "<full_code_string>"',
)
def analyze_code(code: str) -> list[str]:
"""
A function that takes in a string and returns a response from create chat
completion api call.
Parameters:
code (str): Code to be evaluated.
Returns:
A result string from create chat completion. A list of suggestions to
improve the code.
"""
function_string = "def analyze_code(code: str) -> list[str]:"
args = [code]
description_string = (
"Analyzes the given code and returns a list of suggestions for improvements."
)
return call_ai_function(function_string, args, description_string)

View File

@@ -1,61 +0,0 @@
"""Commands for converting audio to text."""
import json
import requests
from autogpt.commands.command import command
from autogpt.config import Config
CFG = Config()
@command(
"read_audio_from_file",
"Convert Audio to text",
'"filename": "<filename>"',
CFG.huggingface_audio_to_text_model,
"Configure huggingface_audio_to_text_model.",
)
def read_audio_from_file(filename: str) -> str:
"""
Convert audio to text.
Args:
filename (str): The path to the audio file
Returns:
str: The text from the audio
"""
with open(filename, "rb") as audio_file:
audio = audio_file.read()
return read_audio(audio)
def read_audio(audio: bytes) -> str:
"""
Convert audio to text.
Args:
audio (bytes): The audio to convert
Returns:
str: The text from the audio
"""
model = CFG.huggingface_audio_to_text_model
api_url = f"https://api-inference.huggingface.co/models/{model}"
api_token = CFG.huggingface_api_token
headers = {"Authorization": f"Bearer {api_token}"}
if api_token is None:
raise ValueError(
"You need to set your Hugging Face API token in the config file."
)
response = requests.post(
api_url,
headers=headers,
data=audio,
)
text = json.loads(response.content.decode("utf-8"))["text"]
return f"The audio says: {text}"

View File

@@ -1,156 +0,0 @@
import functools
import importlib
import inspect
from typing import Any, Callable, Optional
# Unique identifier for auto-gpt commands
AUTO_GPT_COMMAND_IDENTIFIER = "auto_gpt_command"
class Command:
"""A class representing a command.
Attributes:
name (str): The name of the command.
description (str): A brief description of what the command does.
signature (str): The signature of the function that the command executes. Defaults to None.
"""
def __init__(
self,
name: str,
description: str,
method: Callable[..., Any],
signature: str = "",
enabled: bool = True,
disabled_reason: Optional[str] = None,
):
self.name = name
self.description = description
self.method = method
self.signature = signature if signature else str(inspect.signature(self.method))
self.enabled = enabled
self.disabled_reason = disabled_reason
def __call__(self, *args, **kwargs) -> Any:
if not self.enabled:
return f"Command '{self.name}' is disabled: {self.disabled_reason}"
return self.method(*args, **kwargs)
def __str__(self) -> str:
return f"{self.name}: {self.description}, args: {self.signature}"
class CommandRegistry:
"""
The CommandRegistry class is a manager for a collection of Command objects.
It allows the registration, modification, and retrieval of Command objects,
as well as the scanning and loading of command plugins from a specified
directory.
"""
def __init__(self):
self.commands = {}
def _import_module(self, module_name: str) -> Any:
return importlib.import_module(module_name)
def _reload_module(self, module: Any) -> Any:
return importlib.reload(module)
def register(self, cmd: Command) -> None:
self.commands[cmd.name] = cmd
def unregister(self, command_name: str):
if command_name in self.commands:
del self.commands[command_name]
else:
raise KeyError(f"Command '{command_name}' not found in registry.")
def reload_commands(self) -> None:
"""Reloads all loaded command plugins."""
for cmd_name in self.commands:
cmd = self.commands[cmd_name]
module = self._import_module(cmd.__module__)
reloaded_module = self._reload_module(module)
if hasattr(reloaded_module, "register"):
reloaded_module.register(self)
def get_command(self, name: str) -> Callable[..., Any]:
return self.commands[name]
def call(self, command_name: str, **kwargs) -> Any:
if command_name not in self.commands:
raise KeyError(f"Command '{command_name}' not found in registry.")
command = self.commands[command_name]
return command(**kwargs)
def command_prompt(self) -> str:
"""
Returns a string representation of all registered `Command` objects for use in a prompt
"""
commands_list = [
f"{idx + 1}. {str(cmd)}" for idx, cmd in enumerate(self.commands.values())
]
return "\n".join(commands_list)
def import_commands(self, module_name: str) -> None:
"""
Imports the specified Python module containing command plugins.
This method imports the associated module and registers any functions or
classes that are decorated with the `AUTO_GPT_COMMAND_IDENTIFIER` attribute
as `Command` objects. The registered `Command` objects are then added to the
`commands` dictionary of the `CommandRegistry` object.
Args:
module_name (str): The name of the module to import for command plugins.
"""
module = importlib.import_module(module_name)
for attr_name in dir(module):
attr = getattr(module, attr_name)
# Register decorated functions
if hasattr(attr, AUTO_GPT_COMMAND_IDENTIFIER) and getattr(
attr, AUTO_GPT_COMMAND_IDENTIFIER
):
self.register(attr.command)
# Register command classes
elif (
inspect.isclass(attr) and issubclass(attr, Command) and attr != Command
):
cmd_instance = attr()
self.register(cmd_instance)
def command(
name: str,
description: str,
signature: str = "",
enabled: bool = True,
disabled_reason: Optional[str] = None,
) -> Callable[..., Any]:
"""The command decorator is used to create Command objects from ordinary functions."""
def decorator(func: Callable[..., Any]) -> Command:
cmd = Command(
name=name,
description=description,
method=func,
signature=signature,
enabled=enabled,
disabled_reason=disabled_reason,
)
@functools.wraps(func)
def wrapper(*args, **kwargs) -> Any:
return func(*args, **kwargs)
wrapper.command = cmd
setattr(wrapper, AUTO_GPT_COMMAND_IDENTIFIER, True)
return wrapper
return decorator

View File

@@ -1,184 +0,0 @@
"""Execute code in a Docker container"""
import os
import subprocess
from pathlib import Path
import docker
from docker.errors import ImageNotFound
from autogpt.commands.command import command
from autogpt.config import Config
from autogpt.logs import logger
CFG = Config()
@command("execute_python_file", "Execute Python File", '"filename": "<filename>"')
def execute_python_file(filename: str) -> str:
"""Execute a Python file in a Docker container and return the output
Args:
filename (str): The name of the file to execute
Returns:
str: The output of the file
"""
logger.info(f"Executing file '{filename}'")
if not filename.endswith(".py"):
return "Error: Invalid file type. Only .py files are allowed."
if not os.path.isfile(filename):
return f"Error: File '{filename}' does not exist."
if we_are_running_in_a_docker_container():
result = subprocess.run(
f"python {filename}", capture_output=True, encoding="utf8", shell=True
)
if result.returncode == 0:
return result.stdout
else:
return f"Error: {result.stderr}"
try:
client = docker.from_env()
# You can replace this with the desired Python image/version
# You can find available Python images on Docker Hub:
# https://hub.docker.com/_/python
image_name = "python:3-alpine"
try:
client.images.get(image_name)
logger.warn(f"Image '{image_name}' found locally")
except ImageNotFound:
logger.info(
f"Image '{image_name}' not found locally, pulling from Docker Hub"
)
# Use the low-level API to stream the pull response
low_level_client = docker.APIClient()
for line in low_level_client.pull(image_name, stream=True, decode=True):
# Print the status and progress, if available
status = line.get("status")
progress = line.get("progress")
if status and progress:
logger.info(f"{status}: {progress}")
elif status:
logger.info(status)
container = client.containers.run(
image_name,
f"python {Path(filename).relative_to(CFG.workspace_path)}",
volumes={
CFG.workspace_path: {
"bind": "/workspace",
"mode": "ro",
}
},
working_dir="/workspace",
stderr=True,
stdout=True,
detach=True,
)
container.wait()
logs = container.logs().decode("utf-8")
container.remove()
# print(f"Execution complete. Output: {output}")
# print(f"Logs: {logs}")
return logs
except docker.errors.DockerException as e:
logger.warn(
"Could not run the script in a container. If you haven't already, please install Docker https://docs.docker.com/get-docker/"
)
return f"Error: {str(e)}"
except Exception as e:
return f"Error: {str(e)}"
@command(
"execute_shell",
"Execute Shell Command, non-interactive commands only",
'"command_line": "<command_line>"',
CFG.execute_local_commands,
"You are not allowed to run local shell commands. To execute"
" shell commands, EXECUTE_LOCAL_COMMANDS must be set to 'True' "
"in your config. Do not attempt to bypass the restriction.",
)
def execute_shell(command_line: str) -> str:
"""Execute a shell command and return the output
Args:
command_line (str): The command line to execute
Returns:
str: The output of the command
"""
current_dir = Path.cwd()
# Change dir into workspace if necessary
if not current_dir.is_relative_to(CFG.workspace_path):
os.chdir(CFG.workspace_path)
logger.info(
f"Executing command '{command_line}' in working directory '{os.getcwd()}'"
)
result = subprocess.run(command_line, capture_output=True, shell=True)
output = f"STDOUT:\n{result.stdout}\nSTDERR:\n{result.stderr}"
# Change back to whatever the prior working dir was
os.chdir(current_dir)
return output
@command(
"execute_shell_popen",
"Execute Shell Command, non-interactive commands only",
'"command_line": "<command_line>"',
CFG.execute_local_commands,
"You are not allowed to run local shell commands. To execute"
" shell commands, EXECUTE_LOCAL_COMMANDS must be set to 'True' "
"in your config. Do not attempt to bypass the restriction.",
)
def execute_shell_popen(command_line) -> str:
"""Execute a shell command with Popen and returns an english description
of the event and the process id
Args:
command_line (str): The command line to execute
Returns:
str: Description of the fact that the process started and its id
"""
current_dir = os.getcwd()
# Change dir into workspace if necessary
if CFG.workspace_path not in current_dir:
os.chdir(CFG.workspace_path)
logger.info(
f"Executing command '{command_line}' in working directory '{os.getcwd()}'"
)
do_not_show_output = subprocess.DEVNULL
process = subprocess.Popen(
command_line, shell=True, stdout=do_not_show_output, stderr=do_not_show_output
)
# Change back to whatever the prior working dir was
os.chdir(current_dir)
return f"Subprocess started with PID:'{str(process.pid)}'"
def we_are_running_in_a_docker_container() -> bool:
"""Check if we are running in a Docker container
Returns:
bool: True if we are running in a Docker container, False otherwise
"""
return os.path.exists("/.dockerenv")

View File

@@ -1,272 +0,0 @@
"""File operations for AutoGPT"""
from __future__ import annotations
import os
import os.path
from typing import Generator
import requests
from colorama import Back, Fore
from requests.adapters import HTTPAdapter, Retry
from autogpt.commands.command import command
from autogpt.config import Config
from autogpt.logs import logger
from autogpt.spinner import Spinner
from autogpt.utils import readable_file_size
CFG = Config()
def check_duplicate_operation(operation: str, filename: str) -> bool:
"""Check if the operation has already been performed on the given file
Args:
operation (str): The operation to check for
filename (str): The name of the file to check for
Returns:
bool: True if the operation has already been performed on the file
"""
log_content = read_file(CFG.file_logger_path)
log_entry = f"{operation}: {filename}\n"
return log_entry in log_content
def log_operation(operation: str, filename: str) -> None:
"""Log the file operation to the file_logger.txt
Args:
operation (str): The operation to log
filename (str): The name of the file the operation was performed on
"""
log_entry = f"{operation}: {filename}\n"
append_to_file(CFG.file_logger_path, log_entry, should_log=False)
def split_file(
content: str, max_length: int = 4000, overlap: int = 0
) -> Generator[str, None, None]:
"""
Split text into chunks of a specified maximum length with a specified overlap
between chunks.
:param content: The input text to be split into chunks
:param max_length: The maximum length of each chunk,
default is 4000 (about 1k token)
:param overlap: The number of overlapping characters between chunks,
default is no overlap
:return: A generator yielding chunks of text
"""
start = 0
content_length = len(content)
while start < content_length:
end = start + max_length
if end + overlap < content_length:
chunk = content[start : end + overlap - 1]
else:
chunk = content[start:content_length]
# Account for the case where the last chunk is shorter than the overlap, so it has already been consumed
if len(chunk) <= overlap:
break
yield chunk
start += max_length - overlap
@command("read_file", "Read file", '"filename": "<filename>"')
def read_file(filename: str) -> str:
"""Read a file and return the contents
Args:
filename (str): The name of the file to read
Returns:
str: The contents of the file
"""
try:
with open(filename, "r", encoding="utf-8") as f:
content = f.read()
return content
except Exception as e:
return f"Error: {str(e)}"
def ingest_file(
filename: str, memory, max_length: int = 4000, overlap: int = 200
) -> None:
"""
Ingest a file by reading its content, splitting it into chunks with a specified
maximum length and overlap, and adding the chunks to the memory storage.
:param filename: The name of the file to ingest
:param memory: An object with an add() method to store the chunks in memory
:param max_length: The maximum length of each chunk, default is 4000
:param overlap: The number of overlapping characters between chunks, default is 200
"""
try:
logger.info(f"Working with file {filename}")
content = read_file(filename)
content_length = len(content)
logger.info(f"File length: {content_length} characters")
chunks = list(split_file(content, max_length=max_length, overlap=overlap))
num_chunks = len(chunks)
for i, chunk in enumerate(chunks):
logger.info(f"Ingesting chunk {i + 1} / {num_chunks} into memory")
memory_to_add = (
f"Filename: {filename}\n" f"Content part#{i + 1}/{num_chunks}: {chunk}"
)
memory.add(memory_to_add)
logger.info(f"Done ingesting {num_chunks} chunks from {filename}.")
except Exception as e:
logger.info(f"Error while ingesting file '{filename}': {str(e)}")
@command("write_to_file", "Write to file", '"filename": "<filename>", "text": "<text>"')
def write_to_file(filename: str, text: str) -> str:
"""Write text to a file
Args:
filename (str): The name of the file to write to
text (str): The text to write to the file
Returns:
str: A message indicating success or failure
"""
if check_duplicate_operation("write", filename):
return "Error: File has already been updated."
try:
directory = os.path.dirname(filename)
os.makedirs(directory, exist_ok=True)
with open(filename, "w", encoding="utf-8") as f:
f.write(text)
log_operation("write", filename)
return "File written to successfully."
except Exception as e:
return f"Error: {str(e)}"
@command(
"append_to_file", "Append to file", '"filename": "<filename>", "text": "<text>"'
)
def append_to_file(filename: str, text: str, should_log: bool = True) -> str:
"""Append text to a file
Args:
filename (str): The name of the file to append to
text (str): The text to append to the file
should_log (bool): Should log output
Returns:
str: A message indicating success or failure
"""
try:
directory = os.path.dirname(filename)
os.makedirs(directory, exist_ok=True)
with open(filename, "a") as f:
f.write(text)
if should_log:
log_operation("append", filename)
return "Text appended successfully."
except Exception as e:
return f"Error: {str(e)}"
@command("delete_file", "Delete file", '"filename": "<filename>"')
def delete_file(filename: str) -> str:
"""Delete a file
Args:
filename (str): The name of the file to delete
Returns:
str: A message indicating success or failure
"""
if check_duplicate_operation("delete", filename):
return "Error: File has already been deleted."
try:
os.remove(filename)
log_operation("delete", filename)
return "File deleted successfully."
except Exception as e:
return f"Error: {str(e)}"
@command("search_files", "Search Files", '"directory": "<directory>"')
def search_files(directory: str) -> list[str]:
"""Search for files in a directory
Args:
directory (str): The directory to search in
Returns:
list[str]: A list of files found in the directory
"""
found_files = []
for root, _, files in os.walk(directory):
for file in files:
if file.startswith("."):
continue
relative_path = os.path.relpath(
os.path.join(root, file), CFG.workspace_path
)
found_files.append(relative_path)
return found_files
@command(
"download_file",
"Download File",
'"url": "<url>", "filename": "<filename>"',
CFG.allow_downloads,
"Error: You do not have user authorization to download files locally.",
)
def download_file(url, filename):
"""Downloads a file
Args:
url (str): URL of the file to download
filename (str): Filename to save the file as
"""
try:
directory = os.path.dirname(filename)
os.makedirs(directory, exist_ok=True)
message = f"{Fore.YELLOW}Downloading file from {Back.LIGHTBLUE_EX}{url}{Back.RESET}{Fore.RESET}"
with Spinner(message) as spinner:
session = requests.Session()
retry = Retry(total=3, backoff_factor=1, status_forcelist=[502, 503, 504])
adapter = HTTPAdapter(max_retries=retry)
session.mount("http://", adapter)
session.mount("https://", adapter)
total_size = 0
downloaded_size = 0
with session.get(url, allow_redirects=True, stream=True) as r:
r.raise_for_status()
total_size = int(r.headers.get("Content-Length", 0))
downloaded_size = 0
with open(filename, "wb") as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)
downloaded_size += len(chunk)
# Update the progress message
progress = f"{readable_file_size(downloaded_size)} / {readable_file_size(total_size)}"
spinner.update_message(f"{message} {progress}")
return f'Successfully downloaded and locally stored file: "{filename}"! (Size: {readable_file_size(downloaded_size)})'
except requests.HTTPError as e:
return f"Got an HTTP Error whilst trying to download file: {e}"
except Exception as e:
return "Error: " + str(e)

View File

@@ -1,35 +0,0 @@
"""Git operations for autogpt"""
from git.repo import Repo
from autogpt.commands.command import command
from autogpt.config import Config
from autogpt.url_utils.validators import validate_url
CFG = Config()
@command(
"clone_repository",
"Clone Repository",
'"url": "<repository_url>", "clone_path": "<clone_path>"',
CFG.github_username and CFG.github_api_key,
"Configure github_username and github_api_key.",
)
@validate_url
def clone_repository(url: str, clone_path: str) -> str:
"""Clone a GitHub repository locally.
Args:
url (str): The URL of the repository to clone.
clone_path (str): The path to clone the repository to.
Returns:
str: The result of the clone operation.
"""
split_url = url.split("//")
auth_repo_url = f"//{CFG.github_username}:{CFG.github_api_key}@".join(split_url)
try:
Repo.clone_from(url=auth_repo_url, to_path=clone_path)
return f"""Cloned {url} to {clone_path}"""
except Exception as e:
return f"Error: {str(e)}"

View File

@@ -1,117 +0,0 @@
"""Google search command for Autogpt."""
from __future__ import annotations
import json
from duckduckgo_search import ddg
from autogpt.commands.command import command
from autogpt.config import Config
CFG = Config()
@command("google", "Google Search", '"query": "<query>"', not CFG.google_api_key)
def google_search(query: str, num_results: int = 8) -> str:
"""Return the results of a Google search
Args:
query (str): The search query.
num_results (int): The number of results to return.
Returns:
str: The results of the search.
"""
search_results = []
if not query:
return json.dumps(search_results)
results = ddg(query, max_results=num_results)
if not results:
return json.dumps(search_results)
for j in results:
search_results.append(j)
results = json.dumps(search_results, ensure_ascii=False, indent=4)
return safe_google_results(results)
@command(
"google",
"Google Search",
'"query": "<query>"',
bool(CFG.google_api_key),
"Configure google_api_key.",
)
def google_official_search(query: str, num_results: int = 8) -> str | list[str]:
"""Return the results of a Google search using the official Google API
Args:
query (str): The search query.
num_results (int): The number of results to return.
Returns:
str: The results of the search.
"""
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
try:
# Get the Google API key and Custom Search Engine ID from the config file
api_key = CFG.google_api_key
custom_search_engine_id = CFG.custom_search_engine_id
# Initialize the Custom Search API service
service = build("customsearch", "v1", developerKey=api_key)
# Send the search query and retrieve the results
result = (
service.cse()
.list(q=query, cx=custom_search_engine_id, num=num_results)
.execute()
)
# Extract the search result items from the response
search_results = result.get("items", [])
# Create a list of only the URLs from the search results
search_results_links = [item["link"] for item in search_results]
except HttpError as e:
# Handle errors in the API call
error_details = json.loads(e.content.decode())
# Check if the error is related to an invalid or missing API key
if error_details.get("error", {}).get(
"code"
) == 403 and "invalid API key" in error_details.get("error", {}).get(
"message", ""
):
return "Error: The provided Google API key is invalid or missing."
else:
return f"Error: {e}"
# google_result can be a list or a string depending on the search results
# Return the list of search result URLs
return safe_google_results(search_results_links)
def safe_google_results(results: str | list) -> str:
"""
Return the results of a google search in a safe format.
Args:
results (str | list): The search results.
Returns:
str: The results of the search.
"""
if isinstance(results, list):
safe_message = json.dumps(
[result.encode("utf-8", "ignore") for result in results]
)
else:
safe_message = results.encode("utf-8", "ignore").decode("utf-8")
return safe_message

View File

@@ -1,165 +0,0 @@
""" Image Generation Module for AutoGPT."""
import io
import uuid
from base64 import b64decode
import openai
import requests
from PIL import Image
from autogpt.commands.command import command
from autogpt.config import Config
from autogpt.logs import logger
CFG = Config()
@command("generate_image", "Generate Image", '"prompt": "<prompt>"', CFG.image_provider)
def generate_image(prompt: str, size: int = 256) -> str:
"""Generate an image from a prompt.
Args:
prompt (str): The prompt to use
size (int, optional): The size of the image. Defaults to 256. (Not supported by HuggingFace)
Returns:
str: The filename of the image
"""
filename = f"{CFG.workspace_path}/{str(uuid.uuid4())}.jpg"
# DALL-E
if CFG.image_provider == "dalle":
return generate_image_with_dalle(prompt, filename, size)
# HuggingFace
elif CFG.image_provider == "huggingface":
return generate_image_with_hf(prompt, filename)
# SD WebUI
elif CFG.image_provider == "sdwebui":
return generate_image_with_sd_webui(prompt, filename, size)
return "No Image Provider Set"
def generate_image_with_hf(prompt: str, filename: str) -> str:
"""Generate an image with HuggingFace's API.
Args:
prompt (str): The prompt to use
filename (str): The filename to save the image to
Returns:
str: The filename of the image
"""
API_URL = (
f"https://api-inference.huggingface.co/models/{CFG.huggingface_image_model}"
)
if CFG.huggingface_api_token is None:
raise ValueError(
"You need to set your Hugging Face API token in the config file."
)
headers = {
"Authorization": f"Bearer {CFG.huggingface_api_token}",
"X-Use-Cache": "false",
}
response = requests.post(
API_URL,
headers=headers,
json={
"inputs": prompt,
},
)
image = Image.open(io.BytesIO(response.content))
logger.info(f"Image Generated for prompt:{prompt}")
image.save(filename)
return f"Saved to disk:{filename}"
def generate_image_with_dalle(prompt: str, filename: str, size: int) -> str:
"""Generate an image with DALL-E.
Args:
prompt (str): The prompt to use
filename (str): The filename to save the image to
size (int): The size of the image
Returns:
str: The filename of the image
"""
# Check for supported image sizes
if size not in [256, 512, 1024]:
closest = min([256, 512, 1024], key=lambda x: abs(x - size))
logger.info(
f"DALL-E only supports image sizes of 256x256, 512x512, or 1024x1024. Setting to {closest}, was {size}."
)
size = closest
response = openai.Image.create(
prompt=prompt,
n=1,
size=f"{size}x{size}",
response_format="b64_json",
api_key=CFG.openai_api_key,
)
logger.info(f"Image Generated for prompt:{prompt}")
image_data = b64decode(response["data"][0]["b64_json"])
with open(filename, mode="wb") as png:
png.write(image_data)
return f"Saved to disk:{filename}"
def generate_image_with_sd_webui(
prompt: str,
filename: str,
size: int = 512,
negative_prompt: str = "",
extra: dict = {},
) -> str:
"""Generate an image with Stable Diffusion webui.
Args:
prompt (str): The prompt to use
filename (str): The filename to save the image to
size (int, optional): The size of the image. Defaults to 256.
negative_prompt (str, optional): The negative prompt to use. Defaults to "".
extra (dict, optional): Extra parameters to pass to the API. Defaults to {}.
Returns:
str: The filename of the image
"""
# Create a session and set the basic auth if needed
s = requests.Session()
if CFG.sd_webui_auth:
username, password = CFG.sd_webui_auth.split(":")
s.auth = (username, password or "")
# Generate the images
response = requests.post(
f"{CFG.sd_webui_url}/sdapi/v1/txt2img",
json={
"prompt": prompt,
"negative_prompt": negative_prompt,
"sampler_index": "DDIM",
"steps": 20,
"cfg_scale": 7.0,
"width": size,
"height": size,
"n_iter": 1,
**extra,
},
)
logger.info(f"Image Generated for prompt:{prompt}")
# Save the image to disk
response = response.json()
b64 = b64decode(response["images"][0].split(",", 1)[0])
image = Image.open(io.BytesIO(b64))
image.save(filename)
return f"Saved to disk:{filename}"

View File

@@ -1,35 +0,0 @@
from __future__ import annotations
import json
from autogpt.commands.command import command
from autogpt.llm import call_ai_function
@command(
"improve_code",
"Get Improved Code",
'"suggestions": "<list_of_suggestions>", "code": "<full_code_string>"',
)
def improve_code(suggestions: list[str], code: str) -> str:
"""
A function that takes in code and suggestions and returns a response from create
chat completion api call.
Parameters:
suggestions (list): A list of suggestions around what needs to be improved.
code (str): Code to be improved.
Returns:
A result string from create chat completion. Improved code in response.
"""
function_string = (
"def generate_improved_code(suggestions: list[str], code: str) -> str:"
)
args = [json.dumps(suggestions), code]
description_string = (
"Improves the provided code based on the suggestions"
" provided, making no other changes."
)
return call_ai_function(function_string, args, description_string)

View File

@@ -1,10 +0,0 @@
from datetime import datetime
def get_datetime() -> str:
"""Return the current date and time
Returns:
str: The current date and time
"""
return "Current date and time: " + datetime.now().strftime("%Y-%m-%d %H:%M:%S")

View File

@@ -1,41 +0,0 @@
"""A module that contains a command to send a tweet."""
import os
import tweepy
from autogpt.commands.command import command
@command(
"send_tweet",
"Send Tweet",
'"tweet_text": "<tweet_text>"',
)
def send_tweet(tweet_text: str) -> str:
"""
A function that takes in a string and returns a response from create chat
completion api call.
Args:
tweet_text (str): Text to be tweeted.
Returns:
A result from sending the tweet.
"""
consumer_key = os.environ.get("TW_CONSUMER_KEY")
consumer_secret = os.environ.get("TW_CONSUMER_SECRET")
access_token = os.environ.get("TW_ACCESS_TOKEN")
access_token_secret = os.environ.get("TW_ACCESS_TOKEN_SECRET")
# Authenticate to Twitter
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
# Create API object
api = tweepy.API(auth)
# Send tweet
try:
api.update_status(tweet_text)
return "Tweet sent successfully!"
except tweepy.TweepyException as e:
return f"Error sending tweet: {e.reason}"

View File

@@ -1,82 +0,0 @@
"""Web scraping commands using Playwright"""
from __future__ import annotations
from autogpt.logs import logger
try:
from playwright.sync_api import sync_playwright
except ImportError:
logger.info(
"Playwright not installed. Please install it with 'pip install playwright' to use."
)
from bs4 import BeautifulSoup
from autogpt.processing.html import extract_hyperlinks, format_hyperlinks
def scrape_text(url: str) -> str:
"""Scrape text from a webpage
Args:
url (str): The URL to scrape text from
Returns:
str: The scraped text
"""
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
try:
page.goto(url)
html_content = page.content()
soup = BeautifulSoup(html_content, "html.parser")
for script in soup(["script", "style"]):
script.extract()
text = soup.get_text()
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split(" "))
text = "\n".join(chunk for chunk in chunks if chunk)
except Exception as e:
text = f"Error: {str(e)}"
finally:
browser.close()
return text
def scrape_links(url: str) -> str | list[str]:
"""Scrape links from a webpage
Args:
url (str): The URL to scrape links from
Returns:
Union[str, List[str]]: The scraped links
"""
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
try:
page.goto(url)
html_content = page.content()
soup = BeautifulSoup(html_content, "html.parser")
for script in soup(["script", "style"]):
script.extract()
hyperlinks = extract_hyperlinks(soup, url)
formatted_links = format_hyperlinks(hyperlinks)
except Exception as e:
formatted_links = f"Error: {str(e)}"
finally:
browser.close()
return formatted_links

View File

@@ -1,112 +0,0 @@
"""Browse a webpage and summarize it using the LLM model"""
from __future__ import annotations
import requests
from bs4 import BeautifulSoup
from requests import Response
from autogpt.config import Config
from autogpt.processing.html import extract_hyperlinks, format_hyperlinks
from autogpt.url_utils.validators import validate_url
CFG = Config()
session = requests.Session()
session.headers.update({"User-Agent": CFG.user_agent})
@validate_url
def get_response(
url: str, timeout: int = 10
) -> tuple[None, str] | tuple[Response, None]:
"""Get the response from a URL
Args:
url (str): The URL to get the response from
timeout (int): The timeout for the HTTP request
Returns:
tuple[None, str] | tuple[Response, None]: The response and error message
Raises:
ValueError: If the URL is invalid
requests.exceptions.RequestException: If the HTTP request fails
"""
try:
response = session.get(url, timeout=timeout)
# Check if the response contains an HTTP error
if response.status_code >= 400:
return None, f"Error: HTTP {str(response.status_code)} error"
return response, None
except ValueError as ve:
# Handle invalid URL format
return None, f"Error: {str(ve)}"
except requests.exceptions.RequestException as re:
# Handle exceptions related to the HTTP request
# (e.g., connection errors, timeouts, etc.)
return None, f"Error: {str(re)}"
def scrape_text(url: str) -> str:
"""Scrape text from a webpage
Args:
url (str): The URL to scrape text from
Returns:
str: The scraped text
"""
response, error_message = get_response(url)
if error_message:
return error_message
if not response:
return "Error: Could not get response"
soup = BeautifulSoup(response.text, "html.parser")
for script in soup(["script", "style"]):
script.extract()
text = soup.get_text()
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split(" "))
text = "\n".join(chunk for chunk in chunks if chunk)
return text
def scrape_links(url: str) -> str | list[str]:
"""Scrape links from a webpage
Args:
url (str): The URL to scrape links from
Returns:
str | list[str]: The scraped links
"""
response, error_message = get_response(url)
if error_message:
return error_message
if not response:
return "Error: Could not get response"
soup = BeautifulSoup(response.text, "html.parser")
for script in soup(["script", "style"]):
script.extract()
hyperlinks = extract_hyperlinks(soup, url)
return format_hyperlinks(hyperlinks)
def create_message(chunk, question):
"""Create a message for the user to summarize a chunk of text"""
return {
"role": "user",
"content": f'"""{chunk}""" Using the above text, answer the following'
f' question: "{question}" -- if the question cannot be answered using the'
" text, summarize the text.",
}

View File

@@ -1,178 +0,0 @@
"""Selenium web scraping module."""
from __future__ import annotations
import logging
from pathlib import Path
from sys import platform
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.chrome.options import Options as ChromeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.safari.options import Options as SafariOptions
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.firefox import GeckoDriverManager
import autogpt.processing.text as summary
from autogpt.commands.command import command
from autogpt.config import Config
from autogpt.processing.html import extract_hyperlinks, format_hyperlinks
from autogpt.url_utils.validators import validate_url
FILE_DIR = Path(__file__).parent.parent
CFG = Config()
@command(
"browse_website",
"Browse Website",
'"url": "<url>", "question": "<what_you_want_to_find_on_website>"',
)
@validate_url
def browse_website(url: str, question: str) -> tuple[str, WebDriver]:
"""Browse a website and return the answer and links to the user
Args:
url (str): The url of the website to browse
question (str): The question asked by the user
Returns:
Tuple[str, WebDriver]: The answer and links to the user and the webdriver
"""
try:
driver, text = scrape_text_with_selenium(url)
except WebDriverException as e:
# These errors are often quite long and include lots of context.
# Just grab the first line.
msg = e.msg.split("\n")[0]
return f"Error: {msg}", None
add_header(driver)
summary_text = summary.summarize_text(url, text, question, driver)
links = scrape_links_with_selenium(driver, url)
# Limit links to 5
if len(links) > 5:
links = links[:5]
close_browser(driver)
return f"Answer gathered from website: {summary_text} \n \n Links: {links}", driver
def scrape_text_with_selenium(url: str) -> tuple[WebDriver, str]:
"""Scrape text from a website using selenium
Args:
url (str): The url of the website to scrape
Returns:
Tuple[WebDriver, str]: The webdriver and the text scraped from the website
"""
logging.getLogger("selenium").setLevel(logging.CRITICAL)
options_available = {
"chrome": ChromeOptions,
"safari": SafariOptions,
"firefox": FirefoxOptions,
}
options = options_available[CFG.selenium_web_browser]()
options.add_argument(
"user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.5615.49 Safari/537.36"
)
if CFG.selenium_web_browser == "firefox":
if CFG.selenium_headless:
options.headless = True
options.add_argument("--disable-gpu")
driver = webdriver.Firefox(
executable_path=GeckoDriverManager().install(), options=options
)
elif CFG.selenium_web_browser == "safari":
# Requires a bit more setup on the users end
# See https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari
driver = webdriver.Safari(options=options)
else:
if platform == "linux" or platform == "linux2":
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--remote-debugging-port=9222")
options.add_argument("--no-sandbox")
if CFG.selenium_headless:
options.add_argument("--headless=new")
options.add_argument("--disable-gpu")
chromium_driver_path = Path("/usr/bin/chromedriver")
driver = webdriver.Chrome(
executable_path=chromium_driver_path
if chromium_driver_path.exists()
else ChromeDriverManager().install(),
options=options,
)
driver.get(url)
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.TAG_NAME, "body"))
)
# Get the HTML content directly from the browser's DOM
page_source = driver.execute_script("return document.body.outerHTML;")
soup = BeautifulSoup(page_source, "html.parser")
for script in soup(["script", "style"]):
script.extract()
text = soup.get_text()
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split(" "))
text = "\n".join(chunk for chunk in chunks if chunk)
return driver, text
def scrape_links_with_selenium(driver: WebDriver, url: str) -> list[str]:
"""Scrape links from a website using selenium
Args:
driver (WebDriver): The webdriver to use to scrape the links
Returns:
List[str]: The links scraped from the website
"""
page_source = driver.page_source
soup = BeautifulSoup(page_source, "html.parser")
for script in soup(["script", "style"]):
script.extract()
hyperlinks = extract_hyperlinks(soup, url)
return format_hyperlinks(hyperlinks)
def close_browser(driver: WebDriver) -> None:
"""Close the browser
Args:
driver (WebDriver): The webdriver to close
Returns:
None
"""
driver.quit()
def add_header(driver: WebDriver) -> None:
"""Add a header to the website
Args:
driver (WebDriver): The webdriver to use to add the header
Returns:
None
"""
driver.execute_script(open(f"{FILE_DIR}/js/overlay.js", "r").read())

View File

@@ -1,37 +0,0 @@
"""A module that contains a function to generate test cases for the submitted code."""
from __future__ import annotations
import json
from autogpt.commands.command import command
from autogpt.llm import call_ai_function
@command(
"write_tests",
"Write Tests",
'"code": "<full_code_string>", "focus": "<list_of_focus_areas>"',
)
def write_tests(code: str, focus: list[str]) -> str:
"""
A function that takes in code and focus topics and returns a response from create
chat completion api call.
Parameters:
focus (list): A list of suggestions around what needs to be improved.
code (str): Code for test cases to be generated against.
Returns:
A result string from create chat completion. Test cases for the submitted code
in response.
"""
function_string = (
"def create_test_cases(code: str, focus: Optional[str] = None) -> str:"
)
args = [code, json.dumps(focus)]
description_string = (
"Generates test cases for the existing code, focusing on"
" specific areas if required."
)
return call_ai_function(function_string, args, description_string)

View File

@@ -1,11 +0,0 @@
"""
This module contains the configuration classes for AutoGPT.
"""
from autogpt.config.ai_config import AIConfig
from autogpt.config.config import Config, check_openai_api_key
__all__ = [
"check_openai_api_key",
"AIConfig",
"Config",
]

View File

@@ -1,168 +0,0 @@
# sourcery skip: do-not-use-staticmethod
"""
A module that contains the AIConfig class object that contains the configuration
"""
from __future__ import annotations
import os
import platform
from pathlib import Path
from typing import Any, Optional, Type
import distro
import yaml
from autogpt.prompts.generator import PromptGenerator
# Soon this will go in a folder where it remembers more stuff about the run(s)
SAVE_FILE = str(Path(os.getcwd()) / "ai_settings.yaml")
class AIConfig:
"""
A class object that contains the configuration information for the AI
Attributes:
ai_name (str): The name of the AI.
ai_role (str): The description of the AI's role.
ai_goals (list): The list of objectives the AI is supposed to complete.
api_budget (float): The maximum dollar value for API calls (0.0 means infinite)
"""
def __init__(
self,
ai_name: str = "",
ai_role: str = "",
ai_goals: list | None = None,
api_budget: float = 0.0,
) -> None:
"""
Initialize a class instance
Parameters:
ai_name (str): The name of the AI.
ai_role (str): The description of the AI's role.
ai_goals (list): The list of objectives the AI is supposed to complete.
api_budget (float): The maximum dollar value for API calls (0.0 means infinite)
Returns:
None
"""
if ai_goals is None:
ai_goals = []
self.ai_name = ai_name
self.ai_role = ai_role
self.ai_goals = ai_goals
self.api_budget = api_budget
self.prompt_generator = None
self.command_registry = None
@staticmethod
def load(config_file: str = SAVE_FILE) -> "AIConfig":
"""
Returns class object with parameters (ai_name, ai_role, ai_goals, api_budget) loaded from
yaml file if yaml file exists,
else returns class with no parameters.
Parameters:
config_file (int): The path to the config yaml file.
DEFAULT: "../ai_settings.yaml"
Returns:
cls (object): An instance of given cls object
"""
try:
with open(config_file, encoding="utf-8") as file:
config_params = yaml.load(file, Loader=yaml.FullLoader)
except FileNotFoundError:
config_params = {}
ai_name = config_params.get("ai_name", "")
ai_role = config_params.get("ai_role", "")
ai_goals = [
str(goal).strip("{}").replace("'", "").replace('"', "")
if isinstance(goal, dict)
else str(goal)
for goal in config_params.get("ai_goals", [])
]
api_budget = config_params.get("api_budget", 0.0)
# type: Type[AIConfig]
return AIConfig(ai_name, ai_role, ai_goals, api_budget)
def save(self, config_file: str = SAVE_FILE) -> None:
"""
Saves the class parameters to the specified file yaml file path as a yaml file.
Parameters:
config_file(str): The path to the config yaml file.
DEFAULT: "../ai_settings.yaml"
Returns:
None
"""
config = {
"ai_name": self.ai_name,
"ai_role": self.ai_role,
"ai_goals": self.ai_goals,
"api_budget": self.api_budget,
}
with open(config_file, "w", encoding="utf-8") as file:
yaml.dump(config, file, allow_unicode=True)
def construct_full_prompt(
self, prompt_generator: Optional[PromptGenerator] = None
) -> str:
"""
Returns a prompt to the user with the class information in an organized fashion.
Parameters:
None
Returns:
full_prompt (str): A string containing the initial prompt for the user
including the ai_name, ai_role, ai_goals, and api_budget.
"""
prompt_start = (
"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."
""
)
from autogpt.config import Config
from autogpt.prompts.prompt import build_default_prompt_generator
cfg = Config()
if prompt_generator is None:
prompt_generator = build_default_prompt_generator()
prompt_generator.goals = self.ai_goals
prompt_generator.name = self.ai_name
prompt_generator.role = self.ai_role
prompt_generator.command_registry = self.command_registry
for plugin in cfg.plugins:
if not plugin.can_handle_post_prompt():
continue
prompt_generator = plugin.post_prompt(prompt_generator)
if cfg.execute_local_commands:
# add OS info to prompt
os_name = platform.system()
os_info = (
platform.platform(terse=True)
if os_name != "Linux"
else distro.name(pretty=True)
)
prompt_start += f"\nThe OS you are running on is: {os_info}"
# Construct full prompt
full_prompt = f"You are {prompt_generator.name}, {prompt_generator.role}\n{prompt_start}\n\nGOALS:\n\n"
for i, goal in enumerate(self.ai_goals):
full_prompt += f"{i+1}. {goal}\n"
if self.api_budget > 0.0:
full_prompt += f"\nIt takes money to let you run. Your API budget is ${self.api_budget:.3f}"
self.prompt_generator = prompt_generator
full_prompt += f"\n\n{prompt_generator.generate_prompt_string()}"
return full_prompt

View File

@@ -1,282 +0,0 @@
"""Configuration class to store the state of bools for different scripts access."""
import os
from typing import List
import openai
import yaml
from auto_gpt_plugin_template import AutoGPTPluginTemplate
from colorama import Fore
from autogpt.singleton import Singleton
class Config(metaclass=Singleton):
"""
Configuration class to store the state of bools for different scripts access.
"""
def __init__(self) -> None:
"""Initialize the Config class"""
self.workspace_path = None
self.file_logger_path = None
self.debug_mode = False
self.continuous_mode = False
self.continuous_limit = 0
self.speak_mode = False
self.skip_reprompt = False
self.allow_downloads = False
self.skip_news = False
self.authorise_key = os.getenv("AUTHORISE_COMMAND_KEY", "y")
self.exit_key = os.getenv("EXIT_KEY", "n")
self.ai_settings_file = os.getenv("AI_SETTINGS_FILE", "ai_settings.yaml")
self.fast_llm_model = os.getenv("FAST_LLM_MODEL", "gpt-3.5-turbo")
self.smart_llm_model = os.getenv("SMART_LLM_MODEL", "gpt-4")
self.fast_token_limit = int(os.getenv("FAST_TOKEN_LIMIT", 4000))
self.smart_token_limit = int(os.getenv("SMART_TOKEN_LIMIT", 8000))
self.browse_chunk_max_length = int(os.getenv("BROWSE_CHUNK_MAX_LENGTH", 3000))
self.browse_spacy_language_model = os.getenv(
"BROWSE_SPACY_LANGUAGE_MODEL", "en_core_web_sm"
)
self.openai_api_key = os.getenv("OPENAI_API_KEY")
self.temperature = float(os.getenv("TEMPERATURE", "0"))
self.use_azure = os.getenv("USE_AZURE") == "True"
self.execute_local_commands = (
os.getenv("EXECUTE_LOCAL_COMMANDS", "False") == "True"
)
self.restrict_to_workspace = (
os.getenv("RESTRICT_TO_WORKSPACE", "True") == "True"
)
if self.use_azure:
self.load_azure_config()
openai.api_type = self.openai_api_type
openai.api_base = self.openai_api_base
openai.api_version = self.openai_api_version
self.elevenlabs_api_key = os.getenv("ELEVENLABS_API_KEY")
self.elevenlabs_voice_1_id = os.getenv("ELEVENLABS_VOICE_1_ID")
self.elevenlabs_voice_2_id = os.getenv("ELEVENLABS_VOICE_2_ID")
self.use_mac_os_tts = False
self.use_mac_os_tts = os.getenv("USE_MAC_OS_TTS")
self.chat_messages_enabled = os.getenv("CHAT_MESSAGES_ENABLED") == "True"
self.use_brian_tts = False
self.use_brian_tts = os.getenv("USE_BRIAN_TTS")
self.github_api_key = os.getenv("GITHUB_API_KEY")
self.github_username = os.getenv("GITHUB_USERNAME")
self.google_api_key = os.getenv("GOOGLE_API_KEY")
self.custom_search_engine_id = os.getenv("CUSTOM_SEARCH_ENGINE_ID")
self.pinecone_api_key = os.getenv("PINECONE_API_KEY")
self.pinecone_region = os.getenv("PINECONE_ENV")
self.weaviate_host = os.getenv("WEAVIATE_HOST")
self.weaviate_port = os.getenv("WEAVIATE_PORT")
self.weaviate_protocol = os.getenv("WEAVIATE_PROTOCOL", "http")
self.weaviate_username = os.getenv("WEAVIATE_USERNAME", None)
self.weaviate_password = os.getenv("WEAVIATE_PASSWORD", None)
self.weaviate_scopes = os.getenv("WEAVIATE_SCOPES", None)
self.weaviate_embedded_path = os.getenv("WEAVIATE_EMBEDDED_PATH")
self.weaviate_api_key = os.getenv("WEAVIATE_API_KEY", None)
self.use_weaviate_embedded = (
os.getenv("USE_WEAVIATE_EMBEDDED", "False") == "True"
)
# milvus or zilliz cloud configuration.
self.milvus_addr = os.getenv("MILVUS_ADDR", "localhost:19530")
self.milvus_username = os.getenv("MILVUS_USERNAME")
self.milvus_password = os.getenv("MILVUS_PASSWORD")
self.milvus_collection = os.getenv("MILVUS_COLLECTION", "autogpt")
self.milvus_secure = os.getenv("MILVUS_SECURE") == "True"
self.image_provider = os.getenv("IMAGE_PROVIDER")
self.image_size = int(os.getenv("IMAGE_SIZE", 256))
self.huggingface_api_token = os.getenv("HUGGINGFACE_API_TOKEN")
self.huggingface_image_model = os.getenv(
"HUGGINGFACE_IMAGE_MODEL", "CompVis/stable-diffusion-v1-4"
)
self.huggingface_audio_to_text_model = os.getenv(
"HUGGINGFACE_AUDIO_TO_TEXT_MODEL"
)
self.sd_webui_url = os.getenv("SD_WEBUI_URL", "http://localhost:7860")
self.sd_webui_auth = os.getenv("SD_WEBUI_AUTH")
# Selenium browser settings
self.selenium_web_browser = os.getenv("USE_WEB_BROWSER", "chrome")
self.selenium_headless = os.getenv("HEADLESS_BROWSER", "True") == "True"
# User agent header to use when making HTTP requests
# Some websites might just completely deny request with an error code if
# no user agent was found.
self.user_agent = os.getenv(
"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",
)
self.redis_host = os.getenv("REDIS_HOST", "localhost")
self.redis_port = os.getenv("REDIS_PORT", "6379")
self.redis_password = os.getenv("REDIS_PASSWORD", "")
self.wipe_redis_on_start = os.getenv("WIPE_REDIS_ON_START", "True") == "True"
self.memory_index = os.getenv("MEMORY_INDEX", "auto-gpt")
# Note that indexes must be created on db 0 in redis, this is not configurable.
self.memory_backend = os.getenv("MEMORY_BACKEND", "local")
self.plugins_dir = os.getenv("PLUGINS_DIR", "plugins")
self.plugins: List[AutoGPTPluginTemplate] = []
self.plugins_openai = []
plugins_allowlist = os.getenv("ALLOWLISTED_PLUGINS")
if plugins_allowlist:
self.plugins_allowlist = plugins_allowlist.split(",")
else:
self.plugins_allowlist = []
self.plugins_denylist = []
def get_azure_deployment_id_for_model(self, model: str) -> str:
"""
Returns the relevant deployment id for the model specified.
Parameters:
model(str): The model to map to the deployment id.
Returns:
The matching deployment id if found, otherwise an empty string.
"""
if model == self.fast_llm_model:
return self.azure_model_to_deployment_id_map[
"fast_llm_model_deployment_id"
] # type: ignore
elif model == self.smart_llm_model:
return self.azure_model_to_deployment_id_map[
"smart_llm_model_deployment_id"
] # type: ignore
elif model == "text-embedding-ada-002":
return self.azure_model_to_deployment_id_map[
"embedding_model_deployment_id"
] # type: ignore
else:
return ""
AZURE_CONFIG_FILE = os.path.join(os.path.dirname(__file__), "../..", "azure.yaml")
def load_azure_config(self, config_file: str = AZURE_CONFIG_FILE) -> None:
"""
Loads the configuration parameters for Azure hosting from the specified file
path as a yaml file.
Parameters:
config_file(str): The path to the config yaml file. DEFAULT: "../azure.yaml"
Returns:
None
"""
with open(config_file) as file:
config_params = yaml.load(file, Loader=yaml.FullLoader)
self.openai_api_type = config_params.get("azure_api_type") or "azure"
self.openai_api_base = config_params.get("azure_api_base") or ""
self.openai_api_version = (
config_params.get("azure_api_version") or "2023-03-15-preview"
)
self.azure_model_to_deployment_id_map = config_params.get("azure_model_map", {})
def set_continuous_mode(self, value: bool) -> None:
"""Set the continuous mode value."""
self.continuous_mode = value
def set_continuous_limit(self, value: int) -> None:
"""Set the continuous limit value."""
self.continuous_limit = value
def set_speak_mode(self, value: bool) -> None:
"""Set the speak mode value."""
self.speak_mode = value
def set_fast_llm_model(self, value: str) -> None:
"""Set the fast LLM model value."""
self.fast_llm_model = value
def set_smart_llm_model(self, value: str) -> None:
"""Set the smart LLM model value."""
self.smart_llm_model = value
def set_fast_token_limit(self, value: int) -> None:
"""Set the fast token limit value."""
self.fast_token_limit = value
def set_smart_token_limit(self, value: int) -> None:
"""Set the smart token limit value."""
self.smart_token_limit = value
def set_browse_chunk_max_length(self, value: int) -> None:
"""Set the browse_website command chunk max length value."""
self.browse_chunk_max_length = value
def set_openai_api_key(self, value: str) -> None:
"""Set the OpenAI API key value."""
self.openai_api_key = value
def set_elevenlabs_api_key(self, value: str) -> None:
"""Set the ElevenLabs API key value."""
self.elevenlabs_api_key = value
def set_elevenlabs_voice_1_id(self, value: str) -> None:
"""Set the ElevenLabs Voice 1 ID value."""
self.elevenlabs_voice_1_id = value
def set_elevenlabs_voice_2_id(self, value: str) -> None:
"""Set the ElevenLabs Voice 2 ID value."""
self.elevenlabs_voice_2_id = value
def set_google_api_key(self, value: str) -> None:
"""Set the Google API key value."""
self.google_api_key = value
def set_custom_search_engine_id(self, value: str) -> None:
"""Set the custom search engine id value."""
self.custom_search_engine_id = value
def set_pinecone_api_key(self, value: str) -> None:
"""Set the Pinecone API key value."""
self.pinecone_api_key = value
def set_pinecone_region(self, value: str) -> None:
"""Set the Pinecone region value."""
self.pinecone_region = value
def set_debug_mode(self, value: bool) -> None:
"""Set the debug mode value."""
self.debug_mode = value
def set_plugins(self, value: list) -> None:
"""Set the plugins value."""
self.plugins = value
def set_temperature(self, value: int) -> None:
"""Set the temperature value."""
self.temperature = value
def set_memory_backend(self, name: str) -> None:
"""Set the memory backend name."""
self.memory_backend = name
def check_openai_api_key() -> None:
"""Check if the OpenAI API key is set in config.py or as an environment variable."""
cfg = Config()
if not cfg.openai_api_key:
print(
Fore.RED
+ "Please set your OpenAI API key in .env or as an environment variable."
+ Fore.RESET
)
print("You can get your key from https://platform.openai.com/account/api-keys")
exit(1)

View File

@@ -1,134 +0,0 @@
"""Configurator module."""
import click
from colorama import Back, Fore, Style
from autogpt import utils
from autogpt.config import Config
from autogpt.logs import logger
from autogpt.memory import get_supported_memory_backends
CFG = Config()
def create_config(
continuous: bool,
continuous_limit: int,
ai_settings_file: str,
skip_reprompt: bool,
speak: bool,
debug: bool,
gpt3only: bool,
gpt4only: bool,
memory_type: str,
browser_name: str,
allow_downloads: bool,
skip_news: bool,
) -> None:
"""Updates the config object with the given arguments.
Args:
continuous (bool): Whether to run in continuous mode
continuous_limit (int): The number of times to run in continuous mode
ai_settings_file (str): The path to the ai_settings.yaml file
skip_reprompt (bool): Whether to skip the re-prompting messages at the beginning of the script
speak (bool): Whether to enable speak mode
debug (bool): Whether to enable debug mode
gpt3only (bool): Whether to enable GPT3.5 only mode
gpt4only (bool): Whether to enable GPT4 only mode
memory_type (str): The type of memory backend to use
browser_name (str): The name of the browser to use when using selenium to scrape the web
allow_downloads (bool): Whether to allow Auto-GPT to download files natively
skips_news (bool): Whether to suppress the output of latest news on startup
"""
CFG.set_debug_mode(False)
CFG.set_continuous_mode(False)
CFG.set_speak_mode(False)
if debug:
logger.typewriter_log("Debug Mode: ", Fore.GREEN, "ENABLED")
CFG.set_debug_mode(True)
if continuous:
logger.typewriter_log("Continuous Mode: ", Fore.RED, "ENABLED")
logger.typewriter_log(
"WARNING: ",
Fore.RED,
"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.",
)
CFG.set_continuous_mode(True)
if continuous_limit:
logger.typewriter_log(
"Continuous Limit: ", Fore.GREEN, f"{continuous_limit}"
)
CFG.set_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")
if speak:
logger.typewriter_log("Speak Mode: ", Fore.GREEN, "ENABLED")
CFG.set_speak_mode(True)
if gpt3only:
logger.typewriter_log("GPT3.5 Only Mode: ", Fore.GREEN, "ENABLED")
CFG.set_smart_llm_model(CFG.fast_llm_model)
if gpt4only:
logger.typewriter_log("GPT4 Only Mode: ", Fore.GREEN, "ENABLED")
CFG.set_fast_llm_model(CFG.smart_llm_model)
if memory_type:
supported_memory = get_supported_memory_backends()
chosen = memory_type
if chosen not in supported_memory:
logger.typewriter_log(
"ONLY THE FOLLOWING MEMORY BACKENDS ARE SUPPORTED: ",
Fore.RED,
f"{supported_memory}",
)
logger.typewriter_log("Defaulting to: ", Fore.YELLOW, CFG.memory_backend)
else:
CFG.memory_backend = chosen
if skip_reprompt:
logger.typewriter_log("Skip Re-prompt: ", Fore.GREEN, "ENABLED")
CFG.skip_reprompt = True
if ai_settings_file:
file = ai_settings_file
# Validate file
(validated, message) = utils.validate_yaml_file(file)
if not validated:
logger.typewriter_log("FAILED FILE VALIDATION", Fore.RED, message)
logger.double_check()
exit(1)
logger.typewriter_log("Using AI Settings File:", Fore.GREEN, file)
CFG.ai_settings_file = file
CFG.skip_reprompt = True
if browser_name:
CFG.selenium_web_browser = browser_name
if allow_downloads:
logger.typewriter_log("Native Downloading:", Fore.GREEN, "ENABLED")
logger.typewriter_log(
"WARNING: ",
Fore.YELLOW,
f"{Back.LIGHTYELLOW_EX}Auto-GPT will now be able to download and save files to your machine.{Back.RESET} "
+ "It is recommended that you monitor any files it downloads carefully.",
)
logger.typewriter_log(
"WARNING: ",
Fore.YELLOW,
f"{Back.RED + Style.BRIGHT}ALWAYS REMEMBER TO NEVER OPEN FILES YOU AREN'T SURE OF!{Style.RESET_ALL}",
)
CFG.allow_downloads = True
if skip_news:
CFG.skip_news = True

View File

@@ -1,29 +0,0 @@
const overlay = document.createElement('div');
Object.assign(overlay.style, {
position: 'fixed',
zIndex: 999999,
top: 0,
left: 0,
width: '100%',
height: '100%',
background: 'rgba(0, 0, 0, 0.7)',
color: '#fff',
fontSize: '24px',
fontWeight: 'bold',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
});
const textContent = document.createElement('div');
Object.assign(textContent.style, {
textAlign: 'center',
});
textContent.textContent = 'AutoGPT Analyzing Page';
overlay.appendChild(textContent);
document.body.append(overlay);
document.body.style.overflow = 'hidden';
let dotCount = 0;
setInterval(() => {
textContent.textContent = 'AutoGPT Analyzing Page' + '.'.repeat(dotCount);
dotCount = (dotCount + 1) % 4;
}, 1000);

View File

@@ -1,121 +0,0 @@
"""This module contains functions to fix JSON strings using general programmatic approaches, suitable for addressing
common JSON formatting issues."""
from __future__ import annotations
import contextlib
import json
import re
from typing import Optional
from autogpt.config import Config
from autogpt.json_utils.utilities import extract_char_position
from autogpt.logs import logger
CFG = Config()
def fix_invalid_escape(json_to_load: str, error_message: str) -> str:
"""Fix invalid escape sequences in JSON strings.
Args:
json_to_load (str): The JSON string.
error_message (str): The error message from the JSONDecodeError
exception.
Returns:
str: The JSON string with invalid escape sequences fixed.
"""
while error_message.startswith("Invalid \\escape"):
bad_escape_location = extract_char_position(error_message)
json_to_load = (
json_to_load[:bad_escape_location] + json_to_load[bad_escape_location + 1 :]
)
try:
json.loads(json_to_load)
return json_to_load
except json.JSONDecodeError as e:
logger.debug("json loads error - fix invalid escape", e)
error_message = str(e)
return json_to_load
def balance_braces(json_string: str) -> Optional[str]:
"""
Balance the braces in a JSON string.
Args:
json_string (str): The JSON string.
Returns:
str: The JSON string with braces balanced.
"""
open_braces_count = json_string.count("{")
close_braces_count = json_string.count("}")
while open_braces_count > close_braces_count:
json_string += "}"
close_braces_count += 1
while close_braces_count > open_braces_count:
json_string = json_string.rstrip("}")
close_braces_count -= 1
with contextlib.suppress(json.JSONDecodeError):
json.loads(json_string)
return json_string
def add_quotes_to_property_names(json_string: str) -> str:
"""
Add quotes to property names in a JSON string.
Args:
json_string (str): The JSON string.
Returns:
str: The JSON string with quotes added to property names.
"""
def replace_func(match: re.Match) -> str:
return f'"{match[1]}":'
property_name_pattern = re.compile(r"(\w+):")
corrected_json_string = property_name_pattern.sub(replace_func, json_string)
try:
json.loads(corrected_json_string)
return corrected_json_string
except json.JSONDecodeError as e:
raise e
def correct_json(json_to_load: str) -> str:
"""
Correct common JSON errors.
Args:
json_to_load (str): The JSON string.
"""
try:
logger.debug("json", json_to_load)
json.loads(json_to_load)
return json_to_load
except json.JSONDecodeError as e:
logger.debug("json loads error", e)
error_message = str(e)
if error_message.startswith("Invalid \\escape"):
json_to_load = fix_invalid_escape(json_to_load, error_message)
if error_message.startswith(
"Expecting property name enclosed in double quotes"
):
json_to_load = add_quotes_to_property_names(json_to_load)
try:
json.loads(json_to_load)
return json_to_load
except json.JSONDecodeError as e:
logger.debug("json loads error - add quotes", e)
error_message = str(e)
if balanced_str := balance_braces(json_to_load):
return balanced_str
return json_to_load

View File

@@ -1,239 +0,0 @@
"""This module contains functions to fix JSON strings generated by LLM models, such as ChatGPT, using the assistance
of the ChatGPT API or LLM models."""
from __future__ import annotations
import contextlib
import json
from typing import Any, Dict
from colorama import Fore
from regex import regex
from autogpt.config import Config
from autogpt.json_utils.json_fix_general import correct_json
from autogpt.llm import call_ai_function
from autogpt.logs import logger
from autogpt.speech import say_text
JSON_SCHEMA = """
{
"command": {
"name": "command name",
"args": {
"arg name": "value"
}
},
"thoughts":
{
"text": "thought",
"reasoning": "reasoning",
"plan": "- short bulleted\n- list that conveys\n- long-term plan",
"criticism": "constructive self-criticism",
"speak": "thoughts summary to say to user"
}
}
"""
CFG = Config()
def auto_fix_json(json_string: str, schema: str) -> str:
"""Fix the given JSON string to make it parseable and fully compliant with
the provided schema using GPT-3.
Args:
json_string (str): The JSON string to fix.
schema (str): The schema to use to fix the JSON.
Returns:
str: The fixed JSON string.
"""
# Try to fix the JSON using GPT:
function_string = "def fix_json(json_string: str, schema:str=None) -> str:"
args = [f"'''{json_string}'''", f"'''{schema}'''"]
description_string = (
"This function takes a JSON string and ensures that it"
" is parseable and fully compliant with the provided schema. If an object"
" or field specified in the schema isn't contained within the correct JSON,"
" it is omitted. The function also escapes any double quotes within JSON"
" string values to ensure that they are valid. If the JSON string contains"
" any None or NaN values, they are replaced with null before being parsed."
)
# If it doesn't already start with a "`", add one:
if not json_string.startswith("`"):
json_string = "```json\n" + json_string + "\n```"
result_string = call_ai_function(
function_string, args, description_string, model=CFG.fast_llm_model
)
logger.debug("------------ JSON FIX ATTEMPT ---------------")
logger.debug(f"Original JSON: {json_string}")
logger.debug("-----------")
logger.debug(f"Fixed JSON: {result_string}")
logger.debug("----------- END OF FIX ATTEMPT ----------------")
try:
json.loads(result_string) # just check the validity
return result_string
except json.JSONDecodeError: # noqa: E722
# Get the call stack:
# import traceback
# call_stack = traceback.format_exc()
# print(f"Failed to fix JSON: '{json_string}' "+call_stack)
return "failed"
def fix_json_using_multiple_techniques(assistant_reply: str) -> Dict[Any, Any]:
"""Fix the given JSON string to make it parseable and fully compliant with two techniques.
Args:
json_string (str): The JSON string to fix.
Returns:
str: The fixed JSON string.
"""
assistant_reply = assistant_reply.strip()
if assistant_reply.startswith("```json"):
assistant_reply = assistant_reply[7:]
if assistant_reply.endswith("```"):
assistant_reply = assistant_reply[:-3]
try:
return json.loads(assistant_reply) # just check the validity
except json.JSONDecodeError: # noqa: E722
pass
if assistant_reply.startswith("json "):
assistant_reply = assistant_reply[5:]
assistant_reply = assistant_reply.strip()
try:
return json.loads(assistant_reply) # just check the validity
except json.JSONDecodeError: # noqa: E722
pass
# Parse and print Assistant response
assistant_reply_json = fix_and_parse_json(assistant_reply)
logger.debug("Assistant reply JSON: %s", str(assistant_reply_json))
if assistant_reply_json == {}:
assistant_reply_json = attempt_to_fix_json_by_finding_outermost_brackets(
assistant_reply
)
logger.debug("Assistant reply JSON 2: %s", str(assistant_reply_json))
if assistant_reply_json != {}:
return assistant_reply_json
logger.error(
"Error: The following AI output couldn't be converted to a JSON:\n",
assistant_reply,
)
if CFG.speak_mode:
say_text("I have received an invalid JSON response from the OpenAI API.")
return {}
def fix_and_parse_json(
json_to_load: str, try_to_fix_with_gpt: bool = True
) -> Dict[Any, Any]:
"""Fix and parse JSON string
Args:
json_to_load (str): The JSON string.
try_to_fix_with_gpt (bool, optional): Try to fix the JSON with GPT.
Defaults to True.
Returns:
str or dict[Any, Any]: The parsed JSON.
"""
with contextlib.suppress(json.JSONDecodeError):
json_to_load = json_to_load.replace("\t", "")
return json.loads(json_to_load)
with contextlib.suppress(json.JSONDecodeError):
json_to_load = correct_json(json_to_load)
return json.loads(json_to_load)
# Let's do something manually:
# sometimes GPT responds with something BEFORE the braces:
# "I'm sorry, I don't understand. Please try again."
# {"text": "I'm sorry, I don't understand. Please try again.",
# "confidence": 0.0}
# So let's try to find the first brace and then parse the rest
# of the string
try:
brace_index = json_to_load.index("{")
maybe_fixed_json = json_to_load[brace_index:]
last_brace_index = maybe_fixed_json.rindex("}")
maybe_fixed_json = maybe_fixed_json[: last_brace_index + 1]
return json.loads(maybe_fixed_json)
except (json.JSONDecodeError, ValueError) as e:
return try_ai_fix(try_to_fix_with_gpt, e, json_to_load)
def try_ai_fix(
try_to_fix_with_gpt: bool, exception: Exception, json_to_load: str
) -> Dict[Any, Any]:
"""Try to fix the JSON with the AI
Args:
try_to_fix_with_gpt (bool): Whether to try to fix the JSON with the AI.
exception (Exception): The exception that was raised.
json_to_load (str): The JSON string to load.
Raises:
exception: If try_to_fix_with_gpt is False.
Returns:
str or dict[Any, Any]: The JSON string or dictionary.
"""
if not try_to_fix_with_gpt:
raise exception
if CFG.debug_mode:
logger.warn(
"Warning: Failed to parse AI output, attempting to fix."
"\n If you see this warning frequently, it's likely that"
" your prompt is confusing the AI. Try changing it up"
" slightly."
)
# Now try to fix this up using the ai_functions
ai_fixed_json = auto_fix_json(json_to_load, JSON_SCHEMA)
if ai_fixed_json != "failed":
return json.loads(ai_fixed_json)
# This allows the AI to react to the error message,
# which usually results in it correcting its ways.
# logger.error("Failed to fix AI output, telling the AI.")
return {}
def attempt_to_fix_json_by_finding_outermost_brackets(json_string: str):
if CFG.speak_mode and CFG.debug_mode:
say_text(
"I have received an invalid JSON response from the OpenAI API. "
"Trying to fix it now."
)
logger.error("Attempting to fix JSON by finding outermost brackets\n")
try:
json_pattern = regex.compile(r"\{(?:[^{}]|(?R))*\}")
json_match = json_pattern.search(json_string)
if json_match:
# Extract the valid JSON object from the string
json_string = json_match.group(0)
logger.typewriter_log(
title="Apparently json was fixed.", title_color=Fore.GREEN
)
if CFG.speak_mode and CFG.debug_mode:
say_text("Apparently json was fixed.")
else:
return {}
except (json.JSONDecodeError, ValueError):
if CFG.debug_mode:
logger.error(f"Error: Invalid JSON: {json_string}\n")
if CFG.speak_mode:
say_text("Didn't work. I will have to ignore this response then.")
logger.error("Error: Invalid JSON, setting it to empty JSON now.\n")
json_string = {}
return fix_and_parse_json(json_string)

View File

@@ -1,31 +0,0 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"thoughts": {
"type": "object",
"properties": {
"text": {"type": "string"},
"reasoning": {"type": "string"},
"plan": {"type": "string"},
"criticism": {"type": "string"},
"speak": {"type": "string"}
},
"required": ["text", "reasoning", "plan", "criticism", "speak"],
"additionalProperties": false
},
"command": {
"type": "object",
"properties": {
"name": {"type": "string"},
"args": {
"type": "object"
}
},
"required": ["name", "args"],
"additionalProperties": false
}
},
"required": ["thoughts", "command"],
"additionalProperties": false
}

View File

@@ -1,79 +0,0 @@
"""Utilities for the json_fixes package."""
import json
import re
from jsonschema import Draft7Validator
from autogpt.config import Config
from autogpt.logs import logger
CFG = Config()
LLM_DEFAULT_RESPONSE_FORMAT = "llm_response_format_1"
def extract_char_position(error_message: str) -> int:
"""Extract the character position from the JSONDecodeError message.
Args:
error_message (str): The error message from the JSONDecodeError
exception.
Returns:
int: The character position.
"""
char_pattern = re.compile(r"\(char (\d+)\)")
if match := char_pattern.search(error_message):
return int(match[1])
else:
raise ValueError("Character position not found in the error message.")
def validate_json(json_object: object, schema_name: str) -> dict | None:
"""
:type schema_name: object
:param schema_name: str
:type json_object: object
"""
with open(f"autogpt/json_utils/{schema_name}.json", "r") as f:
schema = json.load(f)
validator = Draft7Validator(schema)
if errors := sorted(validator.iter_errors(json_object), key=lambda e: e.path):
logger.error("The JSON object is invalid.")
if CFG.debug_mode:
logger.error(
json.dumps(json_object, indent=4)
) # Replace 'json_object' with the variable containing the JSON data
logger.error("The following issues were found:")
for error in errors:
logger.error(f"Error: {error.message}")
else:
logger.debug("The JSON object is valid.")
return json_object
def validate_json_string(json_string: str, schema_name: str) -> dict | None:
"""
:type schema_name: object
:param schema_name: str
:type json_object: object
"""
try:
json_loaded = json.loads(json_string)
return validate_json(json_loaded, schema_name)
except:
return None
def is_string_valid_json(json_string: str, schema_name: str) -> bool:
"""
:type schema_name: object
:param schema_name: str
:type json_object: object
"""
return validate_json_string(json_string, schema_name) is not None

View File

@@ -1,38 +0,0 @@
from autogpt.llm.api_manager import ApiManager
from autogpt.llm.base import (
ChatModelInfo,
ChatModelResponse,
EmbeddingModelInfo,
EmbeddingModelResponse,
LLMResponse,
Message,
ModelInfo,
)
from autogpt.llm.chat import chat_with_ai, create_chat_message, generate_context
from autogpt.llm.llm_utils import (
call_ai_function,
create_chat_completion,
get_ada_embedding,
)
from autogpt.llm.modelsinfo import COSTS
from autogpt.llm.token_counter import count_message_tokens, count_string_tokens
__all__ = [
"ApiManager",
"Message",
"ModelInfo",
"ChatModelInfo",
"EmbeddingModelInfo",
"LLMResponse",
"ChatModelResponse",
"EmbeddingModelResponse",
"create_chat_message",
"generate_context",
"chat_with_ai",
"call_ai_function",
"create_chat_completion",
"get_ada_embedding",
"COSTS",
"count_message_tokens",
"count_string_tokens",
]

View File

@@ -1,128 +0,0 @@
from __future__ import annotations
import openai
from autogpt.config import Config
from autogpt.llm.modelsinfo import COSTS
from autogpt.logs import logger
from autogpt.singleton import Singleton
class ApiManager(metaclass=Singleton):
def __init__(self):
self.total_prompt_tokens = 0
self.total_completion_tokens = 0
self.total_cost = 0
self.total_budget = 0
def reset(self):
self.total_prompt_tokens = 0
self.total_completion_tokens = 0
self.total_cost = 0
self.total_budget = 0.0
def create_chat_completion(
self,
messages: list, # type: ignore
model: str | None = None,
temperature: float = None,
max_tokens: int | None = None,
deployment_id=None,
) -> str:
"""
Create a chat completion and update the cost.
Args:
messages (list): The list of messages to send to the API.
model (str): The model to use for the API call.
temperature (float): The temperature to use for the API call.
max_tokens (int): The maximum number of tokens for the API call.
Returns:
str: The AI's response.
"""
cfg = Config()
if temperature is None:
temperature = cfg.temperature
if deployment_id is not None:
response = openai.ChatCompletion.create(
deployment_id=deployment_id,
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens,
api_key=cfg.openai_api_key,
)
else:
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens,
api_key=cfg.openai_api_key,
)
logger.debug(f"Response: {response}")
prompt_tokens = response.usage.prompt_tokens
completion_tokens = response.usage.completion_tokens
self.update_cost(prompt_tokens, completion_tokens, model)
return response
def update_cost(self, prompt_tokens, completion_tokens, model):
"""
Update the total cost, prompt tokens, and completion tokens.
Args:
prompt_tokens (int): The number of tokens used in the prompt.
completion_tokens (int): The number of tokens used in the completion.
model (str): The model used for the API call.
"""
self.total_prompt_tokens += prompt_tokens
self.total_completion_tokens += completion_tokens
self.total_cost += (
prompt_tokens * COSTS[model]["prompt"]
+ completion_tokens * COSTS[model]["completion"]
) / 1000
logger.debug(f"Total running cost: ${self.total_cost:.3f}")
def set_total_budget(self, total_budget):
"""
Sets the total user-defined budget for API calls.
Args:
total_budget (float): The total budget for API calls.
"""
self.total_budget = total_budget
def get_total_prompt_tokens(self):
"""
Get the total number of prompt tokens.
Returns:
int: The total number of prompt tokens.
"""
return self.total_prompt_tokens
def get_total_completion_tokens(self):
"""
Get the total number of completion tokens.
Returns:
int: The total number of completion tokens.
"""
return self.total_completion_tokens
def get_total_cost(self):
"""
Get the total cost of API calls.
Returns:
float: The total cost of API calls.
"""
return self.total_cost
def get_total_budget(self):
"""
Get the total user-defined budget for API calls.
Returns:
float: The total budget for API calls.
"""
return self.total_budget

View File

@@ -1,65 +0,0 @@
from dataclasses import dataclass, field
from typing import List, TypedDict
class Message(TypedDict):
"""OpenAI Message object containing a role and the message content"""
role: str
content: str
@dataclass
class ModelInfo:
"""Struct for model information.
Would be lovely to eventually get this directly from APIs, but needs to be scraped from
websites for now.
"""
name: str
prompt_token_cost: float
completion_token_cost: float
max_tokens: int
@dataclass
class ChatModelInfo(ModelInfo):
"""Struct for chat model information."""
pass
@dataclass
class EmbeddingModelInfo(ModelInfo):
"""Struct for embedding model information."""
embedding_dimensions: int
@dataclass
class LLMResponse:
"""Standard response struct for a response from an LLM model."""
model_info: ModelInfo
prompt_tokens_used: int = 0
completion_tokens_used: int = 0
@dataclass
class EmbeddingModelResponse(LLMResponse):
"""Standard response struct for a response from an embedding model."""
embedding: List[float] = field(default_factory=list)
def __post_init__(self):
if self.completion_tokens_used:
raise ValueError("Embeddings should not have completion tokens used.")
@dataclass
class ChatModelResponse(LLMResponse):
"""Standard response struct for a response from an LLM model."""
content: str = None

View File

@@ -1,253 +0,0 @@
import time
from random import shuffle
from openai.error import RateLimitError
from autogpt.config import Config
from autogpt.llm.api_manager import ApiManager
from autogpt.llm.base import Message
from autogpt.llm.llm_utils import create_chat_completion
from autogpt.llm.token_counter import count_message_tokens
from autogpt.logs import logger
from autogpt.memory_management.store_memory import (
save_memory_trimmed_from_context_window,
)
from autogpt.memory_management.summary_memory import (
get_newly_trimmed_messages,
update_running_summary,
)
cfg = Config()
def create_chat_message(role, content) -> Message:
"""
Create a chat message with the given role and content.
Args:
role (str): The role of the message sender, e.g., "system", "user", or "assistant".
content (str): The content of the message.
Returns:
dict: A dictionary containing the role and content of the message.
"""
return {"role": role, "content": content}
def generate_context(prompt, relevant_memory, full_message_history, model):
current_context = [
create_chat_message("system", prompt),
create_chat_message(
"system", f"The current time and date is {time.strftime('%c')}"
),
# create_chat_message(
# "system",
# f"This reminds you of these events from your past:\n{relevant_memory}\n\n",
# ),
]
# Add messages from the full message history until we reach the token limit
next_message_to_add_index = len(full_message_history) - 1
insertion_index = len(current_context)
# Count the currently used tokens
current_tokens_used = count_message_tokens(current_context, model)
return (
next_message_to_add_index,
current_tokens_used,
insertion_index,
current_context,
)
# TODO: Change debug from hardcode to argument
def chat_with_ai(
agent, prompt, user_input, full_message_history, permanent_memory, token_limit
):
"""Interact with the OpenAI API, sending the prompt, user input, message history,
and permanent memory."""
while True:
try:
"""
Interact with the OpenAI API, sending the prompt, user input,
message history, and permanent memory.
Args:
prompt (str): The prompt explaining the rules to the AI.
user_input (str): The input from the user.
full_message_history (list): The list of all messages sent between the
user and the AI.
permanent_memory (Obj): The memory object containing the permanent
memory.
token_limit (int): The maximum number of tokens allowed in the API call.
Returns:
str: The AI's response.
"""
model = cfg.fast_llm_model # TODO: Change model from hardcode to argument
# Reserve 1000 tokens for the response
logger.debug(f"Token limit: {token_limit}")
send_token_limit = token_limit - 1000
# if len(full_message_history) == 0:
# relevant_memory = ""
# else:
# recent_history = full_message_history[-5:]
# shuffle(recent_history)
# relevant_memories = permanent_memory.get_relevant(
# str(recent_history), 5
# )
# if relevant_memories:
# shuffle(relevant_memories)
# relevant_memory = str(relevant_memories)
relevant_memory = ""
logger.debug(f"Memory Stats: {permanent_memory.get_stats()}")
(
next_message_to_add_index,
current_tokens_used,
insertion_index,
current_context,
) = generate_context(prompt, relevant_memory, full_message_history, model)
# while current_tokens_used > 2500:
# # remove memories until we are under 2500 tokens
# relevant_memory = relevant_memory[:-1]
# (
# next_message_to_add_index,
# current_tokens_used,
# insertion_index,
# current_context,
# ) = generate_context(
# prompt, relevant_memory, full_message_history, model
# )
current_tokens_used += count_message_tokens(
[create_chat_message("user", user_input)], model
) # Account for user input (appended later)
current_tokens_used += 500 # Account for memory (appended later) TODO: The final memory may be less than 500 tokens
# Add Messages until the token limit is reached or there are no more messages to add.
while next_message_to_add_index >= 0:
# print (f"CURRENT TOKENS USED: {current_tokens_used}")
message_to_add = full_message_history[next_message_to_add_index]
tokens_to_add = count_message_tokens([message_to_add], model)
if current_tokens_used + tokens_to_add > send_token_limit:
# save_memory_trimmed_from_context_window(
# full_message_history,
# next_message_to_add_index,
# permanent_memory,
# )
break
# Add the most recent message to the start of the current context,
# after the two system prompts.
current_context.insert(
insertion_index, full_message_history[next_message_to_add_index]
)
# Count the currently used tokens
current_tokens_used += tokens_to_add
# Move to the next most recent message in the full message history
next_message_to_add_index -= 1
# Insert Memories
if len(full_message_history) > 0:
(
newly_trimmed_messages,
agent.last_memory_index,
) = get_newly_trimmed_messages(
full_message_history=full_message_history,
current_context=current_context,
last_memory_index=agent.last_memory_index,
)
agent.summary_memory = update_running_summary(
current_memory=agent.summary_memory,
new_events=newly_trimmed_messages,
)
current_context.insert(insertion_index, agent.summary_memory)
api_manager = ApiManager()
# inform the AI about its remaining budget (if it has one)
if api_manager.get_total_budget() > 0.0:
remaining_budget = (
api_manager.get_total_budget() - api_manager.get_total_cost()
)
if remaining_budget < 0:
remaining_budget = 0
system_message = (
f"Your remaining API budget is ${remaining_budget:.3f}"
+ (
" BUDGET EXCEEDED! SHUT DOWN!\n\n"
if remaining_budget == 0
else " Budget very nearly exceeded! Shut down gracefully!\n\n"
if remaining_budget < 0.005
else " Budget nearly exceeded. Finish up.\n\n"
if remaining_budget < 0.01
else "\n\n"
)
)
logger.debug(system_message)
current_context.append(create_chat_message("system", system_message))
# Append user input, the length of this is accounted for above
current_context.extend([create_chat_message("user", user_input)])
plugin_count = len(cfg.plugins)
for i, plugin in enumerate(cfg.plugins):
if not plugin.can_handle_on_planning():
continue
plugin_response = plugin.on_planning(
agent.prompt_generator, current_context
)
if not plugin_response or plugin_response == "":
continue
tokens_to_add = count_message_tokens(
[create_chat_message("system", plugin_response)], model
)
if current_tokens_used + tokens_to_add > send_token_limit:
logger.debug("Plugin response too long, skipping:", plugin_response)
logger.debug("Plugins remaining at stop:", plugin_count - i)
break
current_context.append(create_chat_message("system", plugin_response))
# Calculate remaining tokens
tokens_remaining = token_limit - current_tokens_used
# assert tokens_remaining >= 0, "Tokens remaining is negative.
# This should never happen, please submit a bug report at
# https://www.github.com/Torantulino/Auto-GPT"
# Debug print the current context
logger.debug(f"Token limit: {token_limit}")
logger.debug(f"Send Token Count: {current_tokens_used}")
logger.debug(f"Tokens remaining for response: {tokens_remaining}")
logger.debug("------------ CONTEXT SENT TO AI ---------------")
for message in current_context:
# Skip printing the prompt
if message["role"] == "system" and message["content"] == prompt:
continue
logger.debug(f"{message['role'].capitalize()}: {message['content']}")
logger.debug("")
logger.debug("----------- END OF CONTEXT ----------------")
# TODO: use a model defined elsewhere, so that model can contain
# temperature and other settings we care about
assistant_reply = create_chat_completion(
model=model,
messages=current_context,
max_tokens=tokens_remaining,
)
# Update full message history
full_message_history.append(create_chat_message("user", user_input))
full_message_history.append(
create_chat_message("assistant", assistant_reply)
)
return assistant_reply
except RateLimitError:
# TODO: When we switch to langchain, this is built in
logger.warn("Error: ", "API Rate Limit Reached. Waiting 10 seconds...")
time.sleep(10)

View File

@@ -1,258 +0,0 @@
from __future__ import annotations
import functools
import time
from typing import List, Optional
import openai
from colorama import Fore, Style
from openai.error import APIError, RateLimitError, Timeout
from autogpt.config import Config
from autogpt.llm.api_manager import ApiManager
from autogpt.llm.base import Message
from autogpt.logs import logger
def retry_openai_api(
num_retries: int = 10,
backoff_base: float = 2.0,
warn_user: bool = True,
):
"""Retry an OpenAI API call.
Args:
num_retries int: Number of retries. Defaults to 10.
backoff_base float: Base for exponential backoff. Defaults to 2.
warn_user bool: Whether to warn the user. Defaults to True.
"""
retry_limit_msg = f"{Fore.RED}Error: " f"Reached rate limit, passing...{Fore.RESET}"
api_key_error_msg = (
f"Please double check that you have setup a "
f"{Fore.CYAN + Style.BRIGHT}PAID{Style.RESET_ALL} OpenAI API Account. You can "
f"read more here: {Fore.CYAN}https://significant-gravitas.github.io/Auto-GPT/setup/#getting-an-api-key{Fore.RESET}"
)
backoff_msg = (
f"{Fore.RED}Error: API Bad gateway. Waiting {{backoff}} seconds...{Fore.RESET}"
)
def _wrapper(func):
@functools.wraps(func)
def _wrapped(*args, **kwargs):
user_warned = not warn_user
num_attempts = num_retries + 1 # +1 for the first attempt
for attempt in range(1, num_attempts + 1):
try:
return func(*args, **kwargs)
except RateLimitError:
if attempt == num_attempts:
raise
logger.debug(retry_limit_msg)
if not user_warned:
logger.double_check(api_key_error_msg)
user_warned = True
except APIError as e:
if (e.http_status != 502) or (attempt == num_attempts):
raise
backoff = backoff_base ** (attempt + 2)
logger.debug(backoff_msg.format(backoff=backoff))
time.sleep(backoff)
return _wrapped
return _wrapper
def call_ai_function(
function: str, args: list, description: str, model: str | None = None
) -> str:
"""Call an AI function
This is a magic function that can do anything with no-code. See
https://github.com/Torantulino/AI-Functions for more info.
Args:
function (str): The function to call
args (list): The arguments to pass to the function
description (str): The description of the function
model (str, optional): The model to use. Defaults to None.
Returns:
str: The response from the function
"""
cfg = Config()
if model is None:
model = cfg.smart_llm_model
# For each arg, if any are None, convert to "None":
args = [str(arg) if arg is not None else "None" for arg in args]
# parse args to comma separated string
args: str = ", ".join(args)
messages: List[Message] = [
{
"role": "system",
"content": f"You are now the following python function: ```# {description}"
f"\n{function}```\n\nOnly respond with your `return` value.",
},
{"role": "user", "content": args},
]
return create_chat_completion(model=model, messages=messages, temperature=0)
# Overly simple abstraction until we create something better
# simple retry mechanism when getting a rate error or a bad gateway
def create_chat_completion(
messages: List[Message], # type: ignore
model: Optional[str] = None,
temperature: float = None,
max_tokens: Optional[int] = None,
) -> str:
"""Create a chat completion using the OpenAI API
Args:
messages (List[Message]): The messages to send to the chat completion
model (str, optional): The model to use. Defaults to None.
temperature (float, optional): The temperature to use. Defaults to 0.9.
max_tokens (int, optional): The max tokens to use. Defaults to None.
Returns:
str: The response from the chat completion
"""
cfg = Config()
if temperature is None:
temperature = cfg.temperature
num_retries = 10
warned_user = False
logger.debug(
f"{Fore.GREEN}Creating chat completion with model {model}, temperature {temperature}, max_tokens {max_tokens}{Fore.RESET}"
)
for plugin in cfg.plugins:
if plugin.can_handle_chat_completion(
messages=messages,
model=model,
temperature=temperature,
max_tokens=max_tokens,
):
message = plugin.handle_chat_completion(
messages=messages,
model=model,
temperature=temperature,
max_tokens=max_tokens,
)
if message is not None:
return message
api_manager = ApiManager()
response = None
for attempt in range(num_retries):
backoff = 2 ** (attempt + 2)
try:
if cfg.use_azure:
response = api_manager.create_chat_completion(
deployment_id=cfg.get_azure_deployment_id_for_model(model),
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens,
)
else:
response = api_manager.create_chat_completion(
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens,
)
break
except RateLimitError:
logger.debug(
f"{Fore.RED}Error: ", f"Reached rate limit, passing...{Fore.RESET}"
)
if not warned_user:
logger.double_check(
f"Please double check that you have setup a {Fore.CYAN + Style.BRIGHT}PAID{Style.RESET_ALL} OpenAI API Account. "
+ f"You can read more here: {Fore.CYAN}https://significant-gravitas.github.io/Auto-GPT/setup/#getting-an-api-key{Fore.RESET}"
)
warned_user = True
except (APIError, Timeout) as e:
if e.http_status != 502:
raise
if attempt == num_retries - 1:
raise
logger.debug(
f"{Fore.RED}Error: ",
f"API Bad gateway. Waiting {backoff} seconds...{Fore.RESET}",
)
time.sleep(backoff)
if response is None:
logger.typewriter_log(
"FAILED TO GET RESPONSE FROM OPENAI",
Fore.RED,
"Auto-GPT has failed to get a response from OpenAI's services. "
+ f"Try running Auto-GPT again, and if the problem the persists try running it with `{Fore.CYAN}--debug{Fore.RESET}`.",
)
logger.double_check()
if cfg.debug_mode:
raise RuntimeError(f"Failed to get response after {num_retries} retries")
else:
quit(1)
resp = response.choices[0].message["content"]
for plugin in cfg.plugins:
if not plugin.can_handle_on_response():
continue
resp = plugin.on_response(resp)
return resp
def get_ada_embedding(text: str) -> List[float]:
"""Get an embedding from the ada model.
Args:
text (str): The text to embed.
Returns:
List[float]: The embedding.
"""
cfg = Config()
model = "text-embedding-ada-002"
text = text.replace("\n", " ")
if cfg.use_azure:
kwargs = {"engine": cfg.get_azure_deployment_id_for_model(model)}
else:
kwargs = {"model": model}
embedding = create_embedding(text, **kwargs)
api_manager = ApiManager()
api_manager.update_cost(
prompt_tokens=embedding.usage.prompt_tokens,
completion_tokens=0,
model=model,
)
return embedding["data"][0]["embedding"]
@retry_openai_api()
def create_embedding(
text: str,
*_,
**kwargs,
) -> openai.Embedding:
"""Create an embedding using the OpenAI API
Args:
text (str): The text to embed.
kwargs: Other arguments to pass to the OpenAI API embedding creation call.
Returns:
openai.Embedding: The embedding object.
"""
cfg = Config()
return openai.Embedding.create(
input=[text],
api_key=cfg.openai_api_key,
**kwargs,
)

View File

@@ -1,7 +0,0 @@
COSTS = {
"gpt-3.5-turbo": {"prompt": 0.002, "completion": 0.002},
"gpt-3.5-turbo-0301": {"prompt": 0.002, "completion": 0.002},
"gpt-4-0314": {"prompt": 0.03, "completion": 0.06},
"gpt-4": {"prompt": 0.03, "completion": 0.06},
"text-embedding-ada-002": {"prompt": 0.0004, "completion": 0.0},
}

View File

@@ -1,37 +0,0 @@
from autogpt.llm.base import ChatModelInfo, EmbeddingModelInfo
OPEN_AI_CHAT_MODELS = {
"gpt-3.5-turbo": ChatModelInfo(
name="gpt-3.5-turbo",
prompt_token_cost=0.002,
completion_token_cost=0.002,
max_tokens=4096,
),
"gpt-4": ChatModelInfo(
name="gpt-4",
prompt_token_cost=0.03,
completion_token_cost=0.06,
max_tokens=8192,
),
"gpt-4-32k": ChatModelInfo(
name="gpt-4-32k",
prompt_token_cost=0.06,
completion_token_cost=0.12,
max_tokens=32768,
),
}
OPEN_AI_EMBEDDING_MODELS = {
"text-embedding-ada-002": EmbeddingModelInfo(
name="text-embedding-ada-002",
prompt_token_cost=0.0004,
completion_token_cost=0.0,
max_tokens=8191,
embedding_dimensions=1536,
),
}
OPEN_AI_MODELS = {
**OPEN_AI_CHAT_MODELS,
**OPEN_AI_EMBEDDING_MODELS,
}

View File

@@ -1,76 +0,0 @@
"""Functions for counting the number of tokens in a message or string."""
from __future__ import annotations
from typing import List
import tiktoken
from autogpt.llm.base import Message
from autogpt.logs import logger
def count_message_tokens(
messages: List[Message], model: str = "gpt-3.5-turbo-0301"
) -> int:
"""
Returns the number of tokens used by a list of messages.
Args:
messages (list): A list of messages, each of which is a dictionary
containing the role and content of the message.
model (str): The name of the model to use for tokenization.
Defaults to "gpt-3.5-turbo-0301".
Returns:
int: The number of tokens used by the list of messages.
"""
try:
encoding = tiktoken.encoding_for_model(model)
except KeyError:
logger.warn("Warning: model not found. Using cl100k_base encoding.")
encoding = tiktoken.get_encoding("cl100k_base")
if model == "gpt-3.5-turbo":
# !Note: gpt-3.5-turbo may change over time.
# Returning num tokens assuming gpt-3.5-turbo-0301.")
return count_message_tokens(messages, model="gpt-3.5-turbo-0301")
elif model == "gpt-4":
# !Note: gpt-4 may change over time. Returning num tokens assuming gpt-4-0314.")
return count_message_tokens(messages, model="gpt-4-0314")
elif model == "gpt-3.5-turbo-0301":
tokens_per_message = (
4 # every message follows <|start|>{role/name}\n{content}<|end|>\n
)
tokens_per_name = -1 # if there's a name, the role is omitted
elif model == "gpt-4-0314":
tokens_per_message = 3
tokens_per_name = 1
else:
raise NotImplementedError(
f"num_tokens_from_messages() is not implemented for model {model}.\n"
" See https://github.com/openai/openai-python/blob/main/chatml.md for"
" information on how messages are converted to tokens."
)
num_tokens = 0
for message in messages:
num_tokens += tokens_per_message
for key, value in message.items():
num_tokens += len(encoding.encode(value))
if key == "name":
num_tokens += tokens_per_name
num_tokens += 3 # every reply is primed with <|start|>assistant<|message|>
return num_tokens
def count_string_tokens(string: str, model_name: str) -> int:
"""
Returns the number of tokens in a text string.
Args:
string (str): The text string.
model_name (str): The name of the encoding to use. (e.g., "gpt-3.5-turbo")
Returns:
int: The number of tokens in the text string.
"""
encoding = tiktoken.encoding_for_model(model_name)
return len(encoding.encode(string))

View File

@@ -1,256 +0,0 @@
"""Logging module for Auto-GPT."""
import logging
import os
import random
import re
import time
from logging import LogRecord
from colorama import Fore, Style
from autogpt.singleton import Singleton
from autogpt.speech import say_text
class Logger(metaclass=Singleton):
"""
Logger that handle titles in different colors.
Outputs logs in console, activity.log, and errors.log
For console handler: simulates typing
"""
def __init__(self):
# create log directory if it doesn't exist
this_files_dir_path = os.path.dirname(__file__)
log_dir = os.path.join(this_files_dir_path, "../logs")
if not os.path.exists(log_dir):
os.makedirs(log_dir)
log_file = "activity.log"
error_file = "error.log"
console_formatter = AutoGptFormatter("%(title_color)s %(message)s")
# Create a handler for console which simulate typing
self.typing_console_handler = TypingConsoleHandler()
self.typing_console_handler.setLevel(logging.INFO)
self.typing_console_handler.setFormatter(console_formatter)
# Create a handler for console without typing simulation
self.console_handler = ConsoleHandler()
self.console_handler.setLevel(logging.DEBUG)
self.console_handler.setFormatter(console_formatter)
# Info handler in activity.log
self.file_handler = logging.FileHandler(
os.path.join(log_dir, log_file), "a", "utf-8"
)
self.file_handler.setLevel(logging.DEBUG)
info_formatter = AutoGptFormatter(
"%(asctime)s %(levelname)s %(title)s %(message_no_color)s"
)
self.file_handler.setFormatter(info_formatter)
# Error handler error.log
error_handler = logging.FileHandler(
os.path.join(log_dir, error_file), "a", "utf-8"
)
error_handler.setLevel(logging.ERROR)
error_formatter = AutoGptFormatter(
"%(asctime)s %(levelname)s %(module)s:%(funcName)s:%(lineno)d %(title)s"
" %(message_no_color)s"
)
error_handler.setFormatter(error_formatter)
self.typing_logger = logging.getLogger("TYPER")
self.typing_logger.addHandler(self.typing_console_handler)
self.typing_logger.addHandler(self.file_handler)
self.typing_logger.addHandler(error_handler)
self.typing_logger.setLevel(logging.DEBUG)
self.logger = logging.getLogger("LOGGER")
self.logger.addHandler(self.console_handler)
self.logger.addHandler(self.file_handler)
self.logger.addHandler(error_handler)
self.logger.setLevel(logging.DEBUG)
self.speak_mode = False
def typewriter_log(
self, title="", title_color="", content="", speak_text=False, level=logging.INFO
):
if speak_text and self.speak_mode:
say_text(f"{title}. {content}")
if content:
if isinstance(content, list):
content = " ".join(content)
else:
content = ""
self.typing_logger.log(
level, content, extra={"title": title, "color": title_color}
)
def debug(
self,
message,
title="",
title_color="",
):
self._log(title, title_color, message, logging.DEBUG)
def info(
self,
message,
title="",
title_color="",
):
self._log(title, title_color, message, logging.INFO)
def warn(
self,
message,
title="",
title_color="",
):
self._log(title, title_color, message, logging.WARN)
def error(self, title, message=""):
self._log(title, Fore.RED, message, logging.ERROR)
def _log(
self,
title: str = "",
title_color: str = "",
message: str = "",
level=logging.INFO,
):
if message:
if isinstance(message, list):
message = " ".join(message)
self.logger.log(
level, message, extra={"title": str(title), "color": str(title_color)}
)
def set_level(self, level):
self.logger.setLevel(level)
self.typing_logger.setLevel(level)
def double_check(self, additionalText=None):
if not additionalText:
additionalText = (
"Please ensure you've setup and configured everything"
" correctly. Read https://github.com/Torantulino/Auto-GPT#readme to "
"double check. You can also create a github issue or join the discord"
" and ask there!"
)
self.typewriter_log("DOUBLE CHECK CONFIGURATION", Fore.YELLOW, additionalText)
"""
Output stream to console using simulated typing
"""
class TypingConsoleHandler(logging.StreamHandler):
def emit(self, record):
min_typing_speed = 0.05
max_typing_speed = 0.01
msg = self.format(record)
try:
words = msg.split()
for i, word in enumerate(words):
print(word, end="", flush=True)
if i < len(words) - 1:
print(" ", end="", flush=True)
typing_speed = random.uniform(min_typing_speed, max_typing_speed)
time.sleep(typing_speed)
# type faster after each word
min_typing_speed = min_typing_speed * 0.95
max_typing_speed = max_typing_speed * 0.95
print()
except Exception:
self.handleError(record)
class ConsoleHandler(logging.StreamHandler):
def emit(self, record) -> None:
msg = self.format(record)
try:
print(msg)
except Exception:
self.handleError(record)
class AutoGptFormatter(logging.Formatter):
"""
Allows to handle custom placeholders 'title_color' and 'message_no_color'.
To use this formatter, make sure to pass 'color', 'title' as log extras.
"""
def format(self, record: LogRecord) -> str:
if hasattr(record, "color"):
record.title_color = (
getattr(record, "color")
+ getattr(record, "title")
+ " "
+ Style.RESET_ALL
)
else:
record.title_color = getattr(record, "title")
if hasattr(record, "msg"):
record.message_no_color = remove_color_codes(getattr(record, "msg"))
else:
record.message_no_color = ""
return super().format(record)
def remove_color_codes(s: str) -> str:
ansi_escape = re.compile(r"\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])")
return ansi_escape.sub("", s)
logger = Logger()
def print_assistant_thoughts(
ai_name: object,
assistant_reply_json_valid: object,
speak_mode: bool = False,
) -> None:
assistant_thoughts_reasoning = None
assistant_thoughts_plan = None
assistant_thoughts_speak = None
assistant_thoughts_criticism = None
assistant_thoughts = assistant_reply_json_valid.get("thoughts", {})
assistant_thoughts_text = assistant_thoughts.get("text")
if assistant_thoughts:
assistant_thoughts_reasoning = assistant_thoughts.get("reasoning")
assistant_thoughts_plan = assistant_thoughts.get("plan")
assistant_thoughts_criticism = assistant_thoughts.get("criticism")
assistant_thoughts_speak = assistant_thoughts.get("speak")
logger.typewriter_log(
f"{ai_name.upper()} THOUGHTS:", Fore.YELLOW, f"{assistant_thoughts_text}"
)
logger.typewriter_log("REASONING:", Fore.YELLOW, f"{assistant_thoughts_reasoning}")
if assistant_thoughts_plan:
logger.typewriter_log("PLAN:", 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.typewriter_log("- ", Fore.GREEN, line.strip())
logger.typewriter_log("CRITICISM:", Fore.YELLOW, f"{assistant_thoughts_criticism}")
# Speak the assistant's thoughts
if speak_mode and assistant_thoughts_speak:
say_text(assistant_thoughts_speak)

View File

@@ -1,150 +0,0 @@
"""The application entry point. Can be invoked by a CLI or any other front end application."""
import logging
import sys
from pathlib import Path
from colorama import Fore
from autogpt.agent.agent import Agent
from autogpt.commands.command import CommandRegistry
from autogpt.config import Config, check_openai_api_key
from autogpt.configurator import create_config
from autogpt.logs import logger
from autogpt.memory import get_memory
from autogpt.plugins import scan_plugins
from autogpt.prompts.prompt import DEFAULT_TRIGGERING_PROMPT, construct_main_ai_config
from autogpt.utils import get_current_git_branch, get_latest_bulletin
from autogpt.workspace import Workspace
from scripts.install_plugin_deps import install_plugin_dependencies
def run_auto_gpt(
continuous: bool,
continuous_limit: int,
ai_settings: str,
skip_reprompt: bool,
speak: bool,
debug: bool,
gpt3only: bool,
gpt4only: bool,
memory_type: str,
browser_name: str,
allow_downloads: bool,
skip_news: bool,
workspace_directory: str,
install_plugin_deps: bool,
):
# Configure logging before we do anything else.
logger.set_level(logging.DEBUG if debug else logging.INFO)
logger.speak_mode = speak
cfg = Config()
# TODO: fill in llm values here
check_openai_api_key()
create_config(
continuous,
continuous_limit,
ai_settings,
skip_reprompt,
speak,
debug,
gpt3only,
gpt4only,
memory_type,
browser_name,
allow_downloads,
skip_news,
)
if not cfg.skip_news:
motd = get_latest_bulletin()
if motd:
logger.typewriter_log("NEWS: ", Fore.GREEN, motd)
git_branch = get_current_git_branch()
if git_branch and git_branch != "stable":
logger.typewriter_log(
"WARNING: ",
Fore.RED,
f"You are running on `{git_branch}` branch "
"- this is not a supported branch.",
)
if sys.version_info < (3, 10):
logger.typewriter_log(
"WARNING: ",
Fore.RED,
"You are running on an older version of Python. "
"Some people have observed problems with certain "
"parts of Auto-GPT with this version. "
"Please consider upgrading to Python 3.10 or higher.",
)
if install_plugin_deps:
install_plugin_dependencies()
# TODO: have this directory live outside the repository (e.g. in a user's
# home directory) and have it come in as a command line argument or part of
# the env file.
if workspace_directory is None:
workspace_directory = Path(__file__).parent / "auto_gpt_workspace"
else:
workspace_directory = Path(workspace_directory)
# TODO: pass in the ai_settings file and the env file and have them cloned into
# the workspace directory so we can bind them to the agent.
workspace_directory = Workspace.make_workspace(workspace_directory)
cfg.workspace_path = str(workspace_directory)
# HACK: doing this here to collect some globals that depend on the workspace.
file_logger_path = workspace_directory / "file_logger.txt"
if not file_logger_path.exists():
with file_logger_path.open(mode="w", encoding="utf-8") as f:
f.write("File Operation Logger ")
cfg.file_logger_path = str(file_logger_path)
cfg.set_plugins(scan_plugins(cfg, cfg.debug_mode))
# Create a CommandRegistry instance and scan default folder
command_registry = CommandRegistry()
command_registry.import_commands("autogpt.commands.analyze_code")
command_registry.import_commands("autogpt.commands.audio_text")
command_registry.import_commands("autogpt.commands.execute_code")
command_registry.import_commands("autogpt.commands.file_operations")
command_registry.import_commands("autogpt.commands.git_operations")
command_registry.import_commands("autogpt.commands.google_search")
command_registry.import_commands("autogpt.commands.image_gen")
command_registry.import_commands("autogpt.commands.improve_code")
command_registry.import_commands("autogpt.commands.twitter")
command_registry.import_commands("autogpt.commands.web_selenium")
command_registry.import_commands("autogpt.commands.write_tests")
command_registry.import_commands("autogpt.app")
ai_name = ""
ai_config = construct_main_ai_config()
ai_config.command_registry = command_registry
# print(prompt)
# Initialize variables
full_message_history = []
next_action_count = 0
# Initialize memory and make sure it is empty.
# this is particularly important for indexing and referencing pinecone memory
memory = get_memory(cfg, init=True)
logger.typewriter_log(
"Using memory of type:", Fore.GREEN, f"{memory.__class__.__name__}"
)
logger.typewriter_log("Using Browser:", Fore.GREEN, cfg.selenium_web_browser)
system_prompt = ai_config.construct_full_prompt()
if cfg.debug_mode:
logger.typewriter_log("Prompt:", Fore.GREEN, system_prompt)
agent = Agent(
ai_name=ai_name,
memory=memory,
full_message_history=full_message_history,
next_action_count=next_action_count,
command_registry=command_registry,
config=ai_config,
system_prompt=system_prompt,
triggering_prompt=DEFAULT_TRIGGERING_PROMPT,
workspace_directory=workspace_directory,
)
agent.start_interaction_loop()

View File

@@ -1,96 +0,0 @@
from autogpt.logs import logger
from autogpt.memory.local import LocalCache
from autogpt.memory.no_memory import NoMemory
# List of supported memory backends
# Add a backend to this list if the import attempt is successful
supported_memory = ["local", "no_memory"]
try:
from autogpt.memory.redismem import RedisMemory
supported_memory.append("redis")
except ImportError:
RedisMemory = None
try:
from autogpt.memory.pinecone import PineconeMemory
supported_memory.append("pinecone")
except ImportError:
PineconeMemory = None
try:
from autogpt.memory.weaviate import WeaviateMemory
supported_memory.append("weaviate")
except ImportError:
WeaviateMemory = None
try:
from autogpt.memory.milvus import MilvusMemory
supported_memory.append("milvus")
except ImportError:
MilvusMemory = None
def get_memory(cfg, init=False):
memory = None
if cfg.memory_backend == "pinecone":
if not PineconeMemory:
logger.warn(
"Error: Pinecone is not installed. Please install pinecone"
" to use Pinecone as a memory backend."
)
else:
memory = PineconeMemory(cfg)
if init:
memory.clear()
elif cfg.memory_backend == "redis":
if not RedisMemory:
logger.warn(
"Error: Redis is not installed. Please install redis-py to"
" use Redis as a memory backend."
)
else:
memory = RedisMemory(cfg)
elif cfg.memory_backend == "weaviate":
if not WeaviateMemory:
logger.warn(
"Error: Weaviate is not installed. Please install weaviate-client to"
" use Weaviate as a memory backend."
)
else:
memory = WeaviateMemory(cfg)
elif cfg.memory_backend == "milvus":
if not MilvusMemory:
logger.warn(
"Error: pymilvus sdk is not installed."
"Please install pymilvus to use Milvus or Zilliz Cloud as memory backend."
)
else:
memory = MilvusMemory(cfg)
elif cfg.memory_backend == "no_memory":
memory = NoMemory(cfg)
if memory is None:
memory = LocalCache(cfg)
if init:
memory.clear()
return memory
def get_supported_memory_backends():
return supported_memory
__all__ = [
"get_memory",
"LocalCache",
"RedisMemory",
"PineconeMemory",
"NoMemory",
"MilvusMemory",
"WeaviateMemory",
]

View File

@@ -1,31 +0,0 @@
"""Base class for memory providers."""
import abc
from autogpt.singleton import AbstractSingleton
class MemoryProviderSingleton(AbstractSingleton):
@abc.abstractmethod
def add(self, data):
"""Adds to memory"""
pass
@abc.abstractmethod
def get(self, data):
"""Gets from memory"""
pass
@abc.abstractmethod
def clear(self):
"""Clears memory"""
pass
@abc.abstractmethod
def get_relevant(self, data, num_relevant=5):
"""Gets relevant memory for"""
pass
@abc.abstractmethod
def get_stats(self):
"""Get stats from memory"""
pass

View File

@@ -1,126 +0,0 @@
from __future__ import annotations
import dataclasses
from pathlib import Path
from typing import Any, List
import numpy as np
import orjson
from autogpt.llm import get_ada_embedding
from autogpt.memory.base import MemoryProviderSingleton
EMBED_DIM = 1536
SAVE_OPTIONS = orjson.OPT_SERIALIZE_NUMPY | orjson.OPT_SERIALIZE_DATACLASS
def create_default_embeddings():
return np.zeros((0, EMBED_DIM)).astype(np.float32)
@dataclasses.dataclass
class CacheContent:
texts: List[str] = dataclasses.field(default_factory=list)
embeddings: np.ndarray = dataclasses.field(
default_factory=create_default_embeddings
)
class LocalCache(MemoryProviderSingleton):
"""A class that stores the memory in a local file"""
def __init__(self, cfg) -> None:
"""Initialize a class instance
Args:
cfg: Config object
Returns:
None
"""
workspace_path = Path(cfg.workspace_path)
self.filename = workspace_path / f"{cfg.memory_index}.json"
self.filename.touch(exist_ok=True)
file_content = b"{}"
with self.filename.open("w+b") as f:
f.write(file_content)
self.data = CacheContent()
def add(self, text: str):
"""
Add text to our list of texts, add embedding as row to our
embeddings-matrix
Args:
text: str
Returns: None
"""
if "Command Error:" in text:
return ""
self.data.texts.append(text)
embedding = get_ada_embedding(text)
vector = np.array(embedding).astype(np.float32)
vector = vector[np.newaxis, :]
self.data.embeddings = np.concatenate(
[
self.data.embeddings,
vector,
],
axis=0,
)
with open(self.filename, "wb") as f:
out = orjson.dumps(self.data, option=SAVE_OPTIONS)
f.write(out)
return text
def clear(self) -> str:
"""
Clears the data in memory.
Returns: A message indicating that the memory has been cleared.
"""
self.data = CacheContent()
return "Obliviated"
def get(self, data: str) -> list[Any] | None:
"""
Gets the data from the memory that is most relevant to the given data.
Args:
data: The data to compare to.
Returns: The most relevant data.
"""
return self.get_relevant(data, 1)
def get_relevant(self, text: str, k: int) -> list[Any]:
""" "
matrix-vector mult to find score-for-each-row-of-matrix
get indices for top-k winning scores
return texts for those indices
Args:
text: str
k: int
Returns: List[str]
"""
embedding = get_ada_embedding(text)
scores = np.dot(self.data.embeddings, embedding)
top_k_indices = np.argsort(scores)[-k:][::-1]
return [self.data.texts[i] for i in top_k_indices]
def get_stats(self) -> tuple[int, tuple[int, ...]]:
"""
Returns: The stats of the local cache.
"""
return len(self.data.texts), self.data.embeddings.shape

View File

@@ -1,162 +0,0 @@
""" Milvus memory storage provider."""
import re
from pymilvus import Collection, CollectionSchema, DataType, FieldSchema, connections
from autogpt.config import Config
from autogpt.llm import get_ada_embedding
from autogpt.memory.base import MemoryProviderSingleton
class MilvusMemory(MemoryProviderSingleton):
"""Milvus memory storage provider."""
def __init__(self, cfg: Config) -> None:
"""Construct a milvus memory storage connection.
Args:
cfg (Config): Auto-GPT global config.
"""
self.configure(cfg)
connect_kwargs = {}
if self.username:
connect_kwargs["user"] = self.username
connect_kwargs["password"] = self.password
connections.connect(
**connect_kwargs,
uri=self.uri or "",
address=self.address or "",
secure=self.secure,
)
self.init_collection()
def configure(self, cfg: Config) -> None:
# init with configuration.
self.uri = None
self.address = cfg.milvus_addr
self.secure = cfg.milvus_secure
self.username = cfg.milvus_username
self.password = cfg.milvus_password
self.collection_name = cfg.milvus_collection
# use HNSW by default.
self.index_params = {
"metric_type": "IP",
"index_type": "HNSW",
"params": {"M": 8, "efConstruction": 64},
}
if (self.username is None) != (self.password is None):
raise ValueError(
"Both username and password must be set to use authentication for Milvus"
)
# configured address may be a full URL.
if re.match(r"^(https?|tcp)://", self.address) is not None:
self.uri = self.address
self.address = None
if self.uri.startswith("https"):
self.secure = True
# Zilliz Cloud requires AutoIndex.
if re.match(r"^https://(.*)\.zillizcloud\.(com|cn)", self.uri) is not None:
self.index_params = {
"metric_type": "IP",
"index_type": "AUTOINDEX",
"params": {},
}
def init_collection(self) -> None:
"""Initialize collection in vector database."""
fields = [
FieldSchema(name="pk", dtype=DataType.INT64, is_primary=True, auto_id=True),
FieldSchema(name="embeddings", dtype=DataType.FLOAT_VECTOR, dim=1536),
FieldSchema(name="raw_text", dtype=DataType.VARCHAR, max_length=65535),
]
# create collection if not exist and load it.
self.schema = CollectionSchema(fields, "auto-gpt memory storage")
self.collection = Collection(self.collection_name, self.schema)
# create index if not exist.
if not self.collection.has_index():
self.collection.release()
self.collection.create_index(
"embeddings",
self.index_params,
index_name="embeddings",
)
self.collection.load()
def add(self, data) -> str:
"""Add an embedding of data into memory.
Args:
data (str): The raw text to construct embedding index.
Returns:
str: log.
"""
embedding = get_ada_embedding(data)
result = self.collection.insert([[embedding], [data]])
_text = (
"Inserting data into memory at primary key: "
f"{result.primary_keys[0]}:\n data: {data}"
)
return _text
def get(self, data):
"""Return the most relevant data in memory.
Args:
data: The data to compare to.
"""
return self.get_relevant(data, 1)
def clear(self) -> str:
"""Drop the index in memory.
Returns:
str: log.
"""
self.collection.drop()
self.collection = Collection(self.collection_name, self.schema)
self.collection.create_index(
"embeddings",
self.index_params,
index_name="embeddings",
)
self.collection.load()
return "Obliviated"
def get_relevant(self, data: str, num_relevant: int = 5):
"""Return the top-k relevant data in memory.
Args:
data: The data to compare to.
num_relevant (int, optional): The max number of relevant data.
Defaults to 5.
Returns:
list: The top-k relevant data.
"""
# search the embedding and return the most relevant text.
embedding = get_ada_embedding(data)
search_params = {
"metrics_type": "IP",
"params": {"nprobe": 8},
}
result = self.collection.search(
[embedding],
"embeddings",
search_params,
num_relevant,
output_fields=["raw_text"],
)
return [item.entity.value_of_field("raw_text") for item in result[0]]
def get_stats(self) -> str:
"""
Returns: The stats of the milvus cache.
"""
return f"Entities num: {self.collection.num_entities}"

View File

@@ -1,73 +0,0 @@
"""A class that does not store any data. This is the default memory provider."""
from __future__ import annotations
from typing import Any
from autogpt.memory.base import MemoryProviderSingleton
class NoMemory(MemoryProviderSingleton):
"""
A class that does not store any data. This is the default memory provider.
"""
def __init__(self, cfg):
"""
Initializes the NoMemory provider.
Args:
cfg: The config object.
Returns: None
"""
pass
def add(self, data: str) -> str:
"""
Adds a data point to the memory. No action is taken in NoMemory.
Args:
data: The data to add.
Returns: An empty string.
"""
return ""
def get(self, data: str) -> list[Any] | None:
"""
Gets the data from the memory that is most relevant to the given data.
NoMemory always returns None.
Args:
data: The data to compare to.
Returns: None
"""
return None
def clear(self) -> str:
"""
Clears the memory. No action is taken in NoMemory.
Returns: An empty string.
"""
return ""
def get_relevant(self, data: str, num_relevant: int = 5) -> list[Any] | None:
"""
Returns all the data in the memory that is relevant to the given data.
NoMemory always returns None.
Args:
data: The data to compare to.
num_relevant: The number of relevant data to return.
Returns: None
"""
return None
def get_stats(self):
"""
Returns: An empty dictionary as there are no stats in NoMemory.
"""
return {}

View File

@@ -1,75 +0,0 @@
import pinecone
from colorama import Fore, Style
from autogpt.llm import get_ada_embedding
from autogpt.logs import logger
from autogpt.memory.base import MemoryProviderSingleton
class PineconeMemory(MemoryProviderSingleton):
def __init__(self, cfg):
pinecone_api_key = cfg.pinecone_api_key
pinecone_region = cfg.pinecone_region
pinecone.init(api_key=pinecone_api_key, environment=pinecone_region)
dimension = 1536
metric = "cosine"
pod_type = "p1"
table_name = "auto-gpt"
# this assumes we don't start with memory.
# for now this works.
# we'll need a more complicated and robust system if we want to start with
# memory.
self.vec_num = 0
try:
pinecone.whoami()
except Exception as e:
logger.typewriter_log(
"FAILED TO CONNECT TO PINECONE",
Fore.RED,
Style.BRIGHT + str(e) + Style.RESET_ALL,
)
logger.double_check(
"Please ensure you have setup and configured Pinecone properly for use."
+ f"You can check out {Fore.CYAN + Style.BRIGHT}"
"https://github.com/Torantulino/Auto-GPT#-pinecone-api-key-setup"
f"{Style.RESET_ALL} to ensure you've set up everything correctly."
)
exit(1)
if table_name not in pinecone.list_indexes():
pinecone.create_index(
table_name, dimension=dimension, metric=metric, pod_type=pod_type
)
self.index = pinecone.Index(table_name)
def add(self, data):
vector = get_ada_embedding(data)
# no metadata here. We may wish to change that long term.
self.index.upsert([(str(self.vec_num), vector, {"raw_text": data})])
_text = f"Inserting data into memory at index: {self.vec_num}:\n data: {data}"
self.vec_num += 1
return _text
def get(self, data):
return self.get_relevant(data, 1)
def clear(self):
self.index.delete(deleteAll=True)
return "Obliviated"
def get_relevant(self, data, num_relevant=5):
"""
Returns all the data in the memory that is relevant to the given data.
:param data: The data to compare to.
:param num_relevant: The number of relevant data to return. Defaults to 5
"""
query_embedding = get_ada_embedding(data)
results = self.index.query(
query_embedding, top_k=num_relevant, include_metadata=True
)
sorted_results = sorted(results.matches, key=lambda x: x.score)
return [str(item["metadata"]["raw_text"]) for item in sorted_results]
def get_stats(self):
return self.index.describe_index_stats()

View File

@@ -1,156 +0,0 @@
"""Redis memory provider."""
from __future__ import annotations
from typing import Any
import numpy as np
import redis
from colorama import Fore, Style
from redis.commands.search.field import TextField, VectorField
from redis.commands.search.indexDefinition import IndexDefinition, IndexType
from redis.commands.search.query import Query
from autogpt.llm import get_ada_embedding
from autogpt.logs import logger
from autogpt.memory.base import MemoryProviderSingleton
SCHEMA = [
TextField("data"),
VectorField(
"embedding",
"HNSW",
{"TYPE": "FLOAT32", "DIM": 1536, "DISTANCE_METRIC": "COSINE"},
),
]
class RedisMemory(MemoryProviderSingleton):
def __init__(self, cfg):
"""
Initializes the Redis memory provider.
Args:
cfg: The config object.
Returns: None
"""
redis_host = cfg.redis_host
redis_port = cfg.redis_port
redis_password = cfg.redis_password
self.dimension = 1536
self.redis = redis.Redis(
host=redis_host,
port=redis_port,
password=redis_password,
db=0, # Cannot be changed
)
self.cfg = cfg
# Check redis connection
try:
self.redis.ping()
except redis.ConnectionError as e:
logger.typewriter_log(
"FAILED TO CONNECT TO REDIS",
Fore.RED,
Style.BRIGHT + str(e) + Style.RESET_ALL,
)
logger.double_check(
"Please ensure you have setup and configured Redis properly for use. "
+ f"You can check out {Fore.CYAN + Style.BRIGHT}"
f"https://github.com/Torantulino/Auto-GPT#redis-setup{Style.RESET_ALL}"
" to ensure you've set up everything correctly."
)
exit(1)
if cfg.wipe_redis_on_start:
self.redis.flushall()
try:
self.redis.ft(f"{cfg.memory_index}").create_index(
fields=SCHEMA,
definition=IndexDefinition(
prefix=[f"{cfg.memory_index}:"], index_type=IndexType.HASH
),
)
except Exception as e:
logger.warn("Error creating Redis search index: ", e)
existing_vec_num = self.redis.get(f"{cfg.memory_index}-vec_num")
self.vec_num = int(existing_vec_num.decode("utf-8")) if existing_vec_num else 0
def add(self, data: str) -> str:
"""
Adds a data point to the memory.
Args:
data: The data to add.
Returns: Message indicating that the data has been added.
"""
if "Command Error:" in data:
return ""
vector = get_ada_embedding(data)
vector = np.array(vector).astype(np.float32).tobytes()
data_dict = {b"data": data, "embedding": vector}
pipe = self.redis.pipeline()
pipe.hset(f"{self.cfg.memory_index}:{self.vec_num}", mapping=data_dict)
_text = (
f"Inserting data into memory at index: {self.vec_num}:\n" f"data: {data}"
)
self.vec_num += 1
pipe.set(f"{self.cfg.memory_index}-vec_num", self.vec_num)
pipe.execute()
return _text
def get(self, data: str) -> list[Any] | None:
"""
Gets the data from the memory that is most relevant to the given data.
Args:
data: The data to compare to.
Returns: The most relevant data.
"""
return self.get_relevant(data, 1)
def clear(self) -> str:
"""
Clears the redis server.
Returns: A message indicating that the memory has been cleared.
"""
self.redis.flushall()
return "Obliviated"
def get_relevant(self, data: str, num_relevant: int = 5) -> list[Any] | None:
"""
Returns all the data in the memory that is relevant to the given data.
Args:
data: The data to compare to.
num_relevant: The number of relevant data to return.
Returns: A list of the most relevant data.
"""
query_embedding = get_ada_embedding(data)
base_query = f"*=>[KNN {num_relevant} @embedding $vector AS vector_score]"
query = (
Query(base_query)
.return_fields("data", "vector_score")
.sort_by("vector_score")
.dialect(2)
)
query_vector = np.array(query_embedding).astype(np.float32).tobytes()
try:
results = self.redis.ft(f"{self.cfg.memory_index}").search(
query, query_params={"vector": query_vector}
)
except Exception as e:
logger.warn("Error calling Redis search: ", e)
return None
return [result.data for result in results.docs]
def get_stats(self):
"""
Returns: The stats of the memory index.
"""
return self.redis.ft(f"{self.cfg.memory_index}").info()

View File

@@ -1,127 +0,0 @@
import weaviate
from weaviate import Client
from weaviate.embedded import EmbeddedOptions
from weaviate.util import generate_uuid5
from autogpt.llm import get_ada_embedding
from autogpt.logs import logger
from autogpt.memory.base import MemoryProviderSingleton
def default_schema(weaviate_index):
return {
"class": weaviate_index,
"properties": [
{
"name": "raw_text",
"dataType": ["text"],
"description": "original text for the embedding",
}
],
}
class WeaviateMemory(MemoryProviderSingleton):
def __init__(self, cfg):
auth_credentials = self._build_auth_credentials(cfg)
url = f"{cfg.weaviate_protocol}://{cfg.weaviate_host}:{cfg.weaviate_port}"
if cfg.use_weaviate_embedded:
self.client = Client(
embedded_options=EmbeddedOptions(
hostname=cfg.weaviate_host,
port=int(cfg.weaviate_port),
persistence_data_path=cfg.weaviate_embedded_path,
)
)
logger.info(
f"Weaviate Embedded running on: {url} with persistence path: {cfg.weaviate_embedded_path}"
)
else:
self.client = Client(url, auth_client_secret=auth_credentials)
self.index = WeaviateMemory.format_classname(cfg.memory_index)
self._create_schema()
@staticmethod
def format_classname(index):
# weaviate uses capitalised index names
# The python client uses the following code to format
# index names before the corresponding class is created
index = index.replace("-", "_")
if len(index) == 1:
return index.capitalize()
return index[0].capitalize() + index[1:]
def _create_schema(self):
schema = default_schema(self.index)
if not self.client.schema.contains(schema):
self.client.schema.create_class(schema)
def _build_auth_credentials(self, cfg):
if cfg.weaviate_username and cfg.weaviate_password:
return weaviate.AuthClientPassword(
cfg.weaviate_username, cfg.weaviate_password
)
if cfg.weaviate_api_key:
return weaviate.AuthApiKey(api_key=cfg.weaviate_api_key)
else:
return None
def add(self, data):
vector = get_ada_embedding(data)
doc_uuid = generate_uuid5(data, self.index)
data_object = {"raw_text": data}
with self.client.batch as batch:
batch.add_data_object(
uuid=doc_uuid,
data_object=data_object,
class_name=self.index,
vector=vector,
)
return f"Inserting data into memory at uuid: {doc_uuid}:\n data: {data}"
def get(self, data):
return self.get_relevant(data, 1)
def clear(self):
self.client.schema.delete_all()
# weaviate does not yet have a neat way to just remove the items in an index
# without removing the entire schema, therefore we need to re-create it
# after a call to delete_all
self._create_schema()
return "Obliterated"
def get_relevant(self, data, num_relevant=5):
query_embedding = get_ada_embedding(data)
try:
results = (
self.client.query.get(self.index, ["raw_text"])
.with_near_vector({"vector": query_embedding, "certainty": 0.7})
.with_limit(num_relevant)
.do()
)
if len(results["data"]["Get"][self.index]) > 0:
return [
str(item["raw_text"]) for item in results["data"]["Get"][self.index]
]
else:
return []
except Exception as err:
logger.warn(f"Unexpected error {err=}, {type(err)=}")
return []
def get_stats(self):
result = self.client.query.aggregate(self.index).with_meta_count().do()
class_data = result["data"]["Aggregate"][self.index]
return class_data[0]["meta"] if class_data else {}

View File

@@ -1,33 +0,0 @@
from autogpt.json_utils.utilities import (
LLM_DEFAULT_RESPONSE_FORMAT,
is_string_valid_json,
)
from autogpt.logs import logger
def format_memory(assistant_reply, next_message_content):
# the next_message_content is a variable to stores either the user_input or the command following the assistant_reply
result = (
"None" if next_message_content.startswith("Command") else next_message_content
)
user_input = (
"None"
if next_message_content.startswith("Human feedback")
else next_message_content
)
return f"Assistant Reply: {assistant_reply}\nResult: {result}\nHuman Feedback:{user_input}"
def save_memory_trimmed_from_context_window(
full_message_history, next_message_to_add_index, permanent_memory
):
while next_message_to_add_index >= 0:
message_content = full_message_history[next_message_to_add_index]["content"]
if is_string_valid_json(message_content, LLM_DEFAULT_RESPONSE_FORMAT):
next_message = full_message_history[next_message_to_add_index + 1]
memory_to_add = format_memory(message_content, next_message["content"])
logger.debug(f"Storing the following memory: {memory_to_add}")
permanent_memory.add(memory_to_add)
next_message_to_add_index -= 1

View File

@@ -1,112 +0,0 @@
import json
from typing import Dict, List, Tuple
from autogpt.config import Config
from autogpt.llm.llm_utils import create_chat_completion
cfg = Config()
def get_newly_trimmed_messages(
full_message_history: List[Dict[str, str]],
current_context: List[Dict[str, str]],
last_memory_index: int,
) -> Tuple[List[Dict[str, str]], int]:
"""
This function returns a list of dictionaries contained in full_message_history
with an index higher than prev_index that are absent from current_context.
Args:
full_message_history (list): A list of dictionaries representing the full message history.
current_context (list): A list of dictionaries representing the current context.
last_memory_index (int): An integer representing the previous index.
Returns:
list: A list of dictionaries that are in full_message_history with an index higher than last_memory_index and absent from current_context.
int: The new index value for use in the next loop.
"""
# Select messages in full_message_history with an index higher than last_memory_index
new_messages = [
msg for i, msg in enumerate(full_message_history) if i > last_memory_index
]
# Remove messages that are already present in current_context
new_messages_not_in_context = [
msg for msg in new_messages if msg not in current_context
]
# Find the index of the last message processed
new_index = last_memory_index
if new_messages_not_in_context:
last_message = new_messages_not_in_context[-1]
new_index = full_message_history.index(last_message)
return new_messages_not_in_context, new_index
def update_running_summary(current_memory: str, new_events: List[Dict]) -> str:
"""
This function takes a list of dictionaries representing new events and combines them with the current summary,
focusing on key and potentially important information to remember. The updated summary is returned in a message
formatted in the 1st person past tense.
Args:
new_events (List[Dict]): A list of dictionaries containing the latest events to be added to the summary.
Returns:
str: A message containing the updated summary of actions, formatted in the 1st person past tense.
Example:
new_events = [{"event": "entered the kitchen."}, {"event": "found a scrawled note with the number 7"}]
update_running_summary(new_events)
# Returns: "This reminds you of these events from your past: \nI entered the kitchen and found a scrawled note saying 7."
"""
# Replace "assistant" with "you". This produces much better first person past tense results.
for event in new_events:
if event["role"].lower() == "assistant":
event["role"] = "you"
# Remove "thoughts" dictionary from "content"
content_dict = json.loads(event["content"])
if "thoughts" in content_dict:
del content_dict["thoughts"]
event["content"] = json.dumps(content_dict)
elif event["role"].lower() == "system":
event["role"] = "your computer"
# Delete all user messages
elif event["role"] == "user":
new_events.remove(event)
# This can happen at any point during execturion, not just the beginning
if len(new_events) == 0:
new_events = "Nothing new happened."
prompt = f'''Your task is to create a concise running summary of actions and information results in the provided text, focusing on key and potentially important information to remember.
You will receive the current summary and the your latest actions. Combine them, adding relevant key information from the latest development in 1st person past tense and keeping the summary concise.
Summary So Far:
"""
{current_memory}
"""
Latest Development:
"""
{new_events}
"""
'''
messages = [
{
"role": "user",
"content": prompt,
}
]
current_memory = create_chat_completion(messages, cfg.fast_llm_model)
message_to_return = {
"role": "system",
"content": f"This reminds you of these events from your past: \n{current_memory}",
}
return message_to_return

View File

@@ -1,199 +0,0 @@
"""Handles loading of plugins."""
from typing import Any, Dict, List, Optional, Tuple, TypedDict, TypeVar
from auto_gpt_plugin_template import AutoGPTPluginTemplate
PromptGenerator = TypeVar("PromptGenerator")
class Message(TypedDict):
role: str
content: str
class BaseOpenAIPlugin(AutoGPTPluginTemplate):
"""
This is a BaseOpenAIPlugin class for generating Auto-GPT plugins.
"""
def __init__(self, manifests_specs_clients: dict):
# super().__init__()
self._name = manifests_specs_clients["manifest"]["name_for_model"]
self._version = manifests_specs_clients["manifest"]["schema_version"]
self._description = manifests_specs_clients["manifest"]["description_for_model"]
self._client = manifests_specs_clients["client"]
self._manifest = manifests_specs_clients["manifest"]
self._openapi_spec = manifests_specs_clients["openapi_spec"]
def can_handle_on_response(self) -> bool:
"""This method is called to check that the plugin can
handle the on_response method.
Returns:
bool: True if the plugin can handle the on_response method."""
return False
def on_response(self, response: str, *args, **kwargs) -> str:
"""This method is called when a response is received from the model."""
return response
def can_handle_post_prompt(self) -> bool:
"""This method is called to check that the plugin can
handle the post_prompt method.
Returns:
bool: True if the plugin can handle the post_prompt method."""
return False
def post_prompt(self, prompt: PromptGenerator) -> PromptGenerator:
"""This method is called just after the generate_prompt is called,
but actually before the prompt is generated.
Args:
prompt (PromptGenerator): The prompt generator.
Returns:
PromptGenerator: The prompt generator.
"""
return prompt
def can_handle_on_planning(self) -> bool:
"""This method is called to check that the plugin can
handle the on_planning method.
Returns:
bool: True if the plugin can handle the on_planning method."""
return False
def on_planning(
self, prompt: PromptGenerator, messages: List[Message]
) -> Optional[str]:
"""This method is called before the planning chat completion is done.
Args:
prompt (PromptGenerator): The prompt generator.
messages (List[str]): The list of messages.
"""
pass
def can_handle_post_planning(self) -> bool:
"""This method is called to check that the plugin can
handle the post_planning method.
Returns:
bool: True if the plugin can handle the post_planning method."""
return False
def post_planning(self, response: str) -> str:
"""This method is called after the planning chat completion is done.
Args:
response (str): The response.
Returns:
str: The resulting response.
"""
return response
def can_handle_pre_instruction(self) -> bool:
"""This method is called to check that the plugin can
handle the pre_instruction method.
Returns:
bool: True if the plugin can handle the pre_instruction method."""
return False
def pre_instruction(self, messages: List[Message]) -> List[Message]:
"""This method is called before the instruction chat is done.
Args:
messages (List[Message]): The list of context messages.
Returns:
List[Message]: The resulting list of messages.
"""
return messages
def can_handle_on_instruction(self) -> bool:
"""This method is called to check that the plugin can
handle the on_instruction method.
Returns:
bool: True if the plugin can handle the on_instruction method."""
return False
def on_instruction(self, messages: List[Message]) -> Optional[str]:
"""This method is called when the instruction chat is done.
Args:
messages (List[Message]): The list of context messages.
Returns:
Optional[str]: The resulting message.
"""
pass
def can_handle_post_instruction(self) -> bool:
"""This method is called to check that the plugin can
handle the post_instruction method.
Returns:
bool: True if the plugin can handle the post_instruction method."""
return False
def post_instruction(self, response: str) -> str:
"""This method is called after the instruction chat is done.
Args:
response (str): The response.
Returns:
str: The resulting response.
"""
return response
def can_handle_pre_command(self) -> bool:
"""This method is called to check that the plugin can
handle the pre_command method.
Returns:
bool: True if the plugin can handle the pre_command method."""
return False
def pre_command(
self, command_name: str, arguments: Dict[str, Any]
) -> Tuple[str, Dict[str, Any]]:
"""This method is called before the command is executed.
Args:
command_name (str): The command name.
arguments (Dict[str, Any]): The arguments.
Returns:
Tuple[str, Dict[str, Any]]: The command name and the arguments.
"""
return command_name, arguments
def can_handle_post_command(self) -> bool:
"""This method is called to check that the plugin can
handle the post_command method.
Returns:
bool: True if the plugin can handle the post_command method."""
return False
def post_command(self, command_name: str, response: str) -> str:
"""This method is called after the command is executed.
Args:
command_name (str): The command name.
response (str): The response.
Returns:
str: The resulting response.
"""
return response
def can_handle_chat_completion(
self, messages: Dict[Any, Any], model: str, temperature: float, max_tokens: int
) -> bool:
"""This method is called to check that the plugin can
handle the chat_completion method.
Args:
messages (List[Message]): The messages.
model (str): The model name.
temperature (float): The temperature.
max_tokens (int): The max tokens.
Returns:
bool: True if the plugin can handle the chat_completion method."""
return False
def handle_chat_completion(
self, messages: List[Message], model: str, temperature: float, max_tokens: int
) -> str:
"""This method is called when the chat completion is done.
Args:
messages (List[Message]): The messages.
model (str): The model name.
temperature (float): The temperature.
max_tokens (int): The max tokens.
Returns:
str: The resulting response.
"""
pass

View File

@@ -1,268 +0,0 @@
"""Handles loading of plugins."""
import importlib
import json
import os
import zipfile
from pathlib import Path
from typing import List, Optional, Tuple
from urllib.parse import urlparse
from zipimport import zipimporter
import openapi_python_client
import requests
from auto_gpt_plugin_template import AutoGPTPluginTemplate
from openapi_python_client.cli import Config as OpenAPIConfig
from autogpt.config import Config
from autogpt.logs import logger
from autogpt.models.base_open_ai_plugin import BaseOpenAIPlugin
def inspect_zip_for_modules(zip_path: str, debug: bool = False) -> list[str]:
"""
Inspect a zipfile for a modules.
Args:
zip_path (str): Path to the zipfile.
debug (bool, optional): Enable debug logging. Defaults to False.
Returns:
list[str]: The list of module names found or empty list if none were found.
"""
result = []
with zipfile.ZipFile(zip_path, "r") as zfile:
for name in zfile.namelist():
if name.endswith("__init__.py"):
logger.debug(f"Found module '{name}' in the zipfile at: {name}")
result.append(name)
if len(result) == 0:
logger.debug(f"Module '__init__.py' not found in the zipfile @ {zip_path}.")
return result
def write_dict_to_json_file(data: dict, file_path: str) -> None:
"""
Write a dictionary to a JSON file.
Args:
data (dict): Dictionary to write.
file_path (str): Path to the file.
"""
with open(file_path, "w") as file:
json.dump(data, file, indent=4)
def fetch_openai_plugins_manifest_and_spec(cfg: Config) -> dict:
"""
Fetch the manifest for a list of OpenAI plugins.
Args:
urls (List): List of URLs to fetch.
Returns:
dict: per url dictionary of manifest and spec.
"""
# TODO add directory scan
manifests = {}
for url in cfg.plugins_openai:
openai_plugin_client_dir = f"{cfg.plugins_dir}/openai/{urlparse(url).netloc}"
create_directory_if_not_exists(openai_plugin_client_dir)
if not os.path.exists(f"{openai_plugin_client_dir}/ai-plugin.json"):
try:
response = requests.get(f"{url}/.well-known/ai-plugin.json")
if response.status_code == 200:
manifest = response.json()
if manifest["schema_version"] != "v1":
logger.warn(
f"Unsupported manifest version: {manifest['schem_version']} for {url}"
)
continue
if manifest["api"]["type"] != "openapi":
logger.warn(
f"Unsupported API type: {manifest['api']['type']} for {url}"
)
continue
write_dict_to_json_file(
manifest, f"{openai_plugin_client_dir}/ai-plugin.json"
)
else:
logger.warn(
f"Failed to fetch manifest for {url}: {response.status_code}"
)
except requests.exceptions.RequestException as e:
logger.warn(f"Error while requesting manifest from {url}: {e}")
else:
logger.info(f"Manifest for {url} already exists")
manifest = json.load(open(f"{openai_plugin_client_dir}/ai-plugin.json"))
if not os.path.exists(f"{openai_plugin_client_dir}/openapi.json"):
openapi_spec = openapi_python_client._get_document(
url=manifest["api"]["url"], path=None, timeout=5
)
write_dict_to_json_file(
openapi_spec, f"{openai_plugin_client_dir}/openapi.json"
)
else:
logger.info(f"OpenAPI spec for {url} already exists")
openapi_spec = json.load(open(f"{openai_plugin_client_dir}/openapi.json"))
manifests[url] = {"manifest": manifest, "openapi_spec": openapi_spec}
return manifests
def create_directory_if_not_exists(directory_path: str) -> bool:
"""
Create a directory if it does not exist.
Args:
directory_path (str): Path to the directory.
Returns:
bool: True if the directory was created, else False.
"""
if not os.path.exists(directory_path):
try:
os.makedirs(directory_path)
logger.debug(f"Created directory: {directory_path}")
return True
except OSError as e:
logger.warn(f"Error creating directory {directory_path}: {e}")
return False
else:
logger.info(f"Directory {directory_path} already exists")
return True
def initialize_openai_plugins(
manifests_specs: dict, cfg: Config, debug: bool = False
) -> dict:
"""
Initialize OpenAI plugins.
Args:
manifests_specs (dict): per url dictionary of manifest and spec.
cfg (Config): Config instance including plugins config
debug (bool, optional): Enable debug logging. Defaults to False.
Returns:
dict: per url dictionary of manifest, spec and client.
"""
openai_plugins_dir = f"{cfg.plugins_dir}/openai"
if create_directory_if_not_exists(openai_plugins_dir):
for url, manifest_spec in manifests_specs.items():
openai_plugin_client_dir = f"{openai_plugins_dir}/{urlparse(url).hostname}"
_meta_option = (openapi_python_client.MetaType.SETUP,)
_config = OpenAPIConfig(
**{
"project_name_override": "client",
"package_name_override": "client",
}
)
prev_cwd = Path.cwd()
os.chdir(openai_plugin_client_dir)
Path("ai-plugin.json")
if not os.path.exists("client"):
client_results = openapi_python_client.create_new_client(
url=manifest_spec["manifest"]["api"]["url"],
path=None,
meta=_meta_option,
config=_config,
)
if client_results:
logger.warn(
f"Error creating OpenAPI client: {client_results[0].header} \n"
f" details: {client_results[0].detail}"
)
continue
spec = importlib.util.spec_from_file_location(
"client", "client/client/client.py"
)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
client = module.Client(base_url=url)
os.chdir(prev_cwd)
manifest_spec["client"] = client
return manifests_specs
def instantiate_openai_plugin_clients(
manifests_specs_clients: dict, cfg: Config, debug: bool = False
) -> dict:
"""
Instantiates BaseOpenAIPlugin instances for each OpenAI plugin.
Args:
manifests_specs_clients (dict): per url dictionary of manifest, spec and client.
cfg (Config): Config instance including plugins config
debug (bool, optional): Enable debug logging. Defaults to False.
Returns:
plugins (dict): per url dictionary of BaseOpenAIPlugin instances.
"""
plugins = {}
for url, manifest_spec_client in manifests_specs_clients.items():
plugins[url] = BaseOpenAIPlugin(manifest_spec_client)
return plugins
def scan_plugins(cfg: Config, debug: bool = False) -> List[AutoGPTPluginTemplate]:
"""Scan the plugins directory for plugins and loads them.
Args:
cfg (Config): Config instance including plugins config
debug (bool, optional): Enable debug logging. Defaults to False.
Returns:
List[Tuple[str, Path]]: List of plugins.
"""
loaded_plugins = []
# Generic plugins
plugins_path_path = Path(cfg.plugins_dir)
for plugin in plugins_path_path.glob("*.zip"):
if moduleList := inspect_zip_for_modules(str(plugin), debug):
for module in moduleList:
plugin = Path(plugin)
module = Path(module)
logger.debug(f"Plugin: {plugin} Module: {module}")
zipped_package = zipimporter(str(plugin))
zipped_module = zipped_package.load_module(str(module.parent))
for key in dir(zipped_module):
if key.startswith("__"):
continue
a_module = getattr(zipped_module, key)
a_keys = dir(a_module)
if (
"_abc_impl" in a_keys
and a_module.__name__ != "AutoGPTPluginTemplate"
and denylist_allowlist_check(a_module.__name__, cfg)
):
loaded_plugins.append(a_module())
# OpenAI plugins
if cfg.plugins_openai:
manifests_specs = fetch_openai_plugins_manifest_and_spec(cfg)
if manifests_specs.keys():
manifests_specs_clients = initialize_openai_plugins(
manifests_specs, cfg, debug
)
for url, openai_plugin_meta in manifests_specs_clients.items():
if denylist_allowlist_check(url, cfg):
plugin = BaseOpenAIPlugin(openai_plugin_meta)
loaded_plugins.append(plugin)
if loaded_plugins:
logger.info(f"\nPlugins found: {len(loaded_plugins)}\n" "--------------------")
for plugin in loaded_plugins:
logger.info(f"{plugin._name}: {plugin._version} - {plugin._description}")
return loaded_plugins
def denylist_allowlist_check(plugin_name: str, cfg: Config) -> bool:
"""Check if the plugin is in the allowlist or denylist.
Args:
plugin_name (str): Name of the plugin.
cfg (Config): Config object.
Returns:
True or False
"""
if plugin_name in cfg.plugins_denylist:
return False
if plugin_name in cfg.plugins_allowlist:
return True
ack = input(
f"WARNING: Plugin {plugin_name} found. But not in the"
f" allowlist... Load? ({cfg.authorise_key}/{cfg.exit_key}): "
)
return ack.lower() == cfg.authorise_key

Some files were not shown because too many files have changed in this diff Show More