






















@@ -172,6 +172,8 @@ import {
172172applyExtraParamsToAgent,
173173resolveAgentTransportOverride,
174174resolveExplicitSettingsTransport,
175+resolveExtraParams,
176+resolvePreparedExtraParams,
175177} from "../extra-params.js";
176178import { prepareGooglePromptCacheStreamFn } from "../google-prompt-cache.js";
177179import { getDmHistoryLimitFromSessionKey, limitHistoryTurns } from "../history.js";
@@ -292,7 +294,7 @@ import {
292294composeSystemPromptWithHookContext,
293295resolveAttemptSpawnWorkspaceDir,
294296shouldPersistCompletedBootstrapTurn,
295-shouldUseOpenAIWebSocketTransport,
297+shouldUseOpenAIWebSocketTransportForAttempt,
296298} from "./attempt.thread-helpers.js";
297299import {
298300shouldRepairMalformedToolCallArguments,
@@ -1769,25 +1771,57 @@ export async function runEmbeddedAttempt(
17691771const defaultSessionStreamFn = resolveEmbeddedAgentBaseStreamFn({
17701772session: activeSession,
17711773});
1774+const resolvedTransport = resolveExplicitSettingsTransport({
1775+ settingsManager,
1776+sessionTransport: activeSession.agent.transport,
1777+});
1778+const streamExtraParamsOverride = {
1779+ ...params.streamParams,
1780+fastMode: params.fastMode,
1781+};
1782+const preparedRuntimeExtraParams = params.runtimePlan?.transport.resolveExtraParams({
1783+extraParamsOverride: streamExtraParamsOverride,
1784+thinkingLevel: params.thinkLevel,
1785+agentId: sessionAgentId,
1786+workspaceDir: effectiveWorkspace,
1787+model: params.model,
1788+ resolvedTransport,
1789+});
1790+const resolvedExtraParams = resolveExtraParams({
1791+cfg: params.config,
1792+provider: params.provider,
1793+modelId: params.modelId,
1794+agentId: sessionAgentId,
1795+});
1796+const effectiveExtraParams =
1797+preparedRuntimeExtraParams ??
1798+resolvePreparedExtraParams({
1799+cfg: params.config,
1800+provider: params.provider,
1801+modelId: params.modelId,
1802+extraParamsOverride: streamExtraParamsOverride,
1803+thinkingLevel: params.thinkLevel,
1804+agentId: sessionAgentId,
1805+ agentDir,
1806+workspaceDir: effectiveWorkspace,
1807+ resolvedExtraParams,
1808+model: params.model,
1809+ resolvedTransport,
1810+});
17721811const providerStreamFn = registerProviderStreamForModel({
17731812model: params.model,
17741813cfg: params.config,
17751814 agentDir,
17761815workspaceDir: effectiveWorkspace,
17771816});
1778-const hasExplicitSseTransport = [
1779-(params.streamParams as { transport?: unknown } | undefined)?.transport,
1780-(params.model as { params?: { transport?: unknown } }).params?.transport,
1781-]
1782-.map((value) => (typeof value === "string" ? value.trim().toLowerCase() : ""))
1783-.includes("sse");
1784-const shouldUseWebSocketTransport =
1785-!hasExplicitSseTransport &&
1786-shouldUseOpenAIWebSocketTransport({
1787-provider: params.provider,
1788-modelApi: params.model.api,
1789-modelBaseUrl: params.model.baseUrl,
1790-});
1817+const shouldUseWebSocketTransport = shouldUseOpenAIWebSocketTransportForAttempt({
1818+provider: params.provider,
1819+modelApi: params.model.api,
1820+modelBaseUrl: params.model.baseUrl,
1821+streamParams: params.streamParams,
1822+ effectiveExtraParams,
1823+modelParams: (params.model as { params?: Record<string, unknown> }).params,
1824+});
17911825const wsApiKey = shouldUseWebSocketTransport
17921826 ? await resolveEmbeddedAgentApiKey({
17931827provider: params.provider,
@@ -1832,23 +1866,7 @@ export async function runEmbeddedAttempt(
18321866});
18331867}
183418681835-const resolvedTransport = resolveExplicitSettingsTransport({
1836- settingsManager,
1837-sessionTransport: activeSession.agent.transport,
1838-});
1839-const streamExtraParamsOverride = {
1840- ...params.streamParams,
1841-fastMode: params.fastMode,
1842-};
1843-const preparedRuntimeExtraParams = params.runtimePlan?.transport.resolveExtraParams({
1844-extraParamsOverride: streamExtraParamsOverride,
1845-thinkingLevel: params.thinkLevel,
1846-agentId: sessionAgentId,
1847-workspaceDir: effectiveWorkspace,
1848-model: params.model,
1849- resolvedTransport,
1850-});
1851-const { effectiveExtraParams } = applyExtraParamsToAgent(
1869+applyExtraParamsToAgent(
18521870activeSession.agent,
18531871params.config,
18541872params.provider,
@@ -1860,9 +1878,7 @@ export async function runEmbeddedAttempt(
18601878params.model,
18611879agentDir,
18621880resolvedTransport,
1863-preparedRuntimeExtraParams
1864- ? { preparedExtraParams: preparedRuntimeExtraParams }
1865- : undefined,
1881+{ preparedExtraParams: effectiveExtraParams },
18661882);
18671883const effectivePromptCacheRetention = resolveCacheRetention(
18681884effectiveExtraParams,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。