diff --git a/examples/openclaw-plugin/index.ts b/examples/openclaw-plugin/index.ts
index 7374d1902..67142d1f1 100644
--- a/examples/openclaw-plugin/index.ts
+++ b/examples/openclaw-plugin/index.ts
@@ -532,22 +532,39 @@ const contextEnginePlugin = {
}
if (cfg.ingestReplyAssist) {
- const decision = isTranscriptLikeIngest(queryText, {
- minSpeakerTurns: cfg.ingestReplyAssistMinSpeakerTurns,
- minChars: cfg.ingestReplyAssistMinChars,
- });
- if (decision.shouldAssist) {
+ // Skip ingest-reply-assist for cron maintenance tasks
+ // These tasks have their own prompts and should not be treated as transcripts
+ const cronMaintenancePatterns = [
+ /^\[cron:/, // [cron:xxx] prefix
+ /Daily memory maintenance/i, // Distillation task
+ /Weekly synthesis/i, // Weekly synthesis task
+ /Read .*references\/(distillation|weekly-synthesis)\.md/i, // Task instruction
+ /^Workspace:\s*\//m, // Workspace line
+ ];
+ const isCronMaintenance = cronMaintenancePatterns.some(p => p.test(queryText));
+
+ if (isCronMaintenance) {
api.logger.info(
- `openviking: ingest-reply-assist applied (reason=${decision.reason}, speakerTurns=${decision.speakerTurns}, chars=${decision.chars})`,
- );
- prependContextParts.push(
- "\n" +
- "The latest user input looks like a multi-speaker transcript used for memory ingestion.\n" +
- "Reply with 1-2 concise sentences to acknowledge or summarize key points.\n" +
- "Do not output NO_REPLY or an empty reply.\n" +
- "Do not fabricate facts beyond the provided transcript and recalled memories.\n" +
- "",
+ `openviking: skipping ingest-reply-assist for cron maintenance task`,
);
+ } else {
+ const decision = isTranscriptLikeIngest(queryText, {
+ minSpeakerTurns: cfg.ingestReplyAssistMinSpeakerTurns,
+ minChars: cfg.ingestReplyAssistMinChars,
+ });
+ if (decision.shouldAssist) {
+ api.logger.info(
+ `openviking: ingest-reply-assist applied (reason=${decision.reason}, speakerTurns=${decision.speakerTurns}, chars=${decision.chars})`,
+ );
+ prependContextParts.push(
+ "\n" +
+ "The latest user input looks like a multi-speaker transcript used for memory ingestion.\n" +
+ "Reply with 1-2 concise sentences to acknowledge or summarize key points.\n" +
+ "Do not output NO_REPLY or an empty reply.\n" +
+ "Do not fabricate facts beyond the provided transcript and recalled memories.\n" +
+ "",
+ );
+ }
}
}