Use this skill whenever the user needs to manage VMs and containers on Proxmox VE — list/inspect/configure VMs, power and lifecycle (start/stop/shutdown/reboot/reconfigure/clone/delete/migrate), snapshots (create/delete/list/rollback), disk grow/move, vzdump backups (create/list/restore), LXC containers (list/start/stop), cluster/node status, cluster resource inventory, async task polling + logs, free-VMID lookup, HA status, resource pools, firewall inspection, guest-agent ping, and storage listing. Also use it to diagnose cluster health — rank nodes by CPU/memory/disk pressure and scan guests for saturation (read-only RCA). Always use this skill for "list proxmox vms", "start proxmox vm", "stop proxmox vm", "proxmox snapshot", "proxmox backup", "restore proxmox vm", "resize proxmox disk", "proxmox vm status", "migrate proxmox vm", "proxmox container", "proxmox ha", "proxmox pool", "proxmox firewall", "list proxmox storage", "proxmox node pressure", or "why is proxmox slow" when the co
记忆
xcpng-aiops
试用Use this skill whenever the user needs to operate an XCP-ng virtualization fleet through Xen Orchestra — a one-shot fleet health overview; VMs (list/get/RRD stats), hosts, pools, storage repositories (SRs) and VDIs, VM snapshots, backup jobs and run logs, XO tasks; four RCA analyses (VM health, SR usage, backup-job failures, pool patch & HA posture); and governed writes (VM start/stop/reboot/migrate, snapshot create/delete/revert, SR rescan). Always use this skill for "xcp-ng vm", "xen orchestra", "xo backup failed", "sr full", "orphaned vdi", "xcp-ng snapshot", "migrate vm to another host", "xcp-ng patches", or "pool HA" when the context is explicitly XCP-ng / Xen Orchestra / a Xen-based fleet. Do NOT use when the target is not an XCP-ng fleet managed by Xen Orchestra — other hypervisors (Do NOT use for Proxmox VE — use proxmox-aiops), NAS/storage appliances, backup software suites, container clusters, and network devices are out of scope (negative routing hints only). Common XCP-ng-v
它能做什么
Use this skill whenever the user needs to operate an XCP-ng virtualization fleet through Xen Orchestra — a one-shot fleet health overview; VMs (list/get/RRD stats), hosts, pools, storage repositories (SRs) and VDIs, VM snapshots, backup jobs and run logs, XO tasks; four RCA analyses (VM health, SR usage, backup-job failures, pool patch & HA posture); and governed writes (VM start/stop/reboot/migrate, snapshot create/delete/revert, SR rescan). Always use this skill for "xcp-ng vm", "xen orchestra", "xo backup failed", "sr full", "orphaned vdi", "xcp-ng snapshot", "migrate vm to another host", "xcp-ng patches", or "pool HA" when the context is explicitly XCP-ng / Xen Orchestra / a Xen-based fleet. Do NOT use when the target is not an XCP-ng fleet managed by Xen Orchestra — other hypervisors (Do NOT use for Proxmox VE — use proxmox-aiops), NAS/storage appliances, backup software suites, container clusters, and network devices are out of scope (negative routing hints only). Common XCP-ng-via-XO operations with a built-in governance harness (audit, policy, token budget, undo, risk-tiers).
技能文档
XCP-ng AIops
Disclaimer: This is a community-maintained open-source project and is not affiliated with, endorsed by, or sponsored by Vates, the XCP-ng project, or the Xen Orchestra project. "XCP-ng", "Xen Orchestra", and "Xen" are trademarks of their owners. Source code is publicly auditable at github.com/AIops-tools/XCPng-AIops under the MIT license.
Governed XCP-ng operations via Xen Orchestra's REST API — 29 MCP tools, every one wrapped with the bundled @governed_tool harness: a local unified audit log under ~/.xcpng-aiops/, policy engine, token/runaway budget guard, undo-token recording, and descriptive risk tiers. The XO authentication token is stored encrypted (~/.xcpng-aiops/secrets.enc, Fernet + scrypt) — never plaintext on disk.
Requires a Xen Orchestra instance (5.x with
/rest/v0) — XO is the management plane; per-host XAPI is out of scope for v0.1. Standalone: the governance harness is bundled in the package (xcpng_aiops.governance) — xcpng-aiops has no external skill-family dependency. Coverage is common operations, not exhaustive; verification status and the live-run checklist are indocs/VERIFICATION.md.
What This Skill Does
| Category | Tools | Count | Read or Write |
|---|---|---|---|
| Overview | fleet health overview | 1 | 1 read |
| VMs | list, get, RRD stats, health RCA | 4 | 4 read |
| start, stop, reboot, migrate | 4 | 4 write (medium) | |
| Hosts | list, get | 2 | 2 read |
| Pools | list, get, patch & HA posture RCA | 3 | 3 read |
| SRs / VDIs | list, get, VDI list (orphan filter), usage RCA | 4 | 4 read |
| rescan | 1 | 1 write (medium) | |
| Snapshots | list | 1 | 1 read |
| create (medium), delete (high), revert (high) | 3 | 3 write | |
| Backups | jobs, run logs, failure RCA | 3 | 3 read |
| Tasks | list | 1 | 1 read |
Quick Install
uv tool install xcpng-aiops
xcpng-aiops init # interactive wizard: XO URL + encrypted token
xcpng-aiops doctor # XO reachability + token validity + pool count
When to Use This Skill
- Triage an XCP-ng fleet (
overview): pools, hosts, VMs by state, SRs near full, recent backup failures - Root-cause an unhealthy VM (
vm health-rca): halted unexpectedly, paused, guest tools missing, CPU/memory pressure - Root-cause storage pressure (
sr usage-rca): SRs ranked near-full, thin-provision overcommit, orphaned VDIs with reclaimable bytes - Root-cause backup failures (
backup failure-rca): vdi-chain / quiesce / transport / storage-full classification - Check patch & HA posture (
pool posture): missing patches, pending reboots, version skew, HA state - Snapshot a VM before a risky change; start/stop/reboot/migrate VMs under governance
Do NOT use when the target is not an XCP-ng fleet managed by Xen Orchestra — other hypervisors (Do NOT use for Proxmox VE — use proxmox-aiops), NAS/storage appliances, backup software suites, Kubernetes/containers, and network devices are out of scope for this skill.
Related Skills — Skill Routing
| If the user wants… | Use |
|---|---|
| XCP-ng VMs / hosts / pools / SRs / snapshots / XO backups | xcpng-aiops (this skill) |
| Proxmox VE operations | proxmox-aiops |
| NAS/storage appliance operations | a storage-appliance ops skill |
| Backup-software suite job/restore operations | a backup-software ops skill |
| Container/cluster lifecycle | a cluster ops skill |
Common Workflows
Each recipe starts from a read or an RCA and ends in a governed write. Every
write accepts --dry-run; destructive ones also double-confirm.
1. "Patch a pool without breaking live migration"
xcpng-aiops overview→ fleet snapshot: pools, hosts, VMs by state, SRs near full, recent backup failures.xcpng-aiops pool posture→ the RCA: hosts missing patches, hosts pending reboot, version skew across the pool's hosts, and multi-host pools without HA.xcpng-aiops host missing-patches→ what exactly is outstanding on the host you plan to take first.xcpng-aiops vm list --state Running→ the VMs that must move off that host.- For each:
xcpng-aiops vm migrate --dry-run, then re-run for real (double confirm; the REAL source host is captured before the move and the inverse "migrate back" is recorded). xcpng-aiops undo list→ confirm a migrate-back token exists for every VM you moved, before you touch the host.- Patch and reboot the host in XO, then
xcpng-aiops pool postureagain to confirm the skew cleared.
Failure branch: if pool posture reports version skew before you start, stop — live migration between mismatched host versions can be refused or unsafe. Bring the hosts to a common version first. If a migration fails mid-run, do not retry blindly: xcpng-aiops vm get to see where the VM actually landed, and xcpng-aiops task list for the failing XO task, since a half-finished migrate leaves the VM on one side or the other.
2. "This VM keeps going unhealthy"
xcpng-aiops vm health-rca→ findings with cause + action: halted unexpectedly (auto-poweron / HA restart priority set), paused or suspended VMs, running VMs without guest tools, CPU/memory pressure from RRD stats.xcpng-aiops vm get→ the VM's configuration and current power state.xcpng-aiops vm stats→ the RRD series behind a pressure finding, so you confirm sustained pressure rather than one spike.- If it is halted and should be running:
xcpng-aiops vm start(the inversevm_stopis recorded). - If it is wedged and needs a bounce:
xcpng-aiops vm reboot --dry-run, then for real (double confirm; add--forceonly for a hard reboot — no undo either way). xcpng-aiops vm health-rcaagain to confirm the finding cleared.
Failure branch: if a clean shutdown or clean reboot hangs, the finding "no guest tools" is usually the real cause — clean actions need the guest agent. Do not escalate straight to --force; a hard action risks filesystem damage. Snapshot first (recipe 3), then use --force deliberately.
3. "Snapshot before a risky change, and roll back cleanly"
xcpng-aiops vm list→ confirm the exact VM uuid.xcpng-aiops sr usage-rca→ make sure the SR has room; snapshots grow it, and a snapshot on a near-full SR is how you take the pool down.xcpng-aiops snapshot create pre-change→ XO returns the new snapshot's id, and an inversesnapshot_deletefor that id is recorded.xcpng-aiops snapshot list --vm→ confirm the snapshot exists before you change anything.- Make your change. If it went wrong:
xcpng-aiops snapshot revert(double confirm — replaces current state, IRREVERSIBLE, no undo). - When you are satisfied:
xcpng-aiops snapshot delete --dry-run, then without--dry-run(double confirm — IRREVERSIBLE, BEFORE state captured for the audit record, no undo).
Failure branch: if sr usage-rca flags the SR as near-full or thin-provision overcommitted, do not snapshot — reclaim first (recipe 4). If a revert is refused or leaves the VM halted, check xcpng-aiops task list for the XO task; and never leave snapshots stacked long-term, because unmerged chains are the usual root cause of the vdi-chain backup failures in recipe 4.
4. "Backups have been failing every night and storage is filling up"
xcpng-aiops backup failure-rca→ failed/skipped/interrupted runs grouped by job and classified: vdi-chain (coalesce not finished), quiesce (guest VSS), transport (remote unreachable), storage-full, unknown.xcpng-aiops backup logs -n 20→ the raw recent runs behind that classification.xcpng-aiops sr usage-rca→ SRs ranked by physical fullness, thin-provision overcommit, and orphaned VDIs (attached to no VM) with reclaimable bytes per SR.xcpng-aiops sr vdis --sr --orphaned-only→ the specific orphaned VDIs worth reclaiming on that SR.- For a vdi-chain classification: let the coalesce finish, stop stacking snapshots (
xcpng-aiops snapshot list), thenxcpng-aiops sr rescan --dry-runand for real (lowest-impact write) so XO re-reads the SR. - For storage-full: reclaim space, then re-run
sr usage-rcato confirm the SR dropped below the near-full threshold. xcpng-aiops backup logs -n 20after the next scheduled run to confirm it went green.
Failure branch: a transport classification is not an XCP-ng problem — the backup remote is unreachable, so fix the remote in the XO UI (Settings → Remotes); rescanning the SR will not help. A quiesce classification means the guest agent could not freeze the filesystem: fix guest tools on that VM rather than disabling quiesce fleet-wide. If sr rescan does not shrink the chain, the coalesce is still running — wait rather than rescanning in a loop, which will trip the runaway budget guard.
Usage Mode
| Scenario | Recommended | Why |
|---|---|---|
| Local/small models | CLI | fewer tokens than MCP |
| Cloud models (Claude, GPT) | Either | MCP gives structured JSON I/O |
| Automated pipelines | MCP | type-safe parameters, audited |
MCP Tools (29 — 19 read, 8 write, 2 undo)
| Category | Tools | R/W |
|---|---|---|
| Overview | overview | Read |
| VMs | vm_list, vm_get, vm_stats, vm_health_rca | Read |
vm_start, vm_stop, vm_reboot, vm_migrate | Write | |
| Hosts | host_list, host_get | Read |
| Pools | pool_list, pool_get, pool_patch_ha_posture | Read |
| SRs / VDIs | sr_list, sr_get, vdi_list, sr_usage_rca | Read |
sr_rescan | Write | |
| Snapshots | snapshot_list | Read |
snapshot_create, snapshot_delete, snapshot_revert | Write | |
| Backups | backup_job_list, backup_log_list, backup_failure_rca | Read |
| Tasks | task_list | Read |
| Undo | undo_list, undo_apply | Read + replay |
Harness features that light up: vm_start↔vm_stop record each other as inverses (with _undo_id); vm_migrate captures the REAL source host BEFORE moving and records "migrate back"; snapshot_create captures the REAL snapshot id from the XO response and records "delete THAT snapshot". snapshot_delete and snapshot_revert are risk_level=high, capture BEFORE state, and declare no undo (irreversible). Every write takes dry_run=True (may read, never writes; no undo; audited). All 29 tools are audit-logged under ~/.xcpng-aiops/ and pass through the budget/runaway guard, each carrying a descriptive risk tier into its audit row. Start any triage with overview.
CLI Quick Reference
xcpng-aiops init # onboarding wizard (encrypted XO token)
xcpng-aiops overview [--target ] # fleet health summary
xcpng-aiops vm list [--state Running] [--pool ]
xcpng-aiops vm get
xcpng-aiops vm stats [-g minutes]
xcpng-aiops vm health-rca [] # RCA: cause + action
xcpng-aiops vm start [--dry-run]
xcpng-aiops vm stop [--force] [--dry-run] # double confirm; refuses the declared XO VM
xcpng-aiops vm reboot [--force] [--dry-run] # double confirm
xcpng-aiops vm migrate [--dry-run] # double confirm
xcpng-aiops host list / get / missing-patches
xcpng-aiops pool list / get
xcpng-aiops pool posture [] # RCA: patches / reboots / skew / HA
xcpng-aiops sr list / get
xcpng-aiops sr vdis [--sr ] [--orphaned-only]
xcpng-aiops sr usage-rca # RCA: near-full / overcommit / orphans
xcpng-aiops sr rescan [--dry-run]
xcpng-aiops snapshot list [--vm ]
xcpng-aiops snapshot create [--dry-run]
xcpng-aiops snapshot delete [--dry-run] # double confirm, IRREVERSIBLE
xcpng-aiops snapshot revert [--dry-run] # double confirm, IRREVERSIBLE
xcpng-aiops backup jobs / logs [-n 50]
xcpng-aiops backup failure-rca [-n 50] # RCA: vdi-chain / quiesce / transport
xcpng-aiops task list [--status failure]
xcpng-aiops secret set / list / rm / migrate / rotate-password
xcpng-aiops doctor # XO reachability + token + pool count
xcpng-aiops mcp # start MCP server (stdio)
See references/cli-reference.md for the full command list, and
references/agent-guardrails.md when driving these tools with a smaller /
local model (the guardrails the tool enforces for you, and a ready system prompt).
Troubleshooting
"Config file not found"
Run xcpng-aiops init to set up your first target (writes ~/.xcpng-aiops/config.yaml and stores the XO token encrypted).
"No XO authentication token for target ''"
Add it to the encrypted store: xcpng-aiops secret set (prompts hidden), or run xcpng-aiops init. Create the token in the XO UI (user menu → Personal tokens) or with xo-cli --createToken. For non-interactive use (MCP/CI), also export XCPNG_AIOPS_MASTER_PASSWORD so the store can be unlocked without a prompt.
"Master password not set" / "Wrong master password"
The encrypted store ~/.xcpng-aiops/secrets.enc is unlocked by XCPNG_AIOPS_MASTER_PASSWORD (or an interactive prompt). If you forgot it, delete secrets.enc and re-run xcpng-aiops init. Rotate it with xcpng-aiops secret rotate-password.
"Authentication/authorization failed (401/403)"
The XO token is wrong, expired, or revoked, or the XO account lacks permission. Regenerate the token in the XO UI (user menu → Personal tokens) and update it: xcpng-aiops secret set .
"Could not reach Xen Orchestra … check the XO URL"
Confirm the XO web UI is reachable at the configured url and that api_path is /rest/v0 (XO 5.x). For self-signed certificates set verify_ssl: false on the target (lab only).
"Resource not found (404)"
The VM/SR/snapshot uuid is stale, or this XO release lacks the endpoint. List the parent collection first (vm list, sr list, snapshot list) to get a current uuid.
Doctor says "manages no pools yet"
Your XO instance is reachable but has no XCP-ng servers connected — add them in the XO UI (Settings → Servers).
Audit & Safety
The skill delivers reads and writes and records them; it does not decide whether a write is permitted. That is your agent's judgement, or the permission of the Xen Orchestra account whose token you connect it with (give that XO user a read-only ACL or scope its token down — writes then fail at Xen Orchestra). There is no read-only switch, policy file, or approval gate.
- Audit is the guarantee, and it is not bypassable. Every operation — MCP and CLI alike — is logged to
~/.xcpng-aiops/audit.db(relocatable viaXCPNG_AIOPS_HOME): params (secrets redacted), result, status, duration, and the risk tier. The CLI writes the same row the MCP path does. - The XO token is stored encrypted in
~/.xcpng-aiops/secrets.enc(Fernet/AES-128 + scrypt key derivation; chmod 600) — never plaintext on disk; the master password is never stored, only a per-store salt + ciphertext. XCPNG_AUDIT_APPROVED_BY/XCPNG_AUDIT_RATIONALEare optional annotations recorded on the audit row (who/why); they are never required and never block.- Budget / runaway guard — a safety backstop, not authorization: caps cumulative tool calls and wall-time, and trips on tight task-poll loops.
- Writes support
--dry-run/dry_run=Trueand double confirmation at the CLI; CLI writes execute through the same governed tools, so they are audited + undo-recorded. - Reversible writes (
vm_start/vm_stop/vm_migrate/snapshot_create) capture the real before-state and record a replayable inverse descriptor;snapshot_delete/snapshot_revertarerisk=high, irreversible, and declare no undo. - Risk tier is a descriptive label on the audit row derived from
risk_level; it gates nothing.
The harness is bundled in the package — no external dependency, no manual setup. See references/setup-guide.md for security details.
Contributing & feature requests
Coverage is intentionally focused. Missing a capability you need, or hit an endpoint that differs on your Xen Orchestra version? Open an issue or pull request at github.com/AIops-tools/XCPng-AIops — feature requests, contributions, and comments are all welcome.
License
相关技能
Use this skill whenever the user needs to operate a Nutanix estate through Prism Central (v4 REST API) — an estate/cluster health overview, cluster & host inventory and utilization, VM lifecycle across AHV and ESXi (list/get/power/create/update/clone/delete/migrate), storage containers, subnets/network, images & categories, data protection / DR (snapshots, recovery points, protection domains, VM protect, failover), alerts & events with alert RCA (analyze_alert), LCM firmware/software upgrades, capacity runway forecasting, and read-only diagnostics/RCA over the whole estate (cluster_health_rca, alert_triage_rca). Always use this skill for "Nutanix", "Prism Central", "AHV", "cluster health", "list VMs", "power on/off a VM", "clone/migrate a VM", "delete a VM", "snapshot", "recovery point", "protection domain", "failover", "why did this alert fire" / "root cause this alert", "LCM upgrade / firmware", "days until storage is full" / "capacity runway", "what's wrong with my cluster" / "diagn
Use this skill whenever the user needs to operate a network / infrastructure monitoring NOC on SolarWinds Orion (SWIS REST + SWQL), Paessler PRTG (web API), or Zabbix 6.x/7.x (JSON-RPC) — a one-shot NOC overview, canned SWQL answers (nodes down, flapping interfaces, muted, high-CPU nodes, full volumes, unmanaged/scheduled), a validated read-only SWQL passthrough, deduped/rolled-up active alerts, SolarWinds node/interface/volume/application health and top-N, PRTG sensors/devices/groups/history/alarms, Zabbix problems/hosts/host-groups/triggers/events/item-history/maintenances, and guarded writes (acknowledge, mute/unmute, schedule maintenance, unmanage/remanage, remove node, pause/resume sensor, create/delete Zabbix maintenance window). Always use this skill for "SolarWinds", "Orion", "SWQL", "THWACK question", "PRTG", "Paessler", "Zabbix", "Zabbix problem", "Zabbix trigger", "Zabbix maintenance", "NOC overview", "which nodes are down", "flapping interfaces", "interface flap storm", "al
Use this skill whenever the user needs to operate TrueNAS SCALE storage — a one-shot health overview, system info, read-only diagnostics / RCA (pool health, alerts & dataset capacity), inspect ZFS pools (list/get/status, capacity, scrub status, start a scrub), datasets (list/get/create), snapshots (list/create/delete), physical disks and S.M.A.R.T. self-test results, system alerts, services (list/restart), and replication / cloud-sync tasks. Always use this skill for "list truenas pools", "truenas dataset", "create zfs snapshot", "start a scrub", "diagnose truenas pool health", "why is my pool degraded", "truenas disk health", "truenas smart test", "truenas alerts", "restart truenas service", or "truenas replication" when the context is explicitly TrueNAS / TrueNAS SCALE / a ZFS NAS appliance. Do NOT use when the target is not a TrueNAS SCALE appliance — other NAS/storage products, backup software, hypervisor VM lifecycle, container clusters, and network devices are out of scope (negat
Use this skill whenever the user needs to operate or diagnose a Ceph cluster via its ceph-mgr Dashboard REST API — decode a HEALTH_WARN/ERR state into cause + action (cluster_health), read the cluster status, inspect OSDs (tree/df/perf), placement groups (summary/stuck/scrub), pools (list/usable capacity), RBD images and snapshots, CephFS/MDS and RGW status, monitors/managers, slow ops and capacity forecast — plus governed writes (set cluster flags, reweight/mark-in/mark-out/purge OSDs, trigger scrubs, set pool quota/pg_num/autoscale/size, create/delete pools, create/delete RBD images and snapshots, throttle recovery/backfill). Always use this skill for "ceph health", "what does this HEALTH_WARN mean", "PG_DEGRADED / OSD_NEARFULL / SLOW_OPS / MON_DOWN", "ceph -s", "which OSD is most full", "drain an OSD", "purge an OSD", "stuck PGs", "overdue scrub", "pool usable capacity", "set pool size / quota", "rebalance is too slow / throttle backfill", "RBD image or snapshot", "MDS behind on tri
Use this skill whenever the user needs to operate a VMware/Omnissa Horizon VDI environment via its Connection Server: list and manage desktop pools, RDS farms and published apps, inspect and act on user sessions (log off, disconnect, send message), manage desktop machines (reset, maintenance, remove), view and change entitlements, read Horizon events/health/statistics, and push instant-clone golden images. Always use this skill for "log off VDI user", "reset this desktop", "why is the desktop pool not provisioning", "push the new image to the pool", "list Horizon sessions", "who is entitled to the pool", "VDI health" — when the context is explicitly Horizon / Omnissa / VDI / desktop-pool / RDS-farm. Do NOT use for the underlying vCenter VM lifecycle/power/snapshot/migrate (use vmware-aiops), read-only vSphere monitoring (use vmware-monitor), or NSX microsegmentation (use vmware-nsx-security). This skill manages the Horizon broker layer; vmware-aiops manages the vCenter VMs backing the