Skip to content

symfonic.agent.types_attachment

types_attachment

Multimodal attachments carried alongside a query.

Split out of :mod:symfonic.agent.types (360 lines against the 300-line budget). types holds the request/response models and the scope bridge; Attachment is a self-contained value with its own validation rules -- notably the SSRF scheme check -- and nothing in types reads it except the forward reference AgentRequest.attachments resolves at import time.

types re-exports Attachment, so every existing import path works.

Attachment

Bases: BaseModel

Non-text content to send alongside a query.

The semantic query string is used for HMS hydration and embeddings; attachments are forwarded to the LLM as additional content blocks but do NOT participate in memory hydration or tool routing in v1.

Attributes:

Name Type Description
kind Literal['image', 'document']

Content type -- "image" or "document".

source_type Literal['url', 'base64']

How data is encoded -- "url" (http/https only -- other schemes such as file:// are rejected to prevent SSRF) or "base64".

data str

URL string or base64-encoded content.

media_type str

MIME type (e.g. "image/png", "application/pdf"). Defaults to image/png for kind="image" and application/pdf for kind="document".

filename str | None

Optional filename for documents / PDFs.