Change summary
internal/agent/coordinator.go | 6 +++---
internal/agent/coordinator_test.go | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
Detailed changes
@@ -268,7 +268,7 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
switch providerCfg.Type {
case openai.Name, azure.Name:
_, hasReasoningEffort := mergedOptions["reasoning_effort"]
- if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
+ if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" && model.CatwalkCfg.CanReason {
mergedOptions["reasoning_effort"] = model.ModelCfg.ReasoningEffort
}
if openai.IsResponsesModel(model.CatwalkCfg.ID) {
@@ -292,7 +292,7 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
_, hasThink = mergedOptions["thinking"]
)
switch {
- case !hasEffort && model.ModelCfg.ReasoningEffort != "":
+ case !hasEffort && model.ModelCfg.ReasoningEffort != "" && model.CatwalkCfg.CanReason:
mergedOptions["effort"] = model.ModelCfg.ReasoningEffort
case !hasThink && model.ModelCfg.Think:
mergedOptions["thinking"] = map[string]any{"budget_tokens": 2000}
@@ -349,7 +349,7 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
extraBody := make(map[string]any)
_, hasReasoningEffort := mergedOptions["reasoning_effort"]
- if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
+ if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" && model.CatwalkCfg.CanReason {
switch providerCfg.ID {
case string(catwalk.InferenceProviderIoNet):
extraBody["reasoning"] = map[string]string{"effort": model.ModelCfg.ReasoningEffort}
@@ -399,7 +399,7 @@ func TestGetProviderOptionsReasoningEffort(t *testing.T) {
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
model := Model{
- CatwalkCfg: catwalk.Model{ID: "claude-opus-4-7"},
+ CatwalkCfg: catwalk.Model{ID: "claude-opus-4-7", CanReason: true},
ModelCfg: config.SelectedModel{
Provider: "test",
ReasoningEffort: "max",