openAgent method

  1. @override
Future<OmnixAgentSession> openAgent(
  1. OmnixAgentConfiguration configuration,
  2. OmnixCapabilityRegistrySnapshot capabilities
)
override

Opens a session using the supplied immutable capability state.

Implementation

@override
Future<OmnixAgentSession> openAgent(
  OmnixAgentConfiguration configuration,
  OmnixCapabilityRegistrySnapshot capabilities,
) async {
  final model = await getActiveFlutterGemmaModel(
    maxTokens: configuration.maxTokens,
    preferredBackend: configuration.preferredBackend,
    supportImage: configuration.supportsImages,
    supportAudio: configuration.supportsAudio,
  );
  final providerRegistry = skills.buildProviderRegistry(capabilities);
  final session = await agent.AgentSession.fromModel(
    model,
    registry: providerRegistry,
    executors: executors,
    secretStore: secretStore,
    maxIterations: configuration.maxSteps,
    modelType: flutterGemmaModelType(configuration.modelTemplate),
    supportsFunctionCalls: configuration.supportsFunctionCalls,
    supportImage: configuration.supportsImages,
    supportAudio: configuration.supportsAudio,
    temperature: configuration.temperature,
    randomSeed: configuration.randomSeed,
    topK: configuration.topK,
    topP: configuration.topP,
    maxOutputTokens: configuration.maxOutputTokens,
    systemPromptTemplate:
        configuration.systemPromptTemplate ?? agent.defaultAgentSystemPrompt,
  );
  return FlutterGemmaAgentSession(session);
}