Build Stack Review

Evaluating AI Coding Agent Frameworks for Environment Compatibility

Framework choice matters less than whether the agent can drift its own environment.

Editor at Large · · 11 min read
Cover illustration for “Evaluating AI Coding Agent Frameworks for Environment Compatibility”
AI Agent Development Environments · September 12, 2026 · 11 min read · 2,457 words

The AI coding agent market hit $7.84 billion in 2025 and is on track for $52.62 billion by 2030, growing at a 46.3% compound annual rate, according to Markets and Markets. Gartner expects 40% of enterprise applications to carry task-specific AI agents by the end of 2026, up from under 5% in 2025. That pace means teams are picking frameworks fast, often under deadline pressure, and mostly on the strength of benchmark scores. SWE-bench has become the default yardstick, but those numbers are vendor-reported, run against different model versions, and best read as a rough tie at the frontier rather than a definitive ranking. None of it tells you whether the agent that aced the benchmark on someone's laptop will still work the same way on a teammate's machine or inside a CI pipeline next month, and that gap is where a lot of real-world agent deployments quietly fail.

What "environment compatibility" actually means for a coding agent framework

Environment compatibility isn't one thing. It breaks into three parts that can each be tested on their own: dependency isolation (does the framework's runtime stay in its lane, or does it leak into the host system), reproducibility (does the same setup behave the same way on a different machine, in CI, or six months from now), and tool availability (does every tool the agent might call actually exist, and behave the same, everywhere the agent runs).

Environment drift is the term for what happens when environments that were supposed to be identical (dev, staging, production) quietly stop being identical. This isn't a theoretical worry. An empirical study running 780 tests across four software containers and 13 hardware types found test-accuracy drift above 6% for binary classifiers and above 8% for LSTM models, caused purely by environment differences (Coakley et al., 2023). Separately, a study of 5,298 Docker builds found that only 6.4% of rebuilt images matched the original package versions exactly (Malka et al., January 2026). Reproducibility, in other words, is the exception, not the default, even before an AI agent enters the picture.

Coding agents add a failure mode traditional reproducibility research never had to deal with: agents that install packages, edit lockfiles, or run arbitrary build scripts on their own can change the very environment they were handed. Worth separating that into two distinct problems. Passive drift is when the environment underneath the agent shifts without the agent doing anything. Agent-induced drift is when the agent's own actions change that environment in ways nobody tracks or can undo. Any serious evaluation of a coding agent framework has to account for both.

The six frameworks most teams are actually choosing from in 2026

LangChain / LangGraph. Open source under MIT, with LangChain sitting around 134,000 GitHub stars. LangGraph, now at version 1.2.11, works as a graph-based runtime on its own, though it retains a dependency on langchain-core according to its own release notes. It leads enterprise adoption with 34.5 million monthly downloads and fits complex, stateful multi-agent orchestration with a wide integration surface across LLMs, APIs, and databases. The catch: it leans on a lot of external dependencies that need frequent updates, and keeping that dependency tree pinned gets harder every time the AI landscape shifts, which lately is often.

CrewAI. Also under a permissive open-source license, built for role-based multi-agent collaboration in Python, and a strong choice for prototyping crews that run sequentially, hierarchically, or in parallel. The recurring complaint from the community centers on non-OpenAI integrations and memory system connections, which tend to break unexpectedly during framework upgrades.

Microsoft Agent Framework (MAF). Open source and the unified successor to AutoGen and Semantic Kernel, reaching version 1.0 general availability on April 3, 2026. It combines AutoGen's simple single- and multi-agent patterns with Semantic Kernel's enterprise features, things like session-based state, filters, telemetry, and type safety, and adds graph-based workflows for explicit control over execution paths. Both Python and.NET are supported. It's a natural fit for teams already on Microsoft or Azure, less so for anyone outside that ecosystem.

Google ADK (Agent Development Kit). Apache 2.0, announced April 2025, now at 20,000 GitHub stars and 3.3 million monthly downloads. It's a modular framework tied to Gemini and Vertex AI, supports hierarchical agent structures and custom tools, and ships with a built-in code execution environment that cuts down the boilerplate needed for agents that run and check their own code. Best suited to teams already living on Google Cloud who want an opinionated, batteries-included runtime.

OpenAI Agents SDK. Released under a permissive open-source license and built for tightly scoped assistants with clean multi-agent handoff and minimal abstraction layered on top. It's a solid fit for teams already building on one provider's models that want simple delegation patterns without a lot of extra machinery.

Mastra. Apache 2.0 at its core, and built specifically for TypeScript teams. It comes with model routing, RAG pipelines, memory management, and a Studio environment, plus native Model Context Protocol support. It plugs into Next.js, Vite, and Express, so agents either bundle directly into an existing web app or deploy as standalone REST endpoints. Managed hosting starts at $250 a month. For environment compatibility specifically, Mastra's approach matters: because agent logic lives inside the same TypeScript app, there's no separate Python microservice adding a second runtime to keep in sync.

Worth a mention outside the main six: Smolagents, from Hugging Face, released January 2025 and now past 27,700 GitHub stars. Its model has the LLM write Python code at each reasoning step, and that code runs inside a sandboxed environment by design. That sandbox-first architecture matters enough to its own section below.

Notice, too, that these frameworks split by primary runtime language, Python versus TypeScript versus.NET, and that split is itself an environment-compatibility variable teams tend to overlook until it costs them a weekend debugging a version mismatch.

How sandbox design determines whether an agent mutates its own environment

The question that matters here is simple to state and hard to answer from documentation alone: when an agent runs code or installs something, does that action stay contained to the agent's own context, or does it spill into the shared host or container?

Smolagents makes a strong case for taking this seriously, with sandbox execution built into its core design rather than offered as an optional add-on. Every reasoning step produces executable code, and that code runs inside a sandboxed environment. Google ADK offers something similar with its built-in code execution environment, though stronger isolation beyond the default setup requires extra configuration on the team's part.

Compare that to frameworks that just hand execution off to whatever runtime happens to be sitting on the host. LangChain tool calls and CrewAI task execution both fall into this category: neither framework's documentation describes built-in isolation guarantees, leaving that responsibility to the deploying team. MAF inherits AutoGen's code execution patterns, and its documentation does not describe automatic isolation of execution environments.

This matters because unpinned dependencies, transpiler and minifier drift, and arbitrary code execution inside build scripts are documented failure patterns across scripting ecosystems generally. Code an agent writes and runs on its own hits all three of those risks at once, which is a different threat profile than code a human developer commits after review.

A few concrete questions separate the frameworks that take this seriously from the ones that don't. Does the framework sandbox code execution by default, optionally, or not at all? Can something an agent installs during a run persist after that run ends? Is there any way to reset or snapshot the environment between runs? And does the framework actually document what the agent is allowed to touch versus what's off-limits? Frameworks that can't answer these plainly are asking teams to build the isolation layer themselves.

Reproducibility across machines and CI: where most frameworks go quiet

Diagram: Reproducibility Is the Exception, Not the Default. Visualizes: Visualize two stark statistics that together frame the reproducibility problem: an empirical study running 780 tests across 4 software containers and 13 hardware types found…

Most framework evaluations stop at "does the agent finish the task." The harder and more useful question is whether it finishes that same task the same way on a different machine next week, and this is where a lot of documentation simply stops talking.

Go back to that Docker rebuild study: only 6.4% of rebuilt images matched the original package versions exactly (Malka et al., January 2026). Containerizing an agent's environment doesn't automatically make it reproducible. The causes tend to be the usual suspects, nondeterministic build steps, dependency pins nobody bothered to set, and upstream repositories that changed underneath the build, and all three apply directly to a coding agent framework's own dependency graph, not just to the application it's helping build.

LangChain's breadth becomes a liability here. A large integration surface across APIs, databases, and external tools means a wide dependency graph, and a wide dependency graph is exactly what gets harder to pin down as the underlying AI landscape keeps shifting. CrewAI's community has flagged the same underlying issue from a different angle: upgrades to the framework itself have broken non-OpenAI integrations without warning, which is a reproducibility failure dressed up as a compatibility bug.

MAF reaching version 1.0 general availability in April 2026 is itself a stability signal; frameworks still churning through pre-1.0 releases are inherently harder to pin reliably, since the ground keeps moving under whatever lockfile a team writes today.

There's a behavioral pattern worth naming too: when setting up a clean environment takes too long, developers reuse old ones instead, and those old environments accumulate drift nobody notices until something breaks. The same incentive applies just as strongly to agent environments running inside CI, where nobody's watching closely enough to catch the slow decay.

A short list of questions helps here. Does the framework publish a lockfile or a pinned dependency manifest? Is the framework's own version pinned in the project, or is it pulled at latest on every build? Does the documentation say anything at all about CI parity with local setups? And are there known breaking changes between minor versions that quietly remove or alter tool availability? Teams serious about determinism should also check whether a framework's installation process plays nicely with declarative, hash-pinned environment tools like Nix and its Flakes system, which represent a real shift in how reproducible environments get built in the first place.

Tool availability consistency: the runtime dependency problem frameworks don't solve for you

An agent's tools are only as trustworthy as the executables, APIs, and services sitting behind them, and the framework only controls the orchestration layer, not whether those underlying pieces actually exist where the agent runs. Framework docs will tell a team which Python or Node version they need. They rarely say a word about the system-level tools, compilers, CLIs, database clients, that the agent's own tool calls quietly depend on.

Mastra's design choice is instructive here. By keeping agents inside the same TypeScript application as the rest of the product, the agent's tools share a dependency graph with the app itself rather than living in some separate Python service off to the side, reducing the cross-runtime surface. MAF's tight Azure integration cuts the other way: it aligns tool availability for teams running inside Azure, though teams running locally or on non-Azure CI will need to verify that the same tools are available in those environments, since tool availability on one platform says nothing about tool availability on another. Google ADK's built-in code execution environment addresses some tool-availability concerns, but any agent calling out to external CLIs or system binaries still depends entirely on whether the host happens to have them installed.

Teams need to treat this as an audit, not an afterthought, checking that a chosen framework actually lines up with the existing tech stack, including the LLMs, APIs, databases, and platforms already in use, rather than assuming compatibility because the framework's marketing page lists an integration. Four questions do most of the work. Does the framework's tooling layer abstract over host binaries, or call them directly? Is there a declarative manifest listing which system tools the agent needs? Does the framework test against more than one OS and architecture in its own CI? And, maybe most practically, what actually happens when a tool the agent needs is missing versus present at the wrong version, silent failure or a clear error?

Supply chain risk that enters through the framework's own dependency graph

An AI model, as of 2026, is just another third-party dependency, except it's one that most traditional security scanners can't read at all. That's a real gap, not a hypothetical one. Many models still get distributed in formats like pickle that allow remote code execution the moment they're loaded, so a framework that pulls down model weights as part of its own setup process is widening its attack surface in a way a standard dependency audit won't catch.

The trust boundary problem isn't abstract either. Attackers modified historical Git tags on a widely used GitHub Action, one relied on by an estimated 23,000-plus repositories, and exposed CI/CD secrets inside public Actions logs as a result (StepSecurity disclosure, March 14, 2025). That's a dependency-trust failure, not a flaw in any particular framework, but it's exactly the kind of vector that a framework's own supply chain inherits the moment it pulls in a third-party action or package. And the base layer compounds it: standard public container images typically carry 50 to 60 known CVEs out of the box, while minimal, source-built images cut that down to single digits, so the choice of base image adds risk on top of whatever the framework itself brings in.

Most frameworks stay quiet on the things that would actually let a team audit this properly. Do they generate or support a software bill of materials, an SBOM, for their own dependency tree? Are model weights and third-party integrations pinned and signed, or just fetched at whatever version happens to be current? Do the CI pipelines that ship framework updates run any vulnerability scanning at all? An SBOM, for anyone unfamiliar with the term, is a machine-readable inventory of every component and library inside a piece of software, complete with version numbers, origins, and licenses, and it's the baseline artifact any serious security review starts from.

Open standards matter here too, things like CycloneDX and SPDX for the bill of materials itself, in-toto and SLSA for build provenance, and OSV and VEX for vulnerability data, because frameworks that emit or accept these formats make downstream compliance work tractable instead of custom. Teams now increasingly need ML-BOMs alongside standard SBOMs, documents that cover a model's training data, architecture decisions, and safety benchmarks, not just its package dependencies. That's a newer requirement than most engineering teams are used to, and most coding agent frameworks haven't caught up to it yet, which is itself a fact worth weighing before betting a production pipeline on any of them.

Sources

  1. The best AI agent frameworks in 2026
  2. Best 10 AI Agent Frameworks [We've Built Them for 3 Years] | Lindy
  3. The best open source frameworks for building AI agents in 2026

More in AI Agent Development Environments