


























@@ -248,9 +248,11 @@ async function resolveXaiProviderAuthCredential(params: {
248248249249async function resolveXaiProviderApiKeyProfileFallback(params: {
250250config?: Record<string, unknown>;
251+agentDir?: string;
251252}): Promise<XaiResolvedWebSearchAuth | undefined> {
252253const config = params.config as OpenClawConfig | undefined;
253254const usableProfiles = listUsableProviderAuthProfileIds({
255+agentDir: params.agentDir,
254256cfg: config,
255257provider: XAI_PROVIDER_ID,
256258});
@@ -280,11 +282,12 @@ async function resolveXaiProviderApiKeyProfileFallback(params: {
280282}
281283282284async function resolveXaiWebSearchAuth(
283-ctx: { config?: Record<string, unknown> },
285+ctx: { config?: Record<string, unknown>; agentDir?: string },
284286searchConfig?: Record<string, unknown>,
285287options?: { forceRefresh?: boolean; profileId?: string },
286288): Promise<XaiResolvedWebSearchAuth | undefined> {
287289const providerAuth = await resolveXaiProviderAuthCredential({
290+agentDir: ctx.agentDir,
288291config: ctx.config,
289292forceRefresh: options?.forceRefresh,
290293profileId: options?.profileId,
@@ -308,7 +311,7 @@ async function resolveXaiWebSearchAuth(
308311}
309312310313async function resolveXaiWebSearchApiKeyFallback(
311-ctx: { config?: Record<string, unknown> },
314+ctx: { config?: Record<string, unknown>; agentDir?: string },
312315searchConfig?: Record<string, unknown>,
313316): Promise<XaiResolvedWebSearchAuth | undefined> {
314317const configured = resolveConfiguredXaiWebSearchCredential(searchConfig);
@@ -323,14 +326,18 @@ async function resolveXaiWebSearchApiKeyFallback(
323326}
324327325328const providerAuth = await resolveXaiProviderAuthCredential({
329+agentDir: ctx.agentDir,
326330config: ctx.config,
327331credentialPrecedence: "env-first",
328332});
329333if (providerAuth?.apiKey && providerAuth.mode !== "oauth") {
330334return providerAuth;
331335}
332336333-return await resolveXaiProviderApiKeyProfileFallback({ config: ctx.config });
337+return await resolveXaiProviderApiKeyProfileFallback({
338+agentDir: ctx.agentDir,
339+config: ctx.config,
340+});
334341}
335342336343function isXaiUnauthorizedError(error: unknown): boolean {
@@ -345,7 +352,11 @@ function resolveXaiWebSearchTimeoutSeconds(searchConfig?: Record<string, unknown
345352}
346353347354export async function executeXaiWebSearchProviderTool(
348-ctx: { config?: Record<string, unknown>; searchConfig?: Record<string, unknown> },
355+ctx: {
356+config?: Record<string, unknown>;
357+searchConfig?: Record<string, unknown>;
358+agentDir?: string;
359+},
349360args: Record<string, unknown>,
350361): Promise<Record<string, unknown>> {
351362const searchConfig = resolveXaiToolSearchConfig(ctx);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。