feat: add agent options to model config (#6383)

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
This commit is contained in:
Ettore Di Giacinto
2025-10-05 21:54:04 +02:00
committed by GitHub
parent 698205a2f3
commit 85e27ec74c
3 changed files with 74 additions and 10 deletions

View File

@@ -95,19 +95,35 @@ func MCPCompletionEndpoint(cl *config.ModelConfigLoader, ml *model.ModelLoader,
// we satisfy to just call internally ComputeChoices
defaultLLM := cogito.NewOpenAILLM(config.Name, apiKey, "http://127.0.0.1:"+port)
f, err := cogito.ExecuteTools(
defaultLLM, fragment,
cogitoOpts := []cogito.Option{
cogito.WithStatusCallback(func(s string) {
log.Debug().Msgf("[model agent] [model: %s] Status: %s", config.Name, s)
}),
cogito.WithContext(ctx),
// TODO: move these to configs
cogito.EnableToolReEvaluator,
cogito.WithIterations(3),
cogito.WithMaxAttempts(3),
cogito.WithTools(
cogitoTools...,
),
cogito.WithTools(cogitoTools...),
cogito.WithIterations(3), // default to 3 iterations
cogito.WithMaxAttempts(3), // default to 3 attempts
}
if config.Agent.EnableReasoning {
cogitoOpts = append(cogitoOpts, cogito.EnableToolReasoner)
}
if config.Agent.EnableReEvaluation {
cogitoOpts = append(cogitoOpts, cogito.EnableToolReEvaluator)
}
if config.Agent.MaxIterations != 0 {
cogitoOpts = append(cogitoOpts, cogito.WithIterations(config.Agent.MaxIterations))
}
if config.Agent.MaxAttempts != 0 {
cogitoOpts = append(cogitoOpts, cogito.WithMaxAttempts(config.Agent.MaxAttempts))
}
f, err := cogito.ExecuteTools(
defaultLLM, fragment,
cogitoOpts...,
)
if err != nil && !errors.Is(err, cogito.ErrNoToolSelected) {
return err