What changed / migrating¶
Two changes landed in June 2026: the family was renamed to LangStage, and the shared core adopted the AG-UI protocol for serving agents to frontends. Both are designed to be a non-event for existing users — old installs, imports, and commands keep working through a transition window.
One real breaking change
langgraph-stream-parser now requires Python ≥ 3.11 (was ≥ 3.10), as of
0.4.0 — AG-UI's streaming stack doesn't work on 3.10. If you're on Python
3.10, stay on langgraph-stream-parser 0.3.x or upgrade Python. The surface
packages already required 3.11+, so they're unaffected. This is the only
change that can break an existing install — everything below is shimmed or
falls back.
Name map¶
| Old package | New package |
|---|---|
cowork-dash |
langstage |
deepagent-code |
langstage-cli |
deepagent-lab |
langstage-jupyter |
deepagent-vscode |
langstage-vscode |
deepagent-hermes |
langstage-hermes |
langgraph-stream-parser |
(unchanged — the shared core) |
All are on PyPI — pip install <new package> gets the current release. (This table
intentionally lists no version numbers; a hand-maintained "latest" column only goes
stale — check PyPI for the current version of each.)
What still works¶
pip install <old-name>— each old name has a final "tombstone" release that simply depends on the new package, so installing it pulls the rename.import <old_module>— e.g.import cowork_dash,import deepagent_code, and the documented host specdeepagent_hermes.agent:graphstill import, via a deprecated alias package that emits aDeprecationWarning.- Old console commands —
cowork-dash,deepagent-code,deepagent-lab,deepagent-hermesremain as aliases of the new commands.
These shims are kept for a transition window, then removed in a future major. Update when convenient — nothing breaks today.
Config vocabulary¶
The canonical config vocabulary is now LANGSTAGE_*:
| Old | New |
|---|---|
DEEPAGENT_* env vars |
LANGSTAGE_* |
deepagents.toml |
langstage.toml |
~/.deepagents/config.toml |
~/.langstage/config.toml |
DEEPAGENTS_CONFIG_HOME |
LANGSTAGE_CONFIG_HOME |
The legacy names still resolve as a deprecated fallback (canonical wins when
both are set; legacy env use warns once). Moving the global config out of
~/.deepagents/ also avoids a collision with LangChain's dcode, which now owns
that directory.
langstage-hermes keeps its existing home dir for safety: an existing
~/.deepagent-hermes directory keeps being used if present, so no skills,
memories, or session history are orphaned by upgrading.
New: serve any agent over AG-UI¶
The shared core now bridges to the AG-UI protocol — the event-based wire format for streaming rich agent interactions (text, tool calls, reasoning, state, human-in-the-loop) to frontends. Any LangGraph CompiledGraph can be served:
Notes for integrators:
- Works with graphs compiled without a checkpointer (one is auto-attached — AG-UI needs threaded state for interrupts/resume).
- Agent failures surface as a terminal
RUN_ERRORevent rather than a dropped stream. - Use a unique message id per turn — the adapter dedupes messages by id, so reused ids silently drop later turns.
- Interrupts arrive as a
CUSTOMon_interruptevent; resume by starting a new run withforwardedProps.command.resume.
This is additive — it doesn't change how the existing surfaces work. See Shared core.
Recommended steps¶
pip install langstage langstage-cli langstage-jupyter langstage-vscode langstage-hermes(only the ones you use).- Swap
importpaths and commands to the new names at your leisure. - Rename
deepagents.toml→langstage.tomlandDEEPAGENT_*→LANGSTAGE_*when convenient; run any stage's--show-configto confirm what's resolving.