Functions
Grouped function reference for AI extension entry points and major subpackages
How to Read This Page
The AI module has a very large exported surface. This page is organized by the functions you typically call directly in application and extension code.
Package ai (Root)
Extension Construction and Lifecycle
NewExtension(opts ...ConfigOption) forge.ExtensionNewExtensionWithConfig(config Config) forge.Extension(*Extension).Register(app forge.App) error(*Extension).Start(ctx context.Context) error(*Extension).Stop(ctx context.Context) error(*Extension).Health(ctx context.Context) error
Config and Options
DefaultConfig() Config(Config).ToInternal(logger forge.Logger, metrics forge.Metrics) internal.AIConfigWithConfig(config Config) ConfigOptionWithEnableLLM(enabled bool) ConfigOptionWithEnableAgents(enabled bool) ConfigOptionWithEnableTraining(enabled bool) ConfigOptionWithEnableInference(enabled bool) ConfigOptionWithEnableCoordination(enabled bool) ConfigOptionWithMaxConcurrency(max int) ConfigOptionWithRequestTimeout(timeout time.Duration) ConfigOptionWithCacheSize(size int) ConfigOptionWithLLMConfig(llm LLMConfiguration) ConfigOptionWithInferenceConfig(inference InferenceConfiguration) ConfigOptionWithAgentsConfig(agents AgentConfiguration) ConfigOptionWithMiddlewareConfig(middleware MiddlewareConfiguration) ConfigOptionWithTrainingConfig(training TrainingConfiguration) ConfigOptionWithStateStore(store StateStoreConfig) ConfigOptionWithVectorStore(store VectorStoreConfig) ConfigOption
Agent HTTP Controller
NewAgentController(c forge.Container) *AgentController(*AgentController).Routes(r forge.Router)(*AgentController).CreateAgent(c forge.Context) error(*AgentController).GetAgent(c forge.Context) error(*AgentController).UpdateAgent(c forge.Context) error(*AgentController).DeleteAgent(c forge.Context) error(*AgentController).ListAgents(c forge.Context) error(*AgentController).ExecuteAgent(c forge.Context) error(*AgentController).ChatWithAgent(c forge.Context) error(*AgentController).ListTemplates(c forge.Context) error
Agent Factory and Manager
NewAgentFactory(llm aisdk.LLMManager, state aisdk.StateStore, logger forge.Logger, metrics forge.Metrics) *AgentFactory(*AgentFactory).CreateAgent(agentType string, config map[string]any) (*aisdk.Agent, error)(*AgentFactory).ListTemplates() []stringNewAgentManager(factory *AgentFactory, stateStore aisdk.StateStore, logger forge.Logger, metrics forge.Metrics) *AgentManager(*AgentManager).CreateAgent(ctx context.Context, def *AgentDefinition) (*aisdk.Agent, error)(*AgentManager).GetAgent(ctx context.Context, id string) (*aisdk.Agent, error)(*AgentManager).GetDefinition(ctx context.Context, id string) (*AgentDefinition, error)(*AgentManager).UpdateAgent(ctx context.Context, id string, updates *AgentDefinition) error(*AgentManager).DeleteAgent(ctx context.Context, id string) error(*AgentManager).ListAgents(ctx context.Context) ([]*AgentDefinition, error)
Store and LLM Factory Functions
CreateStateStore(ctx context.Context, cfg StateStoreConfig, logger forge.Logger, metrics forge.Metrics) (aisdk.StateStore, error)CreateVectorStore(ctx context.Context, cfg VectorStoreConfig, logger forge.Logger, metrics forge.Metrics) (aisdk.VectorStore, error)CreateLLMManager(cfg LLMConfiguration, logger forge.Logger, metrics forge.Metrics) (aisdk.LLMManager, error)
DI Helper Functions
GetLLMManager(c forge.Container) (aisdk.LLMManager, error)MustGetLLMManager(c forge.Container) aisdk.LLMManagerGetAgentManager(c forge.Container) (*AgentManager, error)MustGetAgentManager(c forge.Container) *AgentManagerGetAgentFactory(c forge.Container) (*AgentFactory, error)MustGetAgentFactory(c forge.Container) *AgentFactoryGetStateStore(c forge.Container) (aisdk.StateStore, error)MustGetStateStore(c forge.Container) aisdk.StateStoreGetVectorStore(c forge.Container) (aisdk.VectorStore, error)MustGetVectorStore(c forge.Container) aisdk.VectorStoreGetModelTrainer(c forge.Container) (training.ModelTrainer, error)MustGetModelTrainer(c forge.Container) training.ModelTrainerGetDataManager(c forge.Container) (training.DataManager, error)MustGetDataManager(c forge.Container) training.DataManagerGetPipelineManager(c forge.Container) (training.PipelineManager, error)MustGetPipelineManager(c forge.Container) training.PipelineManager
Package agents
Template constructors and lookup:
CacheOptimizationTemplate() AgentTemplateSchedulerOptimizationTemplate() AgentTemplateAnomalyDetectionTemplate() AgentTemplateLoadBalancerTemplate() AgentTemplateSecurityMonitorTemplate() AgentTemplateResourceOptimizerTemplate() AgentTemplatePredictorTemplate() AgentTemplateOptimizerTemplate() AgentTemplateGetTemplate(agentType string) (AgentTemplate, bool)
Package inference
Engine Lifecycle and Inference
NewInferenceEngine(config InferenceConfig) (*InferenceEngine, error)(*InferenceEngine).Initialize(ctx context.Context, config InferenceConfig) error(*InferenceEngine).Start(ctx context.Context) error(*InferenceEngine).Stop(ctx context.Context) error(*InferenceEngine).AddModel(model models.Model) error(*InferenceEngine).RemoveModel(modelID string) error(*InferenceEngine).Infer(ctx context.Context, request InferenceRequest) (InferenceResponse, error)(*InferenceEngine).BatchInfer(ctx context.Context, requests []InferenceRequest) ([]InferenceResponse, error)(*InferenceEngine).Scale(ctx context.Context, replicas int) error(*InferenceEngine).GetStats() InferenceStats(*InferenceEngine).GetHealth() InferenceHealth
Batching
NewRequestBatcher(config RequestBatcherConfig) (*RequestBatcher, error)(*RequestBatcher).Start(ctx context.Context) error(*RequestBatcher).Stop(ctx context.Context) error(*RequestBatcher).QueueRequest(ctx context.Context, request InferenceRequest) error(*RequestBatcher).ProcessBatch(ctx context.Context, requests []InferenceRequest) ([]InferenceResponse, error)(*RequestBatcher).QueueSize() int(*RequestBatcher).GetStats() BatcherStats
Caching
NewInferenceCache(config InferenceCacheConfig) (*InferenceCache, error)(*InferenceCache).Start(ctx context.Context) error(*InferenceCache).Stop(ctx context.Context) error(*InferenceCache).Get(request InferenceRequest) (InferenceResponse, bool)(*InferenceCache).Set(request InferenceRequest, response InferenceResponse)(*InferenceCache).Delete(request InferenceRequest)(*InferenceCache).Clear()(*InferenceCache).GetStats() CacheStats
Pipeline and Scaling
NewInferencePipeline(config InferencePipelineConfig) (*InferencePipeline, error)(*InferencePipeline).Start(ctx context.Context) error(*InferencePipeline).Stop(ctx context.Context) error(*InferencePipeline).Process(ctx context.Context, request InferenceRequest) (InferenceResponse, error)NewInferenceScaler(config InferenceScalerConfig) (*InferenceScaler, error)(*InferenceScaler).Start(ctx context.Context) error(*InferenceScaler).Stop(ctx context.Context) error(*InferenceScaler).Scale(ctx context.Context, targetWorkers int) error
Package training
Primary constructors and interfaces exported through ai/exports.go:
training.NewModelTrainer(...)training.NewDataManager(...)training.NewPipelineManager(...)training.ModelTrainerinterfacetraining.DataManagerinterfacetraining.PipelineManagerinterface
The interface surface includes training lifecycle, dataset preparation, model save/load/export, and pipeline execution APIs.
Package middleware
Primary constructors:
NewAdaptiveLoadBalance(...)NewAnomalyDetection(...)NewIntelligentRateLimit(...)NewContentPersonalization(...)NewResponseOptimization(...)NewAISecurityScanner(...)
Each middleware exposes standard runtime methods:
Name() stringType() ai.AIMiddlewareTypeInitialize(ctx context.Context, config ai.AIMiddlewareConfig) errorProcess(ctx context.Context, req *http.Request, resp http.ResponseWriter, next http.HandlerFunc) errorGetStats() ai.AIMiddlewareStats
Package monitoring
Primary monitoring constructors:
NewAIHealthMonitor(...)NewAIMetricsCollector(...)NewAIAlertManager(...)NewAIDashboard(...)
These provide independent health checks, metrics aggregation, alerting, and dashboard APIs.
Source Navigation Tip
For full symbol exploration across all subpackages:
go doc github.com/xraph/forge/extensions/ai/...Use this together with this page to separate extension entry points from advanced package internals.
How is this guide?