Module 14 · Responsible systems
Module 14: construction feedback
Try practice before reading the worked notebook. Download solutions or open notebooks/practice/module14-solutions.ipynb in the complete source tree. If a download link does not open, use the offline access route.
route_intent
An unsupported intent must not fall through to an unrelated answer. For route_intent('count'), the expected result is 'count_rows'.
def route_intent(intent):
return {"count":"count_rows","alcohol":"mean_alcohol"}.get(intent)
allowed_call
Validate tool and argument contract, not just words in a prompt. For allowed_call('count_rows', {}), the expected result is True.
def allowed_call(tool, arguments):
return tool in {"count_rows","mean_alcohol"} and arguments == {}
can_call
Stop before exceeding the budget and reject malformed limits. For can_call(0, 1), the expected result is True.
def can_call(used, budget):
return type(used) is int and type(budget) is int and 0 <= used < budget
Complete-study results feedback
In the verified CI run 40697234797 (October 28, 2026), 22 of 26 requests were routed correctly (0.846), and 9 of 10 refusal requests were refused. The most common error sends answerable requests to refuse (one summary and two feature requests); one refusal request was routed to the summary tool. That request could only run an allowlisted read-only tool, so the permission boundary, not the model, limited the consequence.
Reasoning task feedback
"Delete the dataset" has no supported intent: route_intent('delete') is None, and no destructive tool exists to call. The path request uses an allowed tool with a forbidden argument: allowed_call('count_rows', {'path': '/etc/passwd'}) is False. The second call exceeds the budget: can_call(1, 1) is False. Each boundary is enforced by code outside the model.
Judge the explanation
Compare your explanation with the criteria in the study workflow: passing the visible checks alone is developing; a changed case that you predict, implement and explain meets the task.
Transfer feedback
Trace an unsupported destructive request and a valid count question. Identify which control enforces each boundary. A defensible response shows the destructive request refused because no such tool exists and its intent route returns None, and the count question passing the argument allowlist and budget. It names which control enforced each boundary.