CrewAI 原生支持多种文件类型的输入处理,通过 crewai-files 包提供专门的类:
文件可以通过本地路径、URL 或字节流三种方式传入,支持在 Crew、Task、Flow 和单独 Agent 四个层级传递,更具体的层级具有更高优先级。
CrewAI 自动根据 LLM 提供商的 API 要求格式化文件:
对于没有文件上传 API 的提供商,CrewAI 自动使用内联 base64 编码;当文件超过提供商限制时,支持 strict、auto、warn 和 chunk 等处理模式。
开发者可以在任务描述中使用文件的键名引用文件,智能体会自动理解并处理:
task = Task(
description="""
分析提供的材料:
1. 审查 {sales_chart} 中的图表
2. 与 {quarterly_report} 中的数据进行交叉验证
3. 总结主要发现
""",
input_files={
"sales_chart": ImageFile(source="chart.png"),
"quarterly_report": PDFFile(source="report.pdf"),
}
)需要注意的是,图像和 PDF 的端到端验证已经较为成熟,但音频、视频和文档目前可能通过图像通道路由,在严格模式下可能被某些提供商拒绝。原生按类型的映射仍是一个已知差距,而非完全发布的功能。