Skip to main content

Artifacts

Artifacts are scoped files Anyy can attach, inspect, and preserve during a session. They cover generated images, TTS audio, channel attachments, and other file-like outputs stored through the artifact system.

Artifacts are addressed with canonical refs:

artifact://artifact/<id>

An artifact ref is not a filesystem path. Anyy resolves it through the artifact store and current runtime scope before any local file path is exposed.

What Creates Artifacts

Common sources:

SourceArtifact kind
Inbound channel attachmentimage, video, audio, voice, or file.
image_generateGenerated image artifact and outbound image attachment.
text_to_speechGenerated audio/voice artifact and outbound audio attachment.
Runtime file registrationScoped local artifact records when a service registers a file.

The current turn receives a manifest for current and recent scoped artifacts. The manifest includes ref, kind, content type, filename, size, digest, status, and available actions when those values are known.

Artifact Toolset

List And Retrieve Artifacts

The model-visible artifact tools live in the optional artifact toolset:

ToolPurposePolicy
artifact_listList scoped artifacts for the current session.Direct read, audited runtime read on success.
artifact_inspectInspect an image or video artifact.Direct read, audited runtime read on success.
artifact_pinPin an artifact so normal retention cleanup keeps it.Audited config-low change.

artifact_list accepts kind filters: image, video, audio, voice, and file. The default limit is 20 and the maximum is 50.

artifact_inspect requires a canonical artifact_ref. It supports image and video artifacts. For PDFs, documents, or plain files, use the manifest path with file, process, or skill tools instead.

artifact_inspect accepts an optional prompt and max_tokens, capped at 1024.

Pin Artifacts

Pinning changes artifact retention status for the scoped artifact:

{
"artifact_ref": "artifact://artifact/art_123",
"label": "final mockup",
"note": "Keep this image for later comparison."
}

Pinning does not make an artifact globally public. It only tells retention logic not to remove it during normal cleanup.

Path Broker

When a local path is needed, Anyy resolves the artifact through the path broker. The broker verifies:

CheckWhy it matters
ScopeThe artifact must belong to the current session, owner, role/workspace, or channel scope.
StatusDeleted, expired, unavailable, or unsupported artifacts are not materialized.
Path safetyArtifact IDs and relative storage paths must be safe.
File integritySize and SHA-256 must match the manifest when source bytes are verified.
Local backendOnly the local artifact backend is supported in this build.

If bytes are available, the broker materializes a readable local path under the profile artifact area. If not, the manifest records an unavailable reason such as missing, expired, deleted, unsafe, stale, or missing_bytes.

Retention

Artifacts may expire according to storage and retention policy. Recent artifacts can still appear in session context as manifests, but unavailable bytes are marked instead of pretending the file is readable.

Use artifact_pin for artifacts you want Anyy to keep through normal retention cleanup. For long-term human-managed files, ask Anyy to save or export them to a normal project path.