From 3b03a91e397babdfec199e6e8c46dc8f59e96b57 Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Sun, 21 Dec 2025 20:25:27 +0800 Subject: [PATCH] =?UTF-8?q?fix(agents):=20=E4=BF=AE=E5=A4=8D=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E9=85=8D=E7=BD=AE=E5=9C=A8=E5=AD=90=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E4=BD=93=E4=B8=AD=E4=B8=8D=E7=94=9F=E6=95=88=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 移除 AnthropicPromptCachingMiddleware 并简化 SummarizationMiddleware 配置 2. 在 context_based_model 中添加调试日志 更新 research-agent 的描述以明确其功能 --- .../common/middlewares/context_middlewares.py | 2 ++ src/agents/deep_agent/graph.py | 26 +++++-------------- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/src/agents/common/middlewares/context_middlewares.py b/src/agents/common/middlewares/context_middlewares.py index c9623601..12249314 100644 --- a/src/agents/common/middlewares/context_middlewares.py +++ b/src/agents/common/middlewares/context_middlewares.py @@ -4,6 +4,7 @@ from collections.abc import Callable from langchain.agents.middleware import ModelRequest, ModelResponse, dynamic_prompt, wrap_model_call +from src.utils import logger from src.agents.common import load_chat_model @@ -20,4 +21,5 @@ async def context_based_model(request: ModelRequest, handler: Callable[[ModelReq model = load_chat_model(model_spec) request = request.override(model=model) + logger.debug(f"Using model {model_spec} for request {request.messages[-1].content[:200]}") return await handler(request) diff --git a/src/agents/deep_agent/graph.py b/src/agents/deep_agent/graph.py index a95fb572..f9c5847d 100644 --- a/src/agents/deep_agent/graph.py +++ b/src/agents/deep_agent/graph.py @@ -5,7 +5,6 @@ from deepagents.middleware.patch_tool_calls import PatchToolCallsMiddleware from deepagents.middleware.subagents import SubAgentMiddleware from langchain.agents import create_agent from langchain.agents.middleware import ModelRequest, SummarizationMiddleware, TodoListMiddleware, dynamic_prompt -from langchain_anthropic.middleware import AnthropicPromptCachingMiddleware from src.agents.common import BaseAgent, load_chat_model from src.agents.common.middlewares import context_based_model, inject_attachment_context @@ -18,7 +17,7 @@ search_tools = [search] research_sub_agent = { "name": "research-agent", - "description": ("利用搜索工具,用于研究更深入的问题。"), + "description": ("利用搜索工具,用于研究更深入的问题。将调研结果写入到主题研究文件中。"), "system_prompt": ( "你是一位专注的研究员。你的工作是根据用户的问题进行研究。" "进行彻底的研究,然后用详细的答案回复用户的问题,只有你的最终答案会被传递给用户。" @@ -85,18 +84,6 @@ class DeepAgent(BaseAgent): model = load_chat_model(context.model) tools = await self.get_tools() - if ( - model.profile is not None - and isinstance(model.profile, dict) - and "max_input_tokens" in model.profile - and isinstance(model.profile["max_input_tokens"], int) - ): # 此处参考 model.dev 中的 max_input_tokens - trigger = ("fraction", 0.85) - keep = ("fraction", 0.10) - else: - trigger = ("tokens", 110000) - keep = ("messages", 10) - # 使用 create_deep_agent 创建深度智能体 graph = create_agent( model=model, @@ -112,26 +99,25 @@ class DeepAgent(BaseAgent): default_tools=tools, subagents=[critique_sub_agent, research_sub_agent], default_middleware=[ + context_based_model, # 动态模型选择 TodoListMiddleware(), FilesystemMiddleware(), SummarizationMiddleware( model=model, - trigger=trigger, - keep=keep, + trigger=("tokens", 110000), + keep=("messages", 10), trim_tokens_to_summarize=None, ), - AnthropicPromptCachingMiddleware(unsupported_model_behavior="ignore"), PatchToolCallsMiddleware(), ], general_purpose_agent=True, ), SummarizationMiddleware( model=model, - trigger=trigger, - keep=keep, + trigger=("tokens", 110000), + keep=("messages", 10), trim_tokens_to_summarize=None, ), - AnthropicPromptCachingMiddleware(unsupported_model_behavior="ignore"), PatchToolCallsMiddleware(), ], checkpointer=await self._get_checkpointer(),