A hands-on LangChain, LangGraph, LangSmith, MCP, LlamaIndex, LiteParse, MarkItDown, Docling, pgvector, pggraph, Pydantic AI, Ollama, Playwright, Redis, and Langflow course, built as small, linear lessons
This is a teaching repository with 22 tools spread across multiple lesson files. Most tools have minimal descriptions (10-30 chars), no parameter descriptions, and no documented output schemas. Many tools are duplicated (add appears 10+ times). Parameter types are present but descriptions are null. No error handling guidance, no security considerations, and no composition patterns. This is educational material, not production-grade tooling.
Add two numbers together.
Add two numbers.
Add two numbers together.
Add two numbers together.
Add two numbers together.
Add two numbers together.
Add two numbers together.
Add two numbers together.
Add two numbers together.
Parameter descriptions are null across all tools. Rubric requires every parameter to have a description explaining what it controls. LLMs cannot infer parameter meaning from names alone.
Tool descriptions are extremely brief (10-40 chars). Rubric baseline is 194 chars average; descriptions under 20 chars score 0-20. Most descriptions lack context for LLM selection (WHEN to use, WHAT it returns, prerequisites).
Massive duplication: 'add' tool appears 10+ times across different lesson files with identical or near-identical definitions. This violates single-responsibility and composition patterns. Agents cannot distinguish between duplicates.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Add two numbers together.
Add two numbers.
Add a note and return its id.
Add a note and return its id.
Delete a note by id.
Divide a by b.
Get a short weather forecast for a city.
Return a friendly greeting for the given name.
List every note currently stored, by id.
List every note currently stored, by id.
Return a small PNG thumbnail.
Return a caption and a thumbnail together.
Increment and report how many times this server has been pinged.
No output schemas documented. Rubric requires documented return types for 100% of A+ tools. LLMs cannot plan downstream calls or extract data without knowing response structure.
No error handling guidance. Tools like 'divide' raise ValueError but provide no recovery hints. Rubric requires error responses to tell LLM what to do next (retry, ask user, or fatal).