# AI observation examples

Language-specific examples for each supported additional AI observation category.

## Choose the relevant category

The JSON fields below are example business data, not a mandatory universal model schema. Send only information actually available at the step and necessary for your purpose. Not every service needs every category. Do not place synthetic example values in a production trace as if they were observed.

Python snippets assume an existing step, .NET snippets an observer and Java snippets an sdk with active context. See the [language guides](https://www.sigillum.cloud/developers/sdk/overview/) for lifecycle and scope.

## Inputs, outputs and original content

Use ObserveAiAsync, call_ai / call_ai_async and the Java AI call interfaces around the actual operation. When original bytes already exist, supply them through the attachment contract. Source/source represents institutional source material; Custom/custom represents additional business information. The [source attachment example](https://www.sigillum.cloud/developers/observations/additional-data/) combines content and metadata.

## Business fields and observation identity

A transaction_id or service_id inside a payload cannot change the SDK-authorised identity. Sigillum manages observation relationships, seals and signatures. Add source-system business identities through the optional reference interface.