Skip to content

Agent tool calls intermittently render as raw XML text (never execute) — tmux transport, model-level emission fault #910

Description

@olegbrok

Two specimens on pushok, 2026-07-25, ~5h apart (~08:00 and 10:00 PDT heartbeat turns): the turn's tool invocations (send_heartbeat, check_inbox) rendered as raw <invoke> XML in the agent's OUTBOUND TEXT (delivered as an inter-agent message with a stray "court" prefix token), and the calls never executed. Downstream: heartbeat missed → last-seen goes stale; if it hit a critical turn it would silently drop real work. Agent self-recovers on subsequent turns.

Key diagnostic fact: pushok's registry transport = tmux and his session cold-boots through TmuxSession (clean SessionStart gate, verified in api.log 11:02:59 boot). So this is NOT the SDK-transport parse family (#868/#869 adjacent) — initial attribution wrong (mine). The CLI appears to be faithfully passing through model output in which tool-call syntax was emitted as plain text; the stray prefix token fits garbled model emission, not a parser break.

Pattern watch: both specimens were heartbeat/autonomy-loop turns (cheap, formulaic prompts). Third occurrence should capture: the exact inbound prompt, session model + effort, context fill %, and whether the turn began mid-compaction.

Mitigation ideas (unbuilt):

  • Daemon-side detector: outbound agent message matching <invoke name= → flag + auto-notify the agent (it usually doesn't know its calls didn't run) + counter per agent/model.
  • Correlate specimens with model/effort settings — if confined to one model family, that's an upstream report.

Specimens preserved in barsik's inter-agent inbox (#9523, #9560).

🤖 Opened by Barsik

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions