execute method

  1. @override
Future<Content> execute(
  1. ToolContext context,
  2. Map<String, dynamic> arguments
)
override

Implementation

@override
Future<Content> execute(
  ToolContext context,
  Map<String, dynamic> arguments,
) async {
  final result = await context.room.agents.invokeTool(
    toolkit: toolkitName,
    tool: name,
    participantId: participantId,
    onBehalfOfId: onBehalfOfId,
    input: ToolContentInput(JsonContent(json: arguments)),
  );

  switch (result) {
    case ToolContentOutput(:final content):
      return content;
    case ToolStreamOutput():
      throw AgentException(
        "tool '$toolkitName/$name' returned a stream; expected a single chunk",
      );
  }
}