PlanAndExecute agent doesn't always prompt for user input when the action is HumanInputRun tool
Labels: name: area: agent, name: auto:bug

### System Info

Langchain version: langchain==0.0.229
Platform: MacOS 12.6.2
Python version: 3.9.6

Issue:
I am using the PlanAndExecute agent with a tool that generates image as well as the HumanInputRun tool. The behaviour I'm trying to achieve is that, if I give a prompt asking to 'Generate a digital artwork gallery', the agent must generate steps such as: 
1. Deciding number of images, 
2. Deciding topic for the collection
3. Generate artwork using image_generator tool. 
Ideally, steps 1 and 2 must use the Human tool to ask for input and Step 3 must invoke the image_generator tool.

I modified the input prompt for the Planner to suit this purpose and better classify the steps 1 and 2 above as human input. But while the Executor runs, though I see that the HumanInputRun tool is being chosen as the Action, sometimes there is no user prompt in the terminal and the agent just goes on to the next step. As shown in the image below:  

<img width="1388" alt="image" src="https://github.com/langchain-ai/langchain/assets/22791051/25628cbd-c46b-4b49-b926-7599223b9be0">. 

In addition, this behaviour also doesn't seem to be a constant thing, occasionally, the agent does prompt input for one step, while it doesn't for another step, despite using the same Human input tool. 

### Who can help?

@hwchase

### Information

- [ ] The official example notebooks/scripts
- [X] My own modified scripts

### Related Components

- [ ] LLMs/Chat Models
- [ ] Embedding Models
- [ ] Prompts / Prompt Templates / Prompt Selectors
- [ ] Output Parsers
- [ ] Document Loaders
- [ ] Vector Stores / Retrievers
- [ ] Memory
- [X] Agents / Agent Executors
- [X] Tools / Toolkits
- [ ] Chains
- [ ] Callbacks/Tracing
- [ ] Async

### Reproduction

```python
def image_generator(query: str):
    # Dummy Image generator tool 
    return "1 Image has been generated"

tools = [
    HumanInputRun(),
    Tool.from_function(
        name = "Image Generator",
        func = image_generator,
        description = "useful for generating images from text prompts"
    )]
tools_prompt = "\n".join([f"{tool.name}: {tool.description}" for tool in tools])

# system_prompt that was taken from the langchain source code and modified to include tools and classify each step
system_prompt = (
    "Let's first understand the problem and devise a plan to solve the problem."
    " Please output the plan starting with the header 'Plan:' "
    "and then followed by a numbered list of steps. "
    "You will have access to the following tools to execute the steps in the plan:"
    "\n\n" + tools_prompt + "\n\n"
    "Classify each step as <exec>, <non-exec> or <human-input> and add the label to the end of each step. "
    "<exec> steps are the tasks that are executable directly or indirectly by you or any of the given tools. "
    "Example: Any step involving artwork creation is <exec> as it can be executable by a image generation tool. "
    "<non-exec> steps are the tasks that the user must perform manually. "
    "<human-input> steps are the tasks that require some additional input from the user. "
    "Example: steps involving getting details like number of images or topic for artwork are <human-input> as these details can be asked to the user"
    "Please make the plan the minimum number of steps required "
    "to accurately complete the task. If the task is a question, "
    "the final step should almost always be 'Given the above steps taken, "
    "please respond to the users original question'. "
    "At the end of your plan, say '<END_OF_PLAN>'. "
    "Prefer using words like 'generate' instead of 'create' and also understand that 'artwork' is the same as images, videos, 3D, etc."
    # "\nNote:Do not include information about tool names in the plan, it is only to be used for your reference. "
    )

    model = ChatOpenAI(temperature=0)
    planner = load_chat_planner(model, system_prompt)
    executor = load_agent_executor(model, tools, verbose=True)
    agent = PlanAndExecute(planner=planner, executor=executor, verbose=True)
    res = agent.run(prompt)
```

### Expected behavior

User must be prompted in the terminal each time the human input tool is called.