Over the weekend, Pydantic brought its agent harness and coding terminal into its main framework repository, pydantic/pydantic-ai, then added them to the shared build and test machinery. The consequential detail is in the package definitions: the harness will require the exact framework version it was built with, and the terminal client will require the matching harness. An independent supplier is assembling a more coordinated agent stack.
That makes a useful counterpoint to OpenAI’s September 10 Agents API announcement. OpenAI offers to operate the Codex harness for developers: the surrounding software that manages context, calls tools and coordinates work. Pydantic supplies components an application team can run and change. Both address the work between “the model answered” and “the job got done,” but they allocate that work differently.
Our reading of these changes is that the supplier choice is expanding beyond the model. A team choosing an agent now has to choose an operating arrangement: who maintains the loop, who runs its tools, who stores its work and who coordinates upgrades. Those questions can matter even when two applications call the same model.
The quiet change is a release contract
Pydantic did not invent its harness this weekend. Its June 23 v2 announcement described a lean framework core and a faster-moving harness of reusable capabilities. The September 26 import preserves the earlier projects’ history. Reading that imported activity as a sudden burst of new features would badly misread the development.
The new fact is the coupling. The packaging change replaces the harness’s minimum framework dependency with an exact matching version. The harness and CLAI2 terminal client remain separate packages, but their version templates now follow the framework’s minor and patch releases.
Then, on September 27, the CI definition extended the existing release-wheel check to the new packages: build the workspace packages, install their wheels outside the source workspace, import the added packages and run the terminal client’s help command. A monorepo can conceal dependencies that work only inside the checkout. Testing the built packages is how this change starts addressing what an installer receives.
For application teams, the intended benefit is fewer independently chosen versions to reconcile. The tradeoff is tighter coupling: moving the harness forward also means accepting its matching framework requirement. This is an implementation of coordinated maintenance, not a measurement of lower support costs.
There is also a release boundary. The framework 2.51.0 and harness 0.36.0 releases inspected on September 28 predate the import. The coordinated version scheme is landed source; we have not verified a published package set carrying it. An upgrade decision should use the actual wheel metadata when that release arrives.
What comes in the parts box
The Coder implementation shows why the stack deserves attention beyond packaging. It combines file reading and editing, a persistent shell, repository instructions, delegation to fresh runs of the same agent, and context management. These are ordinary composable capabilities. A developer can inspect how the coding agent is assembled and use those building blocks in another application.
This is also why “OpenAI or open source” is an unhelpful binary. Pydantic’s model-selection code includes OpenAI, Anthropic and Google implementations, among others. Using an OpenAI model need not mean using OpenAI’s managed agent loop. Conversely, OpenAI’s own announcement points to the public Codex code. Access to source and responsibility for operating it are separate choices.
Pydantic’s approach gives the application team control over composition. It also leaves that team with deployment work. Coder’s shell can run unrestricted commands; its documentation calls for an operating-system sandbox for untrusted work. Installing the Python stack does not provision an isolated machine, choose persistence or take responsibility for the application’s credentials.
The managed offer still has a boundary
OpenAI’s architecture documentation draws a distinction worth reading before procurement: a self-hosted execution environment does not mean a self-hosted harness. The orchestration remains at OpenAI. A customer choosing its own environment keeps responsibility for provisioning, reconnection, shutdown and file preservation. The managed offer transfers substantial work, while leaving a specific operating contract with the customer.
The public Codex repository makes some of that maintenance visible. A September 27 change gives Guardian reviews an independent history when parent-compaction reuse is disabled, so shortening the parent’s conversation need not erase the reviewer’s original evidence. That is one concrete example of what maintaining a harness entails. It does not tell us which revision the hosted API deploys, or establish that the managed service has a particular defect.
Coordination can also mean removing a layer
OpenClaw shows a different way to clarify ownership. Its September 27 removal of Tasks and TaskFlow deletes a shared tracking layer while retaining execution under existing Cron, session and native owners. As our separate migration report explains, plugins lose interfaces and unfinished work needs careful handling. The point for this comparison is that a useful stack can also become smaller.
These projects are not converging on one architecture, and these receipts do not identify a market winner. They show three concrete decisions about responsibility: operate the surrounding software as a service, coordinate the components people operate themselves, or remove an overlapping owner.
For a team evaluating agent platforms, put an ownership map next to the model comparison. Specify where the loop runs, where tool execution runs, which component preserves unfinished work and how the components upgrade together. Ask each supplier to demonstrate that arrangement on the same small workload. That comparison reveals what a platform actually takes off your hands—and what your team is choosing to keep.