All three converged on the same runtime shape, so the old 'which can build an agent' question is dead. What's left is a bet on which layer each treats as first-class — and one differentiator nobody can copy.
Three open-source answers to Deep Research, and they disagree on one thing — how the research loop is controlled. One project's benchmark proves that choice is the whole game.
Three bets on the same idea — that the command line, not the IDE, is where coding agents live. And as of this month one of the three just changed its name and its terms.
Cache-augmented generation deletes the retriever and preloads your whole knowledge base into the KV cache. The real question isn't speed — it's whether your corpus fits and how often it changes.
Three clouds rent you the same frontier models. The thing that actually locks you in is the agent runtime wrapped around them, and most teams pick it by accident.
The config-file war for how you talk to a coding agent didn't end with a winner. It ended with a foundation — and that changes which file you should actually write.
The vector database fight stopped being about speed. It's now about where your index sleeps — and whether you have one hot haystack or a million cold ones.
When one model won't fit on one GPU, you have two ways to cut it up — and the right cut is a description of your interconnect, not a tuning knob you guess at.
Three popular RAG upgrades all transform the query before retrieval — and they're useless if your retrieval was failing for a different reason. Here's how to tell.
A single tokens-per-second number hides two workloads pulling in opposite directions — and the whole arc of serving optimization is the field admitting they should never share a GPU.
Multi-LoRA serving turns "one GPU per model" into "one GPU per base model, amortized across hundreds of tenants." Here are the tools that do it, and the kernel trick that makes it work.
Ollama just ripped out llama.cpp and bolted in Apple's MLX on the Mac. The switch is a tell about where your bottleneck actually lives — and when the older engine still wins.
The Model Context Protocol defines three server primitives split by who's in control — the model, the app, the user. The ecosystem implemented one of them.
Most MCP servers only answer requests. Sampling and elicitation are the two features that let a server reach back through the client — one to the model, one to the human — and almost no one implements either.
Loading every tool definition into context and round-tripping every result is how MCP agents stall. Code execution flips the model into a programmer — and moves the hard part to your sandbox.
Your chunks lose the document around them before they're ever embedded. Jina and Anthropic solve it in opposite places — one in vector space for free, one in the text for a price.
The weights are the easy part — the math you can do on a napkin. What silently OOMs your server in production is the KV cache, and almost nobody budgets for it.
When retrieval underperforms, everyone reaches to fine-tune the LLM. The cheaper, higher-leverage move is to fine-tune the embedding model — and almost all the gain comes from one ingredient.
MCP standardized how an agent calls a tool. It said almost nothing about how the agent logs in as you — and that gap is the whole product these three are selling.
The real divide in open-source RAG isn't which library to import — it's whether to build with one at all, or deploy a finished engine. Three engines, three very different bets.
GRPO is now a commodity all three ship. The thing that actually sorts them is who owns the distributed orchestration — and how you keep one starving inference engine fed.
Three ways to serve embeddings at scale that look like rivals but answer a different question: should embeddings be a dedicated specialist, or ride on the GPU already running your LLM?
The new realtime models hear and speak in one step, no text in the middle. That deletes the seam where you used to read, log, and control everything. Here's the real trade.
The frameworks that get the most attention disagree on something basic — what an agent's action even is. One writes code, one wires a graph, one casts a team.
The listicle treats these as three flavors of the same choice. They aren't — two are ends of one axis, and the third sits on a different axis entirely. Pick by your environment, not your vibe.
The benchmark you compare on today expires in three weeks. The license you build on doesn't. Pick an open-weight family the way it will still matter next quarter — by what you're allowed to do with it, and what it costs to serve.
Forcing a model to emit valid JSON is a solved problem. Doing it without slowing generation to a crawl is the one that produced three new engines — and your serving stack probably already picked one for you.
Three self-hosted chat UIs that look interchangeable on a feature checklist — but each one is really built for a different person, and picking the wrong one means fighting the grain forever.