AutoGPTFlowModule / AutoGPTFlow.yaml
martinjosifoski's picture
First commit.
b52b47e
raw
history blame
4.23 kB
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