The edge agent for the Open Horizon edge computing platform, managing workload and service lifecycles on edge nodes through policy-driven negotiation.
Positioning#
anax is the core edge agent component of the Open Horizon edge computing platform, a Stage Two project under the LF Edge (Linux Foundation Edge) foundation. Developed primarily in Go (84.4%), it runs on edge devices or Kubernetes clusters, acting as the edge-side "executor" that interacts with the management Hub to autonomously determine local deployments and manage runtime states.
Core Capabilities#
- Workload Negotiation & Deployment: Negotiates workloads with the Agbot on the management Hub via protocols such as abstractprotocol and basicprotocol, autonomously determining local deployments based on a three-tier policy system (Deployment Policy, Node Policy, Business Policy)
- Full Service Lifecycle Management: Covers download, installation, startup, monitoring, upgrade, and rollback of edge services; includes built-in node management and cluster upgrade modules (
nodemanagement,clusterupgrade) with auto-update support - Edge Data & Model Distribution: Embeds Edge Sync Service (ESS/MMS) for secure distribution of AI models and files between Hub and edge nodes
- Security & Credential Management: Integrates Secrets Manager for secure credential management; supports SDO/FDO for zero-touch device onboarding
- High Availability: Supports HA node groups
- Operations & Observability: Provides local REST API (with auto-generated Swagger docs) and Agbot secure API; includes metering/telemetry module (
metering); supports multi-level debug logging (ANAX_LOG_LEVEL)
Deployment Modes#
- Bare metal / Device: Docker containerized (
anax-in-container), targeting Debian-based distributions - Kubernetes Cluster:
anax-in-k8s,kube_operator, compatible with OCP, K3s, MicroK8s - Cross-compilation support for amd64, arm64, armhf, ppc64el architectures
Architecture#
anax is a monolithic Go binary (entry point main.go) that can serve as both the edge agent and the Agbot (Agreement Bot) depending on deployment mode. It runs as a horizon.service Systemd service, depending on Exchange API, Cloud Sync Service (CSS), and Agbot instances for coordination.
Core Modules: agreement/ (negotiation protocols), agreementbot/ (Agbot mode), api/ (REST API), exchange/ (Exchange interaction), policy//businesspolicy//externalpolicy/ (policy engine), container/ (container management), ess/ (edge sync service), kube_operator/ (K8s operator), imagefetch/ (image fetching), governance/ (governance), metering/ (metering/telemetry), microservice/ (microservice management), worker/ (background workers), cli/ (hzn CLI), nodemanagement//clusterupgrade/ (node & cluster upgrade), helm/ (Helm charts), i18n/ (internationalization).
Negotiation & Deployment Flow: Edge node starts → anax connects to Exchange API for registration → policy-based protocol negotiation with Agbot → on match, pulls workload images → deploys and monitors service status → continuously reports telemetry data.
CLI & Configuration#
The hzn CLI tool supports internationalization (language switched via HZN_LANG env var). Key commands: hzn version (view version), hzn policy update (update node policy, replacing deprecated hzn policy patch), hzn exchange node addpolicy (update node policy in Exchange). Debug logging enabled via ANAX_LOG_LEVEL=5 (debug) or =6 (trace).
Installation#
Pre-built packages (recommended): Download deb/snap packages from GitHub Releases; official automated agent installation scripts are also available.
Build from source: git clone → make (build) → make check (lint+test) → make test-integration (integration tests); requires Go ≥ 1.19.
Use Cases#
Industrial IoT edge computing, edge cluster management, AI/ML model edge distribution, zero-touch device onboarding, multi-environment edge deployment.
Related Projects#
- exchange-api: Exchange API server
- edge-sync-service: Edge Sync Service (MMS Hub side)
- horizon-deb-packager: deb package builder
Pending Confirmations#
- Version discrepancy: GitHub Releases shows v2.32.0-1767 as latest, but official docs Components page lists Edge device agent as 2.30.0-1177
- Windows/macOS production edge node support unclear
- No performance benchmarks or large-scale deployment metrics available