createSleepTool function
Builds the tool that waits for a requested duration.
Implementation
Tool<JsonMap, String> createSleepTool(
Genkit ai, {
required ToolRuntime runtime,
}) {
return defineTextTool(
ai,
runtime: runtime,
name: 'sleep',
description: _description,
properties: <String, Object?>{
'duration_ms': integerProperty('How long to wait, in milliseconds.'),
},
required: <String>['duration_ms'],
run: (input) async {
final durationMs = (readInt(input, 'duration_ms') ?? 1000).clamp(0, _maxDurationMs);
runtime.startTool('sleep', 'Waiting $durationMs ms');
await Future<void>.delayed(Duration(milliseconds: durationMs));
return 'Waited $durationMs ms.';
},
);
}