on main help sign in
feat: prepare alibaba migration to `/messages` (#3067)
f6b8592Andrey Nering
internal/agent/coordinator.go+24−5
@@ -358,13 +358,32 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
358 var (
358 var (
359 _, hasEffort = mergedOptions["effort"]
359 _, hasEffort = mergedOptions["effort"]
360 _, hasThink = mergedOptions["thinking"]
360 _, hasThink = mergedOptions["thinking"]
361+ extraBody = make(map[string]any)
361 )
362 )
363+
362− switch {
364+ switch providerCfg.ID {
365+ case string(catwalk.InferenceProviderAlibabaSingapore):
366+ switch {
363− case !hasEffort && shouldSetEffort:
367+ case !hasEffort && shouldSetEffort:
368+ extraBody["reasoning_effort"] = model.ModelCfg.ReasoningEffort
369+ case !hasThink && model.CatwalkCfg.CanReason:
370+ if model.ModelCfg.Think {
371+ extraBody["thinking"] = map[string]any{"type": "enabled"}
372+ } else {
373+ extraBody["thinking"] = map[string]any{"type": "disabled"}
374+ }
375+ }
376+ mergedOptions["extra_body"] = extraBody
377+
378+ default:
379+ switch {
380+ case !hasEffort && shouldSetEffort:
364− mergedOptions["effort"] = model.ModelCfg.ReasoningEffort
381+ mergedOptions["effort"] = model.ModelCfg.ReasoningEffort
365− case !hasThink && model.ModelCfg.Think:
382+ case !hasThink && model.ModelCfg.Think:
366− mergedOptions["thinking"] = map[string]any{"budget_tokens": 2000}
383+ mergedOptions["thinking"] = map[string]any{"budget_tokens": 2000}
384+ }
367 }
385 }
386+
368 parsed, err := anthropic.ParseOptions(mergedOptions)
387 parsed, err := anthropic.ParseOptions(mergedOptions)
369 if err == nil {
388 if err == nil {
370 options[anthropic.Name] = parsed
389 options[anthropic.Name] = parsed