-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
ai-in-pm edited this page Mar 15, 2026
·
1 revision
NemoClawd uses a bridge-first architecture: the Node.js layer orchestrates all operations and calls into the Python layer when NeMo workflow execution is required. Results always flow back to Node as structured JSON.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ClawdBot Runtime β
β (Node.js / TypeScript) β
β β
β Canvas UI βββΊ Orchestrator βββΊ NemoBridge (TS) β
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β JSON over stdio / HTTP
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ
β NemoClawd Python Bridge β
β (nemoclawd-bridge) β
β β
β subprocess βββΊ nat CLI β
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ
β NVIDIA NeMo Agent Toolkit β
β (nat workflow engine) β
β β
β Workflow YAML βββΊ Agent βββΊ Tools βββΊ Results β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The Node.js/TypeScript production runtime. Handles:
- Canvas UI rendering and branding
- User interaction and session management
- Outbound transcript mirroring
- Orchestration of all AI operations
The TypeScript bridge module. Responsible for:
- Spawning the Python bridge subprocess
- Serialising requests to JSON
- Deserialising structured responses
- Error handling and timeout management
A lightweight Python package that:
- Receives JSON requests from NemoBridge
- Invokes
natCLI commands - Returns structured JSON results to Node
- Handles NeMo workflow lifecycle
NVIDIA's full NeMo Agent Toolkit. Provides:
-
natCLI for workflow execution - Agent definitions and tool integrations
- Evaluation and profiling infrastructure
- HITL (Human-in-the-Loop) support
The identity anchor. Verified at launch by scripts/verify-system-of-record.mjs. Contains:
- Runtime identity configuration
- Build metadata
- Capability declarations
User Input
βββΊ ClawdBot Orchestrator
βββΊ NemoBridge.execute(workflow, params)
βββΊ Python Bridge (subprocess)
βββΊ nat run <workflow>.yml --params <json>
βββΊ NeMo Agent executes tools
βββΊ Structured JSON result
βββ JSON response
βββ Parsed result object
βββ Rendered response to user
pnpm run build:all
βββΊ tsc (TypeScript compilation)
βββΊ build-node.mjs (Node bundle)
βββΊ bootstrap-python.mjs (venv setup)
βββΊ build-python.mjs (wheel build)
βββΊ collect-artifacts.mjs (output staging)
NemoClawd/
βββ src/
β βββ index.ts # Entry point
β βββ nemo-bridge.ts # NemoBridge implementation
βββ python_src/
β βββ nemoclawd_bridge/
β βββ __init__.py
β βββ __main__.py # Python bridge entry point
βββ scripts/
β βββ bootstrap-python.mjs # Python venv setup
β βββ build-node.mjs # Node bundle build
β βββ build-python.mjs # Python wheel build
β βββ collect-artifacts.mjs # Artifact staging
β βββ run-clawdbot-with-nemo.mjs # Launch script
β βββ smoke-test.mjs # Integration smoke test
β βββ verify-system-of-record.mjs # SoR validation
βββ apps/
β βββ clawdbot-main/ # ClawdBot Node.js runtime
β βββ NeMo-Agent-Toolkit-develop/ # NVIDIA NeMo Toolkit
βββ artifacts/ # Build outputs and logs
βββ workflows/ # NeMo workflow definitions
βββ system-of-record.json # Identity anchor
βββ package.json # Node workspace config
βββ pyproject.toml # Python package config
βββ tsconfig.json # TypeScript config
βββ Dockerfile # Container build
βββ docker-compose.yml # Compose services