openclaw - 💡(How to fix) Fix feat: per-channel systemPrompt support for BlueBubbles (and other channels) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#60665Fetched 2026-04-08 02:48:30
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Participants

The BlueBubbles plugin does not support a systemPrompt configuration option at any level (channel root, per-group, or per-DM). This means there is no way to inject channel-specific persona or behavioral instructions for BlueBubbles/iMessage conversations through config alone.

Root Cause

The BlueBubbles plugin does not support a systemPrompt configuration option at any level (channel root, per-group, or per-DM). This means there is no way to inject channel-specific persona or behavioral instructions for BlueBubbles/iMessage conversations through config alone.

Fix Action

Fix / Workaround

A way to configure channel-level system prompt additions for BlueBubbles (and ideally all channel plugins), so that conversations on a specific channel can have behavioral directives injected without relying on agent-side workarounds.

RAW_BUFFERClick to expand / collapse

Summary

The BlueBubbles plugin does not support a systemPrompt configuration option at any level (channel root, per-group, or per-DM). This means there is no way to inject channel-specific persona or behavioral instructions for BlueBubbles/iMessage conversations through config alone.

Current behavior

  • Discord and Feishu plugins wire GroupSystemPrompt into sessionCtx, allowing per-group system prompt injection via config.
  • BlueBubbles plugin does not set GroupSystemPrompt on sessionCtx at all.
  • There is no DM-level systemPrompt concept in any channel plugin.
  • Setting channels.bluebubbles.systemPrompt in config is a no-op — the BB plugin schema (bundled-channel-config-metadata.generated.ts) has no systemPrompt field.

Expected behavior

A way to configure channel-level system prompt additions for BlueBubbles (and ideally all channel plugins), so that conversations on a specific channel can have behavioral directives injected without relying on agent-side workarounds.

Possible approaches:

  1. Channel-root systemPrompt — a standard field recognized by all channel plugins, injected into sessionCtx for every conversation on that channel (groups and DMs).
  2. Generic channel middleware — a platform-level hook that injects systemPrompt from channel config before the prompt is assembled, so individual plugins don't need to implement it.
  3. Per-channel extraSystemPromptParts — similar to how GroupSystemPrompt feeds into extraSystemPromptParts in get-reply-run.ts, but sourced from channel config rather than per-group settings.

Option 2 would be the most maintainable — it avoids requiring every plugin to independently implement the same pattern.

References

  • get-reply-run.ts:295-303 — where GroupSystemPrompt is resolved and injected
  • bundled-channel-config-metadata.generated.ts — BB plugin schema (no systemPrompt field)
  • Discord plugin (extensions/discord/src/monitor/inbound-context.ts) — example of a plugin that does wire GroupSystemPrompt

extent analysis

TL;DR

Implement a generic channel middleware to inject systemPrompt from channel config, allowing for channel-level system prompt additions without modifying individual plugins.

Guidance

  • Review the Discord plugin's implementation of GroupSystemPrompt injection in extensions/discord/src/monitor/inbound-context.ts to understand how other plugins handle system prompts.
  • Investigate the get-reply-run.ts file, specifically lines 295-303, to see how GroupSystemPrompt is resolved and injected into sessionCtx.
  • Consider implementing a platform-level hook that injects systemPrompt from channel config before the prompt is assembled, as described in the "Generic channel middleware" approach.
  • Evaluate the trade-offs between the proposed approaches, including the "Channel-root systemPrompt" and "Per-channel extraSystemPromptParts" options, to determine the most suitable solution.

Example

No code snippet is provided, as the issue does not contain sufficient information to generate a specific example.

Notes

The solution may require modifications to the bundled-channel-config-metadata.generated.ts file to include a systemPrompt field in the BlueBubbles plugin schema.

Recommendation

Apply a workaround by implementing a generic channel middleware, as it is considered the most maintainable approach and avoids requiring every plugin to independently implement the same pattern.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

A way to configure channel-level system prompt additions for BlueBubbles (and ideally all channel plugins), so that conversations on a specific channel can have behavioral directives injected without relying on agent-side workarounds.

Possible approaches:

  1. Channel-root systemPrompt — a standard field recognized by all channel plugins, injected into sessionCtx for every conversation on that channel (groups and DMs).
  2. Generic channel middleware — a platform-level hook that injects systemPrompt from channel config before the prompt is assembled, so individual plugins don't need to implement it.
  3. Per-channel extraSystemPromptParts — similar to how GroupSystemPrompt feeds into extraSystemPromptParts in get-reply-run.ts, but sourced from channel config rather than per-group settings.

Option 2 would be the most maintainable — it avoids requiring every plugin to independently implement the same pattern.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix feat: per-channel systemPrompt support for BlueBubbles (and other channels) [1 participants]