fix(agent): honor thinking_level for direct model refs (#2286)

This commit is contained in:
Alix-007 2026-04-03 15:57:36 +08:00
parent bd56e10bb8
commit 39eb7ccc2e
2 changed files with 50 additions and 1 deletions

View file

@ -157,7 +157,7 @@ func NewAgentInstance(
} }
var thinkingLevelStr string var thinkingLevelStr string
if mc, err := cfg.GetModelConfig(model); err == nil { if mc := lookupModelConfigByRef(cfg, model); mc != nil {
thinkingLevelStr = mc.ThinkingLevel thinkingLevelStr = mc.ThinkingLevel
} }
thinkingLevel := parseThinkingLevel(thinkingLevelStr) thinkingLevel := parseThinkingLevel(thinkingLevelStr)

View file

@ -165,6 +165,55 @@ func TestNewAgentInstance_ResolveCandidatesFromModelListAlias(t *testing.T) {
} }
} }
func TestNewAgentInstance_ResolvesThinkingLevelByModelRef(t *testing.T) {
tests := []struct {
name string
defaultModel string
modelListName string
modelListID string
}{
{
name: "full model ref",
defaultModel: "deepseek/deepseek-reasoner",
modelListName: "reasoner-alias",
modelListID: "deepseek/deepseek-reasoner",
},
{
name: "model id without protocol",
defaultModel: "deepseek-reasoner",
modelListName: "reasoner-alias",
modelListID: "deepseek/deepseek-reasoner",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
workspace := t.TempDir()
cfg := &config.Config{
Agents: config.AgentsConfig{
Defaults: config.AgentDefaults{
Workspace: workspace,
ModelName: tt.defaultModel,
},
},
ModelList: []*config.ModelConfig{
{
ModelName: tt.modelListName,
Model: tt.modelListID,
ThinkingLevel: "high",
},
},
}
agent := NewAgentInstance(nil, &cfg.Agents.Defaults, cfg, &mockProvider{})
if agent.ThinkingLevel != ThinkingHigh {
t.Fatalf("ThinkingLevel = %q, want %q", agent.ThinkingLevel, ThinkingHigh)
}
})
}
}
func TestNewAgentInstance_PreservesDistinctLimiterIdentityForSharedResolvedModel(t *testing.T) { func TestNewAgentInstance_PreservesDistinctLimiterIdentityForSharedResolvedModel(t *testing.T) {
tmpDir := t.TempDir() tmpDir := t.TempDir()