Skip to content

Commit 44e41bb

Browse files
committed
refactor: 简化附件处理架构,使用 StateBackend 替代 MinIO
- 移除 MinIOBackend 和复合存储后端,统一使用 StateBackend - 依赖 LangGraph checkpointer 自动恢复 state(attachments, files) - 前端适配 StateBackend 字典格式文件结构 - 优化 @提及 文件搜索逻辑,支持路径匹配
1 parent 34b06b2 commit 44e41bb

15 files changed

Lines changed: 549 additions & 744 deletions

File tree

src/agents/chatbot/graph.py

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,20 @@
1-
from deepagents.backends import CompositeBackend, StateBackend
2-
from deepagents.middleware.filesystem import FilesystemMiddleware
31
from langchain.agents import create_agent
42
from langchain.agents.middleware import ModelRetryMiddleware
53

4+
from deepagents.backends import StateBackend
5+
from deepagents.middleware.filesystem import FilesystemMiddleware
6+
67
from src.agents.common import BaseAgent, load_chat_model
7-
from src.agents.common.backends.minio_backend import MinIOBackend
88
from src.agents.common.middlewares import (
99
RuntimeConfigMiddleware,
1010
save_attachments_to_fs,
1111
)
1212
from 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

3120
class 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
],

src/agents/common/backends/__init__.py

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/agents/common/backends/minio_backend.py

Lines changed: 0 additions & 312 deletions
This file was deleted.

0 commit comments

Comments
 (0)