call method

Future<O> call(
  1. I i
)

Implementation

Future<O> call(I i) async {
  List<dynamic> v = await Future.wait([
    getInstructions().then((i) => i ?? instructions),
    toAgent(i),
    getTools().then((i) => i ?? tools),
  ]);
  AgentMessage m = await Agent(
    llm: llm,
    chatProvider: MemoryChatProvider(
      messages: [Message.system(v[0]), UserMessage(content: v[1])],
    ),
    user: user,
  )(tools: v[2], responseFormat: outputSchema);

  if (O is String) {
    return m.content.toString() as O;
  }

  return fromAgent(jsonDecode(m.content.toString()));
}