Observed since 20 Oct, 23:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Agent Runtimes
Agent Runtimes is a unified library for deploying, managing, and interacting with AI agents across multiple protocols and frameworks. It provides both a Python server for hosting agents and React components for seamless integration into web and desktop applications.
Agent Runtimes solves the complexity of deploying AI agents by providing:
Protocol Abstraction: One agent, multiple protocols - deploy your agent once and access it through ACP, Vercel AI SDK, AG-UI, MCP-UI, or A2A without changing your code.
Framework Flexibility: Write agents using your preferred framework (Pydantic AI, LangChain, Jupyter AI) while maintaining a consistent API.
Cloud Runtime Management: Built-in integration with Datalayer Cloud Runtimes for launching and managing compute resources with Zustand-based state management.
UI Components: Pre-built React components (ChatBase, ChatSidebar, ChatFloating) that connect to agents and execute tools directly in the browser.
Tool Ecosystem: Seamless integration with MCP (Model Context Protocol) tools, custom tools, and built-in utilities for Jupyter notebooks and Lexical documents.


private, shared, sleep) and sharing metadata are tracked per node.The runtime-oriented examples and CLI workflows migrated from datalayer-core now live here.
from agent_runtimes.client import RuntimeClient
client = RuntimeClient()
# Execute code in a managed runtime
with client.create_runtime() as runtime:
response = runtime.execute("print('Hello from Datalayer!')")
print(response.stdout)
# List available runtimes
datalayer runtime list
# Create a new runtime
datalayer runtime create ai-env --given-name my-runtime-123
# Execute a script in a runtime
datalayer runtime exec my-script.py --agent <agent-id>
# Create a snapshot from a runtime but do not terminate the runtime
datalayer snapshots create <pod-name> my-snapshot 'AI work!' False
# End-user billing view
datalayer subscriptions show
datalayer subscriptions available
datalayer subscriptions move
datalayer subscriptions topups
datalayer subscriptions dry-run
# Organization and team credits visibility
datalayer usage org-overview --organization-uid <org_uid>
datalayer usage team-overview --team-uid <team_uid>
# Monitoring-driven credit management
datalayer usage org-monitor --organization-uid <org_uid> --window-hours 24
datalayer usage team-monitor --team-uid <team_uid> --window-hours 24
# Credits transfer operations (owners/admins)
datalayer usage org-allocate-team --organization-uid <org_uid> --team-uid <team_uid> --amount 50
datalayer usage org-revoke-team --organization-uid <org_uid> --team-uid <team_uid> --amount 20
datalayer usage team-allocate-member --team-uid <team_uid> --member-uid <member_uid> --amount 15
datalayer usage team-revoke-member --team-uid <team_uid> --member-uid <member_uid> --amount 5
Use comma-separated agentspec ids to create one experiment per agentspec variant:
# Creates one experiment per agentspec in the list
agent-runtimes evals experiments create my-exp \
--evalset-id <evalset_id> \
--agent-spec-ids example-evals,example-evals-nocodemode,example-custom
Generate a comparison report:
agent-runtimes evals report <evalset_id> --run-limit 50 --export
How to interpret grouped comparisons in the report:
Within-Agentspec Pairwise Latest-Pass Deltas: compares experiments using the same agentspec id.Cross-Agentspec Pairwise Latest-Pass Deltas: compares experiments using different agentspec ids.The examples demonstrate how to use the Agent Runtimes functionality in various scenarios and frameworks.
make examples starts both the Python agent server and the Vite dev server,
so you need both stacks installed once:
# 1. Node dependencies for the React examples + Vite dev server.
npm install
# 2. Python package (editable) for the local agent-runtimes server.
# Use a virtualenv or conda env of your choice.
pip install -e .
Optional extras (declared in pyproject.toml):
pip install -e ".[examples]" # extra agent framework deps used by examples
pip install -e ".[test]" # pytest and test utilities
pip install -e ".[cli]" # CLI dependencies
pip install -e ".[chat]" # chat-related extras
pip install -e ".[docs]" # docs build dependencies
For deterministic installs in CI (and to avoid resolver backtracking), use the version constraints file:
pip install -c constraints/py313.txt -e .
make examples
For focused Agent Node development, run:
make agent-node
This target starts both:
8765html/agent-node.htmlUse this mode to iterate on Agent Node configuration flows and central registration behavior.
Expected central visibility semantics:
shared.plane local)To run Agent Node with local service URLs preconfigured, use:
make agent-node-local
This target applies the PLANE_LOCAL_*_URL mappings and exports both
DATALAYER_* and VITE_* variables so Agent Node sync/tunnel and UI calls are
wired to local services.
Prerequisites:
plane local).DATALAYER_API_KEY for authenticated registration/tunnel calls.Override any local service URL if needed:
PLANE_LOCAL_RUNTIMES_URL=http://localhost:19500 make agent-node-local
Docker image build and release notes were moved to:
By default, make examples boots the local Vite dev server with every
Datalayer service URLs set to local defaults for agent execution:
| Variable | Default | Notes |
|---|---|---|
VITE_BASE_URL | http://localhost:8765 | Local agent-runtimes server (/api/v1/agents/*) |
VITE_BASE_URL_NO_CODEMODE | http://localhost:8765 | Local no-codemode agent endpoint |
VITE_BASE_URL_CODEMODE | http://localhost:8766 | Local codemode agent endpoint |
This is the local-first workflow used during development. It avoids accidental
remote calls for the core agent routes even if your shell exports
DATALAYER_*_URL values.
If you want to force production URLs for Datalayer services, use:
make examples:prod
This mode uses the DATALAYER_*_URL convention from
datalayer-core (specifically datalayer_core/utils/urls.py)
and propagates those values to the Vite HTML placeholders.
Override any URL on the command line:
make examples:prod DATALAYER_DEFAULT_URL=https://prod2.datalayer.run
plane local stackIf you are developing against a local Plane (plane local), use:
make example-local
This points each DATALAYER_*_URL (and its VITE_* frontend counterpart, so
both http and ws traffic stay local) at the matching localhost port exposed by
plane local (see services/plane/datalayer_plane/sbin/local.sh):
| Variable | Default port |
|---|---|
PLANE_LOCAL_IAM_URL | http://localhost:9700 |
PLANE_LOCAL_RUNTIMES_URL | http://localhost:9500 |
PLANE_LOCAL_SPACER_URL | http://localhost:9900 |
PLANE_LOCAL_LIBRARY_URL | http://localhost:9800 |
PLANE_LOCAL_MANAGER_URL | http://localhost:2100 |
PLANE_LOCAL_AI_AGENTS_URL | http://localhost:4400 |
PLANE_LOCAL_AI_INFERENCE_URL | http://localhost:4450 |
PLANE_LOCAL_JUPYTER_MCP_SERVER_URL | http://localhost:4404/mcp |
PLANE_LOCAL_GROWTH_URL | http://localhost:6660 |
PLANE_LOCAL_SUCCESS_URL | http://localhost:3300 |
PLANE_LOCAL_STATUS_URL | http://localhost:4785 |
PLANE_LOCAL_SUPPORT_URL | http://localhost:2200 |
Override any port on the command line, e.g.:
PLANE_LOCAL_IAM_URL=http://localhost:9701 make example-local
On the main page, you’ll find an example gallery (cards) that break things down into practical building blocks:
Each of these concerns deserves more than a one-off solution—they need deep, composable, and pluggable implementations.
The detailed guides for architecture, use cases, interactive chat, key concepts, and runtime configuration are now in Docusaurus docs:
Generated catalogs are produced via:
make specs
Generation scripts are under scripts/codegen, and outputs are written to:
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.5.65 | 20 Oct 2026 | 88 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 23:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:4276b8539e0fe9fd3b84c5bd56af5d4ef9e6b5908f80bc7cb491528f0788f2e4