Each ARMS agent release updates the LLM plug-in to align with the latest semantic specifications. Use this page to identify span attribute changes between versions and update your queries, dashboards, and alerts.
Python agent
V2.0.0
V2.0.0 restructures span attributes for the OpenAI component to adopt the gen_ai.* namespace consistently. The changes affect both LLM and Embedding call types.
After you upgrade to V2.0.0, update any dashboards or alerts that reference the renamed or removed attributes listed below.
LLM call type
Renamed attributes
| Old attribute | New attribute | Format change |
|---|---|---|
gen_ai.prompts | gen_ai.input.messages | Flat string to JSON |
gen_ai.completions | gen_ai.output.messages | Flat string to JSON |
gen_ai.request.model_name | gen_ai.request.model | -- |
gen_ai.response.model_name | gen_ai.response.model | -- |
input.value | gen_ai.input.messages | Unstructured to JSON |
output.mime_type | gen_ai.output.type | -- |
output.value | gen_ai.output.messages | Unstructured to JSON |
gen_ai.request.tool_calls | gen_ai.tool.definitions | Unstructured to JSON |
gen_ai.usage.prompt_tokens | gen_ai.usage.input_tokens | -- |
gen_ai.usage.completion_tokens | gen_ai.usage.output_tokens | -- |
Removed attributes
| Attribute | Replacement |
|---|---|
gen_ai.model_name | Use gen_ai.request.model or gen_ai.response.model. |
input.mime_type | None. Content type is no longer tracked as a separate attribute. |
New attributes
| Attribute | Description |
|---|---|
gen_ai.request.choice.count | Number of completions to generate per prompt. |
gen_ai.request.seed | Seed for deterministic sampling. |
gen_ai.request.frequency_penalty | Penalizes tokens by how often they appear in the output so far. |
gen_ai.request.presence_penalty | Penalizes tokens based on whether they already appear in the output. |
gen_ai.request.max_tokens | Maximum number of tokens to generate. |
gen_ai.request.top_p | Nucleus sampling threshold. |
gen_ai.request.top_k | Limits sampling to the top-k most probable tokens. |
gen_ai.request.stop_sequences | Sequences that signal the model to stop generating. |
gen_ai.response.id | Unique identifier for the model response. |
gen_ai.response.finish_reasons | Reasons the model stopped generating, such as stop or length. |
Embedding call type
Renamed attributes
| Old attribute | New attribute |
|---|---|
embedding.model_name | gen_ai.request.model |
embedding.vector_size | gen_ai.embeddings.dimension.count |
Removed attributes
| Attribute | Replacement |
|---|---|
embedding.text | None. Raw embedding input is no longer captured. |
embedding.vector | None. Raw embedding vector is no longer captured. |
New attributes
| Attribute | Description |
|---|---|
gen_ai.encoding.formats | Encoding formats requested for the embedding output. |
Input and output format change
In V2.0.0, several attributes changed from a flat string or unstructured format to a structured JSON array. The following examples show the old and new formats.
gen_ai.prompts (old) vs. gen_ai.input.messages (new)
Old format (flat string):
"You are a helpful assistant.\nWhat is cloud computing?"New format (JSON array):
[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is cloud computing?"}
]gen_ai.completions (old) vs. gen_ai.output.messages (new)
Old format (flat string):
"Cloud computing is the on-demand delivery of IT resources over the Internet."New format (JSON array):
[
{"role": "assistant", "content": "Cloud computing is the on-demand delivery of IT resources over the Internet."}
]