"""会话工具与系统提示解析。"""
from __future__ import annotations
from typing import Any
from app.services.agent_registry import DEFAULT_AGENTS, agent_tool_ids
from app.services.langchain_tools import build_langchain_tools
def resolve_chat_tools(thread: dict | None) -> list[Any]:
aid = str((thread or {}).get("agent_id") or "default")
return build_langchain_tools(agent_tool_ids(aid))
def resolve_base_system_prompt(thread: dict | None, agent_system_prompt: str) -> str:
prompt = (agent_system_prompt or "").strip()
if prompt:
return prompt
default = next((a for a in DEFAULT_AGENTS if a.get("id") == "default"), None)
return str((default or {}).get("system_prompt") or "")
def resolve_effective_system_prompt(thread: dict | None, agent_system_prompt: str) -> str:
base = resolve_base_system_prompt(thread, agent_system_prompt)
return (
base
+ "\n\n【工具】知识库 kb_*;终端 terminal_run(沙箱 data/terminal_workspace);"
"联网 bing_search/web_fetch;多步页面操作用 browser(Playwright);重要结论 kb_create。"
)