# A small research stack you can inspect

*Worked example, reviewed September 27, 2026. Produced from an actual DeepSeek conversation through an isolated Hermes source snapshot, then checked and corrected against the captured sources and the tested starter. This is the reviewed teaching artifact, not an unedited model answer.*

Hermes coordinates a model and tools. Its `web_search` finds sources; `web_extract` reads pages. In this lab, both reach local Firecrawl. Firecrawl forwards search to Axl Ibiza’s SearXNG gateway and uses the local scraping services to return page text. The model can then compare evidence and explain it. [Hermes web tools](https://hermes-agent.nousresearch.com/docs/user-guide/features/web-search)

| Component | Its job in this lab | Where it runs | What it still depends on | Evidence |
| --- | --- | --- | --- | --- |
| Hermes | Coordinate questions, tools and answers | Reader’s computer | A model provider and configured tools | [Hermes documentation](https://hermes-agent.nousresearch.com/docs/user-guide/features/web-search) |
| DeepSeek | Interpret and synthesize the evidence | Ollama Cloud | Reader’s account allowance and internet connection | [Ollama Cloud](https://docs.ollama.com/cloud) |
| Firecrawl | Read pages, discover URLs and run bounded crawls | Local Docker containers | Website access; Redis/RabbitMQ workers; model access for model-assisted extraction | [Self-hosting guide](https://docs.firecrawl.dev/contributing/self-host) and the starter Compose file |
| SearXNG | Query search engines through Axl’s gateway | Local Docker container | External search engines, which can throttle requests | [SearXNG](https://docs.searxng.org/) and the starter settings |
| AnyDoc | Convert document content into Markdown | Local Docker adapter | Supported document format and conversion dependencies | [AnyDoc](https://github.com/firecrawl/anydoc) and the observed DOCX conversion |
| PaddleOCR | Recognize letters in page images | Local CPU service; optional NVIDIA path | Model downloads, memory and image quality | [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) and the observed scan result |

The overlay, gateways and adapters connect these upstream projects. They come from **Axl Ibiza’s setup**, with documented course adaptations for CPU OCR, validated model output and persistent local monitor differences. They should not be mistaken for features every upstream Firecrawl installation includes. The starter’s `NOTICE.md` and `CHANGES.md` identify those boundaries.

The installation extraction correctly retained two significant limits: the documented Hermes macOS installer supports Apple Silicon, and Nix is best-effort rather than an explicitly supported installation path. The extraction is an intermediate result; the official page remains the source to check. [Hermes installation](https://hermes-agent.nousresearch.com/docs/getting-started/installation/)

The image-only fixture recovered **“FIRECRAWL MASTERCLASS OCR CHECK 2026”** and **“This page is a picture. Read it with OCR.”** The Word fixture also converted into readable Markdown. These invented documents prove that the demonstration paths ran; they do not establish accuracy for every real document. Metadata fields resembling cloud URLs or credit counters are compatibility fields in this local response, not evidence of a cloud upload or a charge.

Local search, parsing and OCR avoid those hosted service fees. DeepSeek inference still leaves the computer and uses the reader’s Ollama Cloud account. This setup uses a schema in the prompt and local validation because Ollama Cloud currently does not support native structured outputs. A valid object can still contain an incorrect claim. [Cloud access](https://docs.ollama.com/cloud), [structured-output limits](https://docs.ollama.com/capabilities/structured-outputs)

**Watch:** monitor the official Hermes installation page for changes, inspect the resulting difference, then decide whether this brief needs revision. A changed page is a review signal, not permission to rewrite conclusions automatically.

**Still unproven:** performance on poor scans and larger workloads; physical Apple Silicon and standalone Linux installation; identical behavior across websites or future model releases.

## What the review corrected

The raw model draft called PostgreSQL a queue, omitted external search-engine dependencies from the SearXNG row, and introduced unrelated Firecrawl Cloud pricing. This reviewed version assigns persistence and worker responsibilities correctly, makes external dependencies explicit, and keeps the cost discussion about the stack used here. It also adds the observed Word conversion. Generating a brief was one step; checking its claims was part of finishing it.
