Skip to content

Commit 09900d0

Browse files
committed
feat(telemetry): telemetry settings
1 parent cd1b12e commit 09900d0

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/flow.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,14 @@ export type StreamChatFinishCallback<C extends Context, TOOLS extends ToolSet> =
2929
ctx: IRunContext<C>
3030
) => Promise<void> | void;
3131

32+
type TelemetrySettingsCallback<C extends Context> = (
33+
agent: LlmAgent<C, ToolParameters>,
34+
ctx: IRunContext<C>
35+
) => TelemetrySettings | undefined;
36+
3237
type FlowOptions<C extends Context> = {
3338
onChatStreamFinish?: StreamChatFinishCallback<C, ToolSet>;
34-
telemetry?: boolean;
39+
telemetry?: false | TelemetrySettings | TelemetrySettingsCallback<C>;
3540
};
3641

3742
export abstract class AgentFlow<C extends Context> {
@@ -79,7 +84,7 @@ export abstract class AgentFlow<C extends Context> {
7984
experimental_generateMessageId: this.generateUUID,
8085
onFinish,
8186
onStepFinish,
82-
experimental_telemetry: this.getTelemetry(agent),
87+
experimental_telemetry: this.getTelemetry(agent, ctx),
8388
});
8489
}
8590

@@ -99,7 +104,7 @@ export abstract class AgentFlow<C extends Context> {
99104
onStepFinish,
100105
experimental_generateMessageId: this.generateUUID,
101106
experimental_output: agent.output ? Output.object({ schema: agent.output }) : undefined,
102-
experimental_telemetry: this.getTelemetry(agent),
107+
experimental_telemetry: this.getTelemetry(agent, ctx),
103108
});
104109
}
105110

@@ -117,7 +122,7 @@ export abstract class AgentFlow<C extends Context> {
117122
system: getContextPrompt(agent.system, ctx),
118123
...prompt,
119124
schema: agent.output,
120-
experimental_telemetry: this.getTelemetry(agent),
125+
experimental_telemetry: this.getTelemetry(agent, ctx),
121126
});
122127
}
123128

@@ -200,11 +205,15 @@ export abstract class AgentFlow<C extends Context> {
200205
}
201206

202207
private getTelemetry<P extends ToolParameters>(
203-
agent: LlmAgent<C, P>
208+
agent: LlmAgent<C, P>,
209+
ctx: IRunContext<C>
204210
): TelemetrySettings | undefined {
205-
if (!agent.telemetry) {
211+
if (!this.options.telemetry) {
206212
return undefined;
207213
}
208-
return { isEnabled: !!this.options.telemetry, ...agent.telemetry };
214+
if (typeof this.options.telemetry === 'function') {
215+
return this.options.telemetry(agent, ctx);
216+
}
217+
return { ...(agent.telemetry ?? {}), ...this.options.telemetry };
209218
}
210219
}

0 commit comments

Comments
 (0)