name: "AutoGPTFlow" description: "An example implementation of AutoGPT with Flows." max_rounds: 30 early_exit_key: "EARLY_EXIT" ### Information used by the default get_interface_description implementation input_interface: - "goal" output_interface: - "answer" - "status" ### Subflows specification subflows_config: Controller: _target_: aiflows.ControllerExecutorFlowModule.ControllerAtomicFlow.instantiate_from_default_config finish: description: "Signal that the objective has been satisfied, and returns the answer to the user." input_args: ["answer"] # E.g., # commands: # wiki_search: # description: "Performs a search on Wikipedia." # input_args: ["search_term"] # ddg_search: # description: "Query the search engine DuckDuckGo." # input_args: ["query"] human_message_prompt_template: template: |2 Potentially relevant information retrieved from your memory: {{memory}} ================= Here is the response to your last action: {{observation}} Here is the feedback from the user: {{human_feedback}} input_variables: - "observation" - "human_feedback" - "memory" input_interface_initialized: - "observation" - "human_feedback" - "memory" Executor: _target_: flows.base_flows.BranchingFlow.instantiate_from_default_config # E.g., # subflows_config: # wiki_search: # _target_: .WikiSearchAtomicFlow.instantiate_from_default_config # ddg_search: # _target_: flows.application_flows.LCToolFlowModule.LCToolFlow.instantiate_from_default_config # backend: # _target_: langchain.tools.DuckDuckGoSearchRun HumanFeedback: _target_: aiflows.HumanStandardInputFlowModule.HumanStandardInputFlow.instantiate_from_default_config request_multi_line_input_flag: False query_message_prompt_template: template: |2- Please provide feedback on the last step. To quit type: "q". Relevant information: == Goal == {{goal}} == Last Command == {{command}} == Args {{command_args}} == Result {{observation}} input_variables: - "goal" - "command" - "command_args" - "observation" input_interface_initialized: - "goal" - "command" - "command_args" - "observation" Memory: _target_: aiflows.VectorStoreFlowModule.ChromaDBFlow.instantiate_from_default_config n_results: 2 topology: - goal: "Retrieve relevant information from memory." input_interface: _target_: AutoGPTFlow.prepare_memory_read_input # An interface defined as a function in the Flow class flow: Memory output_interface: _target_: AutoGPTFlow.prepare_memory_read_output reset: false - goal: "Select the next action and prepare the input for the executor." input_interface: _target_: flows.interfaces.KeyInterface additional_transformations: - _target_: flows.data_transformations.KeyMatchInput flow: Controller output_interface: _target_: AutoGPTFlow.detect_finish_or_continue # An interface defined as a function in the Flow class reset: false - goal: "Execute the action specified by the Controller." input_interface: _target_: flows.interfaces.KeyInterface keys_to_rename: command: branch command_args: branch_input_data keys_to_select: ["branch", "branch_input_data"] flow: Executor output_interface: _target_: flows.interfaces.KeyInterface keys_to_rename: branch_output_data: observation keys_to_select: ["observation"] reset: false - goal: "Ask the user for feedback." input_interface: _target_: flows.interfaces.KeyInterface flow: HumanFeedback output_interface: _target_: AutoGPTFlow.detect_finish_in_human_input reset: false - goal: "Write relevant information to memory" input_interface: _target_: AutoGPTFlow.prepare_memory_write_input # An interface defined as a function in the Flow class flow: Memory reset: false