* 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
* 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
* 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
* 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>
* 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>
* 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
* 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>
* 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>
* The unlooping and fixing of file execution.
* lint
* Use static random seed during testing. remove unused import.
* Fix bug
* Actually fix bug.
* lint
* Unloop a bit more an fix json.
* Fix another bug.
* lint.
---------
Co-authored-by: merwanehamadi <merwanehamadi@gmail.com>
* Implemented running cost counter for chat completions
This data is known to the AI as additional system context, and is printed out to the user
* Added comments to api_manager.py
* Added user-defined API budget.
The user is now prompted if they want to give the AI a budget for API calls. If they enter nothing, there is no monetary limit, but if they define a budget then the AI will be told to shut down gracefully once it has come within 1 cent of its limit, and to shut down immediately once it has exceeded its limit. If a budget is defined, Auto-GPT is always aware of how much it was given and how much remains to be spent.
* Chat completion calls are now done through api_manager. Total running cost is printed.
* Implemented api budget setting and tracking
User can now configure a maximum api budget, and the AI is aware of that and its remaining budget. The AI is instructed to shut down when exceeding the budget.
* Update autogpt/api_manager.py
Change "per token" to "per 1000 tokens" in a comment on the api cost
Co-authored-by: Rob Luke <code@robertluke.net>
* Fixed lint errors
* Include embedding costs
* Add embedding completion cost
* lint
* Added 'requires_api_key' decorator to test_commands.py, switched to a valid chat completions model
* Refactor API manager, add debug mode, and add tests
- Extract model costs to to avoid duplication
- Add debug mode parameter to ApiManager class
- Move debug mode configuration to
- Log AI response and budget messages in debug mode
- Implement 'test_api_manager.py'
* Fixed test_setup failing. An extra user input is needed for api budget
* Linting
---------
Co-authored-by: Rob Luke <code@robertluke.net>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
* Add automatic ai prompting
* Tweak the default prompt.
* Print agent info upon creation.
* Improve system prompt
* Switch to fast_llm_model by default
* Add format output command to user prompt.
This vastly improves formatting success rate.
* Add fallback to manual mode if llm output cannot be parsed (or other error).
* Add unit test to cover ai creation setup.
* Replace redundent prompt with manual mode instructions.
* Add missing docstrings and typing.
* Runs black on changes.
* Runs isort
* Update Python version and benchmark file in benchmark.yml
* Refactor main function and imports in cli.py
* Update import statement in ai_config.py
* Add set_temperature and set_memory_backend methods in config.py
* Remove unused import in prompt.py
* Add goal oriented tasks workflow
* Added agent_utils to create agent
* added pytest and vcrpy
* added write file cassette
* created goal oriented task write file with cassettes to not pay openai tokens
* solve conflicts
* add ability set azure because github workflow needs it off
* solve conflicts in cli.py
* black because linter fails
* solve conflict
* setup github action to v3
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
* fix conflicts
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
* Plugins: debug line always printed in plugin load
* add decorator to tests
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
* move decorator higher up
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
* merge
---------
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Merwane Hamadi <merwane.hamadi@redica.com>
Co-authored-by: Richard Beales <rich@richbeales.net>
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: BillSchumacher <34168009+BillSchumacher@users.noreply.github.com>