KsADK

Runtime Products: Hermes And OpenClaw

KsADK supports two image-based runtime products in addition to code-framework agents:

  • Hermes: a hosted coding-agent runtime with dashboard, API proxy, terminal WebSocket, and workspace files.
  • OpenClaw: a hosted OpenClaw gateway runtime where KsADK adds deployment, workspace files, memory backend wiring, and CLI lifecycle management.

These are runtime products, not ordinary local framework projects. A LangGraph or ADK project packages user code. Hermes and OpenClaw deploy a maintained runtime image plus public configuration.

Runtime products: Hermes and OpenClaw

When To Use Which Runtime

NeedRecommended path
Python agent code with LangGraph, ADK, LangChain, or DeepAgentsnormal code framework project
Hosted coding assistant with terminal and workspaceHermes
OpenClaw gateway, channels, or OpenClaw-native UIOpenClaw
Public quickstart that must run without cloud credentialsnormal local framework project

Do not present Hermes or OpenClaw as just another StateGraph or Agent wrapper. They have separate lifecycle commands and deployment contracts.

Lifecycle Comparison

Typical flow and command shape for each runtime. Same concept, two runtimes — use the tabs below:

Typical flow:

  1. Configure model placeholders in local .env or shell.
  2. Review the dry run where supported.
  3. Deploy the Hermes runtime.
  4. Open the dashboard or connect the terminal.
  5. Use workspace files for generated artifacts.

Public examples should use placeholder model values:

OPENAI_BASE_URL=https://api.example.com/v1
OPENAI_MODEL_NAME=my-model

Hermes terminal access uses a WebSocket subprotocol:

Sec-WebSocket-Protocol
Sec-WebSocket-Protocol: ks-terminal.v1

The CLI handles the subprotocol for normal users. API clients should treat it as part of the remote runtime contract.

Typical flow:

  1. Create or enter an OpenClaw project.
  2. Configure model placeholders and optional runtime policy.
  3. Deploy through agentengine openclaw deploy.
  4. Use status, tui, gateway open, or channel commands for operations.
  5. Keep workspace artifacts inside the runtime workspace.

For public examples, document policy knobs without internal values:

agentengine openclaw deploy \
  --model-base-url https://api.example.com/v1 \
  --model-api-key sk-test \
  --default-model my-model

Workspace And Files

Hermes and OpenClaw both expose KsADK workspace files through the /_ksadk/workspace/v1/* family. Generated files should stay inside the runtime workspace so the hosted UI and CLI file commands see the same artifacts.

Do not document arbitrary host-path access in public docs.

The public model is:

  • list workspace files.
  • read or download a workspace file.
  • add or update a workspace file.
  • delete a workspace file when permitted.
  • export a workspace archive when the hosted surface supports it.

Model Configuration Boundary

New in 0.6.7

Hermes and OpenClaw deploy inject a unified model policy env that the runtime uses to pick primary, multimodal, and fallback models.

The unified policy is carried by AGENTENGINE_MODEL_POLICY_JSON, while each runtime also exposes its own DEFAULT/FALLBACK/IMAGE/CATALOG variables for fine-grained override:

VariableDescription
AGENTENGINE_MODEL_POLICY_JSONunified model policy: primary/multimodal/fallback and optional catalog
HERMES_DEFAULT_MODELHermes default (primary) model override
HERMES_FALLBACK_MODELHermes fallback model override
HERMES_MODEL_CATALOG_JSONHermes optional model catalog override
OPENCLAW_DEFAULT_MODELOpenClaw default (primary) model override
OPENCLAW_FALLBACK_MODELOpenClaw fallback model override
OPENCLAW_IMAGE_MODELOpenClaw image-scenario model override
OPENCLAW_MODEL_CATALOG_JSONOpenClaw optional model catalog override

The default policy is:

  • primary = glm-5.2
  • multimodal = kimi-k2.7-code
  • fallback = deepseek-v4-pro
Unified policy example (placeholder values)
AGENTENGINE_MODEL_POLICY_JSON='{"primary":"glm-5.2","multimodal":"kimi-k2.7-code","fallback":"deepseek-v4-pro"}'

Override precedence

Explicit env wins. Setting HERMES_DEFAULT_MODEL / OPENCLAW_DEFAULT_MODEL and friends overrides the matching field of the unified policy for that runtime; when unset, the runtime falls back to the default value in AGENTENGINE_MODEL_POLICY_JSON.

OpenClaw image scenario default

The OpenClaw image scenario defaults to kimi-k2.7-code (the multimodal field of the unified policy). To pin a different model, set OPENCLAW_IMAGE_MODEL to override.

Public examples show only the placeholder shape, never real endpoints or tokens.

OPENAI_BASE_URL=https://api.example.com/v1

Memory And Tooling Boundaries

Hermes and OpenClaw may read model, memory, channel, or tool configuration from environment variables. Public docs should keep these variables as names and placeholders, not real values.

CategoryPublic-safe examples
modelOPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL_NAME
memoryKSADK_LTM_BACKEND, KSADK_LTM_NAMESPACE, KSADK_LTM_SCENE_ID
workspaceKSADK_WORKSPACE_FILES_ENABLED, runtime workspace path labels
OpenClaw policystrict mode, workspace-only filesystem policy, approval mode
secretsvariable names only; never commit literal tokens

Memory backend wiring

New in 0.6.7

KSADK_LTM_BACKEND selects the memory backend. The three options differ in storage and retrieval capabilities.

backend_typeDescription
openclaw_defaultOpenClaw default memory backend, integrated into the OpenClaw gateway lifecycle
mem0Mem0 memory backend; requires additional KSADK_LTM_NAMESPACE and scene config
lancedbLocal LanceDB memory backend, suited to fast validation without external dependencies
Placeholder example: pick a backend and set namespace / scene
KSADK_LTM_BACKEND=openclaw_default
KSADK_LTM_NAMESPACE=my-agent
KSADK_LTM_SCENE_ID=default

Backend switching

Different backends have different persistence and retrieval semantics. After switching KSADK_LTM_BACKEND, existing memories are not migrated automatically; to preserve history, export from the old backend first and import into the new one.

What Stays Internal

Do not publish:

  • private runtime image names or registries.
  • private-environment endpoints.
  • kubeconfig files or cluster names.
  • real channel tokens, model keys, or kdocs tokens.
  • customer workspace paths or object storage buckets.
  • incident runbooks tied to internal platforms.

The public docs should explain the contract and lifecycle. Operational details for a specific private environment belong in internal documentation.

On this page