OpenAI now ships three ways to call its models — but one of them has a death date. Here is how to choose, and the one reason reasoning models behave better on the newest surface.
The benchmark wars miss the two axes that actually decide a GraphRAG backend — where your graph lives in the memory hierarchy, and which restrictive license it ships under. The permissive option just died.
You can distill a sentence transformer into a token lookup table that needs no forward pass at inference — up to 500x faster on CPU, ~50x smaller, and it keeps more quality than the speedup suggests it should.
A Matryoshka-trained embedding lets you chop off the tail of every vector and still search well — and a two-pass trick gets you the storage savings and the accuracy at the same time.
Since the 1.0 release, LangChain's agent helper runs on LangGraph's engine — so the real question isn't which to pick, but which layer of the same stack to write against.
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.
GRPO didn't win on optimization theory. It won by removing a policy-sized value network from the training loop — and the memory it saved is what put RL post-training within reach of a single node.
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.
Agents don't run on chatbot leaderboards. The model that wins your tool loop is decided by function-calling reliability, agentic benchmarks, and an "agent tax" the headline price hides.
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.
Both bolt a quality check onto RAG, but they fix different failures at different points — and the choice comes down to one question: do you control the model's weights?
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.
Every major provider sells inference at roughly half price if you can wait up to 24 hours. The discount isn't the point — the contract is, and it tells you which agent work was never realtime to begin with.
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.
You quantized the weights to 4-bit and thought memory was solved. At long context the KV cache dwarfs the weights — and it needs a different kind of quantization to shrink safely.