From 6a2656cd0d48cba71bf5b617ae5b7c41f257f153 Mon Sep 17 00:00:00 2001 From: Aaron Erickson Date: Fri, 22 May 2026 14:56:18 -0700 Subject: [PATCH] Enable OpenClaw native Tool Search config --- scripts/generate-openclaw-config.py | 17 ++++++++--------- test/generate-openclaw-config.test.ts | 14 +++++++++++++- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/scripts/generate-openclaw-config.py b/scripts/generate-openclaw-config.py index 385f714a73f..000210ad500 100755 --- a/scripts/generate-openclaw-config.py +++ b/scripts/generate-openclaw-config.py @@ -695,6 +695,7 @@ def _placeholder(channel: str, env_key: str) -> str: }, "models": {"mode": "merge", "providers": providers}, "channels": {"defaults": {}, **_ch_cfg}, + "tools": {"toolSearch": True}, "update": {"checkOnStart": False}, # Disable bundled plugins/channels that hit the L7 proxy at startup # and either crash or hang the gateway: @@ -733,15 +734,13 @@ def _placeholder(channel: str, env_key: str) -> str: } if env.get("NEMOCLAW_WEB_SEARCH_ENABLED", "") == "1": - config["tools"] = { - "web": { - "search": { - "enabled": True, - "provider": "brave", - "apiKey": "openshell:resolve:env:BRAVE_API_KEY", - }, - "fetch": {"enabled": True}, - } + config.setdefault("tools", {})["web"] = { + "search": { + "enabled": True, + "provider": "brave", + "apiKey": "openshell:resolve:env:BRAVE_API_KEY", + }, + "fetch": {"enabled": True}, } return config diff --git a/test/generate-openclaw-config.test.ts b/test/generate-openclaw-config.test.ts index 81b2ba9b6e1..18042afbccd 100644 --- a/test/generate-openclaw-config.test.ts +++ b/test/generate-openclaw-config.test.ts @@ -529,13 +529,25 @@ describe("generate-openclaw-config.py: config generation", () => { }); }); + it("enables native OpenClaw Tool Search by default", () => { + const config = runConfigScript(); + expect(config.tools?.toolSearch).toBe(true); + }); + it("enables web search when env is '1'", () => { const config = runConfigScript({ NEMOCLAW_WEB_SEARCH_ENABLED: "1" }); - expect(config.tools?.web?.search?.enabled).toBe(true); + expect(config.tools?.toolSearch).toBe(true); + expect(config.tools?.web?.search).toEqual({ + enabled: true, + provider: "brave", + apiKey: "openshell:resolve:env:BRAVE_API_KEY", + }); + expect(config.tools?.web?.fetch?.enabled).toBe(true); }); it("omits web search when env is not set", () => { const config = runConfigScript(); + expect(config.tools?.toolSearch).toBe(true); expect(config.tools?.web).toBeUndefined(); });