ファイルの追加
ファイルをアップロードしてサンドボックスにマウントし、読み取りや処理を行います。
Files APIを通じてファイルをアップロードし、セッションのサンドボックスにマウントすることで、エージェントにファイルを提供できます。
ファイルのアップロード
まず、Files APIを使用してファイルをアップロードします。
file = client.files.upload(file=Path("data.csv"))
print(f"File ID: {file.id}")セッションへのファイルのマウント
セッション作成時に resources 配列にファイルを追加することで、アップロードしたファイルをサンドボックスにマウントします。
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
resources=[
{
"type": "file",
"file_id": file.id,
"mount_path": "/data.csv",
},
],
)上記の mount_path を指定した場合、エージェントは /mnt/session/uploads/data.csv にあるファイルを読み取ります(ファイルパスを参照)。
セッション内のファイルのインスタンスを参照する新しい file_id が作成されます。これらのコピーはストレージ制限にはカウントされません。
複数のファイル
resources 配列にエントリを追加することで、複数のファイルをマウントできます。
resources = [
{"type": "file", "file_id": "file_abc123", "mount_path": "/data.csv"},
{"type": "file", "file_id": "file_def456", "mount_path": "/config.json"},
{"type": "file", "file_id": "file_ghi789", "mount_path": "/src/main.py"},
]1セッションあたり最大500ファイルまでサポートされています。
実行中のセッションでのファイル管理
セッションリソースAPIを使用すると、作成後のセッションに対してファイルを追加または削除できます。各リソースには、追加時(または一覧取得時)に返される id があり、削除の際にこれを使用します。
resource = client.beta.sessions.resources.add(
session.id,
type="file",
file_id=file.id,
)
print(resource.id) # "sesrsc_01ABC..."resources.list を使用してセッション上のすべてのリソースを一覧表示します。ファイルを削除するには、リソースIDを指定して resources.delete を呼び出します。
listed = client.beta.sessions.resources.list(session.id)
for entry in listed.data:
print(entry.id, entry.type)
client.beta.sessions.resources.delete(resource.id, session_id=session.id)セッションファイルの一覧表示とダウンロード
Files APIを使用して、セッションにスコープされたファイルを一覧表示し、ダウンロードします。エージェントが /mnt/session/outputs/ に書き込んだファイルは、エージェントが書き込みを完了した直後に一覧に表示されますが、セッションがアイドル状態になってから数秒後になる場合もあります。期待する出力ファイルが見つからない場合は、少し待ってから再度一覧を取得してください。一覧に表示されれば、そのファイルのアップロードは完了しています。
scope_id によるフィルタリングには managed-agents-2026-04-01 ベータヘッダーが必要なため、一覧表示の例では beta のfiles名前空間を使用し、このヘッダーを明示的に渡しています。
# セッションに関連付けられたファイルを一覧表示
files = client.beta.files.list(
scope_id="sesn_abc123",
betas=["managed-agents-2026-04-01"],
)
for file in files:
print(file.id, file.filename)
# ファイルをダウンロード
content = client.files.download(files.data[0].id)
content.write_to_file("output.txt")サポートされるファイルタイプ
エージェントは、以下を含むあらゆるファイルタイプを扱うことができます。
- ソースコード(
.py、.js、.ts、.go、.rsなど) - データファイル(
.csv、.json、.xml、.yaml) - ドキュメント(
.txt、.md) - アーカイブ(
.zip、.tar.gz) - エージェントはbashを使用してこれらを展開できます - バイナリファイル - エージェントは適切なツールでこれらを処理できます
ファイルパス
- 指定したパスはセッションのuploadsディレクトリ配下をルートとします。
mount_pathに/data.csvを指定すると、ファイルはサンドボックス内の/mnt/session/uploads/data.csvに配置されます mount_pathを省略した場合、ファイルは/mnt/session/uploads/<file_id>に配置されます- 親ディレクトリは自動的に作成されます
- パスは絶対パス(
/で始まる)である必要があります - エージェントが
/mnt/session/outputs/に書き込んだファイルは、セッションにスコープされた形でFiles APIを通じて利用可能になります。セッションファイルの一覧表示とダウンロードを参照してください
Was this page helpful?