An agent that would rather raise a gap than invent a reference
The drafter is handed this customer’s retrieved passages and nothing else. Where the model writes prose it cannot cite, the prose is discarded and the question goes back to the customer — a worse outcome for the schedule and the only honest one.
Five agents sit behind a bid: one reads the questionnaire, one retrieves the evidence, one drafts, one scores, one writes the request to the customer for what is missing. The selling point is not that they exist. It is what each of them is forbidden to do.
The parser produces a proposal, never the question list. A person confirms the list against the source document, once, while the document is still open in front of them. The reason is unanswerable: a parser that drops one question produces a pack where every answer is good, readiness reads 100%, and the submission is rejected for a missing mandatory response. Nothing downstream can detect that, because what is wrong is the list itself.
Everything works one question at a time. Asking a model for eight answers in one call is cheaper and it has no way to refuse when it runs out of room — it stops mid-pack, looks finished, and the tokens are gone. Eight calls is an orchestration choice a caller makes; one call that returns a hundred answers is a design that cannot fail safely.
The drafter is given the retrieved passages and the question, and told to state nothing the passages do not support. That instruction on its own is worth nothing, so two things enforce it. The command that records an answer refuses a citation that does not point at this customer’s own evidence and at a passage that actually exists. And the drafter’s own output is checked for citations before anything is written: an answer the model returned with no citation at all becomes a gap, not an answer. The prose is thrown away and the question goes back to the customer.
That is a worse outcome for the programme and the only honest one. An uncited paragraph in a submission is a claim the customer cannot stand behind, and an invented reference is a false statement to a buyer and grounds for disqualification. Anything the question asks for that the evidence does not cover is raised as a gap beside the draft, so a partial answer with a known hole beats both a gap that throws away good prose and a draft that hides what is missing.
None of the five can reach a decision, either, and that is a property of the record rather than of a prompt. The closed event catalogue refuses AI authorship on every event that does not explicitly allow it, and nothing that approves, accepts or commits does. So an agent may draft an answer and score it, and cannot approve one, accept an amended contract, or bind the customer’s company to anything at all.
The scorer does not grade its own work — separate call, separate prompt, separate command. The gap writer composes one covering message in plain English for somebody who runs a contracting business and does not write bids: no procurement jargon, no question numbers as the only identifier, and the date each thing is needed by.
Every run is quoted before it starts, held against the wallet, refused on an empty one, and recorded against the customer and the piece of commercial work it was spent on. A provider can read what each customer’s AI actually cost, which is the only way to know whether a fixed fee was a good idea.
See the record being made rather than described.
Launch the demo environment