Commissioned for this museum

What It May Reach For

English·2023·25 lines·1162 bytes

Curator’s note

Everywhere else in the building, what decides which branch to take is reading syntax. Here it is reading English.

That is the whole of what is strange about this one. A switch dispatches on a value, a vtable on a type, an HTTP router on a path — each of them a mechanism that cannot be talked round. This dispatches by having something read three paragraphs and judge which best describes the situation in front of it. The paragraphs are the program.

Which makes the descriptions load-bearing in a way documentation is not. Ordinary documentation is read by whoever is writing the call, once, and being unclear costs a person a few minutes. These are read by whatever is making the call, every time, and an ambiguity between two of them is not a documentation defect. It is a routing one.

Hence the sentences saying what each tool is *not* for. Nothing in the names or the signatures separates search_docs from lookup_account when the question is "why is this customer being charged twice" — both plausibly apply. So the prompt separates them by hand, and then states the tie-break outright rather than leaving it to be inferred from three descriptions that were each written as if the other two did not exist.

The parameters are typed for the same reason they are typed in the schema a few frames along: months: integer is the difference between a call that fails and a call that quietly asks for "the last few". And the last line is the instruction from the refusal prompt wearing different clothes. Without somewhere for "none of these" to go, the only move available is the closest match — and a wrong tool call is a worse way to be wrong than a wrong sentence, because it looks like work was done.

No year belongs to this. 2023 is roughly when the practice hardened from a trick into an interface, and the technique is much older than that: it is the docstring, handed a job the docstring was never load-bearing for.