文件与制品管理
File & Artifact Management
用户文件上传、工作区管理、制品交付与增量注入
子问题
1.文件上传与增量检测
2.工作区/上传/输出三目录隔离
3.制品呈现与下载
4.文件信息自动注入上下文
5.文件格式自动转换(PDF/Office → Markdown)
6.ZIP 归档内文件提取与预览
7.前端制品消息分组与渲染
各项目的解法1 solutions
Signals
横向对比
| 维度 | DeerFlow |
|---|---|
| 目录组织 | 三目录隔离:workspace/uploads/outputs,ThreadDataMiddleware 懒初始化 |
| 上传机制 | Gateway REST API + markitdown 自动转换 PDF/Office → Markdown |
| 注入策略 | UploadsMiddleware 扫描历史消息提取已展示文件名,增量差集注入 |
| 制品呈现 | present_files 工具 + merge_artifacts reducer 保序去重 |
| 路径安全 | 双层虚拟路径映射(sandbox 工具层 + Gateway 层),resolve() 路径遍历防护 |
| 格式支持 | HTML 渲染、文本预览、二进制下载、ZIP 内文件提取(.skill 归档) |
最佳实践
1.增量文件注入避免重复
2.虚拟路径双层映射(工具层+Gateway层)各自独立防护
3.merge_artifacts reducer 用 dict.fromkeys 保序去重支持并行工具调用
4.ThreadDataMiddleware 懒初始化减少不必要 I/O