mirror of
https://github.com/mudler/LocalAI.git
synced 2026-04-01 21:53:01 -04:00
feat: add agentic management (#8820)
* feat: add standalone and agentic functionalities Signed-off-by: Ettore Di Giacinto <mudler@localai.io> * expose agents via responses api Signed-off-by: Ettore Di Giacinto <mudler@localai.io> --------- Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
This commit is contained in:
committed by
GitHub
parent
e1df6807dc
commit
ac48867b7d
@@ -87,6 +87,28 @@ type RunCMD struct {
|
||||
AgentJobRetentionDays int `env:"LOCALAI_AGENT_JOB_RETENTION_DAYS,AGENT_JOB_RETENTION_DAYS" default:"30" help:"Number of days to keep agent job history (default: 30)" group:"api"`
|
||||
OpenResponsesStoreTTL string `env:"LOCALAI_OPEN_RESPONSES_STORE_TTL,OPEN_RESPONSES_STORE_TTL" default:"0" help:"TTL for Open Responses store (e.g., 1h, 30m, 0 = no expiration)" group:"api"`
|
||||
|
||||
// Agent Pool (LocalAGI)
|
||||
DisableAgents bool `env:"LOCALAI_DISABLE_AGENTS" default:"false" help:"Disable the agent pool feature" group:"agents"`
|
||||
AgentPoolAPIURL string `env:"LOCALAI_AGENT_POOL_API_URL" help:"Default API URL for agents (defaults to self-referencing LocalAI)" group:"agents"`
|
||||
AgentPoolAPIKey string `env:"LOCALAI_AGENT_POOL_API_KEY" help:"Default API key for agents (defaults to first LocalAI API key)" group:"agents"`
|
||||
AgentPoolDefaultModel string `env:"LOCALAI_AGENT_POOL_DEFAULT_MODEL" help:"Default model for agents" group:"agents"`
|
||||
AgentPoolMultimodalModel string `env:"LOCALAI_AGENT_POOL_MULTIMODAL_MODEL" help:"Default multimodal model for agents" group:"agents"`
|
||||
AgentPoolTranscriptionModel string `env:"LOCALAI_AGENT_POOL_TRANSCRIPTION_MODEL" help:"Default transcription model for agents" group:"agents"`
|
||||
AgentPoolTranscriptionLanguage string `env:"LOCALAI_AGENT_POOL_TRANSCRIPTION_LANGUAGE" help:"Default transcription language for agents" group:"agents"`
|
||||
AgentPoolTTSModel string `env:"LOCALAI_AGENT_POOL_TTS_MODEL" help:"Default TTS model for agents" group:"agents"`
|
||||
AgentPoolStateDir string `env:"LOCALAI_AGENT_POOL_STATE_DIR" help:"State directory for agent pool" group:"agents"`
|
||||
AgentPoolTimeout string `env:"LOCALAI_AGENT_POOL_TIMEOUT" default:"5m" help:"Default agent timeout" group:"agents"`
|
||||
AgentPoolEnableSkills bool `env:"LOCALAI_AGENT_POOL_ENABLE_SKILLS" default:"false" help:"Enable skills service for agents" group:"agents"`
|
||||
AgentPoolVectorEngine string `env:"LOCALAI_AGENT_POOL_VECTOR_ENGINE" default:"chromem" help:"Vector engine type for agent knowledge base" group:"agents"`
|
||||
AgentPoolEmbeddingModel string `env:"LOCALAI_AGENT_POOL_EMBEDDING_MODEL" default:"granite-embedding-107m-multilingual" help:"Embedding model for agent knowledge base" group:"agents"`
|
||||
AgentPoolCustomActionsDir string `env:"LOCALAI_AGENT_POOL_CUSTOM_ACTIONS_DIR" help:"Custom actions directory for agents" group:"agents"`
|
||||
AgentPoolDatabaseURL string `env:"LOCALAI_AGENT_POOL_DATABASE_URL" help:"Database URL for agent collections" group:"agents"`
|
||||
AgentPoolMaxChunkingSize int `env:"LOCALAI_AGENT_POOL_MAX_CHUNKING_SIZE" default:"400" help:"Maximum chunking size for knowledge base documents" group:"agents"`
|
||||
AgentPoolChunkOverlap int `env:"LOCALAI_AGENT_POOL_CHUNK_OVERLAP" default:"0" help:"Chunk overlap size for knowledge base documents" group:"agents"`
|
||||
AgentPoolEnableLogs bool `env:"LOCALAI_AGENT_POOL_ENABLE_LOGS" default:"false" help:"Enable agent logging" group:"agents"`
|
||||
AgentPoolCollectionDBPath string `env:"LOCALAI_AGENT_POOL_COLLECTION_DB_PATH" help:"Database path for agent collections" group:"agents"`
|
||||
AgentHubURL string `env:"LOCALAI_AGENT_HUB_URL" default:"https://agenthub.localai.io" help:"URL for the agent hub where users can browse and download agent configurations" group:"agents"`
|
||||
|
||||
Version bool
|
||||
}
|
||||
|
||||
@@ -203,6 +225,68 @@ func (r *RunCMD) Run(ctx *cliContext.Context) error {
|
||||
opts = append(opts, config.DisableMCP)
|
||||
}
|
||||
|
||||
// Agent Pool
|
||||
if r.DisableAgents {
|
||||
opts = append(opts, config.DisableAgentPool)
|
||||
}
|
||||
if r.AgentPoolAPIURL != "" {
|
||||
opts = append(opts, config.WithAgentPoolAPIURL(r.AgentPoolAPIURL))
|
||||
}
|
||||
if r.AgentPoolAPIKey != "" {
|
||||
opts = append(opts, config.WithAgentPoolAPIKey(r.AgentPoolAPIKey))
|
||||
}
|
||||
if r.AgentPoolDefaultModel != "" {
|
||||
opts = append(opts, config.WithAgentPoolDefaultModel(r.AgentPoolDefaultModel))
|
||||
}
|
||||
if r.AgentPoolMultimodalModel != "" {
|
||||
opts = append(opts, config.WithAgentPoolMultimodalModel(r.AgentPoolMultimodalModel))
|
||||
}
|
||||
if r.AgentPoolTranscriptionModel != "" {
|
||||
opts = append(opts, config.WithAgentPoolTranscriptionModel(r.AgentPoolTranscriptionModel))
|
||||
}
|
||||
if r.AgentPoolTranscriptionLanguage != "" {
|
||||
opts = append(opts, config.WithAgentPoolTranscriptionLanguage(r.AgentPoolTranscriptionLanguage))
|
||||
}
|
||||
if r.AgentPoolTTSModel != "" {
|
||||
opts = append(opts, config.WithAgentPoolTTSModel(r.AgentPoolTTSModel))
|
||||
}
|
||||
if r.AgentPoolStateDir != "" {
|
||||
opts = append(opts, config.WithAgentPoolStateDir(r.AgentPoolStateDir))
|
||||
}
|
||||
if r.AgentPoolTimeout != "" {
|
||||
opts = append(opts, config.WithAgentPoolTimeout(r.AgentPoolTimeout))
|
||||
}
|
||||
if r.AgentPoolEnableSkills {
|
||||
opts = append(opts, config.EnableAgentPoolSkills)
|
||||
}
|
||||
if r.AgentPoolVectorEngine != "" {
|
||||
opts = append(opts, config.WithAgentPoolVectorEngine(r.AgentPoolVectorEngine))
|
||||
}
|
||||
if r.AgentPoolEmbeddingModel != "" {
|
||||
opts = append(opts, config.WithAgentPoolEmbeddingModel(r.AgentPoolEmbeddingModel))
|
||||
}
|
||||
if r.AgentPoolCustomActionsDir != "" {
|
||||
opts = append(opts, config.WithAgentPoolCustomActionsDir(r.AgentPoolCustomActionsDir))
|
||||
}
|
||||
if r.AgentPoolDatabaseURL != "" {
|
||||
opts = append(opts, config.WithAgentPoolDatabaseURL(r.AgentPoolDatabaseURL))
|
||||
}
|
||||
if r.AgentPoolMaxChunkingSize > 0 {
|
||||
opts = append(opts, config.WithAgentPoolMaxChunkingSize(r.AgentPoolMaxChunkingSize))
|
||||
}
|
||||
if r.AgentPoolChunkOverlap > 0 {
|
||||
opts = append(opts, config.WithAgentPoolChunkOverlap(r.AgentPoolChunkOverlap))
|
||||
}
|
||||
if r.AgentPoolEnableLogs {
|
||||
opts = append(opts, config.EnableAgentPoolLogs)
|
||||
}
|
||||
if r.AgentPoolCollectionDBPath != "" {
|
||||
opts = append(opts, config.WithAgentPoolCollectionDBPath(r.AgentPoolCollectionDBPath))
|
||||
}
|
||||
if r.AgentHubURL != "" {
|
||||
opts = append(opts, config.WithAgentHubURL(r.AgentHubURL))
|
||||
}
|
||||
|
||||
if idleWatchDog || busyWatchDog {
|
||||
opts = append(opts, config.EnableWatchDog)
|
||||
if idleWatchDog {
|
||||
|
||||
Reference in New Issue
Block a user