File size: 4,232 Bytes
b52b47e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
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
|