55from deepagents .middleware .subagents import SubAgentMiddleware
66from langchain .agents import create_agent
77from langchain .agents .middleware import ModelRequest , SummarizationMiddleware , TodoListMiddleware , dynamic_prompt
8- from langchain_anthropic .middleware import AnthropicPromptCachingMiddleware
98
109from src .agents .common import BaseAgent , load_chat_model
1110from src .agents .common .middlewares import context_based_model , inject_attachment_context
1817
1918research_sub_agent = {
2019 "name" : "research-agent" ,
21- "description" : ("利用搜索工具,用于研究更深入的问题。" ),
20+ "description" : ("利用搜索工具,用于研究更深入的问题。将调研结果写入到主题研究文件中。 " ),
2221 "system_prompt" : (
2322 "你是一位专注的研究员。你的工作是根据用户的问题进行研究。"
2423 "进行彻底的研究,然后用详细的答案回复用户的问题,只有你的最终答案会被传递给用户。"
@@ -85,18 +84,6 @@ async def get_graph(self, **kwargs):
8584 model = load_chat_model (context .model )
8685 tools = await self .get_tools ()
8786
88- if (
89- model .profile is not None
90- and isinstance (model .profile , dict )
91- and "max_input_tokens" in model .profile
92- and isinstance (model .profile ["max_input_tokens" ], int )
93- ): # 此处参考 model.dev 中的 max_input_tokens
94- trigger = ("fraction" , 0.85 )
95- keep = ("fraction" , 0.10 )
96- else :
97- trigger = ("tokens" , 110000 )
98- keep = ("messages" , 10 )
99-
10087 # 使用 create_deep_agent 创建深度智能体
10188 graph = create_agent (
10289 model = model ,
@@ -112,26 +99,25 @@ async def get_graph(self, **kwargs):
11299 default_tools = tools ,
113100 subagents = [critique_sub_agent , research_sub_agent ],
114101 default_middleware = [
102+ context_based_model , # 动态模型选择
115103 TodoListMiddleware (),
116104 FilesystemMiddleware (),
117105 SummarizationMiddleware (
118106 model = model ,
119- trigger = trigger ,
120- keep = keep ,
107+ trigger = ( "tokens" , 110000 ) ,
108+ keep = ( "messages" , 10 ) ,
121109 trim_tokens_to_summarize = None ,
122110 ),
123- AnthropicPromptCachingMiddleware (unsupported_model_behavior = "ignore" ),
124111 PatchToolCallsMiddleware (),
125112 ],
126113 general_purpose_agent = True ,
127114 ),
128115 SummarizationMiddleware (
129116 model = model ,
130- trigger = trigger ,
131- keep = keep ,
117+ trigger = ( "tokens" , 110000 ) ,
118+ keep = ( "messages" , 10 ) ,
132119 trim_tokens_to_summarize = None ,
133120 ),
134- AnthropicPromptCachingMiddleware (unsupported_model_behavior = "ignore" ),
135121 PatchToolCallsMiddleware (),
136122 ],
137123 checkpointer = await self ._get_checkpointer (),
0 commit comments