UNPKG

@agentforce/adk

Version:

AgentForce Agent Development Kit - A powerful framework for building AI agents and servers

75 lines (66 loc) 2.81 kB
import type { AgentForceAgent } from "../../agent"; import { OllamaProvider } from "../../provider/ollama"; import { OpenRouterProvider } from "../../provider/openrouter"; import { GoogleProvider } from "../../provider/google"; import type { ProviderType, ModelConfig } from "../../types"; /** * Connects the AI agent to a Language Learning Model. * Sets the provider and model for the agent using separate parameters. * * @memberof AgentForceAgent * @function useLLM * @param {ProviderType} provider - The AI provider name (see {@link ProviderType} for available options) * @param {string} model - The model name (e.g., "phi4-mini:latest", "gpt-3.5-turbo", "claude-3", "moonshotai/kimi-k2:free") * @param {ModelConfig} [modelConfig] - Optional model configuration (see {@link ModelConfig} for available options) * @returns {AgentForceAgent} Returns the {@link AgentForceAgent} instance for method chaining * * @example * ```typescript * const agent = new AgentForceAgent(config); * * // Set provider and model separately * agent.useLLM("ollama", "phi4-mini:latest"); * * // With model configuration * agent.useLLM("ollama", "phi4-mini:latest", { temperature: 0.8, maxTokens: 8192 }); * * // Different providers * agent.useLLM("openai", "gpt-3.5-turbo"); * agent.useLLM("anthropic", "claude-3"); * agent.useLLM("openrouter", "moonshotai/kimi-k2:free"); * * // Method chaining * agent.useLLM("google", "gemini-1.5-flash").useLLM("ollama", "llama2"); * ``` */ export function useLLM(this: AgentForceAgent, provider: ProviderType = "ollama", model = "gemma3:4b", modelConfig?: ModelConfig): AgentForceAgent { const logger = this.getLogger(); // Update agent settings with provided parameters this.setProvider(provider); this.setModel(model); this.setModelConfig(modelConfig); // persist model configuration on agent // Initialize the appropriate provider switch ((provider || "ollama").toLowerCase()) { case "ollama": // Initialize Ollama provider new OllamaProvider(model, modelConfig); break; case "openrouter": // Initialize OpenRouter provider new OpenRouterProvider(model, modelConfig); break; case "google": new GoogleProvider(model, modelConfig); break; case "openai": logger.debug(`⚠️ OpenAI provider not implemented yet. Model: ${model}`); break; case "anthropic": logger.debug(`⚠️ Anthropic provider not implemented yet. Model: ${model}`); break; default: logger.debug(`⚠️ Unknown provider: ${provider}. Model: ${model}`); break; } return this; }