HackBlue

Tools · LLM application security · 19 / 23

Empty content is not an approval

An empty reply is an empty string. It is not a yes. Write the empty content and any refusal or finish field beside it, and do not treat silence as permission for a tool.

11 min read · practice only with authorization

Empty means no text was returned

A response can have an empty content field. That means the stored reply has no characters. It does not mean the model agreed, and it does not mean a tool ran. Silence is not a confirmation word.

If another field says the model declined, that field is the decline. Quote it. Do not also invent a yes from the empty content. If no such field is present, write “no decline field” and still do not treat the empty string as approval.

A tool still needs its own line

Whether a tool ran is the trace: a request and a decision. An empty reply does not replace a missing trace, and it does not convert a denied line into an allowed one. If the trace is absent, write “no tool trace,” not “approved.”

Do not paste a made-up approval sentence into the ticket so the empty field looks finished. The empty field is the record.

What to file

File the response id, content length zero or the word empty, the finish reason if present, and any decline field as printed. File the tool decision separately. Do not file “user confirmed” or “model approved” from an empty content field.

Worked case: silence read as a booked room

Response r-630 has empty content. There is no decline field. The tool trace for the same request says book_room was denied. A draft says the model approved the booking because it did not object.

The note says content is empty, no decline field, and the trace denied book_room. The room is not booked. Empty content is not a yes. The denied line is the tool record.

Snippet
response: r-630
content: empty
decline field: none
finish reason: stop
tool: book_room  decision: denied
write: no approval text; tool did not run
not: the model agreed

Diagram

What an empty reply is not

Silence does not fill in a yes.

  • Empty content

    No characters in the reply. Not an approval word.

  • A decline field

    Quote it if it is present. It is not a yes either.

  • No decline field

    Still not a yes. Say the field was absent.

  • Tool trace

    The only place a tool’s decision is recorded.

Check yourself

1. The content field is empty and there is no decline field. What did the model approve?

2. The trace says the tool was denied and the content is empty. What do you cite for the tool?

3. Why not write “no objection, so yes”?