# create_vectorstore_router_agent

> **Function** in `langchain_classic`

📖 [View in docs](https://reference.langchain.com/python/langchain-classic/agents/agent_toolkits/vectorstore/base/create_vectorstore_router_agent)

Construct a VectorStore router agent from an LLM and tools.

!!! note
    This class is deprecated. See below for a replacement that uses tool calling
    methods and LangGraph. Install LangGraph with:

    ```bash
    pip install -U langgraph
    ```

    ```python
    from langchain_core.tools import create_retriever_tool
    from langchain_core.vectorstores import InMemoryVectorStore
    from langchain_openai import ChatOpenAI, OpenAIEmbeddings
    from langgraph.prebuilt import create_react_agent

    model = ChatOpenAI(model="gpt-4o-mini", temperature=0)

    pet_vector_store = InMemoryVectorStore.from_texts(
        [
            "Dogs are great companions, known for their loyalty and friendliness.",
            "Cats are independent pets that often enjoy their own space.",
        ],
        OpenAIEmbeddings(),
    )

    food_vector_store = InMemoryVectorStore.from_texts(
        [
            "Carrots are orange and delicious.",
            "Apples are red and delicious.",
        ],
        OpenAIEmbeddings(),
    )

    tools = [
        create_retriever_tool(
            pet_vector_store.as_retriever(),
            "pet_information_retriever",
            "Fetches information about pets.",
        ),
        create_retriever_tool(
            food_vector_store.as_retriever(),
            "food_information_retriever",
            "Fetches information about food.",
        ),
    ]

    agent = create_react_agent(model, tools)

    for step in agent.stream(
        {"messages": [("human", "Tell me about carrots.")]},
        stream_mode="values",
    ):
        step["messages"][-1].pretty_print()
    ```

## Signature

```python
create_vectorstore_router_agent(
    llm: BaseLanguageModel,
    toolkit: VectorStoreRouterToolkit,
    callback_manager: BaseCallbackManager | None = None,
    prefix: str = ROUTER_PREFIX,
    verbose: bool = False,
    agent_executor_kwargs: dict[str, Any] | None = None,
    **kwargs: Any = {},
) -> AgentExecutor
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `llm` | `BaseLanguageModel` | Yes | LLM that will be used by the agent |
| `toolkit` | `VectorStoreRouterToolkit` | Yes | Set of tools for the agent which have routing capability with multiple vector stores |
| `callback_manager` | `BaseCallbackManager \| None` | No | Object to handle the callback (default: `None`) |
| `prefix` | `str` | No | The prefix prompt for the router agent. If not provided uses default `ROUTER_PREFIX`. (default: `ROUTER_PREFIX`) |
| `verbose` | `bool` | No | If you want to see the content of the scratchpad. (default: `False`) |
| `agent_executor_kwargs` | `dict[str, Any] \| None` | No | If there is any other parameter you want to send to the agent. (default: `None`) |
| `kwargs` | `Any` | No | Additional named parameters to pass to the `ZeroShotAgent`. (default: `{}`) |

## Returns

`AgentExecutor`

Returns a callable `AgentExecutor` object.

## ⚠️ Deprecated

Deprecated since version 0.2.13.

---

[View source on GitHub](https://github.com/langchain-ai/langchain/blob/9f232caa7a8fe1ca042a401942d5d90d54ceb1a6/libs/langchain/langchain_classic/agents/agent_toolkits/vectorstore/base.py#L119)