

























@@ -301,17 +301,17 @@ async function resolveSecretInputWithEnvFallback(params: {
301301function setResolvedWebSearchApiKey(params: {
302302resolvedConfig: OpenClawConfig;
303303provider: PluginWebSearchProviderEntry;
304+path: string;
304305value: string;
305306}): void {
307+const useLegacySearchConfig = params.path === "tools.web.search.apiKey";
308+if (params.provider.setConfiguredCredentialValue && !useLegacySearchConfig) {
309+params.provider.setConfiguredCredentialValue(params.resolvedConfig, params.value);
310+return;
311+}
306312const tools = ensureObject(params.resolvedConfig as Record<string, unknown>, "tools");
307313const web = ensureObject(tools, "web");
308314const search = ensureObject(web, "search");
309-if (params.provider.setConfiguredCredentialValue) {
310-params.provider.setConfiguredCredentialValue(params.resolvedConfig, params.value);
311-if (params.provider.id !== "brave") {
312-return;
313-}
314-}
315315params.provider.setCredentialValue(search, params.value);
316316}
317317@@ -432,6 +432,7 @@ function inactivePathsForProvider(provider: PluginWebSearchProviderEntry): strin
432432function setResolvedWebFetchApiKey(params: {
433433resolvedConfig: OpenClawConfig;
434434provider: PluginWebFetchProviderEntry;
435+path: string;
435436value: string;
436437}): void {
437438const tools = ensureObject(params.resolvedConfig as Record<string, unknown>, "tools");
@@ -646,10 +647,16 @@ export async function resolveRuntimeWebTools(params: {
646647 path,
647648 envVars,
648649}),
649-setResolvedCredential: ({ resolvedConfig, provider, value }) =>
650+setResolvedCredential: ({ resolvedConfig, provider, path, value }) =>
650651setResolvedWebSearchApiKey({
651652 resolvedConfig,
652653 provider,
654+path:
655+search &&
656+Object.prototype.hasOwnProperty.call(search, "apiKey") &&
657+provider.getConfiguredCredentialValue?.(params.sourceConfig) == null
658+ ? "tools.web.search.apiKey"
659+ : path,
653660 value,
654661}),
655662 inactivePathsForProvider,
@@ -740,10 +747,11 @@ export async function resolveRuntimeWebTools(params: {
740747 envVars,
741748restrictEnvRefsToEnvVars: true,
742749}),
743-setResolvedCredential: ({ resolvedConfig, provider, value }) =>
750+setResolvedCredential: ({ resolvedConfig, provider, path, value }) =>
744751setResolvedWebFetchApiKey({
745752 resolvedConfig,
746753 provider,
754+ path,
747755 value,
748756}),
749757inactivePathsForProvider: inactivePathsForFetchProvider,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。