feat: support function factory (#4)

This commit is contained in:
DanielWalnut
2026-01-15 22:05:54 +08:00
committed by GitHub
parent 3b879e277e
commit c7d68c6d3f
9 changed files with 133 additions and 22 deletions

View File

@@ -1,3 +1,3 @@
from .agent import lead_agent
from .agent import make_lead_agent
__all__ = ["lead_agent"]
__all__ = ["make_lead_agent"]

View File

@@ -1,4 +1,5 @@
from langchain.agents import create_agent
from langchain_core.runnables import RunnableConfig
from src.agents.lead_agent.prompt import apply_prompt_template
from src.agents.middlewares.thread_data_middleware import ThreadDataMiddleware
@@ -11,10 +12,15 @@ from src.tools import get_available_tools
# ThreadDataMiddleware must be before SandboxMiddleware to ensure thread_id is available
middlewares = [ThreadDataMiddleware(), SandboxMiddleware(), TitleMiddleware()]
lead_agent = create_agent(
model=create_chat_model(thinking_enabled=True),
tools=get_available_tools(),
middleware=middlewares,
system_prompt=apply_prompt_template(),
state_schema=ThreadState,
)
def make_lead_agent(config: RunnableConfig):
thinking_enabled = config.get("configurable", {}).get("thinking_enabled", True)
model_name = config.get("configurable", {}).get("model_name")
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,
)

View File

@@ -1,4 +1,3 @@
import os
from datetime import datetime
SYSTEM_PROMPT = f"""