PromptSession is the runtime representation of a prompt template combined with session data. It handles variable substitution, provider conversion, and response parsing.
Creation
Sessions are created from prompt templates using the client:Properties
| Property | Type | Description |
|---|---|---|
id | UUID | Unique session identifier |
prompt | PromptTemplate | The underlying prompt template |
prompt_id | UUID | Shortcut to prompt.id |
messages | list[Message] | Current message list |
session_data | RenderableModel | None | The session data for variable substitution |
Provider Conversion
These methods convert the session to provider-specific formats for direct SDK usage.to_anthropic_invocation
Convert to complete Anthropic API payload with model parameters.| Name | Type | Description |
|---|---|---|
context | MessageContext | dict | None | Additional context (merged with session_data) |
model | str | None | Model override (e.g., “claude-sonnet-4-20250514”) |
max_tokens | int | None | Max tokens override |
temperature | float | None | Temperature override |
top_p | float | None | Top-p override |
thinking | dict | None | Extended thinking configuration |
** unpacking.
- Tools (if configured in prompt)
- Structured output format (if response schema configured)
- Model parameters from
completion_config
For structured outputs, add the beta header manually:
to_openai_chat_invocation
Convert to complete OpenAI Chat API payload.to_openai_responses_invocation
Convert to OpenAI Responses API payload.to_google_gemini_invocation
Convert to Google Gemini API payload.to_google_vertex_invocation
Convert to Google Vertex AI payload.to_invocation
Generic method that auto-selects provider based oncompletion_config.provider.
Message-Only Conversion
These methods return just the messages without model parameters.to_anthropic_messages
{"system": ..., "messages": [...]}.
to_openai_chat_messages
{"messages": [...]}.
to_openai_responses_messages
{"input": [...], "instructions": ...}.
to_google_gemini_messages
{"system_instruction": ..., "content": [...]}.
to_messages
Generic method for any provider. Uses storedcompletion_config.provider by default:
to_payload
Generic method for any provider. Uses storedcompletion_config.provider by default:
Response Handling
parse_response
Parse a provider response into normalized format. Uses storedcompletion_config.provider by default:
create_llm_event_from_response
Create an LLM event for telemetry from a raw provider response. Uses storedcompletion_config.provider by default:
create_llm_event_from_parsed_response
Create an LLM event from an already-parsed response with additional metadata.| Name | Type | Description |
|---|---|---|
parsed_response | ParsedResponse | The parsed response |
request_config | RequestConfig | None | Request configuration used |
schema_definition | SchemaDefinition | None | Schema or tool definitions |
attributes | dict | None | Custom attributes |
validation_errors | list[str] | None | Validation errors if schema validation failed |
Runtime Message Management
Add messages to the session at runtime for multi-turn conversations.append_user_text
Append a user message with text content.append_assistant_text
Append an assistant message with text content.append_assistant_response
Append an assistant response from a parsed LLM response.Context Handling
The session automatically handles context fromsession_data:
- If
session_datais provided,render()is called to get variables - These variables are used for substitution in message templates
- Additional
contextparameters are merged (taking precedence)