Python tool returns and model-facing payloads. Examples use the normal SDK paths; message/request wrappers are omitted. `BASE64_PNG` represents encoded image bytes.
| Library / API | What the tool function returns | Result sent to the model | Additional conventions |
|---|---|---|---|
| **OpenAI Agents → Responses**, ordinary object | `return {"temperature": 57}` | `{`<br> `"type": "function_call_output",`<br> `"call_id": "123",`<br> `"output": "{'temperature': 57}"`<br>`}`<br>The default path uses Python `str()`. | `call_id` |
| **OpenAI Agents → Responses**, typed outputs | `return [`<br> `ToolOutputText(text='{"temperature":57}'),`<br> `ToolOutputImage(image_url="https://example.com/map.png")`<br>`]` | `{`<br> `"type": "function_call_output",`<br> `"call_id": "123",`<br> `"output": [`<br> `{"type": "input_text", "text": "{\"temperature\":57}"},`<br> `{"type": "How to trace speech‑to‑speech (voice‑native) agents like Gemini Live and the OpenAI Realtime API, and why the common modeling choices differ.
Prior art: Arize / OpenInference · LangSmith voice fundamentals · OTel GenAI semconv PR #390
name: migrate-to-definitions-schema-v2 description: 'Use when migrating v1 schema files to v2 (file_format: definition/2) for entities, spans, metrics, events, attribute groups, or signal refinements in any semantic-conventions registry. Enforces minimal attribute groups, internal-by-default visibility, flat structure, and refinement of generic signals over re-declaration.
| attributes: | |
| - key: android.app.state | |
| type: | |
| members: | |
| - id: created | |
| value: created | |
| brief: | | |
| Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has been called in the app for the first time. | |
| stability: development |
| attributes: | |
| - key: android.app.state | |
| type: | |
| members: | |
| - id: created | |
| value: created | |
| brief: | | |
| Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has been called in the app for the first time. | |
| stability: development |
Here're some items that we've considered in the past to be useful in azure-core or clientcore related to observability,
but never got to it.
-
[Azure Core only] Make slf4j dependency optional - backport Slf4JLoggerShim. Related to Azure/azure-sdk-for-java#38421
-
[Azure Core only] Merge tracing and metrics plugins into one - Azure/azure-sdk-for-java#41436 or backport plugin-free OTel support from clientcore
-
Allow adding arbitrary key-value-pairs on instrumentation context and stamping them on all nested logs and spans (similar to MDC):
TODOs:
- AI weaver - weaver generate should generate new schema behind feature flag - Liudmila will create an issue
Phases:
- ingest new format
- resolve new format - need to advertise and socialize
- modify resolution to be on the new format
| signal/object | identity property in semsonv | in proto |
| package live_check_advice | |
| import rego.v1 | |
| required_attributes := [ | |
| "http.request.method", | |
| "server.address", | |
| "server.port", | |
| "url.full", | |
| ] |
| from enum import Enum | |
| import json | |
| from typing import Annotated, Any, List, Literal, Optional, Union | |
| from pydantic import BaseModel, Field, RootModel | |
| class TextPart(BaseModel): | |
| """ | |
| Describes text content sent to or received from the model. | |
| """ | |
| type: Literal['text'] |
These are the scenarios we support today, not necessarily the ones we have to provide in the final design.
-
Users can provide static (for a group of operations) configuration. E.g.: configure custom logger for all requests peformed in scope of this API call
-
Provide dynamic (per-request) configuration. E.g. set request body or operation-specific context
So RequestOptions is a mix of (usually) per-request and (usually) static config.