2026-01-14 07:20:00 +08:00
|
|
|
from langchain.agents import create_agent
|
2026-01-15 22:05:54 +08:00
|
|
|
from langchain_core.runnables import RunnableConfig
|
2026-01-14 09:08:20 +08:00
|
|
|
|
2026-01-14 07:20:00 +08:00
|
|
|
from src.agents.lead_agent.prompt import apply_prompt_template
|
2026-01-15 13:22:30 +08:00
|
|
|
from src.agents.middlewares.thread_data_middleware import ThreadDataMiddleware
|
2026-01-14 23:29:18 +08:00
|
|
|
from src.agents.middlewares.title_middleware import TitleMiddleware
|
2026-01-14 12:32:34 +08:00
|
|
|
from src.agents.thread_state import ThreadState
|
2026-01-14 07:20:00 +08:00
|
|
|
from src.models import create_chat_model
|
2026-01-14 12:32:34 +08:00
|
|
|
from src.sandbox.middleware import SandboxMiddleware
|
2026-01-14 07:20:00 +08:00
|
|
|
from src.tools import get_available_tools
|
|
|
|
|
|
2026-01-15 13:22:30 +08:00
|
|
|
# ThreadDataMiddleware must be before SandboxMiddleware to ensure thread_id is available
|
|
|
|
|
middlewares = [ThreadDataMiddleware(), SandboxMiddleware(), TitleMiddleware()]
|
2026-01-14 23:29:18 +08:00
|
|
|
|
2026-01-15 22:05:54 +08:00
|
|
|
|
|
|
|
|
def make_lead_agent(config: RunnableConfig):
|
|
|
|
|
thinking_enabled = config.get("configurable", {}).get("thinking_enabled", True)
|
2026-01-16 13:22:26 +08:00
|
|
|
model_name = config.get("configurable", {}).get("model_name") or config.get("configurable", {}).get("model")
|
2026-01-15 22:05:54 +08:00
|
|
|
print(f"thinking_enabled: {thinking_enabled}, model_name: {model_name}")
|
|
|
|
|
return create_agent(
|
|
|
|
|
model=create_chat_model(name=model_name, thinking_enabled=thinking_enabled),
|
|
|
|
|
tools=get_available_tools(),
|
|
|
|
|
middleware=middlewares,
|
|
|
|
|
system_prompt=apply_prompt_template(),
|
|
|
|
|
state_schema=ThreadState,
|
|
|
|
|
)
|