What was actually happening
When a pipeline agent step calls a tool — <gather>, <read>, <database>, or the new <browser> capability — the call and its result both get added to the conversation that's sent back to the AI model. Or at least, they were supposed to.
In practice, the code that saved the AI's own message into that conversation was stripping the tool-call tag out before storing it. If the AI's entire message was just a tool call with no other commentary, what actually got saved was a blank, empty turn — followed by a user-role message containing only the result, like [read result]. The call itself had vanished from the record.
Why this matters
This is exactly the kind of thing AICODESIT's agent harness exists to prevent — a black box where you can't tell what the AI actually did versus what it's claiming happened. A blank assistant turn followed by an unexplained result made pipeline history harder to audit and, on longer runs, harder for the AI itself to reason about what it had already done.
The fix
The assistant's message now keeps the original content — tags and all — when it's added to the conversation. If the AI called <read path="index.html" />, that's exactly what shows up in its own history, immediately followed by the actual file contents it received back. Nothing hidden, nothing implied.
We also confirmed the visible chat UI does the right thing on the display side: tool-call tags like <gather>, <read>, <database>, and the new <browser> tag are cleanly hidden from the main message text (so you're not reading raw tag syntax), while the tool-call itself and its result both appear as their own rows in the pipeline's timeline — visible, expandable, and in the right order. This is the same principle behind the function-calling pattern most AI tool integrations use, just made fully visible instead of hidden between the model and the server.
What you see now
- Every tool call the AI makes — gather, read, database, browser, and more — stays in its own conversation history, not just the result
- No more blank assistant turns where a tool call used to be
- The pipeline timeline shows both the call and the result as separate, readable rows
- Raw tag syntax never leaks into the main message text you read
Everything at a glance
| Aspect | Before | After |
|---|---|---|
| Assistant's own history | Tool-call tags stripped — often blank | Full original content, tags included |
| Tool result | Shown with no visible call before it | Shown right after the call that produced it |
| Chat display | Raw tags could leak into visible text | Tags hidden from message text, shown as timeline rows instead |
| Auditability | Hard to tell what the AI actually did | Every tool call traceable end to end |
Live now on every pipeline run — nothing to configure.
Related: Total control over your AI agent · How to automate your dev workflow with the Pipeline Builder · AI Browser Agent — browse, click, and screenshot real websites