onToolCall method
Called for each tool call.
Implementation
@override
Future<void> onToolCall({
required Trial trial,
required ToolCallRecord record,
}) async {
final traceId = _traceIdFor(trial);
_client.enqueue(
LangfuseEvent(
id: _uuid.v4(),
type: 'span-create',
timestamp: record.startedAt,
body: {
'id': _uuid.v4(),
'traceId': traceId,
'environment': config.environment,
'name': 'tool.${record.toolName}',
'startTime': record.startedAt.toUtc().toIso8601String(),
'endTime': record.endedAt.toUtc().toIso8601String(),
'input': {
'callId': record.callId,
'toolName': record.toolName,
'arguments': record.arguments,
},
if (record.result != null) 'output': record.result!.toJson(),
if (record.isError) ...{
'level': 'ERROR',
'statusMessage': record.errorMessage ?? 'tool error',
},
},
),
);
}