feat: support coded DeepAgents runtime workspaces#991
Open
andreitava-uip wants to merge 5 commits into
Open
Conversation
andreitava-uip
marked this pull request as ready for review
July 15, 2026 14:01
andreitava-uip
marked this pull request as draft
July 15, 2026 14:02
andreitava-uip
force-pushed
the
feat/coded-deepagents-runtime
branch
from
July 15, 2026 14:05
b193f5a to
c851ecd
Compare
There was a problem hiding this comment.
Pull request overview
This PR adds first-class support for UiPath-managed DeepAgents workspaces in the LangGraph runtime integration. It introduces a UiPath-specific DeepAgents authoring API that marks graphs as runtime-compatible, and extends the runtime factory to provision per-runtime workspaces that can be hydrated/dehydrated via job attachments.
Changes:
- Add
create_uipath_deep_agent()which mirrorsdeepagents.create_deep_agentwhile enforcing a UiPath-managed filesystem backend and explicit runtime metadata. - Extend the runtime factory/runtime config plumbing to inject a workspace path via LangGraph
configurableand to wrap DeepAgents runtimes in aHydrationRuntime. - Add comprehensive tests plus a new coded DeepAgent sample demonstrating tools, subagents, structured output, and workspace files.
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/deepagents/test_runtime_factory.py | Verifies DeepAgent marker preservation across compilation and validates hydrated workspace wiring. |
| tests/deepagents/test_runtime_config.py | Tests merging of internal LangGraph configurable values while protecting thread_id. |
| tests/deepagents/test_metadata.py | Confirms the UiPath API signature matches upstream (minus backend) and validates runtime metadata marking. |
| tests/deepagents/test_backend.py | Tests workspace backend factory behavior and config resolution. |
| tests/deepagents/test_agent.py | Ensures the UiPath DeepAgent authoring API forwards upstream arguments and injects the UiPath backend. |
| tests/deepagents/init.py | Declares the deepagents tests package. |
| src/uipath_langchain/runtime/runtime.py | Adds support for passing extra internal LangGraph configurable values (e.g., workspace path). |
| src/uipath_langchain/runtime/factory.py | Detects UiPath DeepAgents graphs, preserves metadata through recompilation, provisions workspaces, and wraps runtimes with hydration. |
| src/uipath_langchain/deepagents/metadata.py | Implements the DeepAgents runtime marker (uipath_integration=deepagents). |
| src/uipath_langchain/deepagents/backend.py | Provides a backend factory that binds DeepAgents filesystem access to the runtime workspace path. |
| src/uipath_langchain/deepagents/agent.py | Adds create_uipath_deep_agent() enforcing UiPath-managed backend and metadata marking. |
| src/uipath_langchain/deepagents/init.py | Exposes the UiPath DeepAgents authoring API. |
| samples/README.md | Adds documentation entry for the coded DeepAgent sample. |
| samples/coded-deepagent/uipath.json | Declares task-mode runtime options for the sample. |
| samples/coded-deepagent/README.md | Documents how the sample works and how workspace hydration is used. |
| samples/coded-deepagent/pyproject.toml | Defines the sample project dependencies. |
| samples/coded-deepagent/langgraph.json | Defines the LangGraph entrypoint for the sample. |
| samples/coded-deepagent/input.json | Provides sample input payload. |
| samples/coded-deepagent/graph.py | Implements the sample coded DeepAgent graph with structured output, tools, and subagent. |
| samples/coded-deepagent/agent.mermaid | Adds a high-level diagram of the sample agent flow. |
andreitava-uip
force-pushed
the
feat/coded-deepagents-runtime
branch
from
July 15, 2026 14:09
c851ecd to
5126480
Compare
andreitava-uip
force-pushed
the
feat/coded-deepagents-runtime
branch
from
July 15, 2026 14:56
5126480 to
a9136c7
Compare
andreitava-uip
marked this pull request as ready for review
July 16, 2026 11:31
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
create_uipath_deep_agentwith the supported DeepAgents authoring surfaceuipath initworkflowuipath-runtime>=0.12.4and bumpuipath-langchainto0.14.10Design
UiPath-compatible DeepAgents use the dedicated authoring API and are explicitly marked for runtime integration. The API injects a
FilesystemBackendwhose root is resolved from typed runtime configuration. The runtime creates a clean workspace for each runtime ID, restores registered attachments before execution, and persists workspace changes on suspension or successful completion.HydrationRuntimeowns lazy hydrator construction.uipath initcan load and inspect the graph schema without constructing authenticated platform services; a singleUiPathclient and its attachment/job services are created when hydration first runs.Backend selection, checkpointer, store, cache, debug, graph identity, attachment protocol, and hydration policy are not exposed through the authoring API. They remain runtime-owned so support can be added deliberately without introducing an unsupported public contract.
Normal coded LangGraph entrypoints continue through the existing resumable runtime without workspace hydration.
Verification
pytest tests/deepagents --no-cov -p no:cacheprovider(21 passed)ruff check src testsruff format --check src testsmypy src/uipath_langchain(192 source files)uv lock --checkuipath-runtime 0.12.4UiPathservices are not constructed duringget_schema()