Source code for tavily_fastmcp.agent
"""Optional LangChain agent helpers.
Purpose:
Offer a tiny convenience layer for wiring this package's packaged router
prompt into a LangChain agent.
Design:
- Keep imports optional so the package remains usable without LangChain.
- Accept explicit tools for flexibility.
Examples:
>>> callable(create_langchain_agent)
True
"""
from __future__ import annotations
from typing import Any
from tavily_fastmcp.prompt_loader import load_prompt_text
[docs]
def create_langchain_agent(*, model: str, tools: list[Any]) -> Any:
"""Create a LangChain agent with the packaged router prompt.
Args:
model: LangChain model identifier.
tools: Tools to pass into ``create_agent``.
Returns:
A LangChain agent instance.
Raises:
RuntimeError: If LangChain is not installed.
Examples:
>>> callable(create_langchain_agent)
True
"""
try:
from langchain.agents import create_agent
except ImportError as exc: # pragma: no cover - dependency dependent
raise RuntimeError(
"LangChain is required for create_langchain_agent(). Install the langchain extra."
) from exc
return create_agent(model=model, tools=tools, system_prompt=load_prompt_text("router"))