2026年10月6日 星期二

OpenClaw 學習筆記 : 在樹莓派 Pi 4 安裝 OpenClaw (十五)

在前一篇測試中我已將 OpenClaw 助理使用的模型從 GPT 5.6 改為 Gemini 2.5 Flash, 這樣往後測試就不用擔心一直燒 token 了. 但是問它今日台北股市卻說它無法搜尋網路 :




但之前使用 GPT 5.6 時是可以搜尋網路的啊! 這不是 OpenClaw 本身的能力嗎? 怎會跟模型有關? 我問 Gemini 這是何故, 它回答說連網搜尋確實在 OpenClaw 的架構中屬於系統工具 (web_search), 但具體由誰提供搜尋能力 (Search Provider) 則與模型後端有直接關聯, OpenAI API 內建或綁定了原生搜尋通道, 因此當底層是 OpenAI 時, OpenClaw 會預設借道 OpenAI 的搜尋介面完成查詢; 切換至 Google Gemini 後, 雖然它支援 Google 搜尋接地 (Grounding), 但在 OpenClaw 中需要明確啟用 Google 搜尋或指定專屬的 Provider (例如 Google 接地, 或獨立的 Brave, DuckDuckGo 搜尋引擎) 才行. 本篇旨在解決此網路搜尋問題. 

本系列全部測試文章索引參考 :


最快且穩定的解決辦法是使用 OpenClaw 內建且完全不需要任何 API Key, 也不用 CX (Search engine index) 的 DuckDuckGo 搜尋引擎, 關於 DuckDuckGo 參考 : 


因 OpenClaw 已內建 DuckDuckGo 搜尋引擎的 API 套件 (因 OpenClaw 是用 Node.js 寫的, 所以搜尋套件為 duck-duck-scrape 而非 Python 的 duckduckgo-search), 只要做一些設定後重啟 Session 即可啟用搜尋功能, 作法如下 : 


1. 切換工具授權模板為全功能 (Full) 模式 : 

因 OpenClaw 內部有工具過濾機制 (Profile), 這是用來限制 Agent 可以呼叫的工具範圍, 預設的 "coding" 模式只開放終端機指令 (bash), 檔案存取與程式碼執行, 但會直接過濾並封鎖所有對外網路工具, 改為 "full" 模式後就解除了對外連網與其他擴充工具的限制, 讓模型在接收到查詢請求時, 有權限調用 web_search 工具 : 

pi@pi4b:~ $ openclaw config set tools.profile "full"   
│
◇  

OpenClaw 2026.7.1-2 (0790d9f)
I'll butter your workflow like a lobster roll: messy, delicious, effective.

Updated tools.profile. Restart the gateway to apply.


2. 指定網路搜尋的底層提供者為 DuckDuckGo : 

OpenClaw 的搜尋模組支援多種後端 (例如 Google, Brave, DuckDuckGo 等), 下列指令告訴 OpenClaw 的搜尋排程器 : 當需要進行網頁檢索時一律使用 DuckDuckGo 的查詢介面 : 

pi@pi4b:~ $ openclaw config set tools.web.search.provider "duckduckgo"  
│
◇  

OpenClaw 2026.7.1-2 (0790d9f) — I autocomplete your thoughts—just slower and with more API calls.

Updated tools.web.search.provider. No gateway restart needed.

選擇 duckduckgo 的優勢在於它不需要配置任何 API Key 或搜尋引擎 ID, 開箱即用, 毋須認證即可抓取網頁內容或即時新聞.


3. 開啟網路搜尋功能的總開關 : 

這是搜尋模組本身的布林值開關, 即使在上面第 1 步開放了權限, 在第 2 步指定了搜尋引擎, 但若這個開關處於 false 或未定一狀態, 系統仍會將搜尋工具標記為禁用. 必須將其設為 true, 搜尋工具才會正式註冊並注入到模型的 Tool 清單中 :

pi@pi4b:~ $ openclaw config set tools.web.search.enabled true
│
◇  

OpenClaw 2026.7.1-2 (0790d9f) — Finally, a use for that always-on Mac Mini under your desk.

Updated tools.web.search.enabled. Restart the gateway to apply.


4. 重啟背景 Gateway 服務 : 

由於守護行程 (PID 為 1 的核心系統管理者 systemd) 位於系統層級, 需使用正確權限重啟才會生效, 用下列使用者層級重啟指令是沒作用的 :

pi@pi4b:~ $ systemctl --user restart openclaw-gateway.service   

正確做法是透過系統層級服務來重啟, 指令如下 :

pi@pi4b:~ $ sudo systemctl restart openclaw-gateway.service  

完成以上設定了, 在 Telegram, LINE, 或 Web UI 上先用 /reset 指令重啟對話, 然後詢問股市表現就會用 DuckDuckGo 去網路搜尋資料了 : 






其實在改用 DuckDuckGo 之前我曾嘗試使用 Google Custom Search 但不成功, 原因是 OpenClaw 根本未實作 Google Custom Search Provider, 搜尋提供者 (Provider) 支援的是 brave, duckduckgo, tavily, 與 perplexity 等. 即使強行透過編輯 openclaw.json 檔, 塞入 API Key 與 CX, 重啟後 Gateway 依然認不得它, 搜尋排程器在找不到對應 Provider 的情況下依然會回報 no provider is available 錯誤. 

沒有留言 :