アーティファクトの作成方法
ToolResult に artifacts リストを返すツールは、ダウンロード可能なファイルを生成します。エージェントは特別な指示を必要としません — アーティファクト作成はツール実行の自然な副作用です。
一般的なプロデューサー:
| ツール | アーティファクト型 | 例 |
|---|---|---|
python_exec | 画像、HTML、CSV、JSON | matplotlibチャートをPNGとして保存 |
template_render | HTML | フォーマットされたレポート |
| コード実行ツール | 任意のファイル | 生成されたコード、エクスポートされたデータ |
| 画像生成 | 画像 | AI生成イラスト |
ギャラリー
アーティファクトページ(/artifacts)は、すべての会話で生成したすべてのファイルの統合ビューを提供します。
フィルタリング
4つのタイプフィルターでビューを絞り込めます:| フィルター | ファイルタイプ |
|---|---|
| すべて | すべてのファイル |
| 画像 | PNG、JPG、GIF、SVG、WebP |
| HTML | HTMLページとレポート |
| コード | Python、JavaScript、TypeScript、JSON、YAML、XML、CSS、SQL、Markdown、シェルスクリプト |
| ファイル | その他すべて — CSV、PDF、プレーンテキスト、バイナリファイル |
プレビュー
任意のアーティファクトをクリックしてインラインプレビューを開きます:- 画像 — フル解像度でレンダリング
- HTML — サンドボックス化されたiframe内に表示(スクリプトは分離)
- コード — 言語検出による構文ハイライト
- Markdown — フォーマットされたテキストとしてレンダリング
- その他 — プレーンテキストまたはダウンロードプロンプトとして表示
メタデータ
各アーティファクトには以下が表示されます:- ファイル名とサイズ
- 作成タイムスタンプ
- ソース会話(生成されたときの会話に戻るためにクリック)
ストレージ
アーティファクトはサーバーのファイルシステムのuploads/conversations/{conversation_id}/artifacts/ に保存されます。各アーティファクトには UUID ベースのファイル名が付与され、URL は推測不可能になります。ファイルは直接提供されます。個別のアーティファクトのデータベースレコードはなく、ストレージレイヤーはシンプルで高速です。
API
| エンドポイント | 説明 |
|---|---|
GET /api/artifacts | 現在のユーザーのすべてのアーティファクトをリストします。?page=、?size=、?type= フィルターをサポートしています |
GET /api/conversations/{id}/artifacts | 特定の会話のアーティファクトをリストします |
GET /api/conversations/{id}/artifacts/{artifact_id} | 特定のアーティファクトをダウンロードします |