openclaw - 💡(How to fix) Fix [Feature] Make the agent-identity footer configurable [1 comments, 2 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#80095Fetched 2026-05-11 03:18:46
View on GitHub
Comments
1
Participants
2
Timeline
2
Reactions
2
Author
Timeline (top)
closed ×1commented ×1

Every assistant reply currently gets a hardcoded gray footer line of the form:

Agent: <agent_id> | Model: <model_name> | Provider: <provider_name>

This footer is rendered automatically and there is no documented config field to disable, customize, or replace its template.

Root Cause

Every assistant reply currently gets a hardcoded gray footer line of the form:

Agent: <agent_id> | Model: <model_name> | Provider: <provider_name>

This footer is rendered automatically and there is no documented config field to disable, customize, or replace its template.

Code Example

Agent: <agent_id> | Model: <model_name> | Provider: <provider_name>

---

{
  "agents": {
    "defaults": {
      "messageMeta": {
        "enabled": true,                                                              // default true → preserves current behavior
        "template": "Agent: {agent} | Model: {model} | Provider: {provider}",         // default = current format
        "channels": ["*"],                                                            // or e.g. ["discord", "slack"] to scope by channel
        "scope": "auto"                                                               // auto = only render in multi-agent contexts; always | never
      }
    }
  }
}
RAW_BUFFERClick to expand / collapse

[Feature] Make the agent-identity footer (Agent: ... | Model: ... | Provider: ...) user-configurable

Summary

Every assistant reply currently gets a hardcoded gray footer line of the form:

Agent: <agent_id> | Model: <model_name> | Provider: <provider_name>

This footer is rendered automatically and there is no documented config field to disable, customize, or replace its template.

Problem

For multi-agent group chats, this is a useful identity stamp ("which agent is this?"). However, in several common scenarios it adds noise rather than value:

  • Redundant — when an agent already appends its own footer (e.g. for cost or latency reporting), the model name appears twice.
  • Unbrandable — the gray "Provider: ..." line surfaces internal infrastructure labels (e.g. proxy provider names) into otherwise polished assistant personas.
  • Layout cost — on visually compact channels (Feishu / Lark, Slack DMs), the extra line pushes content above the fold on mobile.

Use cases for customization

  1. Model evaluation pipelines — replace the default footer with model · duration · tokens · cost for cross-model A/B comparison.
  2. Branded assistants — assistants with a custom persona / name want a clean signature without internal identifiers leaking through.
  3. Single-agent DMs — when only one agent ever responds in a conversation, the identity stamp is pure overhead.
  4. Compliance overrides — some deployments need to replace the stamp with a required disclosure (e.g. "AI-generated content") rather than append it.

Proposed solution

Add a messageMeta field under agents.defaults, overridable per-agent in agents.list[].messageMeta:

{
  "agents": {
    "defaults": {
      "messageMeta": {
        "enabled": true,                                                              // default true → preserves current behavior
        "template": "Agent: {agent} | Model: {model} | Provider: {provider}",         // default = current format
        "channels": ["*"],                                                            // or e.g. ["discord", "slack"] to scope by channel
        "scope": "auto"                                                               // auto = only render in multi-agent contexts; always | never
      }
    }
  }
}

Template variables: {agent}, {model}, {provider}, {durationMs}, {inputTokens}, {outputTokens}, {totalTokens}, {cost}, {cacheRead}, {cacheWrite}.

Backward compatibility: defaults preserve the current rendering exactly. Setting enabled: false removes the footer. Setting a custom template overrides the format.

Bonus: a scope: "auto" mode that renders the stamp only in multi-agent contexts (group chats with sub-agents, or conversations where more than one agent has been seen) and hides it in single-agent DMs would solve the most common pain without any user config at all.

Alternatives considered

  • Post-process the outbound message in user code — fragile; downstream code has to string-match and strip the footer, which breaks if the format ever changes.
  • Set agent name / display fields to empty — doesn't help, the footer still renders with the agent ID.
  • Channel-level config — workable, but a single agent often replies across multiple channels, so per-agent configuration is more natural.

Why this is worth it

The change is small, additive, and fully backward-compatible. It removes a visible piece of friction for several legitimate use cases without affecting any existing deployment that doesn't opt in.

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…

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 [Feature] Make the agent-identity footer configurable [1 comments, 2 participants]