

W14 / 2026-12-07 / 35 MIN / ENGLISH
Agent budgets, permissions, and failure traces
Classroom formative practice. This does not add a weekly graded assignment. The exercise time is included in class practice, not added after the three-hour meeting.
Before you start
- Use a CPU runtime. Save a personal copy or open the downloaded notebook in Jupyter.
- Run the included complete walkthrough first. Read its setup, definitions, and checkpoints.
- Predict before running each exercise cell; then change only the requested factor.
- Keep your actual outputs, configuration, explanation, and limitation. Free tools are sufficient.
TASK 1 / PREDICT - RUN - EXPLAIN
Test the permission boundary
Compare a permitted add operation with a send_email proposal. Both remain inside an offline simulator.
- Write your prediction in the notebook response field before running.
- Run the starter cell below after the worked walkthrough.
- Make the requested controlled change and record the configuration.
- Explain the mechanism using the actual output, not an invented result.
observations['task1']={'allowed':execute_plan([{'tool':'add','values':[1,2]}]),'blocked':execute_plan([{'tool':'send_email','values':[1]}])}
print(observations['task1'])Self-check: The unsupported action requires human review. No real email is sent.
TASK 2 / PREDICT - RUN - EXPLAIN
Test exactly at and above the budget
Run three operations and four operations with a budget of three. Explain whether rejected plans execute any steps.
- Write your prediction in the notebook response field before running.
- Run the starter cell below after the worked walkthrough.
- Make the requested controlled change and record the configuration.
- Explain the mechanism using the actual output, not an invented result.
observations['task2']={str(count):execute_plan([{'tool':'add','values':[1,2]} for _ in range(count)]) for count in [3,4]}
print(observations['task2'])Self-check: Compare the actual statuses and traces at the boundary. A longer plan must not silently bypass the step budget.
TASK 3 / PREDICT - RUN - EXPLAIN
Inspect partial execution
Place a forbidden action after a permitted action. Read the trace and explain whether checking an entire plan before execution would change the safety contract.
- Write your prediction in the notebook response field before running.
- Run the starter cell below after the worked walkthrough.
- Make the requested controlled change and record the configuration.
- Explain the mechanism using the actual output, not an invented result.
observations['task3']=execute_plan([{'tool':'add','values':[1,2]},{'tool':'send_email','values':[1]}])
print(observations['task3'])Self-check: Report exactly what occurred before refusal. A stopped workflow is not necessarily an atomic workflow with no prior effects.
Completion checklist
- Three predictions and three explanations.
- One controlled change with its actual outcome.
- One limitation and a brief AI-use/checking disclosure, or "none".
- A downloaded W14-evidence.json, then a two-minute peer explain-back.
The notebook marks incomplete response records as drafts. Completing the fields is not proof that an explanation is correct.
The guided walkthroughs were previously executed. The new exercise extension cells have not yet been execution-tested for this revision. Agent exercises are deterministic simulations; no paid model or consequential external action is used.