From b25ccb04a4abdc300807076b5ae1ab0e5aff008c Mon Sep 17 00:00:00 2001 From: dataCenter430 Date: Tue, 17 Mar 2026 13:35:49 +0100 Subject: [PATCH] fix: update the code based on the review --- pkg/agent/loop.go | 8 ++++++-- pkg/providers/codex_provider.go | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pkg/agent/loop.go b/pkg/agent/loop.go index 029e163a8..a6c3be497 100644 --- a/pkg/agent/loop.go +++ b/pkg/agent/loop.go @@ -1020,9 +1020,13 @@ func (al *AgentLoop) runLLMIteration( providerToolDefs := agent.Tools.ToProviderDefs() // Determine whether the provider's native web search should replace - // the client-side web_search tool for this request. + // the client-side web_search tool for this request. Only enable when web + // search is actually enabled and registered (so users who disabled web + // access do not get provider-side search or billing). + _, hasWebSearch := agent.Tools.Get("web_search") useNativeSearch := al.cfg.Tools.Web.PreferNative && - isNativeSearchProvider(agent.Provider) + isNativeSearchProvider(agent.Provider) && + hasWebSearch if useNativeSearch { providerToolDefs = filterClientWebSearch(providerToolDefs) diff --git a/pkg/providers/codex_provider.go b/pkg/providers/codex_provider.go index a6fc02cec..4a6d61a4b 100644 --- a/pkg/providers/codex_provider.go +++ b/pkg/providers/codex_provider.go @@ -95,7 +95,10 @@ func (p *CodexProvider) Chat( ) } - params := buildCodexParams(messages, tools, resolvedModel, options, p.enableWebSearch) + // Respect tools.web.prefer_native: only inject native search when the agent + // loop requested it (options["native_search"]), so prefer_native: false + useNativeSearch := p.enableWebSearch && (options["native_search"] == true) + params := buildCodexParams(messages, tools, resolvedModel, options, useNativeSearch) stream := p.client.Responses.NewStreaming(ctx, params, opts...) defer stream.Close()