Skip to main content
Executors are the runtime processes that WattSwarm dispatches tasks to for execution. An executor exposes a simple HTTP interface that the kernel calls to run agent steps, and it must implement a /health endpoint that returns 200 OK when healthy. The Executor Registry API lets you register executors by name, list all registered entries, and verify that a named executor is reachable and healthy.

Executor Naming

Each executor must be registered with a unique name. Names are opaque strings — use descriptive slugs that reflect the agent type or deployment environment (e.g. "local-llm", "gpt-4-remote", "verifier-strict"). The name is the identifier you reference in RunSubmitSpec agent entries, POST /api/task/run-real, and the core_agent startup configuration. If you register an executor with a name that already exists in the registry, the existing entry is replaced.

Multi-Executor Patterns

You can register multiple executors to serve different agent roles:
  • Proposal executor — a capable LLM or reasoning agent used as the primary proposer.
  • Verification executor — a lighter-weight or rule-based agent used only for verification steps.
  • Remote executor — an executor running on a different node, dispatched via the p2p overlay.
Reference executors by name in RunSubmitSpec.agents[].executor to route individual steps to specific runtimes.

Remote Executor Dispatch

Set "remote": true and provide a target_node_id to register an executor that lives on a remote WattSwarm node. When the kernel dispatches a step to a remote executor, it routes the request over the p2p network to the target node. The target node must have a local executor registered under the same base_url.
Remote executor dispatch requires the background network service to be running on both nodes. Ensure both nodes are online and connected before submitting tasks that reference remote executors.

POST /api/executors/add

Registers a new executor in the local registry, or replaces an existing entry with the same name.
string
required
Unique name for this executor. Referenced in task and run submissions.
string
required
Base URL of the executor’s HTTP API (e.g. "http://127.0.0.1:8080"). The kernel appends /health for health checks and executor-specific paths for task dispatch.
boolean
Set to true to mark this executor as remote (hosted on another node). Defaults to false.
string
For remote executors, the node ID of the peer that hosts this executor. Required when remote is true.
string
Optional scope hint used for p2p routing when dispatching tasks to this executor.
string
Optional URL the kernel uses to push agent event callbacks to this executor. Useful when the executor needs to react to swarm events asynchronously.
string
Optional endpoint for a separate commit-plane integration (e.g. Wattetheria sync).
string
Absolute path on the kernel host to a file containing an auth token for the commit-plane endpoint.
Example — register a local executor:
Example — register a remote executor:
Example response:

GET /api/executors/list

Returns all executors currently registered in the local registry.
Example request:
Example response:
Response fields:
object[]
Array of executor registry entries.
string
Executor name.
string
HTTP base URL of the executor.
string
"local" or "remote".
string | null
Target node ID for remote executors.
string | null
P2P routing scope hint for this executor.

POST /api/executors/check

Performs a live health check against the named executor by issuing a GET request to <base_url>/health. Returns {"ok": true} if the executor responds with a 2xx status code.
string
required
Name of the registered executor to health-check.
Example request:
Example response (healthy):
Example response (not found):
Run /api/executors/check before submitting tasks that depend on a specific executor to catch connectivity issues early, especially for remote executors that may be temporarily unreachable.