Edition 2026-07-23 · digest built 2026-07-23T12:10:39+00:00
MCP Goes Stateless, Agents Get Deterministic Orchestration, and Claude Code Gets a Lot Cheaper
The most actionable open-source/Claude-adjacent signal today is infrastructure, not model hype: MCP's next spec drops session state entirely, two independent write-ups converge on treating multi-agent orchestration as a distributed-systems problem, and several builders shared concrete ways to cut Claude Code token spend. On the local/open-weight side, a new 35B-A3B open coding MoE, an on-device TTS model, and hard numbers on llama.cpp MoE-offload flags are all worth a look.
Protocol and orchestration shifts
MCP's 2026-07-28 release candidate finalizes next week and it's a real migration, not a version bump: session IDs and the initialize handshake disappear in favor of a stateless core, Roots/Sampling/Logging get deprecated out of core, and tool schemas move to full JSON Schema 2020-12 — anyone running an MCP server should budget time to update before it ships. Separately, four cross-posted write-ups from the same production multi-agent system landed on the same lesson: stop trying to make the LLM deterministic and make the orchestration around it deterministic instead — typed task graphs, durable queues, stateless workers, and idempotent aggregation turn 'agent crashed mid-task' into a non-event rather than a 3am page.
Making Claude Code (and agents generally) cheaper and safer
Two practical, apply-today ideas: a local profiler that reads your own `~/.claude/projects/` JSONL logs to show exactly which files get re-read dozens of times and which failed commands are quietly re-billing you, and a routing plugin that sends mechanical Claude Code sub-tasks (grep, file location, boilerplate edits) down a cost ladder to Haiku or shell commands before ever touching the main model. A LangChain thread is a good cautionary tale for the same instinct applied to provider failover: a sensible-looking fallback chain silently tripled cost-per-ticket on hard cases by replaying full context through three providers in sequence.
Open-weight and local releases worth trying
Kwaipilot open-sourced KAT-Coder-V2.5-Dev, a 35B-total/3B-active coding MoE, and a hobbyist's write-up of a two-site llama.cpp cluster gives concrete numbers for `--n-cpu-moe` expert offload on consumer GPUs when a MoE model won't fit in VRAM. NeuTTS-2E is a small (125M active param) open, on-device TTS model with controllable emotion. On the research side, SkewAdam claims a tiered-optimizer trick that cuts MoE optimizer-state memory by 97%, and Gigatoken is a Rust BPE tokenizer benchmarked at multi-GB/s — both worth a look if you're fine-tuning or serving MoE models on a budget.
Today's findings
-
#1 MCP 2026-07-28: the protocol core goes statelesstool
MCP's next spec, finalizing July 28, drops session IDs and the init handshake and deprecates Roots/Sampling/Logging from core.
MCP spec update · cuts over 2026-07-28MCP core drops session stateStateful core- Mcp-Session-Id
- init handshake
- Roots/Sampling/Logging built-in
Stateless core- Mcp-Method/Mcp-Name headers
- server/discover
- Roots/Sampling/Logging as extension
Existing session-based auth/logging needs rework before 7/28Why it matters: If your team runs or builds MCP servers, this is a breaking migration, not a routine update — stateless core means servers become easier to scale behind ordinary load balancers, but existing session-based auth/logging assumptions will need rework, and OAuth 2.1/OIDC hardening is bundled in.
How to apply: Audit any custom MCP servers for reliance on Mcp-Session-Id or the initialize/initialized handshake; plan the switch to Mcp-Method/Mcp-Name headers and server/discover before the 7/28 cutover, and check whether you use Roots/Sampling/Logging since those move to an extension.
mcpprotocolagents
Read more: MCP 2026-07-28 looks like a real migration, not a routine spec bump
-
#2 Treat multi-agent orchestration as a distributed-systems problem, not an agent-framework problemtechnique
Stop trying to make the LLM deterministic — make the orchestration around it deterministic instead: typed task graphs, durable queues, stateless workers.
Multi-agent reliabilityOrchestration is a distributed-systems problem, not a framework problemIn-process agent framework- Planner calls workers directly
- Failure detection left to you
- State lives in-process, dies on crash
Distributed orchestration- Typed task contract: what, not how
- Durable per-type queues
- Externalized state, TTL + atomic completion
Make the plumbing deterministic — not the LLMTwo years running multi-agents in production, distilledWhy it matters: This is a hard-won lesson from two years of running a multi-agent system in production: partial failure, retries, and coordination are the actual reliability problems, and in-process agent frameworks leave failure detection and recovery to you.
How to apply: Have your planner emit a typed task contract (what, not how) rather than calling workers directly; put tasks on durable per-type queues so a dead worker just leaves its task waiting; externalize aggregator state with a TTL and atomic completion so it survives crashes and scales across replicas.
agentsorchestrationreliability
Read more: The hard part of multi-agent systems isn't the agents — it's what happens when one dies mid-task · Treating LLM agent orchestration as a distributed-systems problem — durable execution vs. agent frameworks · We stopped trying to make our agents deterministic and made the orchestration deterministic instead · We stopped trying to make our agents deterministic and made the orchestration deterministic instead
-
#3 Open-source profiler shows exactly where your Claude Code tokens gotool
A free local tool reads your own Claude Code session logs and surfaces re-read files, failed-command re-billing, and cache savings.
Token Waste, QuantifiedOne profiler run found $201 burned on retries$201re-billed from failed callsacross 60 sessions455failed tool calls re-billed118xsame 5,649-line doc re-read60sessions analyzedLocal profiler reads your own Claude Code JSONL logs to surface thisWhy it matters: The author found a 5,649-line progress doc re-read 118 times and $201 of retry re-billing from 455 failed tool calls in just 60 sessions — the kind of waste that's invisible until you look at raw per-request token logs.
How to apply: Point the profiler at your own `~/.claude/projects/` JSONL logs to find your worst offenders; the fix pattern shown (split long docs into a short 'current state' head plus archived history below a marker) is directly reusable for any CLAUDE.md or progress doc.
claude-codecostobservability
-
#4 Route Claude Code sub-tasks to the cheapest capable model automaticallytool
A plugin makes the main Claude Code model act as a router, sending mechanical sub-tasks down a ladder to shell commands, then Haiku, then Sonnet, before ever using the top-tier model.
Cost-aware routingClaude Code tries the cheapest option first, escalating only when needed1Shell cmdgrep/jq/git2Haikulocate/extractMost mechanical sub-tasks stop here3Sonnetedits4Top-tierplanningTop-tier model reserved for actual judgment calls, not busyworkWhy it matters: Most calls in an agent session aren't reasoning — they're locating files, extracting fields, or mechanical edits — and running that on a top-tier model is the bulk of a wasted bill.
How to apply: Adopt the ladder pattern directly: try a deterministic shell command first (grep/jq/git), fall back to a small model for locate/extract tasks, and reserve your best model for actual planning and judgment calls.
claude-codecostagents
-
#5 Provider failover chains can silently triple your per-task costtip
A 'reliable' primary→secondary→tertiary LLM failover chain replayed full context through all three providers on hard tickets, tripling cost per resolved ticket while uptime dashboards looked fine.
Why it matters: Uptime and cost-per-task are different metrics, and a fallback chain built for reliability can quietly wreck margins on exactly the highest-value cases without tripping any alert.
How to apply: If you run multi-provider failover, add cost-per-resolved-task tracking broken out by whether a request hit the fallback chain, and cap how many providers a single request can cascade through before failing loudly instead of expensively.
agentscostreliability
-
#6 SymbolPeek: an MCP server that gives agents symbol-level code access instead of whole filestool
Open-source (MIT) MCP server lets Claude Code/Codex answer 'where is this function defined' without reading a 2,000-line file.
Why it matters: Directly reduces token spend and context pollution on large TypeScript/JS codebases, the same class of waste the Claude Code profiler above independently surfaced.
How to apply: Add it as an MCP server alongside your existing filesystem tools for large repos; it's most valuable exactly where agents currently do full-file reads to answer symbol-level questions.
mcpcodingtokens
Read more: I built an MCP server that lets AI read symbols instead of entire files
-
#7 Kwaipilot open-sources KAT-Coder-V2.5-Dev, a 35B-A3B coding MoErepo
Open-weight release of the coding-focused MoE behind KAT-Coder-V2.5, 35B total / 3B active parameters.
architectureKAT-Coder-V2.5-Dev: sparse coding MoE, open-weightroutertop-3 gate35B total params3B active per tokenweightedmerge35Btotal params3Bactive per token~8.6%of weights fireWhy it matters: A capable open-weight coding model in the 3B-active tier is runnable on modest local hardware via llama.cpp, giving teams a self-hostable alternative for coding-agent workloads.
How to apply: Pull the weights from Hugging Face and benchmark against your current local coding model (e.g. Qwen3.6-35B-A3B) on your own repo tasks before adopting.
open-weightscodingmoe
Read more: Kwaipilot/KAT-Coder-V2.5-Dev · Hugging Face
-
#8 Offload MoE experts to system RAM with llama.cpp's --n-cpu-moe on consumer GPUstip
A two-site local LLM cluster build shows Qwen3.6-35B-A3B (Q4_K_M) running via llama.cpp with `--n-cpu-moe 12` after vLLM + gpt-oss-20b repeatedly OOM'd on a 24GB card.
Local LLM Memory TrickSplit MoE Experts Between GPU and RAMHOT24GB GPU VRAM Active experts + KV cacheCOLDSystem RAM 12 offloaded MoE expertsllama.cpp --n-cpu-moe 12 kept Qwen3.6-35B-A3B (Q4_K_M) off the OOM path where vLLM + gpt-oss-20b failedWhy it matters: Concrete, reusable fix for the common 'MoE model almost fits but not quite' problem on 16-24GB consumer GPUs — offloading select MoE experts to CPU RAM instead of falling back to heavier quantization or a smaller model.
How to apply: If a MoE model OOMs on your GPU, try llama.cpp with `--n-cpu-moe <n>` to push some experts to system RAM before downsizing the quant or the model.
llama.cpplocal-llmquantization
Read more: Built a two-site local LLM cluster from second-hand hardware, meshed with self-hosted Headscale
-
#9 Fully local RAG over proprietary manuals, built by a non-programmer, with a documented eval harnesstechnique
An industrial engineer with no prior coding background built a production-bound, fully local RAG system (hybrid + contextual retrieval + reranking, Qwen3 generation) gated behind an eval harness, now saturated at 56/56 on their retrieval eval.
Why it matters: It's a real production RAG build for data that legally can't leave the building, with a documented list of what didn't work — a useful reality check against RAG tutorials that stop at 'index loaded'.
How to apply: Borrow the structure directly: hybrid retrieval + contextual retrieval + reranking as the retrieval stack, and build an eval set early so you know when retrieval is actually saturated versus when synthesis is the bottleneck.
raglocal-llmollama
-
#10 NeuTTS-2E: open-source on-device TTS with 7 controllable emotionsrepo
125M-active-parameter open-source TTS model with controllable emotion, designed to run on-device.
Why it matters: Small enough to run locally without a TTS API dependency, useful for voice features where sending user text to a third-party TTS service is undesirable.
How to apply: Evaluate for local voice-agent or accessibility features where latency and data locality matter more than studio-grade quality.
ttsopen-sourcelocal-llm
Read more: We built NeuTTS-2E, an open-source on-device TTS model with 7 controllable emotions
-
#11 Gigatoken: a Rust BPE tokenizer claiming up to 989x HuggingFace Tokenizers throughputrepo
New Rust BPE tokenizer benchmarked at 24.53 GB/s encoding speed.
Why it matters: Tokenization is a real bottleneck in large-scale data pipelines and RAG ingestion; a drop-in faster tokenizer can meaningfully cut preprocessing time for large corpora.
How to apply: Benchmark it against your current tokenizer on your actual ingestion pipeline before swapping — verify vocab/BPE-merge compatibility with your target model first.
tokenizationperformanceopen-source
-
#12 SkewAdam: tiered optimizer cuts MoE training memory by 97%paper
A tiered-optimizer approach reportedly fits a 6.7B MoE's optimizer state on a 40GB GPU, a 97% memory cut versus standard Adam.
Why it matters: Optimizer state (not weights) is often the real memory bottleneck when fine-tuning MoE models locally; a technique that shrinks it that much could make MoE fine-tuning feasible on a single workstation GPU.
How to apply: If your team fine-tunes MoE models locally and is VRAM-constrained, check the repo/paper for implementation details and whether it integrates with your existing training stack before committing.
fine-tuningmoequantization
Read more: SkewAdam: A tiered optimizer that cuts MoE state memory by 97% (fits a 6.7B MoE on a 40GB GPU) [R]