Revert "新增中间件控制拦截工具调用 判断use_report是否开启"

This reverts commit 34cf3456cd.
This commit is contained in:
zcr
2026-04-02 11:34:07 +08:00
parent 79258a6a43
commit 702f48626f
5 changed files with 336 additions and 341 deletions

View File

@@ -1,14 +1,12 @@
import logging
from typing import Callable, TypedDict, Annotated
from typing import Callable
from deepagents import create_deep_agent, SubAgentMiddleware
from deepagents.backends import FilesystemBackend
from langchain.agents.middleware import SummarizationMiddleware, ToolRetryMiddleware, wrap_model_call, ModelRequest, ModelResponse, wrap_tool_call
from langchain_core.messages import ToolMessage, BaseMessage
from langchain_core.messages import ToolMessage
from langgraph.checkpoint.mongodb import MongoDBSaver
from langgraph.checkpoint.serde.jsonplus import JsonPlusSerializer
from langgraph.constants import END
from langgraph.graph import MessagesState, add_messages
from langgraph.prebuilt.tool_node import ToolCallRequest
from langgraph.store.memory import InMemoryStore
from langgraph.types import Command
@@ -57,15 +55,9 @@ async def report_control(
if not use_report:
error_msg = "Reporting is currently not enabled. If you want to use the reporting function, please enable trending report first."
logger.info("⚠️ 已拦截 research_subagent 调用")
# return ToolMessage(
# content=error_msg,
# tool_call_id=request.tool_call.get("id")
# )
return Command(
update={
"messages": [ToolMessage(content=error_msg, tool_call_id=request.tool_call.get("id"))]
},
goto=END # 关键:强制结束整个 Agent 执行
return ToolMessage(
content=error_msg,
tool_call_id=request.tool_call.get("id")
)
else:
logger.info("✅ use_report=True允许调用 research_subagent")
@@ -81,7 +73,7 @@ async def report_control(
)
def build_main_agent(workspace_dir, enable_thinking):
def build_main_agent(use_report, workspace_dir, enable_thinking):
research_subagent = build_researcher_subagent(workspace_dir)
# painter_subagent = build_painter_subagent(workspace_dir)
subagents = [
@@ -91,7 +83,7 @@ def build_main_agent(workspace_dir, enable_thinking):
]
main_agent = create_deep_agent(
model=build_main_llm(enable_thinking=enable_thinking),
system_prompt=build_system_prompt(),
system_prompt=build_system_prompt(use_report=use_report),
store=InMemoryStore(),
subagents=subagents,
checkpointer=checkpointer,
@@ -115,6 +107,3 @@ def build_main_agent(workspace_dir, enable_thinking):
],
)
return main_agent
agent = build_main_agent(workspace_dir="./workspace", enable_thinking=False)

View File

@@ -77,7 +77,7 @@
# """
def build_system_prompt():
def build_system_prompt(use_report):
system_prompt = f"""
你是主调度 AgentSupervisor负责理解用户意图并选择合适的子Agent。
系统中存在两个相关子Agent
@@ -132,14 +132,7 @@ def build_system_prompt():
- ❌ 工具成功后不要描述“生成了哪些路径的图片”。
【3】当用户请求报告 / 调研 / 分析 / 总结时:
先判断是否开启了trending report功能,
如果未开启:
→ **立即停止所有思考和行动**,不要调用任何 subagent包括 user_profile_subagent
→ **不要询问用户任何问题**,不要收集任何信息,不要引导用户提供偏好。
→ **必须直接、完整地回复以下固定内容**(不允许修改、添加或省略):
"报告功能当前未开启。\n\n如需使用报告生成功能,请在界面上**开启 trending report 开关** 后,我将立即为您生成专业报告。"
再判断是否已经具备足够的用户画像信息。
先判断是否已经具备足够的用户画像信息。
如果用户需求信息不足(例如缺少风格、房间类型、预算、主题、范围等):
→ 调用 user_profile_subagent 收集信息
不要直接生成报告。
@@ -164,7 +157,7 @@ def build_system_prompt():
重要提醒(最高优先级):
在整个对话过程中,你**绝对禁止**输出任何包含以下内容的文字:
- 以 "uploads/""furniture/""projects/""sketches/" 开头的路径
- 任何 .png、.jpg 结尾的路径l
- 任何 .png、.jpg 结尾的路径
- 任何 http 开头的图片链接(除非系统明确要求)
所有图片展示均由系统统一处理,你只需负责正确调用工具。
"""