


























@@ -2096,12 +2096,16 @@ export async function runEmbeddedAttempt(
20962096},
20972097});
20982098session = createdSession.session;
2099-applySystemPromptToSession(session, systemPromptText);
21002099if (!session) {
21012100throw new Error("Embedded agent session missing");
21022101}
21032102session.setActiveToolsByName(sessionToolAllowlist);
21042103const activeSession = session;
2104+const setActiveSessionSystemPrompt = (nextSystemPrompt: string) => {
2105+systemPromptText = nextSystemPrompt;
2106+applySystemPromptToSession(activeSession, nextSystemPrompt);
2107+};
2108+setActiveSessionSystemPrompt(systemPromptText);
21052109installMessageToolOnlyTerminalHook({
21062110agent: activeSession.agent,
21072111sourceReplyDeliveryMode: params.sourceReplyDeliveryMode,
@@ -2113,8 +2117,7 @@ export async function runEmbeddedAttempt(
21132117// and queues; the empty system prompt prevents the runtime from rebuilding the
21142118// normal OpenClaw agent/tool prompt when `session.prompt()` starts.
21152119activeSession.agent.reset();
2116-applySystemPromptToSession(activeSession, "");
2117-systemPromptText = "";
2120+setActiveSessionSystemPrompt("");
21182121}
21192122if (typeof activeSession.agent.convertToLlm === "function") {
21202123const baseConvertToLlm = activeSession.agent.convertToLlm.bind(activeSession.agent);
@@ -2661,8 +2664,7 @@ export async function runEmbeddedAttempt(
26612664try {
26622665if (isRawModelRun) {
26632666activeSession.agent.reset();
2664-applySystemPromptToSession(activeSession, "");
2665-systemPromptText = "";
2667+setActiveSessionSystemPrompt("");
26662668cacheTrace?.recordStage("session:raw-model-run", {
26672669messages: activeSession.messages,
26682670system: systemPromptText,
@@ -2739,11 +2741,12 @@ export async function runEmbeddedAttempt(
27392741hasSessionsYield: effectiveTools.some((tool) => tool.name === "sessions_yield"),
27402742});
27412743if (activeSubagentPromptAddition) {
2742-systemPromptText = prependSystemPromptAddition({
2743-systemPrompt: systemPromptText,
2744-systemPromptAddition: activeSubagentPromptAddition,
2745-});
2746-applySystemPromptToSession(activeSession, systemPromptText);
2744+setActiveSessionSystemPrompt(
2745+prependSystemPromptAddition({
2746+systemPrompt: systemPromptText,
2747+systemPromptAddition: activeSubagentPromptAddition,
2748+}),
2749+);
27472750}
27482751}
27492752@@ -2805,11 +2808,12 @@ export async function runEmbeddedAttempt(
28052808preassemblyContextEngineMessagesForPrecheck;
28062809}
28072810if (assembled.systemPromptAddition) {
2808-systemPromptText = prependSystemPromptAddition({
2809-systemPrompt: systemPromptText,
2810-systemPromptAddition: assembled.systemPromptAddition,
2811-});
2812-applySystemPromptToSession(activeSession, systemPromptText);
2811+setActiveSessionSystemPrompt(
2812+prependSystemPromptAddition({
2813+systemPrompt: systemPromptText,
2814+systemPromptAddition: assembled.systemPromptAddition,
2815+}),
2816+);
28132817log.debug(
28142818`context engine: prepended system prompt addition (${assembled.systemPromptAddition.length} chars)`,
28152819);
@@ -3277,8 +3281,7 @@ export async function runEmbeddedAttempt(
32773281}
32783282const legacySystemPrompt = normalizeOptionalString(hookResult?.systemPrompt) ?? "";
32793283if (legacySystemPrompt) {
3280-applySystemPromptToSession(activeSession, legacySystemPrompt);
3281-systemPromptText = legacySystemPrompt;
3284+setActiveSessionSystemPrompt(legacySystemPrompt);
32823285log.debug(`hooks: applied systemPrompt (${legacySystemPrompt.length} chars)`);
32833286}
32843287const prependedOrAppendedSystemPrompt = composeSystemPromptWithHookContext({
@@ -3293,8 +3296,7 @@ export async function runEmbeddedAttempt(
32933296if (prependedOrAppendedSystemPrompt) {
32943297const prependSystemLen = hookResult?.prependSystemContext?.trim().length ?? 0;
32953298const appendSystemLen = hookResult?.appendSystemContext?.trim().length ?? 0;
3296-applySystemPromptToSession(activeSession, prependedOrAppendedSystemPrompt);
3297-systemPromptText = prependedOrAppendedSystemPrompt;
3299+setActiveSessionSystemPrompt(prependedOrAppendedSystemPrompt);
32983300log.debug(
32993301`hooks: applied prependSystemContext/appendSystemContext (${prependSystemLen}+${appendSystemLen} chars)`,
33003302);
@@ -3305,8 +3307,7 @@ export async function runEmbeddedAttempt(
33053307model: runtimeInfo.model,
33063308});
33073309if (modelAwareSystemPrompt !== systemPromptText) {
3308-applySystemPromptToSession(activeSession, modelAwareSystemPrompt);
3309-systemPromptText = modelAwareSystemPrompt;
3310+setActiveSessionSystemPrompt(modelAwareSystemPrompt);
33103311}
3311331233123313if (cacheObservabilityEnabled) {
@@ -3481,8 +3482,7 @@ export async function runEmbeddedAttempt(
34813482appendSystemContext: runtimeSystemContext,
34823483});
34833484if (runtimeSystemPrompt) {
3484-applySystemPromptToSession(activeSession, runtimeSystemPrompt);
3485-systemPromptText = runtimeSystemPrompt;
3485+setActiveSessionSystemPrompt(runtimeSystemPrompt);
34863486}
34873487}
34883488const runtimeContextForHook = promptSubmission.runtimeOnly
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。