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