SequentialChain returns "Chain returned keys that already exist: {'text'} (type=value_error)"
Labels: name: auto:bug, name: stale, name: area: models

### System Info

- Langchain v0.0.301
- Python 3.9.6
- Mac M2

### Who can help?

_No response_

### Information

- [ ] The official example notebooks/scripts
- [X] My own modified scripts

### Related Components

- [X] LLMs/Chat Models
- [ ] Embedding Models
- [X] Prompts / Prompt Templates / Prompt Selectors
- [ ] Output Parsers
- [ ] Document Loaders
- [ ] Vector Stores / Retrievers
- [ ] Memory
- [ ] Agents / Agent Executors
- [ ] Tools / Toolkits
- [X] Chains
- [ ] Callbacks/Tracing
- [ ] Async

### Reproduction

Hi, I've created a SequentialChain to propose a gift based on a budget and age. The different chains are defined as follows:

```
from langchain.agents import AgentType, initialize_agent, load_tools
from langchain.prompts import PromptTemplate
from langchain.tools import tool
from langchain.chains import LLMChain

langchain.debug = True

llm = VertexAI(
    model_name="text-bison@001",
    max_output_tokens=256,
    temperature=0.2,
    top_p=0.8,
    top_k=40,
)

# 1. Chain to extract the budget
template = """You have to extract only the budget for a gift for the following sentence: {input}

For example: 10€

Budget:
"""
prompt_budget_template = PromptTemplate(
    input_variables=["input"], 
    output_key="budget",
    template=template)
chain_budget = LLMChain(llm=llm, prompt=prompt_budget_template)

# 2. Chain to extract the age
template = """You have to extract only the part of the text related to the age: {input}

Sentence:
"""
prompt_age_template = PromptTemplate(
    input_variables=["input"], 
    output_key="age", 
    template=template)
chain_age = LLMChain(llm=llm, prompt=prompt_age_template)

# 3. Chain to calculate the age
tools = load_tools(["llm-math"], llm=llm)

chain_calc_age = initialize_agent(tools,
    llm,
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    output_key="calc_age",
    verbose=True)

# 4. The chain for the gift recommender
template = """You are a gift recommender. Given a person's age,\n
 it is your job to suggest an appropriate gift for them. If age is under 10,\n
 the gift should cost no more than {budget} otherwise it should cost at least 10 times {budget}.

Person Age:
{calc_age}
Suggest gift and approximated cost:"""
prompt_template = PromptTemplate(input_variables=["calc_age", "budget"], output_key="gift", template=template)
chain_gift = LLMChain(llm=llm, prompt=prompt_template)
```

Finally, the SequentialChain is defined:
```
from langchain.chains import SequentialChain

overall_chain = SequentialChain(
                input_variables=["input"],
                output_variables=["budget", "age", "calc_age", "gift"],
                chains=[chain_budget, chain_age, chain_calc_age, chain_gift],
                verbose=True)
```

The idea is to use the `overall_chain` in the following way:
```
overall_chain.run("I have 100€ for the gift, and my age is the half of my father's age. My father is 40 years old.")
```

But when the SequentialChain is declared the following error is raised:

```
---------------------------------------------------------------------------
ValidationError                           Traceback (most recent call last)
Cell In[51], line 4
      1 from langchain.chains import SequentialChain
      2 from langchain.memory import SimpleMemory
----> 4 overall_chain = SequentialChain(
      5                 input_variables=["input"],
      6                 output_variables=["budget", "age", "calc_age", "gift"],
      7                 chains=[chain_budget, chain_age, chain_calc_age, chain_gift],
      8                 verbose=True)

File [~/Library/Python/3.9/lib/python/site-packages/langchain/load/serializable.py:75](https://file+.vscode-resource.vscode-cdn.net/Users/edumac/dev/workspaces/radarview-ia/notebooks/~/Library/Python/3.9/lib/python/site-packages/langchain/load/serializable.py:75), in Serializable.__init__(self, **kwargs)
     74 def __init__(self, **kwargs: Any) -> None:
---> 75     super().__init__(**kwargs)
     76     self._lc_kwargs = kwargs

File [~/Library/Python/3.9/lib/python/site-packages/pydantic/v1/main.py:341](https://file+.vscode-resource.vscode-cdn.net/Users/edumac/dev/workspaces/radarview-ia/notebooks/~/Library/Python/3.9/lib/python/site-packages/pydantic/v1/main.py:341), in BaseModel.__init__(__pydantic_self__, **data)
    339 values, fields_set, validation_error = validate_model(__pydantic_self__.__class__, data)
    340 if validation_error:
--> 341     raise validation_error
    342 try:
    343     object_setattr(__pydantic_self__, '__dict__', values)

ValidationError: 1 validation error for SequentialChain
__root__
  Chain returned keys that already exist: {'text'} (type=value_error)
```

Any thought about what is happening or what is wrong in my code? Thanks in advance.

### Expected behavior

I expect the SequentialChain created without errors.