guide · computers

How an AI Agent Reads a Multi-Message Input Batch

When the operator sends multiple messages at once, the agent concatenates them into context with timestamps. A multi-message batch is one turn, not a multi-turn dialogue. The P43 rule.

July 14, 2026 · By Alastair Fraser

A friendly retro robot at a wooden desk reading three small letters in a row, each labelled with timestamps 09:45:00, 09:45:05, and 09:45:08; the robot holds a single outgoing reply letter in its other hand.

When you tap out three quick messages in a row on Telegram — “check the deploy log,” “the cron one,” “there was a 502 at 09:43” — the agent does not see three turns. It sees one. The gateway collapses them into a single user turn, stamps each line with a timestamp, and hands the whole thing to the model as a single input. That is a multi-message input batch, and the way the agent reads it is one of the most quietly important pieces of operator discipline on Hermes. Get it wrong and the conversation drifts; get it right and the agent answers once, cleanly, in one shot.

This guide walks through what a multi-message batch is, why it matters, the P43 rule that just landed in operator practice, and how the batching looks across the gateways you actually use (Telegram, CLI, Slack, Discord, the AgenticBotSitter web UI).

What “multi-message input batch” means

When the operator sends multiple messages in rapid succession (before the agent has a chance to respond), the gateway batches them into a single conversation turn with timestamps. The agent sees ONE user turn containing all the messages, separated by their timestamps.

Concretely:

[operator] 09:45:00 — "Check the ABS deploy log"
[operator] 09:45:05 — "Specifically the cron that runs every 5 min"
[operator] 09:45:08 — "There was a 502 at 09:43"

Becomes ONE user turn in the agent’s prompt, formatted as:

09:45:00: Check the ABS deploy log
09:45:05: Specifically the cron that runs every 5 min
09:45:08: There was a 502 at 09:43

The agent reads the whole batch in one shot. The agent’s response (if any) lands as ONE assistant turn. The conversation history now has one user turn, not three.

Why this matters

Three consequences:

  1. The agent doesn’t backtrack. A multi-message batch is read like a paragraph, not a dialogue. The operator can’t say “but I asked you the earlier question first, ignore the latter.” All three messages are in the same turn.

  2. The agent sees the timestamps, which lets it reason about cause-and-effect. A log line at 09:43 plus a question at 09:45 forms a “this is the cause; what happened after?” pattern. The agent can use the timestamp ordering.

  3. The agent uses the entire batch as the input for one tool-call loop. If the agent decides to run a tool, it does so once and uses the tool output to satisfy every part of the batch. It doesn’t run a separate tool per message.

The P43 rule

The P43 rule that just landed: always batch related messages into one turn; don’t fragment across multiple chat turns unless you’re waiting for a specific response.

Practical patterns:

  • “Deploy this guide” + “If deploy fails, list the prior 3 commits” → batch.
  • “Show me the rate-limit on row 4 of the model-matrix” (alone) → send alone, no need to batch.

When in doubt, batch. Multi-message batches are read as ONE turn; sending separately just costs a context turn for each.

What multi-message looks like in Hermes

The rendering depends on the gateway:

  • Telegram: each message becomes one line in the batch. The agent sees [timestamp HH:MM:SS]: message lines.
  • CLI: if the operator types multiple lines in one hermes chat -q invocation, the operator’s Newlines collapse to spaces (not multi-message). For real multi-message batch in CLI, run separate hermes chat -q calls in a row.
  • Slack: threads keep all messages in one thread; the agent sees the thread as one user turn.
  • Discord: same as Slack for thread-isolated channels.
  • Web UI on agenticbotsitter.com: the operator can paste a multi-line input as one turn; the agent reads the multiline.

The behavior is consistent: multi-message in = one user turn = one assistant response.

What multi-message is NOT

Three confusions worth flagging:

  1. Multi-turn is not multi-message. A real dialogue (the operator sends one message, the agent responds, the operator sends a follow-up) is multi-turn — each turn is one message. That’s different from a single-turn batch.
  2. Markdown formatting does not equal multi-message. One message with markdown headers is still one turn. The agent reads the formatting but it’s one turn of the conversation history.
  3. Tool-call loops happen in one turn. If the agent decides to use a tool mid-batch, it runs the tool, gets the result, and completes the response — all within one assistant turn.

What not to do

  • Don’t send a multi-message batch and expect a multi-turn dialogue. The agent treats it as one turn.
  • Don’t double-send the same batch in two successive messages “to make sure it got through.” That creates two turns, and the agent may think you have two related but distinct requests.
  • Don’t put tool-call instructions in a separate message from the answer-request. The agent can’t run the tool in one turn and answer in the next based on the same batch.

Verification checklist

#TestWhat it proves
1Send 3 messages in a row; check the conversation logThey’re in one user turn
2Send a multi-message batch; observe the responseOne assistant turn, not three
3Compare with a multi-turn flowMulti-turn is different from multi-message

Sources

Last verified: 2026-07-14 against Hermes v0.18.2 (2026.7.7.2).

Sources

#agent#multi-message#batch#protocol#operator

Submit a take

Have a different read on this? Drop a comment below — your email isn't published, and I read every one. Nothing leaves the site until I approve it.

Your email address will not be published. Required fields are marked.