Topic 6: Module 10 milestone and interview questions
8 min read·22 Sept 2026
Project Milestone
Your notes-assistant repository now contains, in addition to everything from Modules 1 to 9:
text
examples/
m10_common.py shared helpers and the KeywordAgent stand-in model
m10_calendar_server.py a second server: the lab equipment calendar (stdio or --http PORT)
m10_thin_wrapper_server.py the one-tool-per-endpoint anti-pattern, built on NoteStore
m10_thin_vs_task.py thin wrapper versus task-shaped server, measured
m10_aggregator.py an aggregator (gateway) server that re-exports upstream tools
m10_aggregator_demo.py a client of the gateway, with hop timing
m10_retrieval_server.py top-k passages with resource links
m10_retrieval_demo.py what a retrieval result looks like to a client and to a model
m10_multi_server.py one agent, two stdio servers
m10_orchestrator.py orchestrator and workers sharing HTTP servers
m10_agent_server.py the notes agent exposed as the ask_notes tool
m10_agent_client.py calling ask_notes from an ordinary client
m10_dynamic_tools.py all tools versus by-task versus a find_tools meta-tool
m10_disclosure.py inline versus links versus passages, measured
m10_eval.py the eval harness with a JSON report
m10_noise.py simulated run-to-run noise in a small eval
m10_lab.py the Module Lab
tests/
test_m10_tool_descriptions.py fails when the eval drops below the baseline
m10_eval_baseline.json the committed baseline (keyword stand-in)Code explained
- In simple words: the file list you should now have, with one line on what each file is for.
- What happens: every file is new; no file under
notes_assistant/changed. The canonical server, host, store, and helpers are imported, never copied. - Comes out: run
PYTHONPATH=. python -m pytest -qto check the regression test passes, andPYTHONPATH=. python examples/m10_lab.pyfor the end-to-end check.
The design decisions to carry into the capstone: keep the notes server task-shaped (two tools, one resource template, one prompt); keep the host's tool set small and measure before adding servers; keep the eval and its baseline in the repository; and rerun the eval whenever a description changes.