Daily Edition Sources +5

Builder Work: Keep the Empty Object Open

An agent-assisted LangChain fix protects a gateway’s free-form arguments. The useful craft is testing what a schema means after another library has translated it.

Three source cards show an open MCP payload passing through a LangChain adapter into a provider schema, with explicit restrictions preserved.
Diagram Punkpreserve the gateway’s open arguments without erasing the server’s restrictions.
repo langchain-ai/langchain evidence
5 source signals 1 repo commit 5c1f282
Evidence: commit 5c1f282 / September 17, 2026 / Daily Edition
Open Edition Evidence below

A gateway can expose hundreds of operations through a few tools: list what exists, describe an operation, then call it with the right arguments. That economy depends on the final tool accepting an object whose keys vary with the operation. If an adapter turns “no named fields” into “no fields allowed,” the gateway loses its vocabulary.

LangChain’s September 16 merge addresses that boundary. Its public authorship record identifies Open SWE as the coding agent used for the change. John Kennedy merged it following Sydney Runkle’s approval. That establishes assisted work and human review; it does not tell us what fraction of the reasoning or code came from either.

Twenty-two lines, a semantic boundary

The new helper in LangChain’s MCP tool adapter copies the schema and examines its direct argument properties. For an object without declared fields or an explicit extra-property policy, it adds additionalProperties: true. The adapter passes this normalized schema into the LangChain tool that will later be converted for the model provider.

There is a temptation to describe this as relaxing validation. The exclusions tell a more precise story. An explicit additionalProperties: false stays false. A typed extra-property rule stays typed. A supplied unevaluatedProperties rule is left alone. The original server schema is not mutated.

The patch also declines a larger job: it does not recursively rewrite every nested schema or composition keyword. That restraint matters. A generic walker could change constraints whose meaning depends on surrounding structure. This repair makes one intended openness explicit at one conversion boundary.

The craft: test the translated contract

The regression test does more than call the new helper. It builds an MCP tool, adapts it through as_langchain_tool, converts the result to a provider tool definition, and inspects the final parameters. Three variants cover an object with an empty properties map, an object without that map, and a nullable object. Each must retain explicit openness and the required argument. Separate cases protect the server’s restrictions.

Use that pattern when an agent helps build an adapter. Write down the semantic promise at the input, inspect the representation at the last translation boundary, and include a case the adapter must refuse to broaden. Compare the original input afterward. A test that merely asserts the helper returned its new field can miss a later conversion that removes it again.

We executed the actual normalization function in isolation against the three open forms, three explicit restrictions and a nested boundary, checking input preservation; those checks passed. We inspected the upstream provider-conversion tests but did not execute the full dependency-backed suite or call a live model.

The repository subsequently bumped LangChain to 1.4.1 and published that release on September 16. This is a small patch with a reusable lesson: when software translates a contract, preserving its restrictions is only half the work. It must preserve the freedoms too.

Evidence Trail

Receipts below the story

The article above is the public narrative. This section keeps the source trail and limits on the same page.

Edition
DateSeptember 17, 2026
LaneDaily Edition
Confidence78%
Sources5
Reposlangchain-ai/langchain

Primary Evidence

Evidence Limits

  • Normalization is limited to direct arguments and leaves nested schema constructs outside its scope. Attribution does not quantify authorship. Our isolated helper checks passed; the dependency-backed provider-conversion suite and live model behavior were not run here.
Letters & Corrections

Send a note to the desk

Corrections, missing context, or a follow-up lead.