Tachi67's picture
Update README.md
188fdea

Structure of ReplanningFlow

goal (info on the old plan), plan (old plan), plan_file_location
                |
                v
        +---------------+
        |  Controller   | --------<<<<-----------+
        +---------------+                        |
                |                                |
                | (command, command args)        |
                |                                |
                v                                |
        +------------------+                     |
        |   Executor       |  Each branch is an  |
        | (Tree Structure) |  executor           |
        +------------------+                     |
                |                                ^
                | (summary)                      |
                |                                |
                v                                |             
                |                                |
                +-> goes back to the Controller>-+

Structure of the Executors:

         +-------------------+
         |   Branching       |
         |    Executor       |
         +-------------------+
        /                    \
       /                      \
      /                        \
     /                          \
write_plan                    ask_user

About the branches:

  • ask_user: Ask user for info / confirmation, etc.
  • write_plan: Generates plan (user edit is allowed) and fetches user feedback.
    • The PlanGenerator of write_plan is replaced with NewPlanGenFlow to re-plan instead of write plan.

How it works: Controller calls write_plan until user is satisfied in the feedback, finish.

Table of Contents

run_replanning

ReplanningAskUserFlow

ReplanningAskUserFlow Objects

class ReplanningAskUserFlow(HumanStandardInputFlow)

Refer to: https://huggingface.co/Tachi67/ExtendLibraryFlowModule/blob/main/ExtLibAskUserFlow.py

NewPlanGenFlow

ReplanningFlow

ReplanningFlow Objects

class ReplanningFlow(PlanWriterFlow)

This flow inherits from PlanWriterFlow. By changing prompts and injecting proper information to the controller and the PlanGenerator, we are able to achieve the replanning.

Input Interface:

  • goal (str): information on the old plan (e.g. what is wrong)
  • plan (str): the old plan
  • plan_file_location (str): the location of the old plan file

Output Interface:

  • plan (str): the new plan
  • status: "finished" or "unfinished"
  • summary (str): summary of the flow, will be written to the log file of the caller flow.
  • result (str): result of the flow, will be passed to the controller of the caller flow.

__init__