CourseModel Context Protocol · Module 10: Design Patterns and Agents · part 73 of 83
Part 73 · Module 10: Design Patterns and Agents

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 -q to check the regression test passes, and PYTHONPATH=. python examples/m10_lab.py for 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.

The rest of this course is yours to keep

This course is bought on its own, once, and stays readable afterwards, including the parts added to it later.