Skip to main content

llm_port_node_agent

llm_port_node_agent is the host-side execution bridge for llm-port node clusters.

It does not perform cluster scheduling. The backend remains authoritative for:

  • desired state
  • placement and routing policy
  • GPU-aware filtering and load-balancing

The agent responsibilities are:

  • enroll with one-time token
  • maintain authenticated outbound stream
  • execute node commands (Docker runtime lifecycle)
  • report heartbeat, inventory, command timeline, and events

Quick Start

  1. Create token in backend admin:
    • POST /api/admin/system/nodes/enrollment-tokens
  2. Set environment variables on node host:
    • LLM_PORT_NODE_AGENT_BACKEND_URL
    • LLM_PORT_NODE_AGENT_ENROLLMENT_TOKEN
    • LLM_PORT_NODE_AGENT_AGENT_ID
    • LLM_PORT_NODE_AGENT_HOST
  3. Start service:
    • llmport-agent (foreground, for testing)
    • llmport-agent start (install as systemd service)

Commands

Command Description
llmport-agent Run in foreground (test connectivity, Ctrl+C to stop)
llmport-agent start Install and start as a systemd service (picks up LLM_PORT_NODE_AGENT_* env vars)
llmport-agent stop Stop and disable the systemd service
llmport-agent status Show systemd service status

Environment Variables

  • LLM_PORT_NODE_AGENT_BACKEND_URL default http://127.0.0.1:8000
  • LLM_PORT_NODE_AGENT_AGENT_ID default hostname
  • LLM_PORT_NODE_AGENT_HOST default hostname
  • LLM_PORT_NODE_AGENT_ADVERTISE_HOST default LLM_PORT_NODE_AGENT_HOST
  • LLM_PORT_NODE_AGENT_ADVERTISE_SCHEME default http (allowed: http, https)
  • LLM_PORT_NODE_AGENT_ENROLLMENT_TOKEN one-time token for initial enrollment
  • LLM_PORT_NODE_AGENT_STATE_PATH default /var/lib/llmport-agent/state.json
  • LLM_PORT_NODE_AGENT_HEARTBEAT_INTERVAL_SEC default 15
  • LLM_PORT_NODE_AGENT_INVENTORY_INTERVAL_SEC default 60
  • LLM_PORT_NODE_AGENT_RECONNECT_MIN_SEC default 2
  • LLM_PORT_NODE_AGENT_RECONNECT_MAX_SEC default 30
  • LLM_PORT_NODE_AGENT_REQUEST_TIMEOUT_SEC default 20
  • LLM_PORT_NODE_AGENT_VERIFY_TLS default true
  • LLM_PORT_NODE_AGENT_LOKI_URL Loki push endpoint (e.g. http://10.0.0.1:3100). When set, the agent collects system logs (journald on Linux, Event Log on Windows) and pushes them to Loki with labels {job="node-agent", host="<hostname>", level="..."}.
  • LLM_PORT_NODE_AGENT_LOG_BATCH_SIZE default 100 — max log lines per collection cycle
  • LLM_PORT_NODE_AGENT_LOG_FLUSH_INTERVAL_SEC default 5 — seconds between log collection cycles

Binary Installation (no Python required)

Pre-built standalone binaries are available on the GitHub Releases page for Linux (x86_64), Windows (x86_64), and macOS (universal).

Linux

curl -fLO https://github.com/llm-port/llm-port-node-agent/releases/latest/download/llmport-agent-linux-x86_64
sudo install -m 0755 llmport-agent-linux-x86_64 /usr/local/bin/llmport-agent

Then install the systemd service (see below) or run directly:

export LLM_PORT_NODE_AGENT_BACKEND_URL=http://your-backend:8000
export LLM_PORT_NODE_AGENT_ENROLLMENT_TOKEN=tok_xxx

# Test connectivity first (foreground, Ctrl+C to stop)
llmport-agent

# Once working, install as a service
llmport-agent start

Windows

Download llmport-agent-windows-x86_64.exe from the releases page and run:

$env:LLM_PORT_NODE_AGENT_BACKEND_URL = "http://your-backend:8000"
$env:LLM_PORT_NODE_AGENT_ENROLLMENT_TOKEN = "tok_xxx"
.\llmport-agent-windows-x86_64.exe

macOS

curl -fLO https://github.com/llm-port/llm-port-node-agent/releases/latest/download/llmport-agent-macos-universal
chmod +x llmport-agent-macos-universal
export LLM_PORT_NODE_AGENT_BACKEND_URL=http://your-backend:8000
export LLM_PORT_NODE_AGENT_ENROLLMENT_TOKEN=tok_xxx
./llmport-agent-macos-universal

Via CLI

llmport node agent deploy --backend-url http://your-backend:8000

The CLI auto-detects pre-built binaries in the workspace dist/ directories and uses them instead of cloning + setting up a Python venv.

Systemd

A unit file template is available at:

  • deploy/systemd/llmport-agent.service

Release files for llmport-agent 0.1.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llmport-agent 0.1.13
File Size Uploaded
llmport_agent-0.1.13.tar.gz 661.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for llmport-agent 0.1.13
File Interpreter ABI Platform
llmport_agent-0.1.13-py3-none-any.whl Python 3 none any Details

Total release size: 838.1 kB

Release files / llmport_agent-0.1.13.tar.gz

Download URL llmport_agent-0.1.13.tar.gz
Size 661.9 kB
Tags Source
SHA-256 checksum
How to use checksums
19718ac6fee9c1ab03266ee512fac4ef7bef9cc0385d0d84b7c5d5837d4d5fcd
BLAKE2b-256 checksum
How to use checksums
b3326f72e88387b0c185c891a429cd5be788e6fb36e325f1282c1eebf74c36ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / llmport_agent-0.1.13-py3-none-any.whl

Download URL llmport_agent-0.1.13-py3-none-any.whl
Size 176.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f989e7a5c065ce215952abc2903b636ea4c532d2cc00609f7f3ba86ecefa894e
BLAKE2b-256 checksum
How to use checksums
2e0ce600f123e0a2da6722364189da74a2c0861389d6f372b79d3b1fb9124467
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

This release

0.1.13 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page