diff --git a/docs/reference/ecs-gen_ai.md b/docs/reference/ecs-gen_ai.md
index 23300697b2..de4b9cb95c 100644
--- a/docs/reference/ecs-gen_ai.md
+++ b/docs/reference/ecs-gen_ai.md
@@ -20,7 +20,9 @@ This field group definition is based on the Gen AI namespace of the OpenTelemetr
| $$$field-gen-ai-agent-description$$$ [gen_ai.agent.description](#field-gen-ai-agent-description) | _This field is beta and subject to change._ Free-form description of the GenAI agent provided by the application.
type: keyword
example: `Helps with math problems; Generates fiction stories`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.agent.description](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-description) | extended |
| $$$field-gen-ai-agent-id$$$ [gen_ai.agent.id](#field-gen-ai-agent-id) | _This field is beta and subject to change._ The unique identifier of the GenAI agent.
type: keyword
example: `asst_5j66UpCpwteGg4YSxUnt7lPY`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.agent.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-id) | extended |
| $$$field-gen-ai-agent-name$$$ [gen_ai.agent.name](#field-gen-ai-agent-name) | _This field is beta and subject to change._ Human-readable name of the GenAI agent provided by the application.
type: keyword
example: `Math Tutor; Fiction Writer`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.agent.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-name) | extended |
+| $$$field-gen-ai-input-messages$$$ [gen_ai.input.messages](#field-gen-ai-input-messages) | _This field is beta and subject to change._ The chat history provided to the model as an input.
type: nested
example: `{ "role": "user", "parts": [ { "type": "text", "content": "Weather in Paris?" } ]}, { "role": "assistant", "parts": [ { "type": "tool_call", "id": "call_VSPygqKTWdrhaFErNvMV18Yl", "name": "get_weather", "arguments": { "location": "Paris" } } ]}, { "role": "tool", "parts": [ { "type": "tool_call_response", "id": " call_VSPygqKTWdrhaFErNvMV18Yl", "result": "rainy, 57°F" } ]}`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.input.messages](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-input-messages) | extended |
| $$$field-gen-ai-operation-name$$$ [gen_ai.operation.name](#field-gen-ai-operation-name) | _This field is beta and subject to change._ The name of the operation being performed.
type: keyword
example: `chat; text_completion; embeddings`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | extended |
+| $$$field-gen-ai-output-messages$$$ [gen_ai.output.messages](#field-gen-ai-output-messages) | _This field is beta and subject to change._ Messages returned by the model where each message represents a specific model response (choice, candidate).
type: nested
example: `{ "role": "assistant", "parts": [ { "type": "text", "content": "The weather in Paris is currently rainy with a temperature of 57°F." } ], "finish_reason": "stop"}`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.output.messages](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-output-messages) | extended |
| $$$field-gen-ai-output-type$$$ [gen_ai.output.type](#field-gen-ai-output-type) | _This field is beta and subject to change._ Represents the content type requested by the client.
type: keyword
example: `text; json; image`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.output.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-output-type) | extended |
| $$$field-gen-ai-request-choice-count$$$ [gen_ai.request.choice.count](#field-gen-ai-request-choice-count) | _This field is beta and subject to change._ The target number of candidate completions to return.
type: integer
example: `3`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.choice.count](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-choice-count) | extended |
| $$$field-gen-ai-request-encoding-formats$$$ [gen_ai.request.encoding_formats](#field-gen-ai-request-encoding-formats) | _This field is beta and subject to change._ The encoding formats requested in an embeddings operation, if specified.
type: nested
example: `["float", "binary"]`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.request.encoding_formats](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-encoding-formats) | extended |
@@ -37,8 +39,12 @@ This field group definition is based on the Gen AI namespace of the OpenTelemetr
| $$$field-gen-ai-response-id$$$ [gen_ai.response.id](#field-gen-ai-response-id) | _This field is beta and subject to change._ The unique identifier for the completion.
type: keyword
example: `chatcmpl-123`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.response.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-response-id) | extended |
| $$$field-gen-ai-response-model$$$ [gen_ai.response.model](#field-gen-ai-response-model) | _This field is beta and subject to change._ The name of the model that generated the response.
type: keyword
example: `gpt-4-0613`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.response.model](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-response-model) | extended |
| $$$field-gen-ai-system$$$ [gen_ai.system](#field-gen-ai-system) | _This field is beta and subject to change._ The Generative AI product as identified by the client or server instrumentation.
type: keyword
example: `openai`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.provider.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-provider-name) | extended |
+| $$$field-gen-ai-system-instructions$$$ [gen_ai.system_instructions](#field-gen-ai-system-instructions) | _This field is beta and subject to change._ The system message or instructions provided to the GenAI model separately from the chat history.
type: flattened
example: `{ "type": "text", "content": "You are an Agent that greet users, always use greetings tool to respond"}`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.system_instructions](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-system-instructions) | extended |
| $$$field-gen-ai-token-type$$$ [gen_ai.token.type](#field-gen-ai-token-type) | _This field is beta and subject to change._ The type of token being counted.
type: keyword
example: `input; output`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.token.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-token-type) | extended |
+| $$$field-gen-ai-tool-call-arguments$$$ [gen_ai.tool.call.arguments](#field-gen-ai-tool-call-arguments) | _This field is beta and subject to change._ Parameters passed to the tool call.
type: flattened
example: `{ "location": "San Francisco?", "date": "2025-10-01"}`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | extended |
| $$$field-gen-ai-tool-call-id$$$ [gen_ai.tool.call.id](#field-gen-ai-tool-call-id) | _This field is beta and subject to change._ The tool call identifier.
type: keyword
example: `call_mszuSIzqtI65i1wAUOE8w5H4`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.tool.call.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-call-id) | extended |
+| $$$field-gen-ai-tool-call-result$$$ [gen_ai.tool.call.result](#field-gen-ai-tool-call-result) | _This field is beta and subject to change._ The result returned by the tool call (if any and if execution was successful).
type: flattened
example: `{ "temperature_range": { "high": 75, "low": 60 }, "conditions": "sunny"}`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | extended |
+| $$$field-gen-ai-tool-definitions$$$ [gen_ai.tool.definitions](#field-gen-ai-tool-definitions) | _This field is beta and subject to change._ The list of source system tool definitions available to the GenAI agent or model.
type: nested
example: `{ "type": "function", "name": "get_current_weather", "description": "Get the current weather in a given location", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA" }, "unit": { "type": "string", "enum": [ "celsius", "fahrenheit" ] } }, "required": [ "location", "unit" ] }}`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) | extended |
| $$$field-gen-ai-tool-name$$$ [gen_ai.tool.name](#field-gen-ai-tool-name) | _This field is beta and subject to change._ Name of the tool utilized by the agent.
type: keyword
example: `Flights`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.tool.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-name) | extended |
| $$$field-gen-ai-tool-type$$$ [gen_ai.tool.type](#field-gen-ai-tool-type) | _This field is beta and subject to change._ Type of the tool utilized by the agent
type: keyword
example: `function; extension; datastore`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.tool.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-type) | extended |
| $$$field-gen-ai-usage-input-tokens$$$ [gen_ai.usage.input_tokens](#field-gen-ai-usage-input-tokens) | _This field is beta and subject to change._ The number of tokens used in the GenAI input (prompt).
type: integer
example: `100`
 [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) [gen_ai.usage.input_tokens](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-usage-input-tokens) | extended |
diff --git a/docs/reference/ecs-otel-alignment-details.md b/docs/reference/ecs-otel-alignment-details.md
index 351f7c6db7..e9578cab0f 100644
--- a/docs/reference/ecs-otel-alignment-details.md
+++ b/docs/reference/ecs-otel-alignment-details.md
@@ -86,7 +86,9 @@ The following table gives an overview of mappings between individual ECS fields
| $$$otel-mapping-for-gen-ai-agent-description$$$ [gen_ai.agent.description](/reference/ecs-gen_ai.md#field-gen-ai-agent-description) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.agent.description](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-description) |  |
| $$$otel-mapping-for-gen-ai-agent-id$$$ [gen_ai.agent.id](/reference/ecs-gen_ai.md#field-gen-ai-agent-id) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.agent.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-id) |  |
| $$$otel-mapping-for-gen-ai-agent-name$$$ [gen_ai.agent.name](/reference/ecs-gen_ai.md#field-gen-ai-agent-name) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.agent.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-agent-name) |  |
+| $$$otel-mapping-for-gen-ai-input-messages$$$ [gen_ai.input.messages](/reference/ecs-gen_ai.md#field-gen-ai-input-messages) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.input.messages](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-input-messages) |  |
| $$$otel-mapping-for-gen-ai-operation-name$$$ [gen_ai.operation.name](/reference/ecs-gen_ai.md#field-gen-ai-operation-name) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) |  |
+| $$$otel-mapping-for-gen-ai-output-messages$$$ [gen_ai.output.messages](/reference/ecs-gen_ai.md#field-gen-ai-output-messages) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.output.messages](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-output-messages) |  |
| $$$otel-mapping-for-gen-ai-output-type$$$ [gen_ai.output.type](/reference/ecs-gen_ai.md#field-gen-ai-output-type) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.output.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-output-type) |  |
| $$$otel-mapping-for-gen-ai-request-choice-count$$$ [gen_ai.request.choice.count](/reference/ecs-gen_ai.md#field-gen-ai-request-choice-count) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.request.choice.count](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-choice-count) |  |
| $$$otel-mapping-for-gen-ai-request-encoding-formats$$$ [gen_ai.request.encoding_formats](/reference/ecs-gen_ai.md#field-gen-ai-request-encoding-formats) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.request.encoding_formats](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-request-encoding-formats) |  |
@@ -103,8 +105,12 @@ The following table gives an overview of mappings between individual ECS fields
| $$$otel-mapping-for-gen-ai-response-id$$$ [gen_ai.response.id](/reference/ecs-gen_ai.md#field-gen-ai-response-id) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.response.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-response-id) |  |
| $$$otel-mapping-for-gen-ai-response-model$$$ [gen_ai.response.model](/reference/ecs-gen_ai.md#field-gen-ai-response-model) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.response.model](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-response-model) |  |
| $$$otel-mapping-for-gen-ai-system$$$ [gen_ai.system](/reference/ecs-gen_ai.md#field-gen-ai-system) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.provider.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-provider-name) |  |
+| $$$otel-mapping-for-gen-ai-system-instructions$$$ [gen_ai.system_instructions](/reference/ecs-gen_ai.md#field-gen-ai-system-instructions) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.system_instructions](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-system-instructions) |  |
| $$$otel-mapping-for-gen-ai-token-type$$$ [gen_ai.token.type](/reference/ecs-gen_ai.md#field-gen-ai-token-type) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.token.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-token-type) |  |
+| $$$otel-mapping-for-gen-ai-tool-call-arguments$$$ [gen_ai.tool.call.arguments](/reference/ecs-gen_ai.md#field-gen-ai-tool-call-arguments) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) |  |
| $$$otel-mapping-for-gen-ai-tool-call-id$$$ [gen_ai.tool.call.id](/reference/ecs-gen_ai.md#field-gen-ai-tool-call-id) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.tool.call.id](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-call-id) |  |
+| $$$otel-mapping-for-gen-ai-tool-call-result$$$ [gen_ai.tool.call.result](/reference/ecs-gen_ai.md#field-gen-ai-tool-call-result) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) |  |
+| $$$otel-mapping-for-gen-ai-tool-definitions$$$ [gen_ai.tool.definitions](/reference/ecs-gen_ai.md#field-gen-ai-tool-definitions) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.operation.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-operation-name) |  |
| $$$otel-mapping-for-gen-ai-tool-name$$$ [gen_ai.tool.name](/reference/ecs-gen_ai.md#field-gen-ai-tool-name) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.tool.name](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-name) |  |
| $$$otel-mapping-for-gen-ai-tool-type$$$ [gen_ai.tool.type](/reference/ecs-gen_ai.md#field-gen-ai-tool-type) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.tool.type](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-tool-type) |  |
| $$$otel-mapping-for-gen-ai-usage-input-tokens$$$ [gen_ai.usage.input_tokens](/reference/ecs-gen_ai.md#field-gen-ai-usage-input-tokens) | [](/reference/ecs-opentelemetry.md#ecs-opentelemetry-relation) | [gen_ai.usage.input_tokens](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/#gen-ai-usage-input-tokens) |  |
diff --git a/docs/reference/ecs-otel-alignment-overview.md b/docs/reference/ecs-otel-alignment-overview.md
index 83968d8b81..c64c8e6333 100644
--- a/docs/reference/ecs-otel-alignment-overview.md
+++ b/docs/reference/ecs-otel-alignment-overview.md
@@ -55,7 +55,7 @@ The following table summarizes the alignment status by namespaces between ECS in
| Feature Flag | · | [8](https://opentelemetry.io/docs/specs/semconv/attributes-registry/feature-flag) | · | · | · | · | · | · | |
| File | [24](/reference/ecs-file.md) | [18](https://opentelemetry.io/docs/specs/semconv/attributes-registry/file) | 11 | 7 | · | · | · | · | · |
| GCP Client | · | [14](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gcp) | · | · | · | · | · | · | |
-| Gen AI | [26](/reference/ecs-gen_ai.md) | [32](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai) | 25 | 1 | · | · | · | · | · |
+| Gen AI | [32](/reference/ecs-gen_ai.md) | [32](https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai) | 28 | 1 | 3 | · | · | · | · |
| Geo | [11](/reference/ecs-geo.md) | [7](https://opentelemetry.io/docs/specs/semconv/attributes-registry/geo) | 1 | 4 | 2 | · | · | · | · |
| Go | · | [1](https://opentelemetry.io/docs/specs/semconv/attributes-registry/go) | · | · | · | · | · | · | |
| GraphQL | · | [3](https://opentelemetry.io/docs/specs/semconv/attributes-registry/graphql) | · | · | · | · | · | · | |
diff --git a/experimental/generated/beats/fields.ecs.yml b/experimental/generated/beats/fields.ecs.yml
index 3a51a50f2c..8adea495ae 100644
--- a/experimental/generated/beats/fields.ecs.yml
+++ b/experimental/generated/beats/fields.ecs.yml
@@ -3808,6 +3808,19 @@
description: Human-readable name of the GenAI agent provided by the application.
example: Math Tutor; Fiction Writer
default_field: false
+ - name: input.messages
+ level: extended
+ type: nested
+ description: The chat history provided to the model as an input.
+ example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"\
+ text\",\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"\
+ role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\"\
+ ,\n \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\"\
+ ,\n \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n\
+ \ ]\n}, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\":\
+ \ \"tool_call_response\",\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\"\
+ ,\n \"result\": \"rainy, 57°F\"\n }\n ]\n}"
+ default_field: false
- name: operation.name
level: extended
type: keyword
@@ -3815,6 +3828,16 @@
description: The name of the operation being performed.
example: chat; text_completion; embeddings
default_field: false
+ - name: output.messages
+ level: extended
+ type: nested
+ description: Messages returned by the model where each message represents a
+ specific model response (choice, candidate).
+ example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\"\
+ : \"text\",\n \"content\": \"The weather in Paris is currently rainy\
+ \ with a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\
+ \n}"
+ default_field: false
- name: output.type
level: extended
type: keyword
@@ -3919,6 +3942,14 @@
instrumentation.
example: openai
default_field: false
+ - name: system_instructions
+ level: extended
+ type: flattened
+ description: The system message or instructions provided to the GenAI model
+ separately from the chat history.
+ example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\
+ \ users, always use greetings tool to respond\"\n}"
+ default_field: false
- name: token.type
level: extended
type: keyword
@@ -3926,6 +3957,13 @@
description: The type of token being counted.
example: input; output
default_field: false
+ - name: tool.call.arguments
+ level: extended
+ type: flattened
+ description: Parameters passed to the tool call.
+ example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\
+ \n}"
+ default_field: false
- name: tool.call.id
level: extended
type: keyword
@@ -3933,6 +3971,28 @@
description: The tool call identifier.
example: call_mszuSIzqtI65i1wAUOE8w5H4
default_field: false
+ - name: tool.call.result
+ level: extended
+ type: flattened
+ description: The result returned by the tool call (if any and if execution was
+ successful).
+ example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n\
+ \ },\n \"conditions\": \"sunny\"\n}"
+ default_field: false
+ - name: tool.definitions
+ level: extended
+ type: nested
+ description: The list of source system tool definitions available to the GenAI
+ agent or model.
+ example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\"\
+ ,\n \"description\": \"Get the current weather in a given location\",\n \
+ \ \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \
+ \ \"location\": {\n \"type\": \"string\",\n \"description\"\
+ : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\"\
+ : {\n \"type\": \"string\",\n \"enum\": [\n \"celsius\"\
+ ,\n \"fahrenheit\"\n ]\n }\n },\n \"required\"\
+ : [\n \"location\",\n \"unit\"\n ]\n }\n}"
+ default_field: false
- name: tool.name
level: extended
type: keyword
diff --git a/experimental/generated/csv/fields.csv b/experimental/generated/csv/fields.csv
index f0116869c8..b3d7698c7e 100644
--- a/experimental/generated/csv/fields.csv
+++ b/experimental/generated/csv/fields.csv
@@ -463,7 +463,47 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description
9.3.0-dev+exp,false,gen_ai,gen_ai.agent.description,keyword,extended,,Helps with math problems; Generates fiction stories,Free-form description of the GenAI agent provided by the application.
9.3.0-dev+exp,true,gen_ai,gen_ai.agent.id,keyword,extended,,asst_5j66UpCpwteGg4YSxUnt7lPY,The unique identifier of the GenAI agent.
9.3.0-dev+exp,true,gen_ai,gen_ai.agent.name,keyword,extended,,Math Tutor; Fiction Writer,Human-readable name of the GenAI agent provided by the application.
+9.3.0-dev+exp,true,gen_ai,gen_ai.input.messages,nested,extended,,"{
+ ""role"": ""user"",
+ ""parts"": [
+ {
+ ""type"": ""text"",
+ ""content"": ""Weather in Paris?""
+ }
+ ]
+}, {
+ ""role"": ""assistant"",
+ ""parts"": [
+ {
+ ""type"": ""tool_call"",
+ ""id"": ""call_VSPygqKTWdrhaFErNvMV18Yl"",
+ ""name"": ""get_weather"",
+ ""arguments"": {
+ ""location"": ""Paris""
+ }
+ }
+ ]
+}, {
+ ""role"": ""tool"",
+ ""parts"": [
+ {
+ ""type"": ""tool_call_response"",
+ ""id"": "" call_VSPygqKTWdrhaFErNvMV18Yl"",
+ ""result"": ""rainy, 57°F""
+ }
+ ]
+}",The chat history provided to the model as an input.
9.3.0-dev+exp,true,gen_ai,gen_ai.operation.name,keyword,extended,,chat; text_completion; embeddings,The name of the operation being performed.
+9.3.0-dev+exp,true,gen_ai,gen_ai.output.messages,nested,extended,,"{
+ ""role"": ""assistant"",
+ ""parts"": [
+ {
+ ""type"": ""text"",
+ ""content"": ""The weather in Paris is currently rainy with a temperature of 57°F.""
+ }
+ ],
+ ""finish_reason"": ""stop""
+}","Messages returned by the model where each message represents a specific model response (choice, candidate)."
9.3.0-dev+exp,true,gen_ai,gen_ai.output.type,keyword,extended,,text; json; image,Represents the content type requested by the client.
9.3.0-dev+exp,true,gen_ai,gen_ai.request.choice.count,integer,extended,,3,The target number of candidate completions to return.
9.3.0-dev+exp,true,gen_ai,gen_ai.request.encoding_formats,nested,extended,,"[""float"", ""binary""]","The encoding formats requested in an embeddings operation, if specified."
@@ -480,8 +520,48 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description
9.3.0-dev+exp,true,gen_ai,gen_ai.response.id,keyword,extended,,chatcmpl-123,The unique identifier for the completion.
9.3.0-dev+exp,true,gen_ai,gen_ai.response.model,keyword,extended,,gpt-4-0613,The name of the model that generated the response.
9.3.0-dev+exp,true,gen_ai,gen_ai.system,keyword,extended,,openai,The Generative AI product as identified by the client or server instrumentation.
+9.3.0-dev+exp,true,gen_ai,gen_ai.system_instructions,flattened,extended,,"{
+ ""type"": ""text"",
+ ""content"": ""You are an Agent that greet users, always use greetings tool to respond""
+}",The system message or instructions provided to the GenAI model separately from the chat history.
9.3.0-dev+exp,true,gen_ai,gen_ai.token.type,keyword,extended,,input; output,The type of token being counted.
+9.3.0-dev+exp,true,gen_ai,gen_ai.tool.call.arguments,flattened,extended,,"{
+ ""location"": ""San Francisco?"",
+ ""date"": ""2025-10-01""
+}",Parameters passed to the tool call.
9.3.0-dev+exp,true,gen_ai,gen_ai.tool.call.id,keyword,extended,,call_mszuSIzqtI65i1wAUOE8w5H4,The tool call identifier.
+9.3.0-dev+exp,true,gen_ai,gen_ai.tool.call.result,flattened,extended,,"{
+ ""temperature_range"": {
+ ""high"": 75,
+ ""low"": 60
+ },
+ ""conditions"": ""sunny""
+}",The result returned by the tool call (if any and if execution was successful).
+9.3.0-dev+exp,true,gen_ai,gen_ai.tool.definitions,nested,extended,,"{
+ ""type"": ""function"",
+ ""name"": ""get_current_weather"",
+ ""description"": ""Get the current weather in a given location"",
+ ""parameters"": {
+ ""type"": ""object"",
+ ""properties"": {
+ ""location"": {
+ ""type"": ""string"",
+ ""description"": ""The city and state, e.g. San Francisco, CA""
+ },
+ ""unit"": {
+ ""type"": ""string"",
+ ""enum"": [
+ ""celsius"",
+ ""fahrenheit""
+ ]
+ }
+ },
+ ""required"": [
+ ""location"",
+ ""unit""
+ ]
+ }
+}",The list of source system tool definitions available to the GenAI agent or model.
9.3.0-dev+exp,true,gen_ai,gen_ai.tool.name,keyword,extended,,Flights,Name of the tool utilized by the agent.
9.3.0-dev+exp,true,gen_ai,gen_ai.tool.type,keyword,extended,,function; extension; datastore,Type of the tool utilized by the agent
9.3.0-dev+exp,true,gen_ai,gen_ai.usage.input_tokens,integer,extended,,100,The number of tokens used in the GenAI input (prompt).
diff --git a/experimental/generated/ecs/ecs_flat.yml b/experimental/generated/ecs/ecs_flat.yml
index 82935b7df5..3de8ab87be 100644
--- a/experimental/generated/ecs/ecs_flat.yml
+++ b/experimental/generated/ecs/ecs_flat.yml
@@ -6551,6 +6551,27 @@ gen_ai.agent.name:
stability: development
short: Human-readable name of the GenAI agent provided by the application.
type: keyword
+gen_ai.input.messages:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-input-messages
+ description: The chat history provided to the model as an input.
+ example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"text\"\
+ ,\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"role\": \"\
+ assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\",\n \"\
+ id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\",\n \
+ \ \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n ]\n\
+ }, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\": \"tool_call_response\"\
+ ,\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"result\": \"rainy,\
+ \ 57°F\"\n }\n ]\n}"
+ flat_name: gen_ai.input.messages
+ level: extended
+ name: input.messages
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: The chat history provided to the model as an input.
+ type: nested
gen_ai.operation.name:
beta: This field is beta and subject to change.
dashed_name: gen-ai-operation-name
@@ -6566,6 +6587,24 @@ gen_ai.operation.name:
stability: development
short: The name of the operation being performed.
type: keyword
+gen_ai.output.messages:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-output-messages
+ description: Messages returned by the model where each message represents a specific
+ model response (choice, candidate).
+ example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\":\
+ \ \"text\",\n \"content\": \"The weather in Paris is currently rainy with\
+ \ a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\n}"
+ flat_name: gen_ai.output.messages
+ level: extended
+ name: output.messages
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: Messages returned by the model where each message represents a specific model
+ response (choice, candidate).
+ type: nested
gen_ai.output.type:
beta: This field is beta and subject to change.
dashed_name: gen-ai-output-type
@@ -6799,6 +6838,23 @@ gen_ai.system:
stability: development
short: The Generative AI product as identified by the client or server instrumentation.
type: keyword
+gen_ai.system_instructions:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-system-instructions
+ description: The system message or instructions provided to the GenAI model separately
+ from the chat history.
+ example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\
+ \ users, always use greetings tool to respond\"\n}"
+ flat_name: gen_ai.system_instructions
+ level: extended
+ name: system_instructions
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: The system message or instructions provided to the GenAI model separately
+ from the chat history.
+ type: flattened
gen_ai.token.type:
beta: This field is beta and subject to change.
dashed_name: gen-ai-token-type
@@ -6814,6 +6870,22 @@ gen_ai.token.type:
stability: development
short: The type of token being counted.
type: keyword
+gen_ai.tool.call.arguments:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-call-arguments
+ description: Parameters passed to the tool call.
+ example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\
+ \n}"
+ flat_name: gen_ai.tool.call.arguments
+ level: extended
+ name: tool.call.arguments
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: Parameters passed to the tool call.
+ type: flattened
gen_ai.tool.call.id:
beta: This field is beta and subject to change.
dashed_name: gen-ai-tool-call-id
@@ -6829,6 +6901,46 @@ gen_ai.tool.call.id:
stability: development
short: The tool call identifier.
type: keyword
+gen_ai.tool.call.result:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-call-result
+ description: The result returned by the tool call (if any and if execution was successful).
+ example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n },\n\
+ \ \"conditions\": \"sunny\"\n}"
+ flat_name: gen_ai.tool.call.result
+ level: extended
+ name: tool.call.result
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: The result returned by the tool call (if any and if execution was successful).
+ type: flattened
+gen_ai.tool.definitions:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-definitions
+ description: The list of source system tool definitions available to the GenAI agent
+ or model.
+ example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\",\n \
+ \ \"description\": \"Get the current weather in a given location\",\n \"parameters\"\
+ : {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n\
+ \ \"type\": \"string\",\n \"description\": \"The city and state,\
+ \ e.g. San Francisco, CA\"\n },\n \"unit\": {\n \"type\": \"\
+ string\",\n \"enum\": [\n \"celsius\",\n \"fahrenheit\"\
+ \n ]\n }\n },\n \"required\": [\n \"location\",\n \
+ \ \"unit\"\n ]\n }\n}"
+ flat_name: gen_ai.tool.definitions
+ level: extended
+ name: tool.definitions
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: The list of source system tool definitions available to the GenAI agent or
+ model.
+ type: nested
gen_ai.tool.name:
beta: This field is beta and subject to change.
dashed_name: gen-ai-tool-name
diff --git a/experimental/generated/ecs/ecs_nested.yml b/experimental/generated/ecs/ecs_nested.yml
index e9f9f1a261..0dffbd4c3b 100644
--- a/experimental/generated/ecs/ecs_nested.yml
+++ b/experimental/generated/ecs/ecs_nested.yml
@@ -7714,6 +7714,27 @@ gen_ai:
stability: development
short: Human-readable name of the GenAI agent provided by the application.
type: keyword
+ gen_ai.input.messages:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-input-messages
+ description: The chat history provided to the model as an input.
+ example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"\
+ text\",\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"\
+ role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\"\
+ ,\n \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\"\
+ ,\n \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n\
+ \ ]\n}, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\":\
+ \ \"tool_call_response\",\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\"\
+ ,\n \"result\": \"rainy, 57°F\"\n }\n ]\n}"
+ flat_name: gen_ai.input.messages
+ level: extended
+ name: input.messages
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: The chat history provided to the model as an input.
+ type: nested
gen_ai.operation.name:
beta: This field is beta and subject to change.
dashed_name: gen-ai-operation-name
@@ -7729,6 +7750,25 @@ gen_ai:
stability: development
short: The name of the operation being performed.
type: keyword
+ gen_ai.output.messages:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-output-messages
+ description: Messages returned by the model where each message represents a
+ specific model response (choice, candidate).
+ example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\"\
+ : \"text\",\n \"content\": \"The weather in Paris is currently rainy\
+ \ with a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\
+ \n}"
+ flat_name: gen_ai.output.messages
+ level: extended
+ name: output.messages
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: Messages returned by the model where each message represents a specific
+ model response (choice, candidate).
+ type: nested
gen_ai.output.type:
beta: This field is beta and subject to change.
dashed_name: gen-ai-output-type
@@ -7964,6 +8004,23 @@ gen_ai:
stability: development
short: The Generative AI product as identified by the client or server instrumentation.
type: keyword
+ gen_ai.system_instructions:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-system-instructions
+ description: The system message or instructions provided to the GenAI model
+ separately from the chat history.
+ example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\
+ \ users, always use greetings tool to respond\"\n}"
+ flat_name: gen_ai.system_instructions
+ level: extended
+ name: system_instructions
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: The system message or instructions provided to the GenAI model separately
+ from the chat history.
+ type: flattened
gen_ai.token.type:
beta: This field is beta and subject to change.
dashed_name: gen-ai-token-type
@@ -7979,6 +8036,22 @@ gen_ai:
stability: development
short: The type of token being counted.
type: keyword
+ gen_ai.tool.call.arguments:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-call-arguments
+ description: Parameters passed to the tool call.
+ example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\
+ \n}"
+ flat_name: gen_ai.tool.call.arguments
+ level: extended
+ name: tool.call.arguments
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: Parameters passed to the tool call.
+ type: flattened
gen_ai.tool.call.id:
beta: This field is beta and subject to change.
dashed_name: gen-ai-tool-call-id
@@ -7994,6 +8067,47 @@ gen_ai:
stability: development
short: The tool call identifier.
type: keyword
+ gen_ai.tool.call.result:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-call-result
+ description: The result returned by the tool call (if any and if execution was
+ successful).
+ example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n\
+ \ },\n \"conditions\": \"sunny\"\n}"
+ flat_name: gen_ai.tool.call.result
+ level: extended
+ name: tool.call.result
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: The result returned by the tool call (if any and if execution was successful).
+ type: flattened
+ gen_ai.tool.definitions:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-definitions
+ description: The list of source system tool definitions available to the GenAI
+ agent or model.
+ example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\"\
+ ,\n \"description\": \"Get the current weather in a given location\",\n \
+ \ \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \
+ \ \"location\": {\n \"type\": \"string\",\n \"description\"\
+ : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\"\
+ : {\n \"type\": \"string\",\n \"enum\": [\n \"celsius\"\
+ ,\n \"fahrenheit\"\n ]\n }\n },\n \"required\"\
+ : [\n \"location\",\n \"unit\"\n ]\n }\n}"
+ flat_name: gen_ai.tool.definitions
+ level: extended
+ name: tool.definitions
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: The list of source system tool definitions available to the GenAI agent
+ or model.
+ type: nested
gen_ai.tool.name:
beta: This field is beta and subject to change.
dashed_name: gen-ai-tool-name
diff --git a/experimental/generated/elasticsearch/composable/component/gen_ai.json b/experimental/generated/elasticsearch/composable/component/gen_ai.json
index 769bf2ba63..9f32e2f9ff 100644
--- a/experimental/generated/elasticsearch/composable/component/gen_ai.json
+++ b/experimental/generated/elasticsearch/composable/component/gen_ai.json
@@ -25,6 +25,13 @@
}
}
},
+ "input": {
+ "properties": {
+ "messages": {
+ "type": "nested"
+ }
+ }
+ },
"operation": {
"properties": {
"name": {
@@ -35,6 +42,9 @@
},
"output": {
"properties": {
+ "messages": {
+ "type": "nested"
+ },
"type": {
"ignore_above": 1024,
"type": "keyword"
@@ -102,6 +112,9 @@
"ignore_above": 1024,
"type": "keyword"
},
+ "system_instructions": {
+ "type": "flattened"
+ },
"token": {
"properties": {
"type": {
@@ -114,12 +127,21 @@
"properties": {
"call": {
"properties": {
+ "arguments": {
+ "type": "flattened"
+ },
"id": {
"ignore_above": 1024,
"type": "keyword"
+ },
+ "result": {
+ "type": "flattened"
}
}
},
+ "definitions": {
+ "type": "nested"
+ },
"name": {
"ignore_above": 1024,
"type": "keyword"
diff --git a/experimental/generated/elasticsearch/legacy/template.json b/experimental/generated/elasticsearch/legacy/template.json
index 4b5250eb7c..21aedf58cb 100644
--- a/experimental/generated/elasticsearch/legacy/template.json
+++ b/experimental/generated/elasticsearch/legacy/template.json
@@ -2131,6 +2131,13 @@
}
}
},
+ "input": {
+ "properties": {
+ "messages": {
+ "type": "nested"
+ }
+ }
+ },
"operation": {
"properties": {
"name": {
@@ -2141,6 +2148,9 @@
},
"output": {
"properties": {
+ "messages": {
+ "type": "nested"
+ },
"type": {
"ignore_above": 1024,
"type": "keyword"
@@ -2208,6 +2218,9 @@
"ignore_above": 1024,
"type": "keyword"
},
+ "system_instructions": {
+ "type": "flattened"
+ },
"token": {
"properties": {
"type": {
@@ -2220,12 +2233,21 @@
"properties": {
"call": {
"properties": {
+ "arguments": {
+ "type": "flattened"
+ },
"id": {
"ignore_above": 1024,
"type": "keyword"
+ },
+ "result": {
+ "type": "flattened"
}
}
},
+ "definitions": {
+ "type": "nested"
+ },
"name": {
"ignore_above": 1024,
"type": "keyword"
diff --git a/generated/beats/fields.ecs.yml b/generated/beats/fields.ecs.yml
index 4f18299a56..c7a5695911 100644
--- a/generated/beats/fields.ecs.yml
+++ b/generated/beats/fields.ecs.yml
@@ -3758,6 +3758,19 @@
description: Human-readable name of the GenAI agent provided by the application.
example: Math Tutor; Fiction Writer
default_field: false
+ - name: input.messages
+ level: extended
+ type: nested
+ description: The chat history provided to the model as an input.
+ example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"\
+ text\",\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"\
+ role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\"\
+ ,\n \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\"\
+ ,\n \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n\
+ \ ]\n}, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\":\
+ \ \"tool_call_response\",\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\"\
+ ,\n \"result\": \"rainy, 57°F\"\n }\n ]\n}"
+ default_field: false
- name: operation.name
level: extended
type: keyword
@@ -3765,6 +3778,16 @@
description: The name of the operation being performed.
example: chat; text_completion; embeddings
default_field: false
+ - name: output.messages
+ level: extended
+ type: nested
+ description: Messages returned by the model where each message represents a
+ specific model response (choice, candidate).
+ example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\"\
+ : \"text\",\n \"content\": \"The weather in Paris is currently rainy\
+ \ with a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\
+ \n}"
+ default_field: false
- name: output.type
level: extended
type: keyword
@@ -3869,6 +3892,14 @@
instrumentation.
example: openai
default_field: false
+ - name: system_instructions
+ level: extended
+ type: flattened
+ description: The system message or instructions provided to the GenAI model
+ separately from the chat history.
+ example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\
+ \ users, always use greetings tool to respond\"\n}"
+ default_field: false
- name: token.type
level: extended
type: keyword
@@ -3876,6 +3907,13 @@
description: The type of token being counted.
example: input; output
default_field: false
+ - name: tool.call.arguments
+ level: extended
+ type: flattened
+ description: Parameters passed to the tool call.
+ example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\
+ \n}"
+ default_field: false
- name: tool.call.id
level: extended
type: keyword
@@ -3883,6 +3921,28 @@
description: The tool call identifier.
example: call_mszuSIzqtI65i1wAUOE8w5H4
default_field: false
+ - name: tool.call.result
+ level: extended
+ type: flattened
+ description: The result returned by the tool call (if any and if execution was
+ successful).
+ example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n\
+ \ },\n \"conditions\": \"sunny\"\n}"
+ default_field: false
+ - name: tool.definitions
+ level: extended
+ type: nested
+ description: The list of source system tool definitions available to the GenAI
+ agent or model.
+ example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\"\
+ ,\n \"description\": \"Get the current weather in a given location\",\n \
+ \ \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \
+ \ \"location\": {\n \"type\": \"string\",\n \"description\"\
+ : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\"\
+ : {\n \"type\": \"string\",\n \"enum\": [\n \"celsius\"\
+ ,\n \"fahrenheit\"\n ]\n }\n },\n \"required\"\
+ : [\n \"location\",\n \"unit\"\n ]\n }\n}"
+ default_field: false
- name: tool.name
level: extended
type: keyword
diff --git a/generated/csv/fields.csv b/generated/csv/fields.csv
index efafe871d7..3c39053e39 100644
--- a/generated/csv/fields.csv
+++ b/generated/csv/fields.csv
@@ -456,7 +456,47 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description
9.3.0-dev,false,gen_ai,gen_ai.agent.description,keyword,extended,,Helps with math problems; Generates fiction stories,Free-form description of the GenAI agent provided by the application.
9.3.0-dev,true,gen_ai,gen_ai.agent.id,keyword,extended,,asst_5j66UpCpwteGg4YSxUnt7lPY,The unique identifier of the GenAI agent.
9.3.0-dev,true,gen_ai,gen_ai.agent.name,keyword,extended,,Math Tutor; Fiction Writer,Human-readable name of the GenAI agent provided by the application.
+9.3.0-dev,true,gen_ai,gen_ai.input.messages,nested,extended,,"{
+ ""role"": ""user"",
+ ""parts"": [
+ {
+ ""type"": ""text"",
+ ""content"": ""Weather in Paris?""
+ }
+ ]
+}, {
+ ""role"": ""assistant"",
+ ""parts"": [
+ {
+ ""type"": ""tool_call"",
+ ""id"": ""call_VSPygqKTWdrhaFErNvMV18Yl"",
+ ""name"": ""get_weather"",
+ ""arguments"": {
+ ""location"": ""Paris""
+ }
+ }
+ ]
+}, {
+ ""role"": ""tool"",
+ ""parts"": [
+ {
+ ""type"": ""tool_call_response"",
+ ""id"": "" call_VSPygqKTWdrhaFErNvMV18Yl"",
+ ""result"": ""rainy, 57°F""
+ }
+ ]
+}",The chat history provided to the model as an input.
9.3.0-dev,true,gen_ai,gen_ai.operation.name,keyword,extended,,chat; text_completion; embeddings,The name of the operation being performed.
+9.3.0-dev,true,gen_ai,gen_ai.output.messages,nested,extended,,"{
+ ""role"": ""assistant"",
+ ""parts"": [
+ {
+ ""type"": ""text"",
+ ""content"": ""The weather in Paris is currently rainy with a temperature of 57°F.""
+ }
+ ],
+ ""finish_reason"": ""stop""
+}","Messages returned by the model where each message represents a specific model response (choice, candidate)."
9.3.0-dev,true,gen_ai,gen_ai.output.type,keyword,extended,,text; json; image,Represents the content type requested by the client.
9.3.0-dev,true,gen_ai,gen_ai.request.choice.count,integer,extended,,3,The target number of candidate completions to return.
9.3.0-dev,true,gen_ai,gen_ai.request.encoding_formats,nested,extended,,"[""float"", ""binary""]","The encoding formats requested in an embeddings operation, if specified."
@@ -473,8 +513,48 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description
9.3.0-dev,true,gen_ai,gen_ai.response.id,keyword,extended,,chatcmpl-123,The unique identifier for the completion.
9.3.0-dev,true,gen_ai,gen_ai.response.model,keyword,extended,,gpt-4-0613,The name of the model that generated the response.
9.3.0-dev,true,gen_ai,gen_ai.system,keyword,extended,,openai,The Generative AI product as identified by the client or server instrumentation.
+9.3.0-dev,true,gen_ai,gen_ai.system_instructions,flattened,extended,,"{
+ ""type"": ""text"",
+ ""content"": ""You are an Agent that greet users, always use greetings tool to respond""
+}",The system message or instructions provided to the GenAI model separately from the chat history.
9.3.0-dev,true,gen_ai,gen_ai.token.type,keyword,extended,,input; output,The type of token being counted.
+9.3.0-dev,true,gen_ai,gen_ai.tool.call.arguments,flattened,extended,,"{
+ ""location"": ""San Francisco?"",
+ ""date"": ""2025-10-01""
+}",Parameters passed to the tool call.
9.3.0-dev,true,gen_ai,gen_ai.tool.call.id,keyword,extended,,call_mszuSIzqtI65i1wAUOE8w5H4,The tool call identifier.
+9.3.0-dev,true,gen_ai,gen_ai.tool.call.result,flattened,extended,,"{
+ ""temperature_range"": {
+ ""high"": 75,
+ ""low"": 60
+ },
+ ""conditions"": ""sunny""
+}",The result returned by the tool call (if any and if execution was successful).
+9.3.0-dev,true,gen_ai,gen_ai.tool.definitions,nested,extended,,"{
+ ""type"": ""function"",
+ ""name"": ""get_current_weather"",
+ ""description"": ""Get the current weather in a given location"",
+ ""parameters"": {
+ ""type"": ""object"",
+ ""properties"": {
+ ""location"": {
+ ""type"": ""string"",
+ ""description"": ""The city and state, e.g. San Francisco, CA""
+ },
+ ""unit"": {
+ ""type"": ""string"",
+ ""enum"": [
+ ""celsius"",
+ ""fahrenheit""
+ ]
+ }
+ },
+ ""required"": [
+ ""location"",
+ ""unit""
+ ]
+ }
+}",The list of source system tool definitions available to the GenAI agent or model.
9.3.0-dev,true,gen_ai,gen_ai.tool.name,keyword,extended,,Flights,Name of the tool utilized by the agent.
9.3.0-dev,true,gen_ai,gen_ai.tool.type,keyword,extended,,function; extension; datastore,Type of the tool utilized by the agent
9.3.0-dev,true,gen_ai,gen_ai.usage.input_tokens,integer,extended,,100,The number of tokens used in the GenAI input (prompt).
diff --git a/generated/ecs/ecs_flat.yml b/generated/ecs/ecs_flat.yml
index 8336eaac97..f2af89d5fb 100644
--- a/generated/ecs/ecs_flat.yml
+++ b/generated/ecs/ecs_flat.yml
@@ -6482,6 +6482,27 @@ gen_ai.agent.name:
stability: development
short: Human-readable name of the GenAI agent provided by the application.
type: keyword
+gen_ai.input.messages:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-input-messages
+ description: The chat history provided to the model as an input.
+ example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"text\"\
+ ,\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"role\": \"\
+ assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\",\n \"\
+ id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\",\n \
+ \ \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n ]\n\
+ }, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\": \"tool_call_response\"\
+ ,\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"result\": \"rainy,\
+ \ 57°F\"\n }\n ]\n}"
+ flat_name: gen_ai.input.messages
+ level: extended
+ name: input.messages
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: The chat history provided to the model as an input.
+ type: nested
gen_ai.operation.name:
beta: This field is beta and subject to change.
dashed_name: gen-ai-operation-name
@@ -6497,6 +6518,24 @@ gen_ai.operation.name:
stability: development
short: The name of the operation being performed.
type: keyword
+gen_ai.output.messages:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-output-messages
+ description: Messages returned by the model where each message represents a specific
+ model response (choice, candidate).
+ example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\":\
+ \ \"text\",\n \"content\": \"The weather in Paris is currently rainy with\
+ \ a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\n}"
+ flat_name: gen_ai.output.messages
+ level: extended
+ name: output.messages
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: Messages returned by the model where each message represents a specific model
+ response (choice, candidate).
+ type: nested
gen_ai.output.type:
beta: This field is beta and subject to change.
dashed_name: gen-ai-output-type
@@ -6730,6 +6769,23 @@ gen_ai.system:
stability: development
short: The Generative AI product as identified by the client or server instrumentation.
type: keyword
+gen_ai.system_instructions:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-system-instructions
+ description: The system message or instructions provided to the GenAI model separately
+ from the chat history.
+ example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\
+ \ users, always use greetings tool to respond\"\n}"
+ flat_name: gen_ai.system_instructions
+ level: extended
+ name: system_instructions
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: The system message or instructions provided to the GenAI model separately
+ from the chat history.
+ type: flattened
gen_ai.token.type:
beta: This field is beta and subject to change.
dashed_name: gen-ai-token-type
@@ -6745,6 +6801,22 @@ gen_ai.token.type:
stability: development
short: The type of token being counted.
type: keyword
+gen_ai.tool.call.arguments:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-call-arguments
+ description: Parameters passed to the tool call.
+ example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\
+ \n}"
+ flat_name: gen_ai.tool.call.arguments
+ level: extended
+ name: tool.call.arguments
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: Parameters passed to the tool call.
+ type: flattened
gen_ai.tool.call.id:
beta: This field is beta and subject to change.
dashed_name: gen-ai-tool-call-id
@@ -6760,6 +6832,46 @@ gen_ai.tool.call.id:
stability: development
short: The tool call identifier.
type: keyword
+gen_ai.tool.call.result:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-call-result
+ description: The result returned by the tool call (if any and if execution was successful).
+ example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n },\n\
+ \ \"conditions\": \"sunny\"\n}"
+ flat_name: gen_ai.tool.call.result
+ level: extended
+ name: tool.call.result
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: The result returned by the tool call (if any and if execution was successful).
+ type: flattened
+gen_ai.tool.definitions:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-definitions
+ description: The list of source system tool definitions available to the GenAI agent
+ or model.
+ example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\",\n \
+ \ \"description\": \"Get the current weather in a given location\",\n \"parameters\"\
+ : {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n\
+ \ \"type\": \"string\",\n \"description\": \"The city and state,\
+ \ e.g. San Francisco, CA\"\n },\n \"unit\": {\n \"type\": \"\
+ string\",\n \"enum\": [\n \"celsius\",\n \"fahrenheit\"\
+ \n ]\n }\n },\n \"required\": [\n \"location\",\n \
+ \ \"unit\"\n ]\n }\n}"
+ flat_name: gen_ai.tool.definitions
+ level: extended
+ name: tool.definitions
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: The list of source system tool definitions available to the GenAI agent or
+ model.
+ type: nested
gen_ai.tool.name:
beta: This field is beta and subject to change.
dashed_name: gen-ai-tool-name
diff --git a/generated/ecs/ecs_nested.yml b/generated/ecs/ecs_nested.yml
index af8b28777f..15a1ad4b48 100644
--- a/generated/ecs/ecs_nested.yml
+++ b/generated/ecs/ecs_nested.yml
@@ -7634,6 +7634,27 @@ gen_ai:
stability: development
short: Human-readable name of the GenAI agent provided by the application.
type: keyword
+ gen_ai.input.messages:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-input-messages
+ description: The chat history provided to the model as an input.
+ example: "{\n \"role\": \"user\",\n \"parts\": [\n {\n \"type\": \"\
+ text\",\n \"content\": \"Weather in Paris?\"\n }\n ]\n}, {\n \"\
+ role\": \"assistant\",\n \"parts\": [\n {\n \"type\": \"tool_call\"\
+ ,\n \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\",\n \"name\": \"get_weather\"\
+ ,\n \"arguments\": {\n \"location\": \"Paris\"\n }\n }\n\
+ \ ]\n}, {\n \"role\": \"tool\",\n \"parts\": [\n {\n \"type\":\
+ \ \"tool_call_response\",\n \"id\": \" call_VSPygqKTWdrhaFErNvMV18Yl\"\
+ ,\n \"result\": \"rainy, 57°F\"\n }\n ]\n}"
+ flat_name: gen_ai.input.messages
+ level: extended
+ name: input.messages
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: The chat history provided to the model as an input.
+ type: nested
gen_ai.operation.name:
beta: This field is beta and subject to change.
dashed_name: gen-ai-operation-name
@@ -7649,6 +7670,25 @@ gen_ai:
stability: development
short: The name of the operation being performed.
type: keyword
+ gen_ai.output.messages:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-output-messages
+ description: Messages returned by the model where each message represents a
+ specific model response (choice, candidate).
+ example: "{\n \"role\": \"assistant\",\n \"parts\": [\n {\n \"type\"\
+ : \"text\",\n \"content\": \"The weather in Paris is currently rainy\
+ \ with a temperature of 57°F.\"\n }\n ],\n \"finish_reason\": \"stop\"\
+ \n}"
+ flat_name: gen_ai.output.messages
+ level: extended
+ name: output.messages
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: Messages returned by the model where each message represents a specific
+ model response (choice, candidate).
+ type: nested
gen_ai.output.type:
beta: This field is beta and subject to change.
dashed_name: gen-ai-output-type
@@ -7884,6 +7924,23 @@ gen_ai:
stability: development
short: The Generative AI product as identified by the client or server instrumentation.
type: keyword
+ gen_ai.system_instructions:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-system-instructions
+ description: The system message or instructions provided to the GenAI model
+ separately from the chat history.
+ example: "{\n \"type\": \"text\",\n \"content\": \"You are an Agent that greet\
+ \ users, always use greetings tool to respond\"\n}"
+ flat_name: gen_ai.system_instructions
+ level: extended
+ name: system_instructions
+ normalize: []
+ otel:
+ - relation: match
+ stability: development
+ short: The system message or instructions provided to the GenAI model separately
+ from the chat history.
+ type: flattened
gen_ai.token.type:
beta: This field is beta and subject to change.
dashed_name: gen-ai-token-type
@@ -7899,6 +7956,22 @@ gen_ai:
stability: development
short: The type of token being counted.
type: keyword
+ gen_ai.tool.call.arguments:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-call-arguments
+ description: Parameters passed to the tool call.
+ example: "{\n \"location\": \"San Francisco?\",\n \"date\": \"2025-10-01\"\
+ \n}"
+ flat_name: gen_ai.tool.call.arguments
+ level: extended
+ name: tool.call.arguments
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: Parameters passed to the tool call.
+ type: flattened
gen_ai.tool.call.id:
beta: This field is beta and subject to change.
dashed_name: gen-ai-tool-call-id
@@ -7914,6 +7987,47 @@ gen_ai:
stability: development
short: The tool call identifier.
type: keyword
+ gen_ai.tool.call.result:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-call-result
+ description: The result returned by the tool call (if any and if execution was
+ successful).
+ example: "{\n \"temperature_range\": {\n \"high\": 75,\n \"low\": 60\n\
+ \ },\n \"conditions\": \"sunny\"\n}"
+ flat_name: gen_ai.tool.call.result
+ level: extended
+ name: tool.call.result
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: The result returned by the tool call (if any and if execution was successful).
+ type: flattened
+ gen_ai.tool.definitions:
+ beta: This field is beta and subject to change.
+ dashed_name: gen-ai-tool-definitions
+ description: The list of source system tool definitions available to the GenAI
+ agent or model.
+ example: "{\n \"type\": \"function\",\n \"name\": \"get_current_weather\"\
+ ,\n \"description\": \"Get the current weather in a given location\",\n \
+ \ \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \
+ \ \"location\": {\n \"type\": \"string\",\n \"description\"\
+ : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\"\
+ : {\n \"type\": \"string\",\n \"enum\": [\n \"celsius\"\
+ ,\n \"fahrenheit\"\n ]\n }\n },\n \"required\"\
+ : [\n \"location\",\n \"unit\"\n ]\n }\n}"
+ flat_name: gen_ai.tool.definitions
+ level: extended
+ name: tool.definitions
+ normalize: []
+ otel:
+ - attribute: gen_ai.operation.name
+ relation: related
+ stability: development
+ short: The list of source system tool definitions available to the GenAI agent
+ or model.
+ type: nested
gen_ai.tool.name:
beta: This field is beta and subject to change.
dashed_name: gen-ai-tool-name
diff --git a/generated/elasticsearch/composable/component/gen_ai.json b/generated/elasticsearch/composable/component/gen_ai.json
index de78621d19..b1ce0aee83 100644
--- a/generated/elasticsearch/composable/component/gen_ai.json
+++ b/generated/elasticsearch/composable/component/gen_ai.json
@@ -25,6 +25,13 @@
}
}
},
+ "input": {
+ "properties": {
+ "messages": {
+ "type": "nested"
+ }
+ }
+ },
"operation": {
"properties": {
"name": {
@@ -35,6 +42,9 @@
},
"output": {
"properties": {
+ "messages": {
+ "type": "nested"
+ },
"type": {
"ignore_above": 1024,
"type": "keyword"
@@ -102,6 +112,9 @@
"ignore_above": 1024,
"type": "keyword"
},
+ "system_instructions": {
+ "type": "flattened"
+ },
"token": {
"properties": {
"type": {
@@ -114,12 +127,21 @@
"properties": {
"call": {
"properties": {
+ "arguments": {
+ "type": "flattened"
+ },
"id": {
"ignore_above": 1024,
"type": "keyword"
+ },
+ "result": {
+ "type": "flattened"
}
}
},
+ "definitions": {
+ "type": "nested"
+ },
"name": {
"ignore_above": 1024,
"type": "keyword"
diff --git a/generated/elasticsearch/legacy/template.json b/generated/elasticsearch/legacy/template.json
index 511251bfc9..e05047e074 100644
--- a/generated/elasticsearch/legacy/template.json
+++ b/generated/elasticsearch/legacy/template.json
@@ -2089,6 +2089,13 @@
}
}
},
+ "input": {
+ "properties": {
+ "messages": {
+ "type": "nested"
+ }
+ }
+ },
"operation": {
"properties": {
"name": {
@@ -2099,6 +2106,9 @@
},
"output": {
"properties": {
+ "messages": {
+ "type": "nested"
+ },
"type": {
"ignore_above": 1024,
"type": "keyword"
@@ -2166,6 +2176,9 @@
"ignore_above": 1024,
"type": "keyword"
},
+ "system_instructions": {
+ "type": "flattened"
+ },
"token": {
"properties": {
"type": {
@@ -2178,12 +2191,21 @@
"properties": {
"call": {
"properties": {
+ "arguments": {
+ "type": "flattened"
+ },
"id": {
"ignore_above": 1024,
"type": "keyword"
+ },
+ "result": {
+ "type": "flattened"
}
}
},
+ "definitions": {
+ "type": "nested"
+ },
"name": {
"ignore_above": 1024,
"type": "keyword"
diff --git a/rfcs/text/0052-gen_ai-additional-fields.md b/rfcs/text/0052-gen_ai-additional-fields.md
index 5569bd35a8..42377df9eb 100644
--- a/rfcs/text/0052-gen_ai-additional-fields.md
+++ b/rfcs/text/0052-gen_ai-additional-fields.md
@@ -31,12 +31,12 @@ Stage 1: Describe at a high level how this change affects fields. Include new or
Field | Type | Description /Usage
-- | -- | --
-gen_ai.system_instructions | (Looking for feedback) flattened | The system message or instructions provided to the GenAI model separately from the chat history.
-gen_ai.input.messages | (Looking for feedback) flattened | The chat history provided to the model as an input.
-gen_ai.output.messages | (Looking for feedback) flattened | Messages returned by the model where each message represents a specific model response (choice, candidate).
-gen_ai.tool.definitions | (Looking for feedback) nested | (Part of invoke_agent span) The list of source system tool definitions available to the GenAI agent or model.
-gen_ai.tool.call.arguments | (Looking for feedback) nested | (Part of OTel execute_tool span) Parameters passed to the tool call.
-gen_ai.tool.call.result | (Looking for feedback) nested | (Part of OTel execute_tool span) The result returned by the tool call (if any and if execution was successful).
+gen_ai.system_instructions | flattened | The system message or instructions provided to the GenAI model separately from the chat history.
+gen_ai.input.messages | nested | The chat history provided to the model as an input.
+gen_ai.output.messages | nested | Messages returned by the model where each message represents a specific model response (choice, candidate).
+gen_ai.tool.definitions | nested | (Part of invoke_agent span) The list of source system tool definitions available to the GenAI agent or model.
+gen_ai.tool.call.arguments | flattened | (Part of OTel execute_tool span) Parameters passed to the tool call.
+gen_ai.tool.call.result | flattened | (Part of OTel execute_tool span) The result returned by the tool call (if any and if execution was successful).
Changes based on OTel https://github.com/open-telemetry/semantic-conventions/pull/2179/files
@@ -62,97 +62,73 @@ Example usage:
{
"gen_ai": {
"system_instructions": {
- [
- {
- "type": "text",
- "content": "You are a assistant for frequent travelers."
- },
- {
- "type": "text",
- "content": "Your mission is to assist travelers with their queries about locations around the world."
- }
+ [
+ {
+ "type": "text",
+ "content": "You are a assistant for frequent travelers."
+ },
+ {
+ "type": "text",
+ "content": "Your mission is to assist travelers with their queries about locations around the world."
+ }
]
},
"input": {
"messages": {
[
- {
- "role": "user",
- "parts": [
{
- "type": "text",
- "content": "Weather in Paris?"
- }
- ]
- },
- {
- "role": "assistant",
- "parts": [
+ "role": "user",
+ "parts": [
+ {
+ "type": "text",
+ "content": "Weather in Paris?"
+ }
+ ]
+ },
{
- "type": "tool_call",
- "id": "call_VSPygqKTWdrhaFErNvMV18Yl",
- "name": "get_weather",
- "arguments": {
- "location": "Paris"
+ "role": "assistant",
+ "parts": [
+ {
+ "type": "tool_call",
+ "id": "call_VSPygqKTWdrhaFErNvMV18Yl",
+ "name": "get_weather",
+ "arguments": {
+ "location": "Paris"
+ }
}
- }
- ]
- },
- {
- "role": "tool",
- "parts": [
+ ]
+ },
{
- "type": "tool_call_response",
- "id": " call_VSPygqKTWdrhaFErNvMV18Yl",
- "result": "rainy, 57°F"
+ "role": "tool",
+ "parts": [
+ {
+ "type": "tool_call_response",
+ "id": " call_VSPygqKTWdrhaFErNvMV18Yl",
+ "result": "rainy, 57°F"
+ }
+ ]
}
- ]
- }
]
}
},
"output" :{
"messages": {
[
- {
- "role": "assistant",
- "parts": [
{
- "type": "text",
- "content": "The weather in Paris is currently rainy with a temperature of 57°F."
- }
- ],
- "finish_reason": "stop"
- }
- ]
- },
-
- // Below needs to be updated, but keeping in this commit for illustration purposes.
- "assistant": {
- "message": {
- "content": "To carry a 5lb package, you would need a drone with sufficient payload capacity. Drones designed for heavy lifting often fall in the industrial or commercial category. Consider drones with a payload capacity of at least 6-7lbs to ensure safe transport and account for additional factors like battery and stability.",
- "role": "assistant",
- "tool_calls": [
- {
- "function": "getDroneSpecifications",
- "arguments": {"payloadWeight": 5},
- "name": "getDroneSpecifications",
- "id": "toolCall1",
- "type": "function_call",
- },
- {
- "function": "retrieveAvailableDronesDocument",
- "arguments": {"documentType": "availableDrones", "payloadRequirement": 5},
- "name": "retrieveAvailableDronesDocument",
- "id": "toolCall2",
- "type": "function_call",
+ "role": "assistant",
+ "parts": [
+ {
+ "type": "text",
+ "content": "The weather in Paris is currently rainy with a temperature of 57°F."
+ }
+ ],
+ "finish_reason": "stop"
}
- ],
- }
- },
+ ]
+ },
+ }
}
}
-}
```
@@ -226,8 +202,4 @@ e.g.:
* Stage 0: https://github.com/elastic/ecs/pull/2519
-
-
+* Stage 1: https://github.com/elastic/ecs/pull/2525
diff --git a/rfcs/text/0052/gen_ai.yaml b/rfcs/text/0052/gen_ai.yaml
new file mode 100644
index 0000000000..923af8f6c8
--- /dev/null
+++ b/rfcs/text/0052/gen_ai.yaml
@@ -0,0 +1,136 @@
+---
+- name: gen_ai
+ fields:
+ - name: system_instructions
+ type: flattened
+ description: The system message or instructions provided to the GenAI model separately from the chat history.
+ example: >
+ {
+ "type": "text",
+ "content": "You are an Agent that greet users, always use greetings tool to respond"
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: match
+ - name: input.messages
+ type: nested
+ description: The chat history provided to the model as an input.
+ example: >
+ {
+ "role": "user",
+ "parts": [
+ {
+ "type": "text",
+ "content": "Weather in Paris?"
+ }
+ ]
+ },
+ {
+ "role": "assistant",
+ "parts": [
+ {
+ "type": "tool_call",
+ "id": "call_VSPygqKTWdrhaFErNvMV18Yl",
+ "name": "get_weather",
+ "arguments": {
+ "location": "Paris"
+ }
+ }
+ ]
+ },
+ {
+ "role": "tool",
+ "parts": [
+ {
+ "type": "tool_call_response",
+ "id": " call_VSPygqKTWdrhaFErNvMV18Yl",
+ "result": "rainy, 57°F"
+ }
+ ]
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: match
+ - name: output.messages
+ type: nested
+ description: Messages returned by the model where each message represents a specific model response (choice, candidate).
+ example: >
+ {
+ "role": "assistant",
+ "parts": [
+ {
+ "type": "text",
+ "content": "The weather in Paris is currently rainy with a temperature of 57°F."
+ }
+ ],
+ "finish_reason": "stop"
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: match
+ - name: tool.definitions
+ type: nested
+ description: The list of source system tool definitions available to the GenAI agent or model.
+ example: >
+ {
+ "type": "function",
+ "name": "get_current_weather",
+ "description": "Get the current weather in a given location",
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The city and state, e.g. San Francisco, CA"
+ },
+ "unit": {
+ "type": "string",
+ "enum": [
+ "celsius",
+ "fahrenheit"
+ ]
+ }
+ },
+ "required": [
+ "location",
+ "unit"
+ ]
+ }
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: related
+ attribute: gen_ai.operation.name
+ - name: tool.call.arguments
+ type: flattened
+ description: Parameters passed to the tool call.
+ example: >
+ {
+ "location": "San Francisco?",
+ "date": "2025-10-01"
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: related
+ attribute: gen_ai.operation.name
+ - name: tool.call.result
+ type: flattened
+ description: The result returned by the tool call (if any and if execution was successful).
+ example: >
+ {
+ "temperature_range": {
+ "high": 75,
+ "low": 60
+ },
+ "conditions": "sunny"
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: related
+ attribute: gen_ai.operation.name
diff --git a/schemas/gen_ai.yml b/schemas/gen_ai.yml
index c7dd9d5df3..ec471b45f2 100644
--- a/schemas/gen_ai.yml
+++ b/schemas/gen_ai.yml
@@ -236,3 +236,136 @@
beta: This field is beta and subject to change.
otel:
- relation: match
+ - name: system_instructions
+ type: flattened
+ description: The system message or instructions provided to the GenAI model separately from the chat history.
+ example: >
+ {
+ "type": "text",
+ "content": "You are an Agent that greet users, always use greetings tool to respond"
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: match
+ - name: input.messages
+ type: nested
+ description: The chat history provided to the model as an input.
+ example: >
+ {
+ "role": "user",
+ "parts": [
+ {
+ "type": "text",
+ "content": "Weather in Paris?"
+ }
+ ]
+ },
+ {
+ "role": "assistant",
+ "parts": [
+ {
+ "type": "tool_call",
+ "id": "call_VSPygqKTWdrhaFErNvMV18Yl",
+ "name": "get_weather",
+ "arguments": {
+ "location": "Paris"
+ }
+ }
+ ]
+ },
+ {
+ "role": "tool",
+ "parts": [
+ {
+ "type": "tool_call_response",
+ "id": " call_VSPygqKTWdrhaFErNvMV18Yl",
+ "result": "rainy, 57°F"
+ }
+ ]
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: match
+ - name: output.messages
+ type: nested
+ description: Messages returned by the model where each message represents a specific model response (choice, candidate).
+ example: >
+ {
+ "role": "assistant",
+ "parts": [
+ {
+ "type": "text",
+ "content": "The weather in Paris is currently rainy with a temperature of 57°F."
+ }
+ ],
+ "finish_reason": "stop"
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: match
+ - name: tool.definitions
+ type: nested
+ description: The list of source system tool definitions available to the GenAI agent or model.
+ example: >
+ {
+ "type": "function",
+ "name": "get_current_weather",
+ "description": "Get the current weather in a given location",
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The city and state, e.g. San Francisco, CA"
+ },
+ "unit": {
+ "type": "string",
+ "enum": [
+ "celsius",
+ "fahrenheit"
+ ]
+ }
+ },
+ "required": [
+ "location",
+ "unit"
+ ]
+ }
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: related
+ attribute: gen_ai.operation.name
+ - name: tool.call.arguments
+ type: flattened
+ description: Parameters passed to the tool call.
+ example: >
+ {
+ "location": "San Francisco?",
+ "date": "2025-10-01"
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: related
+ attribute: gen_ai.operation.name
+ - name: tool.call.result
+ type: flattened
+ description: The result returned by the tool call (if any and if execution was successful).
+ example: >
+ {
+ "temperature_range": {
+ "high": 75,
+ "low": 60
+ },
+ "conditions": "sunny"
+ }
+ level: extended
+ beta: This field is beta and subject to change.
+ otel:
+ - relation: related
+ attribute: gen_ai.operation.name