From 21b8d96a52eb039b309ab03817539f9d6eacdebc Mon Sep 17 00:00:00 2001 From: Zhaoyikaiii Date: Mon, 23 Feb 2026 21:52:23 +0800 Subject: [PATCH] feat: add config path option for agent command --- cmd/picoclaw/cmd_agent.go | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/cmd/picoclaw/cmd_agent.go b/cmd/picoclaw/cmd_agent.go index 6d6ff935f..29bef1a8b 100644 --- a/cmd/picoclaw/cmd_agent.go +++ b/cmd/picoclaw/cmd_agent.go @@ -16,6 +16,7 @@ import ( "github.com/sipeed/picoclaw/pkg/agent" "github.com/sipeed/picoclaw/pkg/bus" + "github.com/sipeed/picoclaw/pkg/config" "github.com/sipeed/picoclaw/pkg/logger" "github.com/sipeed/picoclaw/pkg/providers" ) @@ -24,6 +25,7 @@ func agentCmd() { message := "" sessionKey := "cli:default" modelOverride := "" + configPath := "" args := os.Args[2:] for i := 0; i < len(args); i++ { @@ -46,31 +48,42 @@ func agentCmd() { modelOverride = args[i+1] i++ } + case "-c", "--config": + if i+1 < len(args) { + configPath = args[i+1] + i++ + } } } - cfg, err := loadConfig() + var appCfg *config.Config + var err error + if configPath != "" { + appCfg, err = config.LoadConfig(configPath) + } else { + appCfg, err = loadConfig() + } if err != nil { fmt.Printf("Error loading config: %v\n", err) os.Exit(1) } if modelOverride != "" { - cfg.Agents.Defaults.Model = modelOverride + appCfg.Agents.Defaults.Model = modelOverride } - provider, modelID, err := providers.CreateProvider(cfg) + provider, modelID, err := providers.CreateProvider(appCfg) if err != nil { fmt.Printf("Error creating provider: %v\n", err) os.Exit(1) } // Use the resolved model ID from provider creation if modelID != "" { - cfg.Agents.Defaults.Model = modelID + appCfg.Agents.Defaults.Model = modelID } msgBus := bus.NewMessageBus() - agentLoop := agent.NewAgentLoop(cfg, msgBus, provider) + agentLoop := agent.NewAgentLoop(appCfg, msgBus, provider) // Print agent startup info (only for interactive mode) startupInfo := agentLoop.GetStartupInfo()