Databricks Databricks ★ 76 5 min

The Web Search Your Agent Inherited Isn't Good Enough

PlatformProductDatabricks AI

🔗 https://www.databricks.com/blog/web-search-your-agent-inherited-isnt-good-enough

📌 你的 Agent 用的網路搜尋,其實是繼承來的次級品

TL;DR:不同 Agent harness 內建的網路搜尋結果不一致,Databricks 提出 Omnigent 加合作夥伴搜尋來統一治理。

一個工程師要建一個 Agent,持續監控幾十萬個潛在客戶與既有客戶帳號,找出資金到位、換高層、產品發布、招募增加這類代表「這個帳號現在有機會談」的訊號。帳號資料本身已經在 Databricks 的 Delta table 裡,由 Unity Catalog 治理,並與公司自己的用量與 pipeline 資料串接好了。問題是,真正推動這些帳號變化的訊號在公司外部,在網路上。

🤔 同一個邏輯,被重寫了三次

第一版不是一套系統,而是同一套 enrichment 邏輯,在三個不同工具裡各自重寫了一次。第一次用 Claude Code 實作,因為決定哪些帳號要重新檢視、串接搜尋、寫摘要這些 Agent 化的工作,大部分邏輯都在這裡完成。同事提到 Codex 處理某類批次腳本比較快,於是把 enrichment loop 搬過去試。第三份索性跳過 harness,直接呼叫模型 API,用在一個只需要單一 prompt 和單一回應、不需要工具編排的夜間排程任務。同一份工作,三套實作,每套都是為了配合當下手邊的工具而長成那樣。

每個 harness 都各自綁定自己的工具與網路搜尋,接法也各不相同,於是工程師得用三種不同的設定格式,重寫同一套 enrichment 邏輯。真正花時間的地方,不是改進帳號 enrichment 的品質,而是搞懂 Claude Code 要怎麼宣告工具、為什�麼同一個 MCP server 接到 Codex 裡行為不同,以及原始 API 路徑缺了另外兩套工具白送的哪些東西。

而且工具並不等價,結果自然也不等價。一個 harness 內建的網路搜尋回傳的資料,跟另一個不一樣;某個來源在一套工具裡能讀到,在另一套裡卻讀不到。內建的網路搜尋工具能找到高層級資訊(如募資輪次、高層異動),卻經常漏掉更細緻的細節(如技術堆疊變動)。更麻煩的是,三套實作之上沒有任何統一的視角:沒有共用的計量表,沒人能看到或限制幾十萬個帳號跑一輪的總花費;沒有共用的規則,哪些來源可以讀、什麼時候要人工核准,三套各自為政或根本沒設;沒有共用的記錄,一旦結果出錯,沒有地方能重建 Agent 當時讀了什麼、花了多少、做了什麼決定。它「大致上」能跑出結果,這正是它一直沒被真正修好的原因:好用到讓人捨不得丟,又沒好到能完全信任。

🧩 Omnigent:把三套實作收斂成一個定義

Databricks 提出的 Omnigent,是架在各個 harness 之上的一層:工程師只需要定義一次 Agent、它跑在哪個模型上、能碰哪些工具、在什麼政策與限制下運作。三次重寫收斂成一份定義,工具不再是每個 harness 自帶什麼就用什麼,而是宣告在 Agent 上、設定一次就能自由替換。跑在 Databricks 代管的模型上時,模型呼叫會經過 Foundation Model APIs,每一次呼叫的成本、稽核與治理都集中在一個地方,而不是分散在三套 runtime 裡;要換模型或調整成本結構時,只需要改一行設定。

🧩 網路搜尋變成一個決定,而不是三個

Omnigent 讓你可以為每個任務設定一致的搜尋選擇,但這個決定本身仍需要指定一個搜尋合作夥伴。文中以 Nimble 為例:Nimble 的 Search API 能用即時網路資料佐證答案;面對需要深入研究的任務,Nimble 的 Web Search Agents 會自動處理搜尋與資料擷取的編排,跨多個來源交叉比對,並回傳附上引用來源的答案,形成一套一般搜尋做不到的稽核軌跡。文中也提到,Nimble 針對 JavaScript 渲染、篩選器、分頁背後的資料有專門的擷取能力,並會記住過去最有效的擷取路徑重複使用,以降低 token 成本。

📊 一組來自廠商測試的數字

文中引用 Nimble 自己的測試結果:加入 Nimble 的網路搜尋後,LLM benchmark 準確率從 46% 提升到 71%,同時網路搜尋成本降低一半。這是 Nimble 自行公布的比較數字(對比 Claude 內建搜尋),讀者宜將其視為廠商測試結果,而非獨立第三方驗證的結論。

⚠️ 這是一篇產品導向的內容

這篇文章的核心其實是在推廣 Databricks 的 Omnigent 與合作夥伴 Nimble 的搭配使用方式,文中對痛點的描述(三套 harness、三套搜尋結果不一致)具體且貼近真實工程場景,但解法段落帶有明顯的廠商推廣色彩,效能數字也僅來自單一合作廠商的自我測試,沒有獨立驗證。

🎯 實務啟示

如果你的團隊也在 Claude Code、Codex、原始 API 之間反覆搬同一套 Agent 邏輯,值得盤點清楚哪些是「工具編排的重複勞動」,哪些才是真正的業務邏輯,把前者收斂成一層共用宣告(模型、工具、政策),能讓工程時間回到後者。至於要不要引入特定的第三方搜尋服務,建議自己拿實際任務跑一輪基準測試,而不是直接採信單一廠商公布的準確率數字。

🔗 來源

#AgenticAI #WebSearch #Databricks #Omnigent #LLMTools #AIGovernance #MCP #AgentInfrastructure #DataEnrichment #AIObservability

原始資料 Databricks · 收集於 2026-09-17
來源原標題
The Web Search Your Agent Inherited Isn't Good Enough
機構
Databricks
原始標籤
Platform · Product · Databricks AI
原始連結
https://www.databricks.com/blog/web-search-your-agent-inherited-isnt-good-enough

摘要原文

An engineer at a software company is building an agent to keep the company's view of the market up to date. It monitors a few hundred thousand prospects and customer accounts for signals that an account is open to engagement: a new funding round, a leadership change, a product launch, or a hiring surge that indicates budget. The account records already live in Databricks, in Delta tables governed by Unity Catalog and joined to the company's own usage and pipeline data. But the signals that move an account live outside the company, on the web. The agent's job is to combine the two, continuously, into one coherent and up-to-the-moment picture of every account, so it can tell a salesperson which handful to call this week. The first version isn't one system. It's the same enrichment logic, rebuilt from scratch three separate times, once in each tool the engineer reached for. The first pass runs in Claude Code, where the agentic parts (deciding which accounts need a fresh look, chaining searches, writing the summary) are most of the work. When a colleague mentions that Codex handles a certain kind of batch scripting faster, the engineer ports the enrichment loop over to check. A third copy skips the harness entirely and calls a model directly over the API, for a lightweight nightly job that just needs a single prompt and a response, no tool orchestration required. Same job, three builds, each shaped by whichever tool fit that moment. Each harness bundles its own tools and its own web search and wires them up its own way, so the engineer builds the same enrichment logic three times, once in each harness's config format. That is where the day goes. Instead of improving how accounts get enriched, the engineer is learning how Claude Code wants its tools declared, why the same MCP server connects differently in Codex, and what the raw API path is missing that the other two had for free. The tools are not equivalent, and so neither are the results. The web search bundled into one harness returns different data than the next. A source reachable in one is missed in another. Built-in web search tools for LLMs can find high-level information like funding rounds and leadership changes, but miss granular details like tech stack changes. Access to online information is the thing this agent exists to produce, but its quality now depends on web search that can’t reliably surface key details on the web. And nothing sits above the three of them. No shared meter, so no one can see or cap what a cycle costs across a few hundred thousand accounts. No shared rulebook, so which sources an agent may read and when a human signs off are set three ways or not at all. No shared record, so when a result is wrong, there is nowhere to reconstruct what the agent read, spent, or decided. It sort of works in that it produces a result. And that is exactly why it never gets fixed. It works well enough to keep, but not enough to fully trust. Omnigent is the layer that reins in the sprawl. It sits above the individual harnesses, so the engineer defines the agent once, the model it runs on, the tools it can reach, the policies and limits it operates within. The three rebuilds collapse into one definition, and the engineer's attention goes back to account enrichment. Tools stop being whatever each harness came bundled with and become declarations on the agent, set once and swapped freely. Running on a Databricks-hosted model, the model calls route through the Foundation Model APIs, where every call is captured for cost, audit, and governance in one place instead of scattered across three runtimes. And when the model or the economics change, the engineer changes one line, picking a new model or downshifting to a cheaper one without disruption. That closes most of the sprawl, but it leaves one critical thing decided by default rather than by design. Web search is one of the core capabilities every harness bundles, and no two bundle the same one. The same query gives one result through Claude Code and another through Codex. Omnigent provides you the ability to define a consistent choice across each task, but it does not make the decision for you. You have to assign a partner search capability. With a partner like Nimble, you can put something in the slot that adapts to the task instead, and give every harness underneath the same expert read. Nimble’s Search API can ground answers in fresh, real-time web data through live search. For deep research tasks, Nimble’s Web Search Agents automate web search and extraction orchestration to fulfill your task, working many sources, cross-checking them, and returning an answer with the citations to back each claim, an audit trail that the general path could never produce. While general web search tools treat every use case the same, Nimble specializes in the agent’s specific use case, self-learns the best retrieval methods, and adapts web search and crawling to go deep into the domain to capture data that generic search tools miss. It gets to the data behind JavaScript, filters, and pagination that an ordinary crawler gives up on. And because it remembers the best way to retrieve the relevant data, it reuses data retrieval paths rather than rediscovering everything from scratch to reduce token costs. Named as the provider in the config, this is the fast path to a more complete web context for your agents. In Nimble's testing , adding Nimble’s web search raised LLM benchmark accuracy from 46 percent to 71 percent, while cutting web search costs in half ( Claude vs Nimble web search costs). Web Search Agents can be pointed at a domain and kept there, so it remembers which sources and which retrieval paths produced the right data and reuse them the next time. It gets sharper the longer it works a domain, and the cost of rediscovering where a signal lives drops on the accounts it runs against most. Returning to the engineer, the agent is now on a path to becoming a coherent, manageable, trustworthy whole. The agent is defined once in Omnigent, on a Databricks-hosted model, with its tools, policies, and limits in a single spec. The three rebuilds are gone. So is the plumbing tax; the engineer is back on enrichment, not on how each harness wants its tools declared. Web search is now one decision instead of three. Naming Nimble on the web_search builtin points every harness underneath at the same Nimble Search API for fast and efficient web search: For the accounts that need a defensible answer rather than raw web data, Omnigent can reach for Nimble's Web Search Agents, which automate web search and extraction for research, enrichment, or dataset building. The key comes from a Nimble account, which you can start free . Control now has one home. Model calls route through the Foundation Model APIs under governance, cost is visible and capped in one place, and what the agent reads, spends, and decides is captured consistently across one governance surface. And the two halves of the picture finally sit together. The internal record in Databricks and the external signal from Nimble, in one place, governed and read by one agent. Version 1.0 was three harnesses and no vantage point. This is one agent, grounded in what the company knows and what the web can tell it, running where the data already is. Consistent where it used to drift, deep where it used to be shallow, and full governance over external web context retrieval. Standing this up takes two steps. Connect Omnigent to Databricks. Databricks runs the Omnigent server for you. On your own machine, install the CLI with the Databricks integration and register the machine as a host: Then sign in with your workspace identity and run your first agent on a Databricks-hosted model. Omnigent on Databricks is the place to start; it covers the managed setup end-to-end and links the CLI steps.

由 claude-code/sonnet 自動生成