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,
|
"allow_write_paths": null,
|
||||||
"web": {
|
"web": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
|
"prefer_native": true,
|
||||||
"brave": {
|
"brave": {
|
||||||
"enabled": false,
|
"enabled": false,
|
||||||
"api_key": "YOUR_BRAVE_API_KEY",
|
"api_key": "YOUR_BRAVE_API_KEY",
|
||||||
|
|
|
||||||
|
|
@ -690,6 +690,12 @@ type WebToolsConfig struct {
|
||||||
Perplexity PerplexityConfig ` json:"perplexity"`
|
Perplexity PerplexityConfig ` json:"perplexity"`
|
||||||
SearXNG SearXNGConfig ` json:"searxng"`
|
SearXNG SearXNGConfig ` json:"searxng"`
|
||||||
GLMSearch GLMSearchConfig ` json:"glm_search"`
|
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).
|
// 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.
|
// 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"`
|
Proxy string `json:"proxy,omitempty" env:"PICOCLAW_TOOLS_WEB_PROXY"`
|
||||||
|
|
|
||||||
|
|
@ -410,6 +410,7 @@ func DefaultConfig() *Config {
|
||||||
ToolConfig: ToolConfig{
|
ToolConfig: ToolConfig{
|
||||||
Enabled: true,
|
Enabled: true,
|
||||||
},
|
},
|
||||||
|
PreferNative: true,
|
||||||
Proxy: "",
|
Proxy: "",
|
||||||
FetchLimitBytes: 10 * 1024 * 1024, // 10MB by default
|
FetchLimitBytes: 10 * 1024 * 1024, // 10MB by default
|
||||||
Brave: BraveConfig{
|
Brave: BraveConfig{
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,15 @@ type ThinkingCapable interface {
|
||||||
SupportsThinking() bool
|
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.
|
// FailoverReason classifies why an LLM request failed for fallback decisions.
|
||||||
type FailoverReason string
|
type FailoverReason string
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue