|
name: "CtrlEx" |
|
description: "ControllerExecutor (i.e., MRKL, ReAct) interaction implementation with Flows that approaches the problem solving in two phases: one Flow chooses the next step and another Flow executes it. This is repeated until the controller Flow concludes on an answer." |
|
max_rounds: 30 |
|
|
|
|
|
input_interface: |
|
- "goal" |
|
output_interface: |
|
- "answer" |
|
- "status" |
|
|
|
|
|
subflows_config: |
|
Controller: |
|
_target_: aiflows.ControllerAtomicFlow.instantiate_from_default_config |
|
finish: |
|
description: "Signal that the objective has been satisfied, and returns the answer to the user." |
|
input_args: ["answer"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Executor: |
|
_target_: flows.base_flows.BranchingFlow.instantiate_from_default_config |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
early_exit_key: "EARLY_EXIT" |
|
|
|
topology: |
|
- 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_: ControllerExecutorFlow.detect_finish_or_continue |
|
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 |
|
|