声明:本站文章均为作者个人原创,图片均为实际截图。如有需要请收藏网站,禁止转载,谢谢配合!!!
| 序号 |
中间件 |
执行时机 |
场景 |
Agent适用范围 |
说明 |
| 0 |
ThreadDataMiddleware |
before_agent |
sandbox 特性 |
主 + 子 |
计算线程目录路径(工作区、上传、输出) |
| 1 |
UploadsMiddleware |
before_agent |
sandbox 特性 |
仅主 |
扫描上传的文件并注入上下文 |
| 2 |
SandboxMiddleware |
before_agent、after_agent |
sandbox 特性 |
主 + 子 |
获取沙箱环境;在 agent 完成后释放 |
| 3 |
DanglingToolCallMiddleware |
wrap_model_call |
始终 |
主 + 子 |
为被中断的工具调用插入合成的 ToolMessage 占位符 |
| 4 |
GuardrailMiddleware |
wrap_tool_call |
guardrail 特性(仅限自定义) |
主 + 子 |
在执行前根据策略提供者评估工具调用 |
| 5 |
ToolErrorHandlingMiddleware |
wrap_tool_call |
始终 |
主 + 子 |
将工具异常转换为错误 ToolMessage,使运行得以继续 |
| 6 |
DeerFlowSummarizationMiddleware |
before_model |
summarization 特性(仅限自定义) |
仅主 |
通过 LLM 摘要压缩长对话历史 |
| 7 |
TodoMiddleware |
after_model |
plan_mode 参数 |
仅主 |
使用 write_todos 工具跟踪多步任务进度 |
| 8 |
TitleMiddleware |
after_model |
auto_title 特性 |
仅主 |
根据首条用户消息生成对话标题 |
| 9 |
MemoryMiddleware |
after_agent |
memory 特性 |
仅主 |
将过滤后的对话加入队列以进行异步内存更新 |
| 10 |
ViewImageMiddleware |
before_model |
vision 特性 |
仅主 |
在 view_image 工具完成后,将 base64 图片数据注入 LLM 上下文 |
| 11 |
SubagentLimitMiddleware |
after_model |
subagent 特性 |
仅主 |
强制执行子 agent 调用限制 |
| 12 |
LoopDetectionMiddleware |
after_model |
始终 |
仅主 |
检测并打破重复的工具调用循环 |
| 13 |
ClarificationMiddleware |
wrap_tool_call |
始终 |
仅主 |
拦截 ask_clarification 调用并中断以等待用户响应 |