1- from deepagents .backends import CompositeBackend , StateBackend
2- from deepagents .middleware .filesystem import FilesystemMiddleware
31from langchain .agents import create_agent
42from langchain .agents .middleware import ModelRetryMiddleware
53
4+ from deepagents .backends import StateBackend
5+ from deepagents .middleware .filesystem import FilesystemMiddleware
6+
67from src .agents .common import BaseAgent , load_chat_model
7- from src .agents .common .backends .minio_backend import MinIOBackend
88from src .agents .common .middlewares import (
99 RuntimeConfigMiddleware ,
1010 save_attachments_to_fs ,
1111)
1212from src .services .mcp_service import get_tools_from_all_servers
1313
1414
15- def _create_fs_backend_factory (rt ) -> CompositeBackend :
16- """创建混合文件存储后端工厂函数(供 FilesystemMiddleware 使用)。
17-
18- /attachments/* 路由到 MinIO(供附件中间件使用)
19- 其他路径使用 StateBackend(内存存储,用于临时文件和大结果卸载)
20-
21- 注意:rt (runtime) 由 FilesystemMiddleware 在初始化时自动传入。
22- """
23- return CompositeBackend (
24- default = StateBackend (rt ), # 传入 runtime
25- routes = {
26- "/attachments/" : MinIOBackend (bucket_name = "chat-attachments" ),
27- },
28- )
15+ def _create_fs_backend (rt ):
16+ """创建文件存储后端"""
17+ return StateBackend (rt )
2918
3019
3120class ChatbotAgent (BaseAgent ):
@@ -49,8 +38,8 @@ async def get_graph(self, **kwargs):
4938 model = load_chat_model (context .model ),
5039 system_prompt = context .system_prompt ,
5140 middleware = [
52- save_attachments_to_fs , # 附件保存到文件系统
53- FilesystemMiddleware (backend = _create_fs_backend_factory , tool_token_limit_before_evict = 5000 ),
41+ save_attachments_to_fs , # 附件注入提示词
42+ FilesystemMiddleware (backend = _create_fs_backend ), # 文件系统后端
5443 RuntimeConfigMiddleware (extra_tools = all_mcp_tools ), # 运行时配置应用(模型/工具/知识库/MCP/提示词)
5544 ModelRetryMiddleware (), # 模型重试中间件
5645 ],
0 commit comments