pub struct LlmResponse {
pub content: Option<Content>,
pub usage_metadata: Option<UsageMetadata>,
pub finish_reason: Option<FinishReason>,
pub citation_metadata: Option<CitationMetadata>,
pub partial: bool,
pub turn_complete: bool,
pub interrupted: bool,
pub error_code: Option<String>,
pub error_message: Option<String>,
pub provider_metadata: Option<Value>,
pub interaction_id: Option<String>,
}Expand description
A response from an LLM provider.
Fields§
§content: Option<Content>The generated content (text, function calls, etc.).
usage_metadata: Option<UsageMetadata>Token usage statistics.
finish_reason: Option<FinishReason>Reason the model stopped generating.
citation_metadata: Option<CitationMetadata>Citation sources referenced in the response.
partial: boolWhether this is a partial streaming chunk.
turn_complete: boolWhether the model has finished its turn.
interrupted: boolWhether the response was interrupted.
error_code: Option<String>Error code from the provider, if any.
error_message: Option<String>Error message from the provider, if any.
provider_metadata: Option<Value>Provider-specific metadata (e.g., response IDs, routing info).
LlmAgent recognizes two optional boolean fields: content_complete
on a non-partial response replaces accumulated deltas with authoritative
content; continue_turn requests another bounded model iteration for
a provider-native tool pause without a client function call.
interaction_id: Option<String>Interactions API: the server-assigned interaction id for this turn, used
to continue the conversation via previous_interaction_id. None for
the generateContent transport and non-Gemini providers.