v0.6.0 — extract the agent's reply from <slack_reply> tags
v0.5.0 asked agents not to narrate their reasoning. Agents then narrated about the preamble — quoting the instruction back and explaining that they should follow it — before answering. Prompt nudging alone is not enough, because the model writes its planning as ordinary output text and the host's done event carries the whole turn as finalText.
Observed output made line/paragraph heuristics unsafe too: the real answer was jammed onto the end of the last reasoning sentence with no separator (…in a natural, conversational way.Hey! What's up?).
v0.6.0 asks the agent to wrap its reply in <slack_reply>…</slack_reply> and posts only that content. This is not a heuristic — it's an explicit marker the agent controls:
- last complete tag pair wins (a model may echo the instruction, tags and all, before its real reply);
- an unclosed opening tag falls back to everything after it;
- no tags at all → the full text is posted, exactly as before, so an agent that ignores the instruction is no worse off than in 0.5.0.
Extraction applies only to the final reply, not to live streamed partials (which can legitimately be mid-tag). If you customise chatPromptPreamble, keep the tag instruction or extraction won't apply.
163 tests.
🤖 Generated with Claude Code