34 timeout=3600,34 timeout=3600,
35)35)
36 36
37chat = client.chat.create(model="grok-4.6")37chat = client.chat.create(model="grok-4.7")
38chat.append(system("You are Grok, an AI agent built to answer helpful questions."))38chat.append(system("You are Grok, an AI agent built to answer helpful questions."))
39chat.append(user("How big is the universe?"))39chat.append(user("How big is the universe?"))
40response = chat.sample()40response = chat.sample()
58)58)
59 59
60response = client.responses.create(60response = client.responses.create(
61 model="grok-4.6",61 model="grok-4.7",
62 input=[62 input=[
63 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},63 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},
64 {"role": "user", "content": "How big is the universe?"},64 {"role": "user", "content": "How big is the universe?"},
82});82});
83 83
84const response = await client.responses.create({84const response = await client.responses.create({
85 model: "grok-4.6",85 model: "grok-4.7",
86 input: [86 input: [
87 {87 {
88 role: "system",88 role: "system",
106import { generateText } from 'ai';106import { generateText } from 'ai';
107 107
108const { text, response } = await generateText({108const { text, response } = await generateText({
109 model: xai.responses('grok-4.6'),109 model: xai.responses('grok-4.7'),
110 system: "You are Grok, an AI agent built to answer helpful questions.",110 system: "You are Grok, an AI agent built to answer helpful questions.",
111 prompt: "How big is the universe?",111 prompt: "How big is the universe?",
112});112});
123 -H "Authorization: Bearer $XAI_API_KEY" \123 -H "Authorization: Bearer $XAI_API_KEY" \
124 -m 3600 \124 -m 3600 \
125 -d '{125 -d '{
126 "model": "grok-4.6",126 "model": "grok-4.7",
127 "input": [127 "input": [
128 {128 {
129 "role": "system",129 "role": "system",
152 timeout=3600,152 timeout=3600,
153)153)
154 154
155chat = client.chat.create(model="grok-4.6", store_messages=False)155chat = client.chat.create(model="grok-4.7", store_messages=False)
156chat.append(system("You are Grok, an AI agent built to answer helpful questions."))156chat.append(system("You are Grok, an AI agent built to answer helpful questions."))
157chat.append(user("How big is the universe?"))157chat.append(user("How big is the universe?"))
158response = chat.sample()158response = chat.sample()
172)172)
173 173
174response = client.responses.create(174response = client.responses.create(
175 model="grok-4.6",175 model="grok-4.7",
176 input=[176 input=[
177 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},177 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},
178 {"role": "user", "content": "How big is the universe?"},178 {"role": "user", "content": "How big is the universe?"},
193});193});
194 194
195const response = await client.responses.create({195const response = await client.responses.create({
196 model: "grok-4.6",196 model: "grok-4.7",
197 input: [197 input: [
198 {198 {
199 role: "system",199 role: "system",
216 -H "Authorization: Bearer $XAI_API_KEY" \216 -H "Authorization: Bearer $XAI_API_KEY" \
217 -m 3600 \217 -m 3600 \
218 -d '{218 -d '{
219 "model": "grok-4.6",219 "model": "grok-4.7",
220 "input": [220 "input": [
221 {221 {
222 "role": "system",222 "role": "system",
239>239>
240> Make sure to use a reasoning model when working with encrypted thinking content.240> Make sure to use a reasoning model when working with encrypted thinking content.
241 241
242> [!NOTE]
243>
244> `grok-4.7` always returns `reasoning.encrypted_content` on the Responses API, whether or not `include` lists it. See [Encrypted reasoning content](/developers/model-capabilities/text/reasoning#encrypted-reasoning-content).
245
242Modify the steps to create a chat client (xAI SDK) or change the request body as following:246Modify the steps to create a chat client (xAI SDK) or change the request body as following:
243 247
244```python customLanguage="pythonXAI"248```python customLanguage="pythonXAI"
245chat = client.chat.create(model="grok-4.6",249chat = client.chat.create(model="grok-4.7",
246 use_encrypted_content=True)250 use_encrypted_content=True)
247```251```
248 252
249```python customLanguage="pythonOpenAISDK"253```python customLanguage="pythonOpenAISDK"
250response = client.responses.create(254response = client.responses.create(
251 model="grok-4.6",255 model="grok-4.7",
252 input=[256 input=[
253 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},257 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},
254 {"role": "user", "content": "How big is the universe?"},258 {"role": "user", "content": "How big is the universe?"},
259 263
260```javascript customLanguage="javascriptWithoutSDK"264```javascript customLanguage="javascriptWithoutSDK"
261const response = await client.responses.create({265const response = await client.responses.create({
262 model: "grok-4.6",266 model: "grok-4.7",
263 input: [267 input: [
264 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},268 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},
265 {"role": "user", "content": "How big is the universe?"},269 {"role": "user", "content": "How big is the universe?"},
276// Encrypted reasoning content is included automatically by the AI SDK280// Encrypted reasoning content is included automatically by the AI SDK
277// as long as `store: false` is not set. No extra configuration is needed.281// as long as `store: false` is not set. No extra configuration is needed.
278const { text, reasoning } = await generateText({282const { text, reasoning } = await generateText({
279 model: xai.responses('grok-4.6'),283 model: xai.responses('grok-4.7'),
280 system: "You are Grok, an AI agent built to answer helpful questions.",284 system: "You are Grok, an AI agent built to answer helpful questions.",
281 prompt: "How big is the universe?",285 prompt: "How big is the universe?",
282});286});
291 -H "Authorization: Bearer $XAI_API_KEY" \295 -H "Authorization: Bearer $XAI_API_KEY" \
292 -m 3600 \296 -m 3600 \
293 -d '{297 -d '{
294 "model": "grok-4.6",298 "model": "grok-4.7",
295 "input": [299 "input": [
296 {300 {
297 "role": "system",301 "role": "system",
325 timeout=3600,329 timeout=3600,
326)330)
327 331
328chat = client.chat.create(model="grok-4.6", store_messages=True)332chat = client.chat.create(model="grok-4.7", store_messages=True)
329chat.append(system("You are Grok, an AI agent built to answer helpful questions."))333chat.append(system("You are Grok, an AI agent built to answer helpful questions."))
330chat.append(user("How big is the universe?"))334chat.append(user("How big is the universe?"))
331response = chat.sample()335response = chat.sample()
339# New steps343# New steps
340 344
341chat = client.chat.create(345chat = client.chat.create(
342 model="grok-4.6",346 model="grok-4.7",
343 previous_response_id=response.id,347 previous_response_id=response.id,
344 store_messages=True,348 store_messages=True,
345)349)
366)370)
367 371
368response = client.responses.create(372response = client.responses.create(
369 model="grok-4.6",373 model="grok-4.7",
370 input=[374 input=[
371 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},375 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},
372 {"role": "user", "content": "How big is the universe?"},376 {"role": "user", "content": "How big is the universe?"},
382# New steps386# New steps
383 387
384second_response = client.responses.create(388second_response = client.responses.create(
385 model="grok-4.6",389 model="grok-4.7",
386 previous_response_id=response.id,390 previous_response_id=response.id,
387 input=[391 input=[
388 {"role": "user", "content": "How do stars form?"},392 {"role": "user", "content": "How do stars form?"},
407});411});
408 412
409const response = await client.responses.create({413const response = await client.responses.create({
410 model: "grok-4.6",414 model: "grok-4.7",
411 input: [415 input: [
412 {416 {
413 role: "system",417 role: "system",
426console.log(response.id);430console.log(response.id);
427 431
428const secondResponse = await client.responses.create({432const secondResponse = await client.responses.create({
429 model: "grok-4.6",433 model: "grok-4.7",
430 previous_response_id: response.id,434 previous_response_id: response.id,
431 input: [435 input: [
432 {"role": "user", "content": "How do stars form?"},436 {"role": "user", "content": "How do stars form?"},
445 449
446// First request450// First request
447const result = await generateText({451const result = await generateText({
448 model: xai.responses('grok-4.6'),452 model: xai.responses('grok-4.7'),
449 system: "You are Grok, an AI agent built to answer helpful questions.",453 system: "You are Grok, an AI agent built to answer helpful questions.",
450 prompt: "How big is the universe?",454 prompt: "How big is the universe?",
451});455});
457 461
458// Continue the conversation using previousResponseId462// Continue the conversation using previousResponseId
459const { text: secondResponse } = await generateText({463const { text: secondResponse } = await generateText({
460 model: xai.responses('grok-4.6'),464 model: xai.responses('grok-4.7'),
461 prompt: "How do stars form?",465 prompt: "How do stars form?",
462 providerOptions: {466 providerOptions: {
463 xai: {467 xai: {
475 -H "Authorization: Bearer $XAI_API_KEY" \479 -H "Authorization: Bearer $XAI_API_KEY" \
476 -m 3600 \480 -m 3600 \
477 -d '{481 -d '{
478 "model": "grok-4.6",482 "model": "grok-4.7",
479 "previous_response_id": "The previous response ID",483 "previous_response_id": "The previous response ID",
480 "input": [484 "input": [
481 {485 {
505 timeout=3600,509 timeout=3600,
506)510)
507 511
508chat = client.chat.create(model="grok-4.6", store_messages=True, use_encrypted_content=True)512chat = client.chat.create(model="grok-4.7", store_messages=True, use_encrypted_content=True)
509chat.append(system("You are Grok, an AI agent built to answer helpful questions."))513chat.append(system("You are Grok, an AI agent built to answer helpful questions."))
510chat.append(user("How big is the universe?"))514chat.append(user("How big is the universe?"))
511response = chat.sample()515response = chat.sample()
543)547)
544 548
545response = client.responses.create(549response = client.responses.create(
546 model="grok-4.6",550 model="grok-4.7",
547 input=[551 input=[
548 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},552 {"role": "system", "content": "You are Grok, an AI agent built to answer helpful questions."},
549 {"role": "user", "content": "How big is the universe?"},553 {"role": "user", "content": "How big is the universe?"},
560# New steps564# New steps
561 565
562second_response = client.responses.create(566second_response = client.responses.create(
563 model="grok-4.6",567 model="grok-4.7",
564 input=[568 input=[
565 *response.output, # Use response.output instead of the stored response569 *response.output, # Use response.output instead of the stored response
566 {"role": "user", "content": "How do stars form?"},570 {"role": "user", "content": "How do stars form?"},
585});589});
586 590
587const response = await client.responses.create({591const response = await client.responses.create({
588 model: "grok-4.6",592 model: "grok-4.7",
589 input: [593 input: [
590 {594 {
591 role: "system",595 role: "system",
605console.log(response.id);609console.log(response.id);
606 610
607const secondResponse = await client.responses.create({611const secondResponse = await client.responses.create({
608 model: "grok-4.6",612 model: "grok-4.7",
609 input: [613 input: [
610 ...response.output, // Use response.output instead of the stored response614 ...response.output, // Use response.output instead of the stored response
611 {"role": "user", "content": "How do stars form?"},615 {"role": "user", "content": "How do stars form?"},
625// First request. Encrypted reasoning content is included automatically629// First request. Encrypted reasoning content is included automatically
626// by the AI SDK as long as `store: false` is not set.630// by the AI SDK as long as `store: false` is not set.
627const result = await generateText({631const result = await generateText({
628 model: xai.responses('grok-4.6'),632 model: xai.responses('grok-4.7'),
629 system: "You are Grok, an AI agent built to answer helpful questions.",633 system: "You are Grok, an AI agent built to answer helpful questions.",
630 prompt: "How big is the universe?",634 prompt: "How big is the universe?",
631});635});
635// Continue the conversation using previousResponseId639// Continue the conversation using previousResponseId
636// The encrypted content is automatically included when using previousResponseId640// The encrypted content is automatically included when using previousResponseId
637const { text: secondResponse } = await generateText({641const { text: secondResponse } = await generateText({
638 model: xai.responses('grok-4.6'),642 model: xai.responses('grok-4.7'),
639 prompt: "How do stars form?",643 prompt: "How do stars form?",
640 providerOptions: {644 providerOptions: {
641 xai: {645 xai: {
653 -H "Authorization: Bearer $XAI_API_KEY" \657 -H "Authorization: Bearer $XAI_API_KEY" \
654 -m 3600 \658 -m 3600 \
655 -d '{659 -d '{
656 "model": "grok-4.6",660 "model": "grok-4.7",
657 "input": [661 "input": [
658 {662 {
659 "role": "system",663 "role": "system",