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
- Create token in backend admin:
POST /api/admin/system/nodes/enrollment-tokens
- Set environment variables on node host:
LLM_PORT_NODE_AGENT_BACKEND_URLLLM_PORT_NODE_AGENT_ENROLLMENT_TOKENLLM_PORT_NODE_AGENT_AGENT_IDLLM_PORT_NODE_AGENT_HOST
- 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_URLdefaulthttp://127.0.0.1:8000LLM_PORT_NODE_AGENT_AGENT_IDdefaulthostnameLLM_PORT_NODE_AGENT_HOSTdefaulthostnameLLM_PORT_NODE_AGENT_ADVERTISE_HOSTdefaultLLM_PORT_NODE_AGENT_HOSTLLM_PORT_NODE_AGENT_ADVERTISE_SCHEMEdefaulthttp(allowed:http,https)LLM_PORT_NODE_AGENT_ENROLLMENT_TOKENone-time token for initial enrollmentLLM_PORT_NODE_AGENT_STATE_PATHdefault/var/lib/llmport-agent/state.jsonLLM_PORT_NODE_AGENT_HEARTBEAT_INTERVAL_SECdefault15LLM_PORT_NODE_AGENT_INVENTORY_INTERVAL_SECdefault60LLM_PORT_NODE_AGENT_RECONNECT_MIN_SECdefault2LLM_PORT_NODE_AGENT_RECONNECT_MAX_SECdefault30LLM_PORT_NODE_AGENT_REQUEST_TIMEOUT_SECdefault20LLM_PORT_NODE_AGENT_VERIFY_TLSdefaulttrueLLM_PORT_NODE_AGENT_LOKI_URLLoki 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_SIZEdefault100— max log lines per collection cycleLLM_PORT_NODE_AGENT_LOG_FLUSH_INTERVAL_SECdefault5— 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
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| llmport_agent-0.1.13.tar.gz | 661.9 kB | Without provenance | Details for llmport_agent-0.1.13.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| llmport_agent-0.1.13-py3-none-any.whl | Python 3 | none | any | Details for llmport_agent-0.1.13-py3-none-any.whl |
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
|
Security for llmport-agent 0.1.13
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.