test(providers): pin openaicompat providers off adaptive thinking (M7)

Adaptive thinking (thinking.type=adaptive + output_config.effort) is an
Anthropic-protocol mode the langchaingo OpenAI transport cannot emit, and
the openaicompat Call path never threads PrepareAdaptiveCallOptions. So an
adaptive reasoning mode declared in an openaicompat provider's models.yml
would silently no-op.

Assert that none of the openaicompat-backed providers (qwen, glm, deepseek,
kimi, minimax) resolve to adaptive thinking for any agent type. The day
someone adds an adaptive model/mode to one of their configs, this fails
loudly instead of dropping the thinking budget in silence.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Sergey Kozyrenko
2026-06-26 00:52:49 +07:00
co-authored by Claude Sonnet 4.6
parent 4d25cf5c51
commit 40debd150d
@@ -0,0 +1,45 @@
package providers
import (
"testing"
"pentagi/pkg/providers/deepseek"
"pentagi/pkg/providers/glm"
"pentagi/pkg/providers/kimi"
"pentagi/pkg/providers/minimax"
"pentagi/pkg/providers/pconfig"
"pentagi/pkg/providers/qwen"
)
func TestOpenAICompatProvidersDoNotUseAdaptiveThinking(t *testing.T) {
t.Parallel()
providers := []struct {
name string
config func() (*pconfig.ProviderConfig, error)
models func() (pconfig.ModelsConfig, error)
}{
{"qwen", qwen.DefaultProviderConfig, qwen.DefaultModels},
{"glm", glm.DefaultProviderConfig, glm.DefaultModels},
{"deepseek", deepseek.DefaultProviderConfig, deepseek.DefaultModels},
{"kimi", kimi.DefaultProviderConfig, kimi.DefaultModels},
{"minimax", minimax.DefaultProviderConfig, minimax.DefaultModels},
}
for _, p := range providers {
cfg, err := p.config()
if err != nil {
t.Fatalf("%s: DefaultProviderConfig() error: %v", p.name, err)
}
models, err := p.models()
if err != nil {
t.Fatalf("%s: DefaultModels() error: %v", p.name, err)
}
for _, opt := range pconfig.AllAgentTypes {
if cfg.UsesAdaptiveThinking(models, opt) {
t.Errorf("%s/%s resolves to adaptive thinking, but the openaicompat transport never emits it (M7): adaptive thinking is Anthropic/Bedrock-only", p.name, opt)
}
}
}
}