From ff2cb48c1e16523a9dd2e678ae6820aecfa0163c Mon Sep 17 00:00:00 2001 From: mingmxren Date: Fri, 6 Mar 2026 13:06:30 +0800 Subject: [PATCH] feat: wire SubagentsConfig.Model and model validator in agent loop Co-Authored-By: Claude Opus 4.6 --- pkg/agent/loop.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/agent/loop.go b/pkg/agent/loop.go index 685b346e6..3961a65df 100644 --- a/pkg/agent/loop.go +++ b/pkg/agent/loop.go @@ -198,6 +198,19 @@ func registerSharedTools( if cfg.Tools.IsToolEnabled("subagent") { subagentManager := tools.NewSubagentManager(provider, agent.Model, agent.Workspace, msgBus) subagentManager.SetLLMOptions(agent.MaxTokens, agent.Temperature) + + // Set subagent default model from config + if agent.Subagents != nil && agent.Subagents.Model != nil && + agent.Subagents.Model.Primary != "" { + subagentManager.SetSubagentDefaultModel(agent.Subagents.Model.Primary) + } + + // Set model validator using config's model_list + subagentManager.SetModelValidator(func(modelName string) bool { + _, err := cfg.GetModelConfig(modelName) + return err == nil + }) + spawnTool := tools.NewSpawnTool(subagentManager) currentAgentID := agentID spawnTool.SetAllowlistChecker(func(targetAgentID string) bool {