Repository navigation
Description
Summary
Make LangChain Deep Agents Code (dcode) a supported NemoClaw agent harness.
The intended user-facing shape is a supported onboard path such as:
nemoclaw onboard --agent langchain-deepagents-codeor the final equivalent agent name, which creates a NemoClaw/OpenShell sandbox with LangChain Deep Agents Code installed and usable as the agent entry point.
Context
LangChain Deep Agents Code is an open source terminal coding agent built on the Deep Agents SDK. It supports provider/model selection, persistent memory, skills, MCP tools, web search, human approval for sensitive tool operations, interactive TUI use, and non-interactive runs.
Team context: this came up as the LangChain equivalent of the Hermes TUI. The ask is for NemoClaw to make it a supported harness rather than a one-off custom sandbox.
Problem
NemoClaw users should be able to choose LangChain Deep Agents Code as a first-class harness during onboarding, with the same level of support expected from other NemoClaw agent paths:
- sandbox image/runtime setup,
- provider and model wiring,
- credential handling,
- policy and tool approval behavior,
- status/log diagnostics,
- tests,
- docs and launch material.
Without this, users can only experiment through custom images or manual setup, which is harder to support and harder to market.
Proposed Scope
- Add a supported NemoClaw agent selector for LangChain Deep Agents Code.
- Build or select a sandbox image with
deepagents-codeand required provider extras installed. - Launch the LangChain CLI entry point (
dcode) or a NemoClaw wrapper around it. - Map NemoClaw provider/model settings into Deep Agents Code's
--model, config, or environment-variable surface. - Preserve NemoClaw's secret handling model; do not leak provider keys into image layers, logs, registry state, or generated docs examples.
- Support NVIDIA provider configuration where practical via
langchain-nvidia-ai-endpoints/NVIDIA_API_KEY. - Decide how NemoClaw web search settings map to Deep Agents Code's Tavily-backed
web_searchsupport. - Add harness-specific setup validation, status output, logs, and troubleshooting.
- Update docs, release notes, and web/marketing/demo material to list LangChain Deep Agents Code as a supported harness.
Open Questions
- What should the canonical agent ID be:
langchain-deepagents-code,deepagents-code, or something shorter? - Should NemoClaw prebuild a dedicated image variant, or install Deep Agents Code during sandbox image build?
- Which provider extras should ship by default for launch: NVIDIA only, NVIDIA plus OpenAI/Anthropic/Gemini, or broader parity with NemoClaw providers?
- Should the first release support both interactive TUI and non-interactive
dcode -n, or make headless mode a follow-up? - Does NemoClaw need to disable Deep Agents Code auto-update inside managed sandbox images?
- How should NemoClaw policy presets map onto Deep Agents Code approval controls and shell allow-list behavior?
Acceptance Criteria
-
nemoclaw onboard --agent <chosen-id>selects and persists the LangChain Deep Agents Code harness. - A fresh onboard creates a sandbox where
dcodestarts successfully. - Resume, rebuild, and upgrade flows preserve the selected harness.
- Provider/model settings are mapped into Deep Agents Code without requiring manual user configuration for the supported launch path.
- NVIDIA provider support is documented and validated where supported.
- Secrets are not written into image layers, logs, registry state, generated config, or docs examples.
- Missing credentials, missing provider extras, unsupported models, and entry-point failures produce actionable errors.
-
nemoclaw statusand logs identify the LangChain harness and surface useful diagnostics. - Interactive TUI behavior is tested in the supported sandbox path.
- Non-interactive/headless behavior is either tested or explicitly tracked as a follow-up.
- Docs, release notes, and web/marketing material are updated.
References
- LangChain Deep Agents Code overview: https://docs.langchain.com/oss/python/deepagents/code/overview
- LangChain Deep Agents Code configuration: https://docs.langchain.com/oss/python/deepagents/code/configuration
- LangChain model provider reference, including NVIDIA: https://docs.langchain.com/oss/python/deepagents/code/providers
- LangChain remote sandbox docs: https://docs.langchain.com/oss/python/deepagents/code/remote-sandboxes
Activity
[-]Epic: support LangChain Deep Agents Code as a NemoClaw agent harness[/-][+]Draft withdrawn: LangChain Deep Agents Code harness[/+]14 remaining items
cv commentedon Jun 8, 2026
Stacked PR plan: LangChain Deep Agents Code harness
Summary
Build
langchain-deepagents-codeas a third NemoClaw agent runtime, using the Hermes-style manifest path rather than the OpenClaw plugin path. V1 supports both interactivedcodeand headlessdcode -n, routes NVIDIA and OpenAI-compatible models through OpenShellhttps://inference.local/v1, and keeps provider credentials out of.deepagentsfiles.Stacked PRs
Generic terminal-agent contract
Deep Agents Code image and manifest
agents/langchain-deepagents-code/manifest.yaml, Dockerfile/base image setup, start wrapper, state dirs, and policy additions.langchain-deepagents-code; no aliases in V1.deepagents-codeplus the NVIDIA and OpenAI-compatible provider dependencies needed for the launch path..deepagentsstate for config, memory, skills, threads, hooks, MCP config, and app state.Deep Agents config generation
/sandbox/.deepagents/config.tomland only non-secret env/config values.https://inference.local/v1, provider modeled as OpenAI-compatible unless the NVIDIA LangChain package path is explicitly required by the selected model.Interactive and headless command plumbing
nemoclaw onboard --agent langchain-deepagents-codecreate a sandbox wheredcode --versionsucceeds and the generated config is present.dcodefrom the sandbox workspace.dcode -n "<prompt>", with shell execution disabled unless NemoClaw explicitly maps a policy-approved allow list toDEEPAGENTS_CODE_SHELL_ALLOW_LIST.Provider and web-search behavior
inference.local, required Python/package hosts, optional Tavily, and optional LangSmith tracing; do not enable unrelated Deep Agents remote sandbox providers in V1.Status, logs, resume, rebuild, and backup
agent: langchain-deepagents-codeand agent version in sandbox registry/session state..deepagentsstate and re-syncs generated NemoClaw selection config.Docs and CLI help
nemoclaw-user-*skills outside release prep.E2E and acceptance PR
langchain-deepagents-codewith NVIDIA/OpenAI-compatible provider routing.dcode --version, interactive startup smoke, headlessdcode -nsmoke, state preservation, and no-secret leakage checks.Public interfaces
langchain-deepagents-code.nemoclaw onboard --agent langchain-deepagents-code.Test plan
NEMOCLAW_INFERENCE_BASE_URL, config sync, backup/restore of.deepagents.dcode --version, interactive startup smoke,dcode -nheadless smoke, rebuild/resume preservation, missing credential/provider errors.npm run docs, and link validation.Assumptions
langchain-deepagents-code.wscurran commentedon Jun 8, 2026
@miyoungc note for docs track to mark this experimental.
cv commentedon Jun 11, 2026
Design answers after Deep Agents Code review
I reviewed the current issue open questions, the stacked PR plan above, and upstream LangChain Deep Agents Code docs/source. Proposed answers and amendments:
Open questions
Canonical agent ID
langchain-deepagents-code.LangChain Deep Agents Code, but the persisted agent ID should stay explicit and stable.Image strategy
agents/langchain-deepagents-code/with its own manifest, Dockerfile/base setup, start wrapper, policy additions, and state contract.deepagents-codeduring the sandbox image build, pinned by NemoClaw, rather than doing first-run or user-runtime installs inside the sandbox.Provider extras to ship
deepagents-codepackage plus thenvidiaextra/provider dependency needed forlangchain-nvidia-ai-endpoints.https://inference.local/v1.Interactive vs headless
dcodeand headlessdcode -n "<prompt>".--non-interactive/-n, and shell execution is disabled in non-interactive mode unless--shell-allow-listorDEEPAGENTS_CODE_SHELL_ALLOW_LISTis set.Auto-update behavior
DEEPAGENTS_CODE_NO_UPDATE_CHECK=1and by not enablingDEEPAGENTS_CODE_AUTO_UPDATE.dcodeself-mutation.Policy presets and approval controls
DEEPAGENTS_CODE_SHELL_ALLOW_LIST/--shell-allow-listonly when NemoClaw has an explicit allow list.allunless a future design explicitly accepts that risk.agentcore,daytona,modal,runloop,langsmith) as out of scope for V1 because NemoClaw/OpenShell is already the containment layer.Amendments to the stacked plan
HOMEdeliberately. Upstream Deep Agents Code stores config/state underPath.home()/.deepagents. The sandbox wrapper/image should makeHOME=/sandbox(or otherwise alignPath.home()with the manifest state directory) so generated config, runtime state, backup, and restore all target/sandbox/.deepagents./sandbox/.deepagents/config.tomlwith model/provider metadata, base URL, model params, and env var names only. Do not generate~/.deepagents/.state/auth.jsonwith real provider keys.DEEPAGENTS_CODE_OPENAI_API_KEYfor theinference.localroute. Do not copy host/provider secrets into.deepagentsfiles, image layers, logs, or registry state.https://inference.local/v1as the OpenAI-compatible provider unless a specific selected model requires the NVIDIA LangChain package path and that path is covered by tests.use_responses_api = false, because many OpenAI-compatible gateways expose Chat Completions but not Responses.nemoclaw statusshould report binary/version check, generated config sync, selected provider/model, update-check disabled state, web-search status, shell allow-list posture, and interactive/headless smoke results rather than trying to force gateway-health semantics onto this runtime.Revised V1 decision summary
V1 target:
nemoclaw onboard --agent langchain-deepagents-codecreates a NemoClaw/OpenShell sandbox with a pinned Deep Agents Code install, generated non-secret config forhttps://inference.local/v1, interactivedcode, headlessdcode -n, disabled self-updates, optional Tavily, no remote Deep Agents sandbox providers, no messaging-channel support, and experimental docs.cv commentedon Jun 11, 2026
Implementation update: PR #5197
PR #5197 now carries the first LangChain Deep Agents Code V1 harness slice for
langchain-deepagents-code.What is implemented in this PR:
langchain-deepagents-code.dcode; headless command isdcode -n.agents/langchain-deepagents-code/, withdeepagents-code[nvidia]==0.1.12anduv==0.11.8pinned in the image build./sandbox/.deepagents/config.tomluses the OpenAI-compatible route athttps://inference.local/v1, writes only non-secret model/provider metadata, and uses the placeholderDEEPAGENTS_CODE_OPENAI_API_KEY=nemoclaw-managed-inferencefor the managed route.use_responses_api = falseis emitted for the managed OpenAI-compatible provider because the currentinference.localpath is Chat Completions-compatible; removal condition is a future route capability check for Responses API support..deepagents/.state,skills,config.toml,hooks.json, and.mcp.json; intentionally excludes.env.0400and no longer persists rawDEEPAGENTS_CODE_SHELL_ALLOW_LIST.none, disable MCP loading, reject remote-sandbox/MCP/shell-allow-list CLI overrides, wrapdcode,dcode.real, anddeepagents-code, remove the old exposed upstreamdcodeexecutable path, and patch directpython3 -m deepagents_codein the managed image back to the same NemoClaw posture.NEMOCLAW_WEB_SEARCH_ENABLEDsupport signal for Deep Agents Code so onboarding does not advertise unsupported web-search wiring.Amendments made after PR feedback:
runtime.smoke_commandsentries instead of silently filtering them.not_executablefromnot_foundfor explicitbinary_pathfailures.dcode.realbypass, then closed the follow-up direct-module/shell-allow-list bypass with the managed image patch.Current validation state:
eda9780c300799fbb0c3992ec10dc4bb41224415.Scope that should remain open or be tracked as follow-up rather than using this PR to close the full epic:
dcode --version, interactive startup, headlessdcode -n, managed inference request throughhttps://inference.local/v1, and rebuild/upgrade state preservation.nemoclaw statusdiagnostics for terminal agents: binary/version, config sync, provider/model, web-search state, shell allow-list posture, and last smoke results.cv commentedon Jun 11, 2026
Follow-up after the latest PR feedback pass on #5197:
Refs #4861. This issue should remain open for live built-sandbox Deep Agents acceptance, release/launch material, and fuller terminal-agent diagnostics.a0a1f12813fdf2e76ee2c37f45c076c6ee284315) adds the post-review amendments: no unsupported generic web-search support signal, direct-module/managed-wrapper hardening, raw shell allow-list env scoping, credential-bearing proxy URL omission from the persisted Deep Agents shell env, a focused regression test for that proxy handling, and a trusted-manifest note for shell-form terminal smoke commands.Tracked follow-ups for this issue remain the same: real Deep Agents built-sandbox onboard/start/headless inference evidence, release/launch material, broader terminal status diagnostics, built-image negative tests for managed posture, and a cleaner upstream/config contract for managed mode.
cv commentedon Jun 11, 2026
Update from PR #5197 at current head
d327dd3720087b25551347e422e0b3c1f2846d2d:user:pass@hostforms, terminal agents without declared forwards do not get dashboard setup, dashboard runtime planning is defensive around malformedCHAT_UI_URL, and currentmainonboard extraction was merged to resolve the monolith-growth advisor blocker.sandbox-operations-e2e,inference-routing-e2e, andnetwork-policy-e2epassed in run 27329688947; full Vitest scenario fan-out passed in run 27329760323.ubuntu-repo-cloud-langchain-deepagents-codetyped scenario currently records a not-wired skip in run 27329760310, because the live Vitest fixture still assumes OpenClaw-style dashboard onboarding while this agent is terminal-only. Keeping epic: Support LangChain Deep Agents Code as a NemoClaw agent harness #4861 open for live built-sandbox acceptance, launch/release material, and deeper terminal-agent diagnostics.cv commentedon Jun 23, 2026
Created follow-up parent #5617 for the remaining Deep Agents Code acceptance work after #5197, with these sub-issues:
dcode -ninference acceptancedcodeTUI acceptanceRecommendation: merge #5197 as the supported harness foundation, then use #5617 and its sub-issues to close out the remaining live acceptance and launch work before closing this epic.
feat(agents): add Deep Agents Code harness (#5197)
fix(platform): add LangChain Deep Agents Code to the agents matrix
wscurran commentedon Jul 2, 2026
Closing this Epic. We've shipped the implementation, now hardening.