From 45959cb79d0b7940c6bbb449b8f28e7cf6068ff0 Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Sun, 17 May 2026 00:19:55 +0200 Subject: [PATCH] agent: apply config backend/model when switching agents via /agent --- pkg/agent/commands.go | 13 +++++++++++++ pkg/agent/core.go | 10 ++++++++++ 2 files changed, 23 insertions(+) diff --git a/pkg/agent/commands.go b/pkg/agent/commands.go index 45f5558..f16ee47 100644 --- a/pkg/agent/commands.go +++ b/pkg/agent/commands.go @@ -207,6 +207,19 @@ func (s *agent) handleCommand(ctx context.Context, input string, handler EventHa } d := s.newDispatcher() env := BuildAgentEnv(cfg, d, s.cwd) + if env.Backend != "" { + newBe, err := s.newBackend(env.Backend) + if err != nil { + handler(infoEvent(fmt.Sprintf("error: backend %q: %v", env.Backend, err))) + return + } + if env.Model != "" { + newBe.SetModel(env.Model) + } + s.cfg.Backend = newBe + } else if env.Model != "" { + s.cfg.Backend.SetModel(env.Model) + } s.dispatcher = env.dispatcher s.hooks = env.Hooks s.cfg.preamble = env.preamble diff --git a/pkg/agent/core.go b/pkg/agent/core.go index 000ffc3..340c60d 100644 --- a/pkg/agent/core.go +++ b/pkg/agent/core.go @@ -38,6 +38,8 @@ type AgentEnv struct { preamble string genParams backend.GenerationParams maxSteps int + Backend string // from config; empty means no override + Model string // from config; empty means no override Messages []string } @@ -136,6 +138,12 @@ func BuildAgentEnv(cfg *config.Config, d tools.Dispatcher, cwd string) AgentEnv } } + var backendName, modelName string + if cfg != nil { + backendName = cfg.Backend + modelName = cfg.Model + } + return AgentEnv{ dispatcher: d, tools: allTools, @@ -145,6 +153,8 @@ func BuildAgentEnv(cfg *config.Config, d tools.Dispatcher, cwd string) AgentEnv preamble: preamble, genParams: genParams, maxSteps: maxSteps, + Backend: backendName, + Model: modelName, Messages: messages, } }