Skip to content

Commit da21cc0

Browse files
docs(ai-sdk): fix provider metadata example
1 parent f0dc072 commit da21cc0

File tree

4 files changed

+75
-33
lines changed

4 files changed

+75
-33
lines changed

docs/src/content/docs/extensions/ai-sdk.mdx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,33 @@ of supported models that can be brought into the Agents SDK through this adapter
5151
## Example
5252

5353
<Code lang="typescript" code={aiSdkSetupExample} title="AI SDK Setup" />
54+
55+
## Passing provider metadata
56+
57+
If you need to send provider-specific options with a message, pass them through
58+
`providerMetadata`. The values are forwarded directly to the underlying AI SDK
59+
model. For example, the following `providerData` in the Agents SDK
60+
61+
```ts
62+
providerData: {
63+
anthropic: {
64+
cacheControl: {
65+
type: 'ephemeral';
66+
}
67+
}
68+
}
69+
```
70+
71+
would become
72+
73+
```ts
74+
providerMetadata: {
75+
anthropic: {
76+
cacheControl: {
77+
type: 'ephemeral';
78+
}
79+
}
80+
}
81+
```
82+
83+
when using the AI SDK integration.

docs/src/content/docs/ja/extensions/ai-sdk.mdx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,29 @@ import aiSdkSetupExample from '../../../../../../examples/docs/extensions/ai-sdk
4848
##
4949

5050
<Code lang="typescript" code={aiSdkSetupExample} title="AI SDK Setup" />
51+
52+
## プロバイダーメタデータの渡し方
53+
54+
メッセージにプロバイダー固有のオプションを設定したい場合は、`providerMetadata` にその値を直接指定します。例えば Agents SDK で
55+
56+
```ts
57+
providerData: {
58+
anthropic: {
59+
cacheControl: {
60+
type: 'ephemeral';
61+
}
62+
}
63+
}
64+
```
65+
66+
と指定していた場合、AI SDK 連携では次のようになります。
67+
68+
```ts
69+
providerMetadata: {
70+
anthropic: {
71+
cacheControl: {
72+
type: 'ephemeral';
73+
}
74+
}
75+
}
76+
```

packages/agents-extensions/src/aiSdk.ts

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ export function itemsToLanguageV1Messages(
5050
role: 'system',
5151
content: content,
5252
providerMetadata: {
53-
[model.provider]: {
54-
...(providerData ?? {}),
55-
},
53+
...(providerData ?? {}),
5654
},
5755
});
5856
continue;
@@ -86,9 +84,7 @@ export function itemsToLanguageV1Messages(
8684
throw new UserError(`Unknown content type: ${c.type}`);
8785
}),
8886
providerMetadata: {
89-
[model.provider]: {
90-
...(providerData ?? {}),
91-
},
87+
...(providerData ?? {}),
9288
},
9389
});
9490
continue;
@@ -115,9 +111,7 @@ export function itemsToLanguageV1Messages(
115111
throw new UserError(`Unknown content type: ${exhaustiveCheck}`);
116112
}),
117113
providerMetadata: {
118-
[model.provider]: {
119-
...(providerData ?? {}),
120-
},
114+
...(providerData ?? {}),
121115
},
122116
});
123117
continue;
@@ -131,9 +125,7 @@ export function itemsToLanguageV1Messages(
131125
role: 'assistant',
132126
content: [],
133127
providerMetadata: {
134-
[model.provider]: {
135-
...(item.providerData ?? {}),
136-
},
128+
...(item.providerData ?? {}),
137129
},
138130
};
139131
}
@@ -166,9 +158,7 @@ export function itemsToLanguageV1Messages(
166158
role: 'tool',
167159
content: [toolResult],
168160
providerMetadata: {
169-
[model.provider]: {
170-
...(item.providerData ?? {}),
171-
},
161+
...(item.providerData ?? {}),
172162
},
173163
});
174164
continue;
@@ -195,9 +185,7 @@ export function itemsToLanguageV1Messages(
195185
role: 'assistant',
196186
content: [{ type: 'reasoning', text: item.content[0].text }],
197187
providerMetadata: {
198-
[model.provider]: {
199-
...(item.providerData ?? {}),
200-
},
188+
...(item.providerData ?? {}),
201189
},
202190
});
203191
continue;
@@ -416,9 +404,7 @@ export class AiSdkModel implements Model {
416404
name: toolCall.toolName,
417405
arguments: toolCall.args,
418406
status: 'completed',
419-
providerData: !result.text
420-
? result.providerMetadata?.[this.#model.provider]
421-
: undefined,
407+
providerData: !result.text ? result.providerMetadata : undefined,
422408
});
423409
});
424410

@@ -432,7 +418,7 @@ export class AiSdkModel implements Model {
432418
content: [{ type: 'output_text', text: result.text }],
433419
role: 'assistant',
434420
status: 'completed',
435-
providerData: result.providerMetadata?.[this.#model.provider],
421+
providerData: result.providerMetadata,
436422
});
437423
}
438424

packages/agents-extensions/test/aiSdk.test.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ describe('itemsToLanguageV1Messages', () => {
109109
{
110110
role: 'user',
111111
content: [{ type: 'text', text: 'hi' }],
112-
providerMetadata: { stub: {} },
112+
providerMetadata: {},
113113
},
114114
{
115115
role: 'assistant',
@@ -121,7 +121,7 @@ describe('itemsToLanguageV1Messages', () => {
121121
args: {},
122122
},
123123
],
124-
providerMetadata: { stub: { a: 1 } },
124+
providerMetadata: { a: 1 },
125125
},
126126
{
127127
role: 'tool',
@@ -133,7 +133,7 @@ describe('itemsToLanguageV1Messages', () => {
133133
result: { type: 'output_text', text: 'out' },
134134
},
135135
],
136-
providerMetadata: { stub: { b: 2 } },
136+
providerMetadata: { b: 2 },
137137
},
138138
]);
139139
});
@@ -176,14 +176,14 @@ describe('itemsToLanguageV1Messages', () => {
176176
{ type: 'text', text: 'hi' },
177177
{ type: 'image', image: new URL('http://x/img') },
178178
],
179-
providerMetadata: { stub: {} },
179+
providerMetadata: {},
180180
},
181181
{
182182
role: 'assistant',
183183
content: [
184184
{ type: 'tool-call', toolCallId: '1', toolName: 'do', args: {} },
185185
],
186-
providerMetadata: { stub: {} },
186+
providerMetadata: {},
187187
},
188188
{
189189
role: 'tool',
@@ -195,12 +195,12 @@ describe('itemsToLanguageV1Messages', () => {
195195
result: { type: 'output_text', text: 'out' },
196196
},
197197
],
198-
providerMetadata: { stub: {} },
198+
providerMetadata: {},
199199
},
200200
{
201201
role: 'assistant',
202202
content: [{ type: 'reasoning', text: 'why' }],
203-
providerMetadata: { stub: {} },
203+
providerMetadata: {},
204204
},
205205
]);
206206
});
@@ -219,7 +219,7 @@ describe('itemsToLanguageV1Messages', () => {
219219
{
220220
role: 'user',
221221
content: [{ type: 'text', text: 'hi' }],
222-
providerMetadata: { stub: {} },
222+
providerMetadata: {},
223223
},
224224
]);
225225
});
@@ -300,7 +300,7 @@ describe('AiSdkModel.getResponse', () => {
300300
text: 'ok',
301301
finishReason: 'stop',
302302
usage: { promptTokens: 1, completionTokens: 2 },
303-
providerMetadata: { stub: { p: 1 } },
303+
providerMetadata: { p: 1 },
304304
rawCall: { rawPrompt: '', rawSettings: {} },
305305
};
306306
},
@@ -381,7 +381,7 @@ describe('AiSdkModel.getResponse', () => {
381381
],
382382
finishReason: 'stop',
383383
usage: { promptTokens: 1, completionTokens: 2 },
384-
providerMetadata: { stub: { p: 1 } },
384+
providerMetadata: { p: 1 },
385385
rawCall: { rawPrompt: '', rawSettings: {} },
386386
};
387387
},
@@ -771,7 +771,7 @@ describe('AiSdkModel', () => {
771771
args: {},
772772
},
773773
],
774-
providerMetadata: { fake: { meta: 1 } },
774+
providerMetadata: { meta: 1 },
775775
},
776776
]);
777777
});

0 commit comments

Comments
 (0)