




















@@ -484,6 +484,7 @@ function buildMessagingSection(params: {
484484messageChannelOptions?: string;
485485messageToolHints?: string[];
486486sourceReplyDeliveryMode?: SourceReplyDeliveryMode;
487+silentReplyPromptMode?: SilentReplyPromptMode;
487488}) {
488489if (params.isMinimal) {
489490return [];
@@ -493,7 +494,8 @@ function buildMessagingSection(params: {
493494const hasSessionsSpawn = params.availableTools.has("sessions_spawn");
494495const hasSubagents = params.availableTools.has("subagents");
495496const hasSessionsYield = params.availableTools.has("sessions_yield");
496-const completionEventGuidance = messageToolOnly
497+const suppressSilentTokenGuidance = messageToolOnly || params.silentReplyPromptMode === "none";
498+const completionEventGuidance = suppressSilentTokenGuidance
497499 ? "- Runtime-generated completion events may ask for a user update. Rewrite those in your normal assistant voice and send the update (do not forward raw internal metadata or default to a silent placeholder)."
498500 : `- Runtime-generated completion events may ask for a user update. Rewrite those in your normal assistant voice and send the update (do not forward raw internal metadata or default to ${SILENT_REPLY_TOKEN}).`;
499501const subagentOrchestrationGuidance = hasSessionsSpawn
@@ -525,7 +527,9 @@ function buildMessagingSection(params: {
525527 : "- Pass `channel` only when sending outside the current/default source channel.",
526528messageToolOnly
527529 ? "- If you use `message` (`action=send`) to deliver visible output, do not repeat that visible content in your final answer; final answers are private in this mode."
528- : `- If you use \`message\` (\`action=send\`) to deliver your user-visible reply, respond with ONLY: ${SILENT_REPLY_TOKEN} (avoid duplicate replies).`,
530+ : suppressSilentTokenGuidance
531+ ? "- Do not use `message(action=send)` to deliver the current source-channel reply; reply normally so OpenClaw can route it once."
532+ : `- If you use \`message\` (\`action=send\`) to deliver your user-visible reply, respond with ONLY: ${SILENT_REPLY_TOKEN} (avoid duplicate replies).`,
529533showGenericInlineButtonHint
530534 ? params.inlineButtonsEnabled
531535 ? "- Inline buttons supported. Use `action=send` with `buttons=[[{text,callback_data,style?}]]`; `style` can be `primary`, `success`, or `danger`."
@@ -1247,6 +1251,7 @@ export function buildAgentSystemPrompt(params: {
12471251 messageChannelOptions,
12481252messageToolHints: params.messageToolHints,
12491253sourceReplyDeliveryMode: params.sourceReplyDeliveryMode,
1254+ silentReplyPromptMode,
12501255}),
12511256 ...buildVoiceSection({ isMinimal, ttsHint: params.ttsHint }),
12521257);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。