Module 3 · Agent Tools, Knowledge, Memory & Research Design · scripted
Grounding: Asking the World If You're Right
Overview
Tools are not only ways for an agent to do things. They can also let an agent find out whether something it currently believes is actually true. In this lesson we name these grounding actions, watch an agent test a proposal against the world and revise it, learn to ground not just the action but the relationships around it, and see how this changes the way we design toolsets.
Tools can test beliefs, not just do things
A tool call does not have to change anything. It can be chosen purely to find out whether the agent is right. A grounding action is an action chosen to determine whether something the agent currently believes is actually true — an interpretation, an assumption, a prediction, or a proposed solution.
Grounding actions
The tool connects the agent's reasoning to evidence outside its own generated reasoning.
Suppose an agent concludes that the 2:15 PM train will get us to the airport in time. Rather than simply continuing to reason from that assumption, it can check the live train schedule and the flight departure time. Suppose it concludes that sales declined because we lost several large customers. It can query the underlying sales records and test whether the decline is actually concentrated among large customers. Suppose it proposes moving the workshop to Thursday because everyone appears to be available. It can check the participants' calendars. In each case, the tool connects the agent's reasoning to evidence outside of its own generated reasoning.
A belief, a check, an update
Grounding does not mean confirming — often the most valuable observation is the one that shows the agent was wrong. The important capability is that the agent can take actions specifically designed to test its own beliefs. Watch that happen:
You have the following tools available for use:
- check_calendars( people, time_range )
- schedule_meeting( people, time_range )
Task: Schedule a two-hour project meeting next week for the five people on the project team.
think(thought = "Tuesday afternoon looks open from what I know. I will propose Tuesday 2-4 PM, but check everyone's calendars before scheduling.")OK.check_calendars(people = "project team", time_range = "Tuesday 2-4 PM")Three available. Priya has a client call 2-3 PM. Marcus is out
Tuesday afternoon.think(thought = "I was wrong — two people have conflicts. Wednesday morning may work. Check before scheduling.")OK.check_calendars(people = "project team", time_range = "Wednesday 9-11 AM")All five available.schedule_meeting(people = "project team", time_range = "Wednesday 9-11 AM")Meeting scheduled.Scheduled the project meeting for Wednesday 9-11 AM. My first proposal, Tuesday 2-4 PM, conflicted with two calendars, so I moved it and verified everyone is free.
The grounding loop
The agent could have scheduled the meeting immediately. Instead it checked first, learned it was wrong, revised, and checked again.
What grounds what
Different beliefs call for different checks. The pattern is the same every time: name the belief, then find the action that tests it.
Beliefs and the actions that test them
For every belief the agent is about to act on, there is usually a tool call that could test it. The design question is whether the agent has that tool and thinks to use it.
Grounding a proposed solution
A finished proposal is still a belief. Before presenting it, the agent can test it. Suppose the task is a catering plan for 30 people with a budget of $1,000, and the agent builds a menu it believes totals $940:
You have the following tools available for use:
- get_menu_prices( vendor )
- calculate( expression )
Task: Create a catering plan for 30 people with a budget of $1,000.
get_menu_prices(vendor = "Fresh Fork Catering")Premium lunch box $26/person. Standard lunch box $22/person.
Delivery $95. Tax 9.75%. Service fee 12%.think(thought = "30 premium boxes at $26 is $780, plus $95 delivery, plus tax — roughly $940. That fits the budget. But I should calculate the full total independently before presenting.")OK.calculate(expression = "(30 * 26 + 95) * 1.0975 * 1.12")$1,075.55think(thought = "I believed the plan cost about $940. Food plus delivery plus tax plus the service fee is actually $1,075 — over budget. Revise to the standard boxes and check again.")OK.calculate(expression = "(30 * 22 + 95) * 1.0975 * 1.12")$928.05Recommended plan: 30 standard lunch boxes from Fresh Fork plus delivery, total $928.05 including tax and service fee. The premium option came to $1,075, which is over the $1,000 budget.
Grounding also catches a subtler failure: information that is true but not enough. Suppose the agent must recommend a room for a 60-person workshop. It finds a room described as "Capacity: 75." That seems sufficient. But a grounding action reveals that 75 is the capacity for theater seating — with tables, the room holds 42.
True but not enough
The room listing said "Capacity: 75" — that was true.
For a workshop with tables, the real capacity was 42.
The first piece of information was not false. It simply was not sufficient to establish that the proposed solution would work.
Ground the relationships, not just the action
Often the most important errors are not contained in the proposed solution itself. Suppose an agent is asked to move the department meeting to Thursday. The agent successfully finds an open time. But the room may already be occupied. A key participant may be traveling. The meeting may need to happen before Friday's board meeting. Catering may already have been ordered for Wednesday. The time was right; the world around the time was not checked.
The two questions of grounding
A good grounding step asks not only "is my proposed action valid?"
It asks "what else must be true for this action to be correct?"
Tools have a second job
It is tempting to describe tools only as capabilities. A calendar tool lets the agent schedule meetings. A database tool lets the agent query records. But there is another design question: what uncertainties should this agent be able to reduce?
The second job
A tool set does two things.
It lets the agent act on the world.
And it lets the agent ask the world whether its reasoning is correct.
Designing the questions a tool set can ask — and making some checks required, not optional — gets a lesson of its own next.
The whole picture
Grounding completes the loop this module has been building. The agent interprets the task, acquires the information it needs, reasons over it, proposes an answer — and then asks the world whether the proposal holds, observes what comes back, and revises.
The full loop
When grounding matters
Not every task needs every step.
As ambiguity, uncertainty, and consequences grow, grounding matters more.
A powerful agent does more than reason, search, and act.
A powerful agent can identify its important uncertainties and turn them into observations.