Skip to content

Commit 9795d74

Browse files
daniilrDouweM
andauthored
Complete thinking.md documentation with AWS Bedrock examples (#3328)
Co-authored-by: Douwe Maan <douwe@pydantic.dev>
1 parent 14b1490 commit 9795d74

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

docs/thinking.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,64 @@ agent = Agent(model, model_settings=settings)
6666

6767
## Bedrock
6868

69+
Although Bedrock Converse doesn't provide a unified API to enable thinking, you can still use [`BedrockModelSettings.bedrock_additional_model_requests_fields`][pydantic_ai.models.bedrock.BedrockModelSettings.bedrock_additional_model_requests_fields] [model setting](agents.md#model-run-settings) to pass provider-specific configuration:
70+
71+
=== "Claude"
72+
73+
```python {title="bedrock_claude_thinking_part.py"}
74+
from pydantic_ai import Agent
75+
from pydantic_ai.models.bedrock import BedrockConverseModel, BedrockModelSettings
76+
77+
model = BedrockConverseModel('us.anthropic.claude-sonnet-4-5-20250929-v1:0')
78+
model_settings = BedrockModelSettings(
79+
bedrock_additional_model_requests_fields={
80+
'thinking': {'type': 'enabled', 'budget_tokens': 1024}
81+
}
82+
)
83+
agent = Agent(model=model, model_settings=model_settings)
84+
85+
```
86+
=== "OpenAI"
87+
88+
89+
```python {title="bedrock_openai_thinking_part.py"}
90+
from pydantic_ai import Agent
91+
from pydantic_ai.models.bedrock import BedrockConverseModel, BedrockModelSettings
92+
93+
model = BedrockConverseModel('openai.gpt-oss-120b-1:0')
94+
model_settings = BedrockModelSettings(
95+
bedrock_additional_model_requests_fields={'reasoning_effort': 'low'}
96+
)
97+
agent = Agent(model=model, model_settings=model_settings)
98+
99+
```
100+
=== "Qwen"
101+
102+
103+
```python {title="bedrock_qwen_thinking_part.py"}
104+
from pydantic_ai import Agent
105+
from pydantic_ai.models.bedrock import BedrockConverseModel, BedrockModelSettings
106+
107+
model = BedrockConverseModel('qwen.qwen3-32b-v1:0')
108+
model_settings = BedrockModelSettings(
109+
bedrock_additional_model_requests_fields={'reasoning_config': 'high'}
110+
)
111+
agent = Agent(model=model, model_settings=model_settings)
112+
113+
```
114+
115+
=== "Deepseek"
116+
Reasoning is [always enabled](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-reasoning.html) for Deepseek model
117+
118+
```python {title="bedrock_deepseek_thinking_part.py"}
119+
from pydantic_ai import Agent
120+
from pydantic_ai.models.bedrock import BedrockConverseModel
121+
122+
model = BedrockConverseModel('us.deepseek.r1-v1:0')
123+
agent = Agent(model=model)
124+
125+
```
126+
69127
## Groq
70128

71129
Groq supports different formats to receive thinking parts:

0 commit comments

Comments
 (0)