openai-sdk changedcli-sdks-libraries/libraries/openai-sdk
Nearest release: v2.1.296, published an hour after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+42added
Lines−42removed
From line
189
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits8to this page, all time
The whole hunk
from line 189, old and new numbered
/
from line 189
189189* The `strict` parameter for function calling is ignored, which means the tool use JSON is not guaranteed to follow the supplied schema. For guaranteed schema conformance, use the native [Claude API with Structured Outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs).
190190* Audio input is not supported; it will be ignored and stripped from input
191191* Prompt caching is not supported, but it is supported in the [Anthropic SDKs](https://platform.claude.com/docs/en/cli-sdks-libraries/overview)
192* System/developer messages are hoisted and concatenated to the beginning of the conversation, as Anthropic only supports a single initial system message.
192* System/developer messages are hoisted and concatenated into the top-level `system` field, wherever they appear in the conversation. To add system instructions partway through a conversation, use [mid-conversation system messages](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages) in the native Claude API.
193193
194194Most unsupported fields are silently ignored rather than producing errors. These are all documented in the following sections.
195195
from line 199
199199
200200### System / developer message hoisting
201201
202Most of the inputs to the OpenAI SDK clearly map directly to Anthropic’s API parameters, but one distinct difference is the handling of system / developer prompts. These two prompts can be put throughout a chat conversation via OpenAI. Since Anthropic only supports an initial system message, the API takes all system/developer messages and concatenates them together with a single newline (`\n`) in between them. This full string is then supplied as a single system message at the start of the messages.
202Most of the inputs to the OpenAI SDK clearly map directly to Anthropic’s API parameters, but one distinct difference is the handling of system / developer prompts. These two prompts can be put throughout a chat conversation via OpenAI. The compatibility layer takes all system/developer messages and concatenates them together with a single newline (`\n`) in between them. This full string is then supplied as the top-level `system` field, ahead of every message.
203203
204204### Thinking support
205205
from line 289
289289
290290#### Simple fields
291291
292| Field | Support status |
293| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
294| `model` | Use Claude model names |
295| `max_tokens` | Fully supported |
296| `max_completion_tokens` | Fully supported |
297| `stream` | Fully supported |
298| `stream_options` | Fully supported |
299| `top_p` | Fully supported |
300| `parallel_tool_calls` | Fully supported |
301| `stop` | All non-whitespace stop sequences work |
302| `temperature` | Between 0 and 1 (inclusive). Values greater than 1 are capped at 1. |
303| `n` | Must be exactly 1 |
304| `logprobs` | Ignored |
305| `metadata` | Ignored |
306| `response_format` | Ignored. For JSON output, use [Structured Outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) with the native Claude API |
307| `prediction` | Ignored |
308| `presence_penalty` | Ignored |
309| `frequency_penalty` | Ignored |
310| `seed` | Ignored |
311| `service_tier` | Ignored |
312| `audio` | Ignored |
313| `logit_bias` | Ignored |
314| `store` | Ignored |
315| `user` | Ignored |
316| `modalities` | Ignored |
317| `top_logprobs` | Ignored |
318| `reasoning_effort` | Ignored |
292| Field | Support status |
293| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
294| `model` | Use Claude model names |
295| `max_tokens` | Fully supported |
296| `max_completion_tokens` | Fully supported |
297| `stream` | Fully supported |
298| `stream_options` | Fully supported |
299| `top_p` | Passed through to the model. Claude 4.7 and later models and Claude Mythos Preview return a 400 error for any value other than `0.99`, the default, so omit it. A request that sets both `temperature` and `top_p` also returns a 400 error. See [Working with messages](https://platform.claude.com/docs/en/build-with-claude/working-with-messages). |
300| `parallel_tool_calls` | Fully supported |
301| `stop` | All non-whitespace stop sequences work |
302| `temperature` | Between 0 and 1 (inclusive). Values greater than 1 are capped at 1. On Claude 4.7 and later models and Claude Mythos Preview, any value below 1 returns a 400 error, so omit it. See [Working with messages](https://platform.claude.com/docs/en/build-with-claude/working-with-messages). |
303| `n` | Must be exactly 1 |
304| `logprobs` | Ignored |
305| `metadata` | Ignored |
306| `response_format` | Ignored. For JSON output, use [Structured Outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) with the native Claude API |
307| `prediction` | Ignored |
308| `presence_penalty` | Ignored |
309| `frequency_penalty` | Ignored |
310| `seed` | Ignored |
311| `service_tier` | Ignored |
312| `audio` | Ignored |
313| `logit_bias` | Ignored |
314| `store` | Ignored |
315| `user` | Ignored |
316| `modalities` | Ignored |
317| `top_logprobs` | Ignored |
318| `reasoning_effort` | Ignored |
319319
320320#### `tools` / `functions` fields
321321
from line 410
410410 <Tab title="Tool role">
411411 Fields for `messages[n].role == "tool"`
412412
413 | Field | Variant | Support status |
414 | -------------- | ------------------------- | --------------- |
415 | `content` | `string` | Fully supported |
416 | | `array`, `type == "text"` | Fully supported |
417 | `tool_call_id` | | Fully supported |
418 | `tool_choice` | | Fully supported |
419 | `name` | | Ignored |
413 | Field | Variant | Support status |
414 | -------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
415 | `content` | `string` | Fully supported |
416 | | `array`, `type == "text"` | Fully supported |
417 | `tool_call_id` | | Fully supported |
418 | `tool_choice` | | Supported. `"required"` and named-function values force a tool call; Claude Opus 5.5, Claude Sonnet 5.5, Claude Fable 5.1, and Claude Mythos 5.1 don't support forced tool use and return an error, so use `"auto"` on those models. See [Forcing tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools#forcing-tool-use). |
419 | `name` | | Ignored |
420420 </Tab>
421421
422422 <Tab title="Function role">
423423 Fields for `messages[n].role == "function"`
424424
425 | Field | Variant | Support status |
426 | ------------- | ------------------------- | --------------- |
427 | `content` | `string` | Fully supported |
428 | | `array`, `type == "text"` | Fully supported |
429 | `tool_choice` | | Fully supported |
430 | `name` | | Ignored |
425 | Field | Variant | Support status |
426 | ------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
427 | `content` | `string` | Fully supported |
428 | | `array`, `type == "text"` | Fully supported |
429 | `tool_choice` | | Supported. `"required"` and named-function values force a tool call; Claude Opus 5.5, Claude Sonnet 5.5, Claude Fable 5.1, and Claude Mythos 5.1 don't support forced tool use and return an error, so use `"auto"` on those models. See [Forcing tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools#forcing-tool-use). |
430 | `name` | | Ignored |
431431 </Tab>
432432 </Tabs>
433433</Accordion>
No line in this hunk matches that.