feat(chatbot): ChatbotAgent 启用 SubAgentMiddleware
集成 SubAgentMiddleware 到 ChatbotAgent,使子智能体配置生效。
This commit is contained in:
parent
89aed450ab
commit
6f759af54c
@ -1,5 +1,6 @@
|
||||
from deepagents.middleware.filesystem import FilesystemMiddleware
|
||||
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 (
|
||||
ModelRetryMiddleware,
|
||||
@ -15,6 +16,7 @@ from yuxi.agents.common.middlewares import (
|
||||
from yuxi.agents.common.middlewares.knowledge_base_middleware import KnowledgeBaseMiddleware
|
||||
from yuxi.agents.common.middlewares.skills_middleware import SkillsMiddleware
|
||||
from yuxi.services.mcp_service import get_tools_from_all_servers
|
||||
from yuxi.services.subagent_service import get_subagents_from_names
|
||||
|
||||
|
||||
def _create_fs_backend(rt):
|
||||
@ -36,12 +38,25 @@ class ChatbotAgent(BaseAgent):
|
||||
await get_tools_from_all_servers()
|
||||
) # 因为异步加载,无法放在 RuntimeConfigMiddleware 的 __init__ 中
|
||||
|
||||
subagents = await get_subagents_from_names(context.subagents)
|
||||
subagents_model = load_chat_model(context.subagents_model)
|
||||
subagents_middleware = SubAgentMiddleware(
|
||||
default_model=subagents_model,
|
||||
subagents=subagents,
|
||||
general_purpose_agent=True,
|
||||
default_middleware=[
|
||||
FilesystemMiddleware(backend=_create_fs_backend), # 文件系统后端
|
||||
PatchToolCallsMiddleware(),
|
||||
],
|
||||
)
|
||||
|
||||
middlewares = [
|
||||
save_attachments_to_fs, # 附件注入提示词
|
||||
FilesystemMiddleware(backend=_create_fs_backend), # 文件系统后端
|
||||
KnowledgeBaseMiddleware(), # 知识库工具
|
||||
RuntimeConfigMiddleware(extra_tools=all_mcp_tools), # 运行时配置应用(模型/工具/MCP/提示词)
|
||||
SkillsMiddleware(), # Skills 中间件(提示词注入、依赖展开、动态激活)
|
||||
subagents_middleware,
|
||||
ModelRetryMiddleware(), # 模型重试中间件
|
||||
TodoListMiddleware(),
|
||||
PatchToolCallsMiddleware(),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user