Commit Graph

617 Commits

Author SHA1 Message Date
Reinier van der Leer
4e761b49f3 Clean up logging 2023-08-22 07:29:56 +02: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
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
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
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
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
Reinier van der Leer
b7f1df3e1d Fix execute_shell_popen 2023-07-31 01:21:09 +02: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
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
merwanehamadi
45c9566298 Remove append to file (#5051)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-07-29 10:55:19 -07: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
Reinier van der Leer
f87b01620d Merge branch 'master' into release-v0.4.6-sync-to-master 2023-07-27 01:01:42 +02:00
Reinier van der Leer
ce86a5e697 Fix workspace crash 2023-07-27 00:28:55 +02:00
Reinier van der Leer
ddb7efa593 Move misplaced log_cycle statements 2023-07-25 18:08:50 +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
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
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
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
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
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
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
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
Reinier van der Leer
0c94bb5f25 Fix configuring TTS engine (#5005) 2023-07-18 13:34:52 -07: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
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
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
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
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
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
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
e746a45158 Merge branch 'master' into release-v0.4.4 2023-07-11 23:51:48 +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
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
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
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
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