




















@@ -3,19 +3,17 @@ import { normalizeProviderId } from "@openclaw/model-catalog-core/provider-id";
33import { isRecord as hasRecord } from "@openclaw/normalization-core/record-coerce";
44import { normalizeLowercaseStringOrEmpty } from "@openclaw/normalization-core/string-coerce";
55import { resolveAgentConfig } from "../../../agents/agent-scope-config.js";
6-import { DEFAULT_MODEL, DEFAULT_PROVIDER } from "../../../agents/defaults.js";
7-import { parseModelRef } from "../../../agents/model-selection-normalize.js";
86import { pickSandboxToolPolicy } from "../../../agents/sandbox-tool-policy.js";
97import {
108isToolAllowedByPolicies,
119isToolAllowedByPolicyName,
1210} from "../../../agents/tool-policy-match.js";
1311import { mergeAlsoAllowPolicy, resolveToolProfilePolicy } from "../../../agents/tool-policy.js";
14-import { resolveAgentModelPrimaryValue } from "../../../config/model-input.js";
1512import type { OpenClawConfig } from "../../../config/types.openclaw.js";
1613import type { AgentToolsConfig, ToolsConfig } from "../../../config/types.tools.js";
1714import { collectChannelRouteTargets } from "../../../routing/channel-route-targets.js";
1815import { createLazyImportLoader } from "../../../shared/lazy-promise.js";
16+import { resolveDoctorPrimaryModelRef } from "./primary-model-ref.js";
19172018type ChannelDoctorModule = typeof import("./channel-doctor.js");
2119@@ -148,7 +146,7 @@ function resolveMessageToolAvailability(params: {
148146runtimeAlsoAllow?: string[];
149147}): boolean {
150148const agentConfig = params.agentId ? resolveAgentConfig(params.cfg, params.agentId) : undefined;
151-const modelRef = resolvePrimaryModelRef(params.cfg, agentConfig?.model);
149+const modelRef = resolveDoctorPrimaryModelRef(params.cfg, agentConfig?.model);
152150const providerPolicy = resolveProviderToolPolicy({
153151byProvider: params.globalTools?.byProvider,
154152modelProvider: modelRef.provider,
@@ -189,22 +187,6 @@ function resolveMessageToolAvailability(params: {
189187190188const SOURCE_REPLY_RUNTIME_MESSAGE_ALLOW = ["message"];
191189192-function resolvePrimaryModelRef(
193-cfg: OpenClawConfig,
194-agentModel?: NonNullable<ReturnType<typeof resolveAgentConfig>>["model"],
195-): { provider: string; model: string } {
196-const raw =
197-resolveAgentModelPrimaryValue(agentModel) ??
198-resolveAgentModelPrimaryValue(cfg.agents?.defaults?.model) ??
199-DEFAULT_MODEL;
200-return (
201-parseModelRef(raw, DEFAULT_PROVIDER, { allowPluginNormalization: false }) ?? {
202-provider: DEFAULT_PROVIDER,
203-model: DEFAULT_MODEL,
204-}
205-);
206-}
207-208190function resolveSourceReplyMessageToolAvailability(params: {
209191cfg: OpenClawConfig;
210192agentId?: string;
@@ -705,7 +687,7 @@ export function collectProfileConfiguredToolSectionWarnings(cfg: OpenClawConfig)
705687const agentTools = hasRecord(agent.tools) ? agent.tools : undefined;
706688const agentId = typeof agent.id === "string" ? agent.id : undefined;
707689const agentConfig = agentId ? resolveAgentConfig(cfg, agentId) : undefined;
708-const modelRef = resolvePrimaryModelRef(cfg, agentConfig?.model);
690+const modelRef = resolveDoctorPrimaryModelRef(cfg, agentConfig?.model);
709691const agentPath = `agents.list[${index}].tools`;
710692const includeInheritedSections =
711693agentTools !== undefined && typeof agentTools.profile !== "string";
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。