Post
Model Neutrality as Offensive Strategy: Why Agent Harnesses Are the New Lock-In Layer
AI vendor lock-in just became more dangerous than cloud lock-in ever was—and the solution isn't what you'd expect.
Enjoying the field notes? Subscribe for each new deep dive.Subscribe →
Model Neutrality as Offensive Strategy: Why Agent Harnesses Are the New Lock-In Layer
AI vendor lock-in just became more dangerous than cloud lock-in ever was—and the solution isn't what you'd expect.
LangChain's Neil Dahlke published a sharp post this month arguing that model neutrality (avoiding capture by a single AI vendor) matters more than cloud neutrality did in the last infrastructure generation. The kicker: neutrality isn't a defensive mechanism anymore. It's offensive. The optimal strategy isn't to hedge against vendor failure—it's to actively use multiple models in the same workflow, routing each task to whichever provider currently leads.
This inverts two decades of infrastructure thinking. Cloud neutrality was about failover and pricing leverage. Model neutrality is about extracting maximum capability from a rapidly shifting landscape.
The Hyperscaler Playbook, Replayed
Per Dahlke's post at https://www.langchain.com/blog/model-neutrality, foundation labs (OpenAI, Anthropic, Google) are replicating the strategy AWS/Azure/GCP used to lock in cloud customers:
What they sell: A commodity. In cloud, that was compute/storage/network. In AI, it's tokens. Gap between frontier models is closing; open-weight models are catching up; price-per-million-tokens has declined for two years straight.
Where they lock you in: Proprietary tooling layers. In cloud: CloudFormation, ARM templates, Vertex. In AI: Claude Agent SDK, OpenAI Agents API, Vertex AI Agent Builder.
"If they own the orchestration layer your business logic lives in, you keep consuming their tokens even when a better, cheaper, or more appropriate model exists somewhere else." (per Dahlke)
The parallel to Terraform is exact. Hyperscalers sold commodities but captured customers through tooling. Terraform provided a neutral abstraction layer that enabled credible switching, multi-provider deployments, and pushback on pricing. In the agent era, that neutral layer is the agent harness—the orchestration code that defines tool calls, state management, and control flow.
Critical insight:
"The harness lock-in is going to be harder to unwind than the model lock-in itself, because the harness is where your business logic lives." (per Dahlke)
Why Model Neutrality Matters MORE Than Cloud Neutrality
Dahlke identifies three reasons model neutrality is more critical than cloud neutrality ever was:
1. Rate of Change Is Orders of Magnitude Faster
Cloud migrations: Once every few years, driven by contract renewal or outages.
Model switching: Every quarter, often monthly. Labs leapfrog each other constantly. One lab leads on coding; a rival closes the gap three months later. One lab ships multimodal; another catches up. Lock-in means missing every advancement.
"Every twenty years or so, the way software gets built changes in a way that forces every engineering organization to restructure how they work. On-prem to cloud was the last one. Agents are the next one, and unlike the last shift, this one is happening in months, not years." (per Dahlke)
The faster things change, the higher the cost of being locked in.
2. Selective Commoditization: Models Differentiate on Task, Not Quality
Basic tasks (reasoning, Q&A, summarization) are commoditizing. But specialized capabilities remain differentiated:
- Anthropic: Widely perceived to lead on coding (though competitors close the gap)
- OpenAI: Widely perceived as ahead on multimodal
- Open-weight models (Mistral, DeepSeek, Qwen): Competitive on cost-sensitive or regulatory-constrained workloads
Rankings shift every few months. The optimal strategy isn't to pick the "best" model—it's to use the best model for each task, and switch when rankings shift.
Per arXiv:2512.04123 ("Measuring Agents in Production"), 59.1% of surveyed deployments already coordinate more than one model (only 40.9% use a single model), driven by cost optimization, modality handling, and operational constraints. This isn't speculation—it's current practice.

3. Request-Level Decisions, Not Contract-Level Decisions
This is the architectural inversion.
Cloud neutrality: A decision you make at contract renewal or during an outage. You switch clouds; your infrastructure moves; you resume operations.
Model neutrality: A decision you make during a single agent run. Choose Claude for a coding step. Choose GPT for an image generation step. Fail over mid-execution when one provider rate-limits. Drop to a cheaper model where the expensive one isn't justified.
"Cloud neutrality was something you cashed in at contract renewal or during an outage. Model neutrality is something you exercise during a single agent run." (per Dahlke)
This means the harness must support dynamic model routing at the request level—not static configuration at deploy time.

The Three Requirements for a Neutral Harness
Per Dahlke, a neutral agent harness must satisfy three conditions:
1. Open Source
Complete code transparency. No hidden capture mechanisms. Not optimized for any single vendor. Closed-source frameworks from model labs are disqualified by definition—they have no intrinsic motivation to support a competitor's best-in-class feature at parity.
2. Multi-Model Out of the Box
Same harness, any backend. GPT, Claude, Gemini, Llama, Mistral, DeepSeek, Qwen, self-hosted—all first-class. One agent definition. No provider owns the abstraction.
This aligns with production reality. Per arXiv:2512.04123: - 17 of 20 case studies (85%) rely on closed-source frontier models (Claude, GPT) - But 59.1% of surveyed deployments coordinate more than one model - Open-source adoption driven by cost constraints or regulatory requirements
Teams want to mix closed and open, fail over across providers, and route to the cheapest/fastest/most accurate option. The harness must enable this without rewriting business logic.
3. Profile-Aware (Not Lowest-Common-Denominator)
"Neutrality is not the obligation to pretend every model is interchangeable. Every frontier model has its own personality, with strengths, prompt patterns, and tool-calling styles that don't generalize." (per Dahlke)
A neutral harness must: - Expose model profiles (prompt style, tool-calling conventions, strengths) - Exploit each model's unique capabilities - Enable switching without being captive
The goal is "the right to switch," not "the requirement to homogenize."
This is a hard design constraint. It means the harness must abstract common patterns (tool calls, state management, retries) while allowing model-specific optimization (prompt templates, token budgets, reasoning modes).
Why This Is Offensive, Not Defensive
Traditional vendor lock-in avoidance is defensive: hedge against price hikes, outages, or discontinuation. You build in switching capability and hope you never use it.
Model neutrality is offensive: you actively exercise it to extract maximum value from a fast-moving competitive landscape. You don't wait for a crisis. You switch every run, every task, every time a better option ships.
Per Harrison Chase's thread (https://x.com/hwchase17/status/2066533764575179158):
"Model neutrality can be an offensive mechanism. It's about getting the most out of your agentic applications."
The framing matters. If neutrality is defensive, it's a cost center (build abstraction layers "just in case"). If neutrality is offensive, it's a capability multiplier (route to the best tool for every job, fail over instantly, push back on pricing because switching is cheap).
One commenter captured the shift: "Point 3 is the one most teams underweight. Different models per node in the same run isn't optimization. It's how you actually ship."
The Harness as Moat
If the commodity is tokens and the lock-in is the harness, then whoever owns the inference stack (the orchestration code, the state management, the control flow) owns the customer—not the lab that runs the model.
This is why LangChain, LlamaIndex, and emerging open-source harnesses matter strategically. They sit between the application and the model. They enable switching. They prevent capture.
It's also why labs are racing to ship proprietary agent SDKs. If you build your agent on Claude's SDK, your business logic is coupled to Anthropic's API. When OpenAI ships a better coding model, migrating means rewriting your harness—not just swapping an API key.
"None of those tools had any intrinsic motivation to support a competitor's best-in-class feature at parity. Doing so would only have made it easier to leave." (per Dahlke, on hyperscaler lock-in tools)
The same applies to agent SDKs. The lab that owns your harness has no incentive to make switching easy.
Production Evidence: Multi-Model Is Already Common
Per arXiv:2512.04123's survey of 86 deployed-systems practitioners and 20 case studies:
- 59.1% of surveyed deployments coordinate more than one model (2 models: 27.3%; 3: 18.2%; 4+: 13.6%), vs. 40.9% running a single model
- Motivations: cost optimization (route simple tasks to smaller models), modality handling (text-to-speech, domain-specific models), operational/lifecycle constraints (model migration, governance)
- 70% use off-the-shelf models without fine-tuning (prompting is cheaper and more agile)
This isn't future-looking speculation. Production teams are already running heterogeneous multi-model systems. The open question is whether they're using neutral harnesses or vendor-locked SDKs.
Code Pattern: What Neutral Routing Looks Like
Pseudo-code for a profile-aware, multi-model harness:
# Define agent with task-specific routing
agent = Agent(
tasks=[
Task("code_review", model="claude-opus-4",
tools=["read_file", "search"]),
Task("image_generation", model="gpt-5-vision",
tools=["dalle"]),
Task("summarization", model="mistral-large",
budget="cheap"),
],
fallback_policy="round-robin", # if primary rate-limits
observability=LangSmith()
)
# Execute with per-task model selection
result = agent.run(user_query)
The harness abstracts tool calls and state management. The model is a parameter, not a hard dependency. If Claude rate-limits, the harness fails over to GPT. If a new model ships that's 10× faster on summarization, you update the routing config—not the business logic.
When Neutrality Doesn't Matter
Neutrality has costs: - Abstraction overhead (unified API surface) - Lowest-common-denominator risk (if you can't exploit model-specific features) - Tooling complexity (observability, evals, debugging across providers)
When does it NOT make sense? - You're building a demo or research prototype (pick one model, optimize for it) - Your task maps perfectly to one model's unique strength (e.g., Claude's artifacts for UI generation) - You have a strategic partnership with a lab that guarantees pricing/availability
But for production systems where cost, latency, and capability matter, neutrality shifts from "nice-to-have" to "table stakes."
Sources & Further Reading
- Neil Dahlke (LangChain): "Model Neutrality: Why Avoiding AI Vendor Lock-In Matters": https://www.langchain.com/blog/model-neutrality — The foundational argument for offensive neutrality
- Harrison Chase on X: https://x.com/hwchase17/status/2066533764575179158 — "Model neutrality can be an offensive mechanism" framing and three-reason breakdown
- arXiv:2512.04123 - "Measuring Agents in Production": https://arxiv.org/abs/2512.04123 — Survey data on multi-model usage, production architectures, and real-world constraints
Get the next deep dive in your inbox
Field notes on shipping agentic AI — no spam, unsubscribe anytime.