Skip to content

Commit 5d17188

Browse files
feat(extensions): add debug logging for ai-sdk
1 parent f0dc072 commit 5d17188

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

packages/agents-extensions/src/aiSdk.ts

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
Usage,
2525
UserError,
2626
withGenerationSpan,
27+
getLogger,
2728
} from '@openai/agents';
2829
import { isZodObject } from '@openai/agents/utils';
2930

@@ -337,11 +338,17 @@ export function getResponseFormat(
337338
*/
338339
export class AiSdkModel implements Model {
339340
#model: LanguageModelV1;
341+
#logger = getLogger('openai-agents:extensions:ai-sdk');
340342
constructor(model: LanguageModelV1) {
341343
this.#model = model;
342344
}
343345

344346
async getResponse(request: ModelRequest) {
347+
if (this.#logger.dontLogModelData) {
348+
this.#logger.debug('Request received');
349+
} else {
350+
this.#logger.debug('Request:', request);
351+
}
345352
return withGenerationSpan(async (span) => {
346353
try {
347354
span.spanData.model = this.#model.provider + ':' + this.#model.modelId;
@@ -440,7 +447,7 @@ export class AiSdkModel implements Model {
440447
span.spanData.output = output;
441448
}
442449

443-
return {
450+
const response = {
444451
responseId: result.response?.id ?? 'FAKE_ID',
445452
usage: new Usage({
446453
inputTokens: Number.isNaN(result.usage?.promptTokens)
@@ -459,7 +466,15 @@ export class AiSdkModel implements Model {
459466
}),
460467
output,
461468
providerData: result,
462-
};
469+
} as const;
470+
471+
if (this.#logger.dontLogModelData) {
472+
this.#logger.debug('Response ready');
473+
} else {
474+
this.#logger.debug('Response:', response);
475+
}
476+
477+
return response;
463478
} catch (error) {
464479
if (error instanceof Error) {
465480
span.setError({
@@ -494,6 +509,11 @@ export class AiSdkModel implements Model {
494509
async *getStreamedResponse(
495510
request: ModelRequest,
496511
): AsyncIterable<ResponseStreamEvent> {
512+
if (this.#logger.dontLogModelData) {
513+
this.#logger.debug('Request received (streamed)');
514+
} else {
515+
this.#logger.debug('Request (streamed):', request);
516+
}
497517
const span = request.tracing ? createGenerationSpan() : undefined;
498518
try {
499519
if (span) {
@@ -664,6 +684,12 @@ export class AiSdkModel implements Model {
664684
span.spanData.output = outputs;
665685
}
666686

687+
if (this.#logger.dontLogModelData) {
688+
this.#logger.debug('Response ready (streamed)');
689+
} else {
690+
this.#logger.debug('Response (streamed):', finalEvent.response);
691+
}
692+
667693
yield finalEvent;
668694
} catch (error) {
669695
if (span) {

0 commit comments

Comments
 (0)