Skip to content

[Critical] Subagents display as "System: [date]..." instead of their label parameter #24

@YoungVoney

Description

@YoungVoney

When spawning subagents via sessions_spawn(label="..."), the subagent session appears in the sidebar with a misleading display name that makes it look like a generic system message. The label parameter is completely ignored.

Reproduction Steps

  1. Spawn a subagent: sessions_spawn(task="...", label="test-subagent-demo")
  2. Check claw.so sidebar
  3. Observe display name

Expected Behavior

Sidebar should show:

  • Display name reflecting the label: "Subagent: test-subagent-demo"
  • Clear indication it's a spawned task
  • Session type prefix to distinguish from system messages

Actual Behavior

From HTML inspection (2026-02-17 05:39 UTC):

  • Actual session key: agent~main~subagent~d9c91c16-4e0c-425c-ba00-e1073be9dbc5
  • Display name shown: "System: [2026-02-16 07:10:54 UTC] Exec completed…"
  • Label provided: test-subagent-demo (not shown anywhere)

What users see:
OpenClaw (expanded) ├─ telegram:g-agent-main-main ├─ System: [2026-02-16 07:10:54 UTC] Exec completed… ← this is actually a subagent! ├─ Cron: ClawRouter Wallet Monitor ├─ Cron: Daily Memory Curation └─ Cron: Anti-Todo Hourly Logger

Comparison with cron jobs (working correctly):

  • Cron display: "Cron: ClawRouter Wallet Monitor" ✅ clear and descriptive
  • Subagent display: "System: [date] Exec completed..." ❌ misleading and generic

Impact

  • Subagents are effectively invisible - can't identify or monitor spawned tasks
  • Cannot distinguish between:
    • Actual system events/notifications
    • Completed subagents
    • Active subagents
    • Failed subagents
  • Defeats the primary use case of claw.so - monitoring background work
  • Makes debugging impossible - can't find the relevant session

Proposed Solution

  1. Use the label parameter from sessions_spawn() in the display name
  2. Add session type prefix:
    • "Subagent: test-subagent-demo"
    • "Subagent: test-subagent-demo (from telegram:g-agent-main-main)" (with parent)
  3. Match cron job pattern: Follow the same clear naming as cron jobs ("Cron: [name]")

Environment

  • OpenClaw version: 2026.2.15
  • Platform: Web UI (claw.so)
  • Session format: agent:main:subagent:* (shown in sidebar as agent~main~subagent~*)

Additional Context

HTML session entries use ~ separator:

  • Main: agent~main~main → displays as telegram:g-agent-main-main
  • Subagent: agent~main~subagent~d9c91c16... → displays as System: [date]...
  • Cron: agent~main~cron~45661fdb... → displays as Cron: ClawRouter Wallet Monitor

Only subagents have this naming problem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions