Skip to content

Artifact Hub

Artifact Hub provides versioned storage for files and data shared between agents. It supports large file uploads, signed URLs, and rich metadata.

  • Versioned storage - Track all changes to files
  • Large file support - Stream files up to 100GB
  • Signed URLs - Temporary secure access
  • Metadata - Custom attributes on artifacts
  • Group sharing - Share with agent groups
  • Namespace isolation - Per-team separation
# Upload from bytes
artifact = await client.artifact.create(
name="report.pdf",
content_type="application/pdf",
data=pdf_bytes,
metadata={
"author": "document-agent",
"category": "quarterly-reports"
}
)
print(f"Created artifact: {artifact.id}")
artifact = await client.artifact.upload_file(
path="/path/to/large-file.zip",
name="backup.zip",
metadata={"backup_date": "2026-01-02"}
)
# Store small JSON data as a snippet
artifact = await client.artifact.create_snippet(
name="config.json",
content={"model": "gpt-4", "temperature": 0.7},
metadata={"version": "1.0"}
)
# Download to memory
data = await client.artifact.download(artifact_id="art_xxx")
# Download to file
await client.artifact.download_file(
artifact_id="art_xxx",
path="/path/to/output.pdf"
)
artifact = await client.artifact.get(artifact_id="art_xxx")
print(f"Name: {artifact.name}")
print(f"Size: {artifact.size_bytes}")
print(f"Created: {artifact.created_at}")

Generate temporary URLs for direct access:

# Get a signed download URL (valid for 1 hour)
url = await client.artifact.get_signed_url(
artifact_id="art_xxx",
expires_in=3600
)
print(f"Download URL: {url}")

Artifacts are automatically versioned:

# Create initial version
artifact = await client.artifact.create(
name="model.pt",
data=model_bytes_v1
)
# Update creates a new version
artifact = await client.artifact.update(
artifact_id=artifact.id,
data=model_bytes_v2
)
# List all versions
versions = await client.artifact.list_versions(artifact_id=artifact.id)
for v in versions:
print(f"Version {v.version}: {v.created_at}")
# Download specific version
data = await client.artifact.download(
artifact_id=artifact.id,
version=1
)
await client.artifact.share(
artifact_id="art_xxx",
with_agents=["agent-a", "agent-b"]
)
await client.artifact.share(
artifact_id="art_xxx",
with_groups=["data-team", "ml-team"]
)
await client.artifact.unshare(
artifact_id="art_xxx",
agents=["agent-a"]
)
# List all artifacts in namespace
artifacts = await client.artifact.list()
# Filter by metadata
artifacts = await client.artifact.list(
metadata_filter={"category": "quarterly-reports"}
)
# List artifacts shared with you
artifacts = await client.artifact.list_shared()
# Delete an artifact (all versions)
await client.artifact.delete(artifact_id="art_xxx")
# Delete specific version
await client.artifact.delete_version(
artifact_id="art_xxx",
version=1
)
TierMax File SizeTotal Storage
Free10 MB100 MB
Starter100 MB10 GB
Pro1 GB100 GB
Team10 GB1 TB
Enterprise100 GBUnlimited