StructuredChatAgent did not provide the correct action input.
Labels: name: area: agent, name: auto:bug

### System Info

langchain version:0.0.311
os:macOS 11.6
python: 3.11

### Who can help?

_No response_

### 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
- [ ] Tools / Toolkits
- [ ] Chains
- [ ] Callbacks/Tracing
- [ ] Async

### Reproduction

This is code sample of using agent:
```
 sys_p = self.create_sys_prompt()
        tools = [
            ProgrammerAgent(self.env),
            DefaultAgent(),
        ]

        agent_obj = StructuredChatAgent.from_llm_and_tools(
            llm=self.env.llm,
            tools=tools,
            prefix=sys_p + PREFIX,
            verbose=True,
        )
        agent = AgentExecutor.from_agent_and_tools(
            agent=agent_obj,
            tools=tools,
            verbose=True,
        )
        task = f"""
Here is the requirement:
```Markdown
{requirement}
```

Please Implement the requirement.
"""
        return agent.run(task)
```
this is the code of ProgrammerAgent tool:
```
from typing import Any, Type

from langchain.tools import BaseTool
from pydantic import Field, BaseModel

from enviroment import Environment


class ProgramRequirementSchema(BaseModel):
    task: str = Field(description="Coding task")
    task_context: str = Field(description="Contextual background information for the task.")
    project_path: str = Field(description="Project path")


class ProgrammerAgent(BaseTool):
    name: str = "programmer_agent"
    description: str = """
        programmer agent is a agent that write code for a given coding task.
    """
    args_schema: Type[ProgramRequirementSchema] = ProgramRequirementSchema
    env: Environment = Field(default=None)

    def __init__(self, env: Environment):
        super().__init__()
        self.env = env

    def _run(self, task: str, task_context: str, project_path: str) -> Any:
        result = "success"
        return result

```

And this is the wrong action:
```
Action:
```json
{
  "action": "programmer_agent",
  "action_input": {
    "task": {
      "title": "Implement the requirement",
      "description": "1. Update the `grpc.proto` file. 2. Design the database and write the create SQL. 3. Implement the database operation interface. 4. Implement the grpc interface."
    },
    "task_context": {
      "title": "Context",
      "description": "The project is built with golang, and the database used is relational database. The grpc interface is defined in `grpc.proto`."
    },
    "project_path": "golang.52tt.com/services/tt-rev/offering-room"
  }
}
```




### Expected behavior

the value of action_input should be :
```json
{
  "action": "programmer_agent",
  "action_input": {
    "task": "1. Update the `grpc.proto` file. 2. Design the database and write the create SQL. 3. Implement the database operation interface. 4. Implement the grpc interface.",
    "task_context":  "The project is built with golang, and the database used is relational database. The grpc interface is defined in `grpc.proto`.",
    "project_path": "golang.52tt.com/services/tt-rev/offering-room"
  }
}
```