Ninety-three examples share one repository, not one quality bar
AI Engineering Hub is a shelf of small projects. The root README divides 93-plus entries into 22 beginner, 48 intermediate, and 23 advanced examples. Topics range from OCR and local chat to RAG, voice agents, fine-tuning, model comparisons, and MCP servers. That breadth is handy when you want to see how several tools have been wired together without starting from a blank file.
Each directory has its own dependencies, credentials, and operating assumptions. Our 353.1 MB checkout contained 1,487 files and about 106,158 source lines, but those totals describe the collection rather than a single application. A green result in one folder says nothing about a neighboring notebook or GPU demo. The difficulty labels help you browse; they do not certify that every prerequisite, test, or production concern has been handled.
The measured example needs Linkup and a local Ollama model
We examined Multi-Agent-deep-researcher-mcp-windows-linux, the advanced example named in the lab brief. It defines 3 CrewAI roles: a web searcher, a research analyst, and a technical writer. Their tasks run sequentially. The same run_research function sits behind a Streamlit chat interface and one stdio MCP tool named crew_research, which makes the code compact enough to trace in one sitting.
The README tells you to run uv sync, start streamlit run app.py, or add an MCP client entry with LINKUP_API_KEY. Source inspection reveals another required service. agents.py points CrewAI at ollama/deepseek-r1:7b on http://localhost:11434. The guide names DeepSeek R1 in its component list but gives no Ollama installation, model-pull, readiness, or model-configuration steps. A newcomer can finish the documented setup and still lack the model endpoint the program calls.
The application also sends web searches to Linkup, so this is not an offline researcher. Streamlit stores the entered Linkup key in session state and copies it into the process environment. MCP users place the same key in their client configuration. That is adequate for a local lesson. A shared service would need a deliberate secret path, access controls, timeouts, and a policy for what research queries may leave the machine.
What happened when we ran it
Our sandbox installed commit 7875e2c in 28 seconds inside the measured subdirectory. The run added 35 Python packages and used 38 MB on disk. Its build succeeded in another 9 seconds. The container had 3 CPUs, 8 GB of RAM, Python 3.12 on Debian, no secrets, and no elevated privileges. Pip-audit reported 0 known vulnerabilities in the installed dependency set.
Tests were skipped because the project exposed no test script or target. Our scan also found no tests directory, no Dockerfile, and 0 GitHub CI workflow files. Those absences matter more than the short 9-second build: nothing in our run exercised a Linkup request, loaded deepseek-r1:7b, checked the 3 agent handoffs, opened Streamlit, or called the MCP server. The build result proves that the measured dependency path completed, no more.
A clean dependency audit leaves the application behavior unproved
The 0-vulnerability pip-audit result is useful and narrow. It covers known advisories reported for the 35 installed packages on September 28, 2026. It does not inspect prompt behavior, source quality, secret exposure, or the permissions of an MCP client. Nor does it show whether the generated answer cites the right source. This researcher asks one model to turn another agent's search results into prose, so output checking belongs in any serious adoption plan.
Error handling is lesson-sized. The Linkup tool catches a broad exception and returns its text as if it were a tool result. The outer research function also converts exceptions to strings. There is no typed distinction between a bad key, exhausted quota, unreachable Ollama service, or malformed search response. Without a test target, you must reproduce those failures yourself before deciding how the UI or MCP caller should react.
September activity is visible, but releases and CI are absent
GitHub showed 38,076 stars and 125 open issues and pull requests when checked on September 29, 2026. The default branch was last pushed on September 10, and an open pull request received activity on September 24. That combination shows ongoing contributions. The open queue spans many unrelated projects, however, so its size cannot be read as the bug count for the measured researcher.
GitHub returned no latest release, and the repository has 0 CI workflows. Users therefore pin a commit and inspect the chosen directory instead of relying on a versioned, automatically checked artifact. The measured folder does include uv.lock, which helps reproduce its 35-package environment. A lockfile preserves dependency selection; it cannot establish that Linkup, Ollama, Streamlit, and the MCP wrapper still work together.
Pick one example and give it a separate quality gate
AI Engineering Hub earns a bookmark because 93-plus examples make comparison quick. The measured researcher is short enough to understand, its 28-second install was painless, and the Streamlit plus MCP split is a useful teaching choice. Keep the scope honest: our result applies to that one folder at commit 7875e2c, not to the rest of the catalog.
For structured study, Microsoft's beginner courses provide an explicit lesson order; the LLM Course provides notebook-based roadmaps. Choose this hub when you want a broad menu and expect to do the engineering after selection. Once an example matters to a user, put it in its own repository, add runtime checks and failure tests, and pin the external services it actually needs.

