Skip to content

OpenClaw memory plugin misclassifies cron distillation tasks as transcript-ingest and injects ingest-reply-assist #982

@Suidge

Description

@Suidge

Summary

OpenViking's OpenClaw memory plugin can misclassify cron maintenance prompts (specifically Daily Memory Distillation / Weekly Synthesis style tasks) as transcript-ingestion input and inject the ingest-reply-assist prompt block.

This is an upstream plugin bug because these cron maintenance tasks are not memory-ingestion transcripts, yet they receive transcript-specific prompt augmentation and can produce unwanted mid-run chatter.

Environment

  • OpenClaw with plugins.slots.contextEngine = openviking
  • OpenViking runtime env: ~/.openviking/.venv
  • OpenViking version: 0.2.11
  • OpenClaw plugin path under test:
    • examples/openclaw-memory-plugin/index.ts
    • examples/openclaw-memory-plugin/text-utils.ts
  • Daily distillation cron job payload:
Daily memory maintenance. Read skills/opencortex/references/distillation.md for full instructions and follow them. Workspace: /Users/neoshi/.openclaw/workspace

What happens

The plugin applies:

<ingest-reply-assist>
The latest user input looks like a multi-speaker transcript used for memory ingestion.
...
</ingest-reply-assist>

...even though the task is a cron maintenance job, not a transcript-ingestion request.

Observed log pattern:

openviking: ingest-reply-assist applied (reason=transcript_like_ingest, speakerTurns=2, chars=454)

Impact

Two different impacts were observed:

  1. Hard failure mode

    • A 03:00 distillation run produced only a one-line opening message and then stopped without any tool calls.
    • Session transcript contained only the cron prompt + one assistant line.
  2. Residual degraded mode

    • After a local mitigation, a 07:54 manual backfill run still received ingest-reply-assist, but it completed successfully.
    • It executed the full workflow:
      • read distillation.md
      • created/cleaned lockfile
      • read/write/archive files
      • appended debrief to archived daily log
      • final summary matched actual tool execution
    • However, transcript-ingest prompt injection still remained, and mid-run chatter was still possible.

So the critical execution path can recover, but the plugin still misclassifies cron maintenance prompts and injects the wrong prompt block.

Why this looks like a plugin bug

The current transcript detection is too broad for OpenClaw cron-maintenance traffic.

These maintenance prompts may contain structured metadata / speaker-like formatting, causing them to look transcript-like under current heuristics, even though semantically they are control/maintenance tasks.

This should be filtered upstream in the plugin rather than relying on downstream prompt resilience.

Minimal expected behavior

For cron maintenance prompts such as:

  • Daily memory maintenance
  • Weekly synthesis
  • prompts that explicitly read maintenance reference docs
  • prompts that include cron markers / workspace execution instructions

The plugin should not inject ingest-reply-assist.

Suggested fix direction

Add an explicit exclusion path in the OpenClaw memory plugin before transcript-ingest assistance is applied, e.g. detect cron-maintenance/task-run prompts and skip ingestReplyAssist for them.

A stronger solution would likely rely on session/task context rather than only transcript-text heuristics.

Evidence summary

  • Failed run: only one assistant opening line, zero tool calls
  • Successful backfill run: 20+ tool calls, 111s duration, workflow completed
  • Both were still subject to ingest-reply-assist injection
  • Therefore the root bug is not gone; it is just less destructive after local mitigation

Requested outcome

Please treat cron-maintenance prompts as a first-class exclusion for transcript-ingest assistance in the OpenClaw memory plugin.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    In progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions