Topic 7: Module 3 milestone and interview questions
8 min read·22 Sept 2026
Project Milestone
At the end of this module your working copy contains the Module 3 prototype and its measurement scripts:
text
notes-assistant/
notes/ unchanged: every demo writes to a temporary copy
notes_assistant/ unchanged: store.py and llm.py (Module 1) are imported; host.py (Module 6) is previewed for needs_approval
examples/
__init__.py
m03_first_attempt.py the careless tool and what it teaches the model
m03_server.py build_m03_server: search_notes and create_note (canonical design)
m03_inspect_tools.py prints the wire definition and both result channels
m03_tool_names.py spec and provider name checks
m03_annotations.py annotations as untrusted claims
m03_tool_variants.py vague, disambiguated, and merged tool sets
m03_tool_selection_eval.py 20 labelled questions, stand-in and --llm selectors, statistics
m03_payload_size.py inline versus snippet-plus-URI versus resource links
m03_errors.py validation, ToolError, crash, leak, MCPError
m03_tool_cost.py definition cost of 2 versus 12 tools
m03_idempotency.py retries of create_note versus a create-or-confirm tool
m03_dynamic_tools.py add_tool plus notify_tools_changed, client.listen, HTTP serve mode
m03_wire/listen.json raw subscriptions/listen request
m03_wire/call.json raw tools/call request
m03_lab.py the Module Lab
tests/
test_m03_tools.py the tool contract as testsCode explained