Follow Discord
Sweep 09 Oct 2026 · 17:27Z Build v2.1.296 517 read Stable v2.1.287 Latest v2.1.296 Next v2.1.296 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

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
/
lines
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>
Feedback