Module 3 · Agent Tools, Knowledge, Memory & Research Design · scripted
The Questions a Tool Can Ask
Overview
The language of action taught one law: what the language can't say, the agent can't do. This lesson is the other half of that law: what the language can't ask, the agent can't ground. The questions a tool set can express determine what the agent can know for certain — everything else it acts on is an assumption. So we design the questions deliberately, starting from the beliefs the agent will act on. And we go one step further: the language can be designed to require grounding — chaining tools so that certain actions cannot even be spoken until the check that justifies them has run.
Two things a tool set expresses
Read any tool set twice. Read it once for its verbs — what the agent can do. Then read it again for its questions — what the agent can ask the world.
Two readings of one tool set
The first reading bounds the agent's actions. The second bounds what the agent can ever know for certain.
The unaskable is the unknowable
Give an agent a verb without the matching question, and it can act but never know. Watch:
You have the following tools available for use:
- schedule_meeting( people, time_range )
Task: Schedule the two-hour project review next week.
schedule_meeting(people = "project team", time_range = "Tuesday 2-4 PM")Meeting scheduled.You have the following tools available for use:
- check_calendars( people, time_range )
- check_room( room, time_range )
- schedule_meeting( people, room, time_range )
Task: Schedule the two-hour project review next week.
check_calendars(people = "project team", time_range = "next week")All five free: Tuesday 2-4 PM, Wednesday 9-11 AM.check_room(room = "project room", time_range = "Tuesday 2-4 PM")Occupied. Wednesday 9-11 AM is free.schedule_meeting(people = "project team", room = "project room",
time_range = "Wednesday 9-11 AM")Meeting scheduled.A belief the language cannot ask about is a permanent assumption — and the miss is invisible, because nothing errors. The agent in Example 1 was not careless. Its language simply could not express the question.
Design from the beliefs, not the features
So there is a design method here, and it starts from the other end. Do not start from what the tool can do. Start from the beliefs the agent will act on — and design a question for each one.
The method
Designing tools around uncertainties
The language can require grounding
Everything so far makes grounding possible. The language can go further: it can make grounding required — by chaining the tools so that a consequential action cannot be spoken without the output of the check that justifies it.
You have the following tools available for use:
- check_scheduling_validity( people, room, time_range ) — verifies calendars and the room; returns a signed validity id
- send_meeting_confirmation( details, validity_id ) — validity_id must come from check_scheduling_validity
Task: Confirm the project review for Wednesday 9-11 AM in the project room.
check_scheduling_validity(people = "project team",
room = "project room",
time_range = "Wednesday 9-11 AM")Valid: all five free, room available. validity_id = "VLD-8842-a1"send_meeting_confirmation(details = "Project review, Wednesday
9-11 AM, project room", validity_id = "VLD-8842-a1")Confirmation sent.Chaining forces checks
The consequential tool takes a parameter only the grounding tool can produce — a signed id, issued by the check.
No id, no action. The agent cannot skip the check, forget the check, or talk itself out of the check — the sentence cannot be formed without it.
The system prompt asks. The grammar requires.
This is the same move as the required rationale parameter from the planning lessons, aimed at evidence instead of thought: there, the grammar demanded a reason before acting; here, it demands a verification. And it is a cousin of making mistakes unspeakable — the unchecked action is not forbidden by a rule; it is unsayable in the language.
Promise certainty only where the language can ask
The coverage law said the language must be able to say a solution to every task you promise. Its epistemic twin:
The epistemic coverage law
If the task requires the agent to KNOW something — not assume it — the language must be able to ask the question that grounds it.
Promise certainty only where the language can ask.
And where certainty is impossible — where no tool can ask the question — the design answer comes from the safety lesson: that belief is exactly what should go to human review, or stay a draft until a person confirms it. The beliefs the language cannot ground are the ones the agent should not act on alone.