diff --git a/pkg/agent/loop.go b/pkg/agent/loop.go index 72514884e..00e23b2ce 100644 --- a/pkg/agent/loop.go +++ b/pkg/agent/loop.go @@ -115,7 +115,10 @@ func registerSharedTools( TavilyEnabled: cfg.Tools.Web.Tavily.Enabled, DuckDuckGoMaxResults: cfg.Tools.Web.DuckDuckGo.MaxResults, DuckDuckGoEnabled: cfg.Tools.Web.DuckDuckGo.Enabled, - PerplexityAPIKeys: config.MergeAPIKeys(cfg.Tools.Web.Perplexity.APIKey, cfg.Tools.Web.Perplexity.APIKeys), + PerplexityAPIKeys: config.MergeAPIKeys( + cfg.Tools.Web.Perplexity.APIKey, + cfg.Tools.Web.Perplexity.APIKeys, + ), PerplexityMaxResults: cfg.Tools.Web.Perplexity.MaxResults, PerplexityEnabled: cfg.Tools.Web.Perplexity.Enabled, GLMSearchAPIKey: cfg.Tools.Web.GLMSearch.APIKey, diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index 6979868b1..c29a41e36 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -293,7 +293,7 @@ func TestDefaultConfig_WebTools(t *testing.T) { if cfg.Tools.Web.Brave.MaxResults != 5 { t.Error("Expected Brave MaxResults 5, got ", cfg.Tools.Web.Brave.MaxResults) } - if cfg.Tools.Web.Brave.APIKeys != "" { + if len(cfg.Tools.Web.Brave.APIKeys) != 0 { t.Error("Brave API key should be empty by default") } if cfg.Tools.Web.DuckDuckGo.MaxResults != 5 { diff --git a/pkg/config/defaults.go b/pkg/config/defaults.go index bf86fdd1b..a3283c006 100644 --- a/pkg/config/defaults.go +++ b/pkg/config/defaults.go @@ -332,13 +332,13 @@ func DefaultConfig() *Config { Brave: BraveConfig{ Enabled: false, APIKey: "", - APIKeys: []string{"YOUR_BRAVE_API_KEY"}, + APIKeys: nil, MaxResults: 5, }, Tavily: TavilyConfig{ Enabled: false, APIKey: "", - APIKeys: []string{"YOUR_TAVILY_API_KEY"}, + APIKeys: nil, MaxResults: 5, }, DuckDuckGo: DuckDuckGoConfig{ @@ -348,7 +348,7 @@ func DefaultConfig() *Config { Perplexity: PerplexityConfig{ Enabled: false, APIKey: "", - APIKeys: []string{"YOUR_PERPLEXITY_API_KEY"}, + APIKeys: nil, MaxResults: 5, }, GLMSearch: GLMSearchConfig{ diff --git a/pkg/migrate/sources/openclaw/openclaw_config.go b/pkg/migrate/sources/openclaw/openclaw_config.go index 45727c81b..e0f497752 100644 --- a/pkg/migrate/sources/openclaw/openclaw_config.go +++ b/pkg/migrate/sources/openclaw/openclaw_config.go @@ -717,18 +717,18 @@ type WebToolsConfig struct { } type BraveConfig struct { - Enabled bool `json:"enabled"` - APIKey string `json:"api_key"` + Enabled bool `json:"enabled"` + APIKey string `json:"api_key"` APIKeys []string `json:"api_keys"` - MaxResults int `json:"max_results"` + MaxResults int `json:"max_results"` } type TavilyConfig struct { - Enabled bool `json:"enabled"` - APIKey string `json:"api_key"` + Enabled bool `json:"enabled"` + APIKey string `json:"api_key"` APIKeys []string `json:"api_keys"` - BaseURL string `json:"base_url"` - MaxResults int `json:"max_results"` + BaseURL string `json:"base_url"` + MaxResults int `json:"max_results"` } type DuckDuckGoConfig struct { @@ -737,10 +737,10 @@ type DuckDuckGoConfig struct { } type PerplexityConfig struct { - Enabled bool `json:"enabled"` - APIKey string `json:"api_key"` + Enabled bool `json:"enabled"` + APIKey string `json:"api_key"` APIKeys []string `json:"api_keys"` - MaxResults int `json:"max_results"` + MaxResults int `json:"max_results"` } type CronConfig struct { diff --git a/pkg/tools/web.go b/pkg/tools/web.go index 209b49706..6745b535f 100644 --- a/pkg/tools/web.go +++ b/pkg/tools/web.go @@ -604,7 +604,11 @@ func NewWebSearchTool(opts WebSearchToolOptions) (*WebSearchTool, error) { if err != nil { return nil, fmt.Errorf("failed to create HTTP client for Perplexity: %w", err) } - provider = &PerplexitySearchProvider{keyPool: NewAPIKeyPool(opts.PerplexityAPIKeys), proxy: opts.Proxy, client: client} + provider = &PerplexitySearchProvider{ + keyPool: NewAPIKeyPool(opts.PerplexityAPIKeys), + proxy: opts.Proxy, + client: client, + } if opts.PerplexityMaxResults > 0 { maxResults = opts.PerplexityMaxResults } diff --git a/pkg/tools/web_test.go b/pkg/tools/web_test.go index 453fbbaf6..86f7e512e 100644 --- a/pkg/tools/web_test.go +++ b/pkg/tools/web_test.go @@ -269,7 +269,11 @@ func TestWebTool_WebSearch_NoApiKey(t *testing.T) { // TestWebTool_WebSearch_MissingQuery verifies error handling for missing query func TestWebTool_WebSearch_MissingQuery(t *testing.T) { - tool, err := NewWebSearchTool(WebSearchToolOptions{BraveEnabled: true, BraveAPIKeys: []string{"test-key"}, BraveMaxResults: 5}) + tool, err := NewWebSearchTool(WebSearchToolOptions{ + BraveEnabled: true, + BraveAPIKeys: []string{"test-key"}, + BraveMaxResults: 5, + }) if err != nil { t.Fatalf("Unexpected error: %v", err) }