工件如何创建
任何返回包含artifacts 列表的 ToolResult 的工具都会生成可下载的文件。智能体不需要特殊指令 — 工件创建是工具执行的自然副作用。
常见生产者:
| 工具 | 工件类型 | 示例 |
|---|---|---|
python_exec | 图像、HTML、CSV、JSON | 保存为 PNG 的 matplotlib 图表 |
template_render | HTML | 格式化报告 |
| 代码执行工具 | 任何文件 | 生成的代码、导出的数据 |
| 图像生成 | 图像 | AI 生成的插图 |
画廊
Artifacts 页面(/artifacts)提供了您在所有对话中生成的所有文件的统一视图。
筛选
四种类型筛选器可以缩小视图范围:| 筛选器 | 文件类型 |
|---|---|
| 全部 | 所有内容 |
| 图像 | PNG、JPG、GIF、SVG、WebP |
| HTML | HTML 页面和报告 |
| 代码 | Python、JavaScript、TypeScript、JSON、YAML、XML、CSS、SQL、Markdown、shell 脚本 |
| 文件 | 其他所有内容 — CSV、PDF、纯文本、二进制文件 |
预览
点击任何工件以打开内联预览:- 图像 — 以全分辨率呈现
- HTML — 在沙箱 iframe 中显示(脚本隔离)
- 代码 — 带有语言检测的语法高亮
- Markdown — 呈现为格式化文本
- 其他 — 显示为纯文本或下载提示
元数据
每个工件显示:- 文件名和大小
- 创建时间戳
- 源对话(点击可导航回生成该工件的对话)
存储
工件存储在服务器文件系统中的uploads/conversations/{conversation_id}/artifacts/ 目录下。每个工件都有一个基于 UUID 的文件名,使 URL 无法被猜测。文件直接提供服务 — 不为单个工件保存数据库记录,保持存储层简单快速。
API
| Endpoint | Description |
|---|---|
GET /api/artifacts | 列出当前用户的所有制品。支持 ?page=、?size=、?type= 过滤器 |
GET /api/conversations/{id}/artifacts | 列出特定对话的制品 |
GET /api/conversations/{id}/artifacts/{artifact_id} | 下载特定制品 |