config: add prefer_native and NativeSearchCapable for model-native search
This commit is contained in:
parent
f2addff099
commit
3a230bdfce
4 changed files with 17 additions and 0 deletions
|
|
@ -313,6 +313,7 @@
|
|||
"allow_write_paths": null,
|
||||
"web": {
|
||||
"enabled": true,
|
||||
"prefer_native": true,
|
||||
"brave": {
|
||||
"enabled": false,
|
||||
"api_key": "YOUR_BRAVE_API_KEY",
|
||||
|
|
|
|||
|
|
@ -690,6 +690,12 @@ type WebToolsConfig struct {
|
|||
Perplexity PerplexityConfig ` json:"perplexity"`
|
||||
SearXNG SearXNGConfig ` json:"searxng"`
|
||||
GLMSearch GLMSearchConfig ` json:"glm_search"`
|
||||
// PreferNative controls whether to use provider-native web search when
|
||||
// the active LLM supports it (e.g. OpenAI web_search_preview). When true,
|
||||
// the client-side web_search tool is hidden to avoid duplicate search surfaces,
|
||||
// and the provider's built-in search is used instead. Falls back to client-side
|
||||
// search when the provider does not support native search.
|
||||
PreferNative bool `json:"prefer_native" env:"PICOCLAW_TOOLS_WEB_PREFER_NATIVE"`
|
||||
// Proxy is an optional proxy URL for web tools (http/https/socks5/socks5h).
|
||||
// For authenticated proxies, prefer HTTP_PROXY/HTTPS_PROXY env vars instead of embedding credentials in config.
|
||||
Proxy string `json:"proxy,omitempty" env:"PICOCLAW_TOOLS_WEB_PROXY"`
|
||||
|
|
|
|||
|
|
@ -410,6 +410,7 @@ func DefaultConfig() *Config {
|
|||
ToolConfig: ToolConfig{
|
||||
Enabled: true,
|
||||
},
|
||||
PreferNative: true,
|
||||
Proxy: "",
|
||||
FetchLimitBytes: 10 * 1024 * 1024, // 10MB by default
|
||||
Brave: BraveConfig{
|
||||
|
|
|
|||
|
|
@ -44,6 +44,15 @@ type ThinkingCapable interface {
|
|||
SupportsThinking() bool
|
||||
}
|
||||
|
||||
// NativeSearchCapable is an optional interface for providers that support
|
||||
// built-in web search during LLM inference (e.g. OpenAI web_search_preview,
|
||||
// xAI Grok search). When the active provider implements this interface and
|
||||
// returns true, the agent loop can hide the client-side web_search tool to
|
||||
// avoid duplicate search surfaces and use the provider's native search instead.
|
||||
type NativeSearchCapable interface {
|
||||
SupportsNativeSearch() bool
|
||||
}
|
||||
|
||||
// FailoverReason classifies why an LLM request failed for fallback decisions.
|
||||
type FailoverReason string
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue