feat(agent): 重新给默认智能体添加 TODO 中间件
This commit is contained in:
parent
8f613b0caf
commit
3ec8305eab
@ -2,7 +2,7 @@ from deepagents.middleware.filesystem import FilesystemMiddleware
|
|||||||
from deepagents.middleware.patch_tool_calls import PatchToolCallsMiddleware
|
from deepagents.middleware.patch_tool_calls import PatchToolCallsMiddleware
|
||||||
from deepagents.middleware.subagents import SubAgentMiddleware
|
from deepagents.middleware.subagents import SubAgentMiddleware
|
||||||
from langchain.agents import create_agent
|
from langchain.agents import create_agent
|
||||||
from langchain.agents.middleware import ModelRetryMiddleware
|
from langchain.agents.middleware import ModelRetryMiddleware, TodoListMiddleware
|
||||||
|
|
||||||
from yuxi.agents import BaseAgent, BaseState, load_chat_model
|
from yuxi.agents import BaseAgent, BaseState, load_chat_model
|
||||||
from yuxi.agents.backends import create_agent_composite_backend
|
from yuxi.agents.backends import create_agent_composite_backend
|
||||||
@ -47,15 +47,16 @@ async def _build_middlewares(context):
|
|||||||
)
|
)
|
||||||
# all middlewares
|
# all middlewares
|
||||||
middlewares = [
|
middlewares = [
|
||||||
save_attachments_to_fs, # 附件注入提示词
|
|
||||||
FilesystemMiddleware(backend=create_agent_composite_backend), # 文件系统后端
|
FilesystemMiddleware(backend=create_agent_composite_backend), # 文件系统后端
|
||||||
|
save_attachments_to_fs, # 附件注入提示词
|
||||||
KnowledgeBaseMiddleware(), # 知识库工具
|
KnowledgeBaseMiddleware(), # 知识库工具
|
||||||
RuntimeConfigMiddleware(extra_tools=all_mcp_tools), # 运行时配置应用(模型/工具/MCP/提示词)
|
RuntimeConfigMiddleware(extra_tools=all_mcp_tools), # 运行时配置应用(模型/工具/MCP/提示词)
|
||||||
SkillsMiddleware(), # Skills 中间件(提示词注入、依赖展开、动态激活)
|
SkillsMiddleware(), # Skills 中间件(提示词注入、依赖展开、动态激活)
|
||||||
subagents_middleware,
|
subagents_middleware,
|
||||||
summary_middleware,
|
summary_middleware,
|
||||||
ModelRetryMiddleware(), # 模型重试中间件
|
TodoListMiddleware(system_prompt="任务结束前,应该检查维护的待办事项列表是否结束。"),
|
||||||
PatchToolCallsMiddleware(),
|
PatchToolCallsMiddleware(),
|
||||||
|
ModelRetryMiddleware(), # 模型重试中间件
|
||||||
]
|
]
|
||||||
|
|
||||||
return middlewares
|
return middlewares
|
||||||
|
|||||||
@ -14,4 +14,6 @@ PROMPT = """
|
|||||||
当需要精准获取信息的时候,或者 query_kb 中没有找到相关的内容,还可以直接访问知识库文件系统
|
当需要精准获取信息的时候,或者 query_kb 中没有找到相关的内容,还可以直接访问知识库文件系统
|
||||||
(路径为 /home/gem/kbs/)来获取信息。
|
(路径为 /home/gem/kbs/)来获取信息。
|
||||||
源文件可能无法解析,可以在 /home/gem/kbs/<db_name>/parsed/ 中找到解析后的 markdown 文件。
|
源文件可能无法解析,可以在 /home/gem/kbs/<db_name>/parsed/ 中找到解析后的 markdown 文件。
|
||||||
|
|
||||||
|
你需要根据任务的复杂程度来使用 write_todos 来记录规划和待办事项,确保任务的每个步骤都被记录和跟踪。
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -48,8 +48,8 @@ class BaseContext:
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
tools: Annotated[list[dict], {"__template_metadata__": {"kind": "tools"}}] = field(
|
tools: Annotated[list[str], {"__template_metadata__": {"kind": "tools"}}] = field(
|
||||||
default_factory=list,
|
default_factory=lambda: ["ask_user_question", "tavily_search"],
|
||||||
metadata={
|
metadata={
|
||||||
"name": "工具",
|
"name": "工具",
|
||||||
"description": "内置的工具。",
|
"description": "内置的工具。",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user