按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。
记忆
proxy-aiops
试用Use this skill whenever the user needs to operate a Traefik, Caddy or HAProxy reverse proxy / load balancer — a one-shot overview, routes (routers / caddy routes / frontends) with host/path matching, services and server-level upstream health, middlewares, TLS certificate inventory with an expiry sweep, traffic and 5xx error counters, config snapshot/search, four flagship RCAs (backend health, cert expiry, error rate, route conflicts), and governed writes (caddy config set/delete/load with prior-config capture; haproxy server drain/maint/ready and weight). Always use this skill for "Traefik", "Caddy", "HAProxy", "reverse proxy", "load balancer", "upstream down", "502/503/504 errors", "bad gateway", "cert expiring", "TLS certificate", "route not matching", "which route serves this host", "drain a server", "server weight", "redirect loop" when the context is a Traefik/Caddy/HAProxy edge. Do NOT use when the target is something other than a Traefik/Caddy/HAProxy proxy (a hypervisor, storag
它能做什么
**Disclaimer**: Community-maintained open-source project, **not affiliated with, endorsed by, or sponsored by Traefik Labs, the Caddy project, HAProxy Technologies, or the HAProxy project.** Traefik, Caddy and HAProxy are trademarks of their respective owners. Source at github.com/AIops-tools/Proxy…
技能文档
Proxy AIops
Disclaimer: Community-maintained open-source project, not affiliated with, endorsed by, or sponsored by Traefik Labs, the Caddy project, HAProxy Technologies, or the HAProxy project. Traefik, Caddy and HAProxy are trademarks of their respective owners. Source at github.com/AIops-tools/Proxy-AIops under the MIT license.
Governed reverse-proxy operations — 28 MCP tools across Traefik (API +
/metrics), Caddy (admin API) and HAProxy (Data Plane API v2), every
one wrapped with the bundled @governed_tool harness: a local unified audit
log under ~/.proxy-aiops/, policy engine, token/runaway budget guard,
undo-token recording, and descriptive risk tiers. A per-target
platform field selects the API shape, so the same tools work on all three
proxies and one config can span a mixed edge. An explicit support matrix
raises teaching errors for ops a platform cannot do — never a silent no-op.
Credentials are stored encrypted (~/.proxy-aiops/secrets.enc, Fernet +
scrypt) — never plaintext on disk; Traefik/Caddy secrets are optional
(unauthenticated localhost is the common case).
Standalone: the governance harness is bundled in the package (
proxy_aiops.governance) — no external skill-family dependency. Behaviour is covered by a mock-based test suite;docs/VERIFICATION.mdis the checklist for a live run (all three platforms are free/self-hostable, so a small lab is enough).
What This Skill Does
| Group | Tools | Count | R/W |
|---|---|---|---|
| Status | proxy_overview, version_info, list_entrypoints | 3 | read |
| Routes | list_routes, route_detail, find_route | 3 | read |
| Services | list_services, service_detail, list_upstreams, upstream_detail, list_middlewares | 5 | read |
| Certificates | list_certificates | 1 | read |
| Traffic | traffic_stats, error_counters | 2 | read |
| Config | config_snapshot, search_config, get_config_value | 3 | read |
| Flagship analyses | backend_health_rca, cert_expiry_sweep, error_rate_rca, route_conflict_analysis | 4 | read |
| Writes (caddy) | set_config_value (med), delete_config_path (high), load_config (high) | 3 | write |
| Writes (haproxy) | set_server_state, set_server_weight | 2 | write (med) |
| Undo | undo_list, undo_apply | 2 | read / write |
The four flagship analyses are transparent heuristics that report their
numbers, never a black-box verdict: backend_health_rca groups down upstreams
per service and maps the health-check failure class (connection refused / L4
timeout / TLS / L7 / DNS / maint) to a cause + action; cert_expiry_sweep
buckets certs by days-to-expiry with per-platform renewal hints;
error_rate_rca ranks services by 5xx share vs the fleet baseline and maps
the dominant code (502/503/504/500) to a cause; route_conflict_analysis
finds shadowed routes, dead routes, and redirect loops.
Quick Install
uv tool install proxy-aiops
proxy-aiops init # wizard: pick platform (traefik/caddy/haproxy) + optional encrypted secret
proxy-aiops doctor
When to Use This Skill
- Get a one-shot snapshot (
overview/version_info/list_entrypoints) - Investigate 502/503/504 spikes (
error_rate_rca) → dominant code → cause - Find why an upstream/backend is down (
list_upstreams,backend_health_rca) - Sweep TLS cert expiry across the edge (
certs --sweep/cert_expiry_sweep) - Audit routing hygiene (
route_conflict_analysis— shadowed/dead routes, redirect loops) and answer "which route serves this host?" (find_route) - Safely drain/return an haproxy server (
set_server_state, reversible + undo-recorded) or adjust its weight (set_server_weight) - Safely edit caddy config (
set_config_value/delete_config_path/load_config— prior config captured, undo replays the restore)
Do NOT use when the target is not a Traefik/Caddy/HAProxy proxy — route hypervisor, storage, backup, cluster, network-device, or OT/industrial work to the appropriate other AIops-tools skill. Do NOT use for firewall rules — use firewall-aiops.
Related Skills — Skill Routing
| If the user wants… | Use |
|---|---|
| Traefik / Caddy / HAProxy proxy ops | proxy-aiops (this skill) |
| Firewall rules / NAT / gateway health | firewall-aiops |
| A non-proxy platform (hypervisor, storage, backup, cluster, network devices, OT edge) | the appropriate other AIops-tools skill |
| Managed cloud load balancers | out of scope for this tool |
Common Workflows
1. A 5xx spike — is it the app or the backend?
proxy-aiops doctor→ confirm the proxy's API is reachable before you trust any number that follows.proxy-aiops overview→ the one-shot picture: platform/version, entrypoints, and route/service counts, so you know the blast radius.proxy-aiops analyze errors --rate 5 --min-requests 100→ services ranked by 5xx share against the fleet baseline, with the dominant status code mapped to a cause (503 no upstream available / 502 connection failed / 504 timeout / 500 app error). The--min-requestsfloor keeps a single failed request on a quiet service from outranking a real incident.proxy-aiops analyze health --service→ the same service from the backend side: which servers are failing their health check and what class of failure it is. If the servers are healthy, the 5xx is coming from the application, and no amount of proxy work will fix it — hand it off.- If one server is the problem, take it out of rotation gracefully:
proxy-aiops services upstreamsto get the exact server name, thenproxy-aiops server state drain --dry-runand re-run for real (double-confirm; the prior state is captured as the undo descriptor).drainlets in-flight connections finish — reach formaintonly when you need it out now. - Re-run
proxy-aiops analyze errorsto confirm the rate dropped. - Failure branch: if draining one server just moves the load onto the next one to
fall over, you are shedding capacity you do not have — put it straight back with
proxy-aiops undo list→undo apply(restores the prior state, not a hardcodedready) before you drain a second. Noteserver state/server weightare haproxy runtime operations; on a traefik or caddy target the tool raises a teaching error naming the right mechanism rather than silently doing nothing.
2. Certificates about to expire
proxy-aiops certs --sweep --warn-days 30 --critical-days 7→ the TLS domain inventory with each cert live-probed on port 443 and bucketed expired / critical / warning, plus a renewal hint.proxy-aiops certs --sweep --port 8443for any entrypoint not on 443 — the sweep probes one port at a time, so a non-standard listener needs its own pass.proxy-aiops overviewandproxy-aiops routes list→ map each expiring domain back to the routes that actually serve it, so you renew what is in use and ignore what is not.- Renew through the platform's own mechanism (ACME for traefik/caddy), then re-run the sweep to confirm the new expiry date.
- Failure branch: on a haproxy target the sweep returns a teaching note rather
than results — haproxy serves certs from
.pemfiles on disk, outside this tool's API surface, so check those with your file-level tooling. If a probe fails to connect, distinguish "cert is bad" from "port is closed" withproxy-aiops routes findbefore assuming a certificate problem.
3. "Why is this hostname hitting the wrong backend?"
proxy-aiops routes find --path /api→ best-matching routes, most specific first. This is the direct answer to "who serves this request".proxy-aiops routes show→ the full rule, priority, middlewares, and the service it points at.proxy-aiops analyze conflicts→ shadowed routes (fully covered by an earlier or higher-priority route), dead routes (the service is missing, or has zero servers up), and redirect loops — each finding names the covering route or the missing service rather than just flagging a number.proxy-aiops services showandproxy-aiops services upstreams→ confirm the service the route resolves to actually has healthy servers behind it.- Fix the ordering/priority at its source: on caddy via
proxy-aiops config set(recipe 4); on traefik, in the provider that generated the route (labels, file provider, CRD) — traefik's API is read-only, and the tool says so explicitly instead of pretending to write. - Failure branch: if
routes findreturns nothing, the request is not matching any route at all — checkproxy-aiops overviewfor the entrypoints and confirm the listener you think you are hitting exists. A "dead route" finding whose service is missing usually means a config was applied referencing a service that was never created; fixing the route without creating the service just moves the 404.
4. Edit a caddy config subtree, reversibly
proxy-aiops config snapshot→ the whole current config; take this before you change anything, so you have an out-of-band copy independent of the undo store.proxy-aiops config search→ locate the config path holding the value you want (searching beats guessing at caddy's nested JSON paths).proxy-aiops config get→ read the exact current subtree you are about to replace.proxy-aiops config set '' --dry-run→ preview the write.- Re-run without
--dry-run(double-confirm) — the prior subtree is fetched and captured, and an inverse undo descriptor is recorded with an_undo_id. - Validate:
proxy-aiops routes list,proxy-aiops analyze conflicts, andproxy-aiops analyze errors→ confirm the edit did what you meant and did not shadow an existing route. - Failure branch:
proxy-aiops undo list→undo applyrestores the captured subtree exactly. If the config is too broken for a targeted undo, theconfig snapshotfrom step 1 is your fallback viaload_config— but noteload_configandconfig deleteare risk=high with--dry-run+ double confirmation at the CLI.load_configreplaces the entire config, so it is a last resort, not a first instinct.
Governance & 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 account you connect it with (a read-only HAProxy Data Plane API role, a scoped Traefik/Caddy admin API — writes then fail at the server). 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
~/.proxy-aiops/audit.db(relocatable viaPROXY_AIOPS_HOME): params (secrets redacted), result, status, duration, and the risk tier. The CLI writes the same row the MCP path does. PROXY_AUDIT_APPROVED_BY/PROXY_AUDIT_RATIONALEare optional annotations recorded on the audit row (who/why); they are never required and never block.- Runaway guard — a safety backstop, not authorization: the same call looped in a tight window trips a circuit breaker. Disable with
PROXY_RUNAWAY_MAX=0. - 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 capture the real fetched before-state and record an inverse descriptor that replays against the tool's own signature.
- Traefik targets accept no writes at all — the support matrix teaches you to edit the provider source instead.
References
references/capabilities.md— full tool + platform + API-path referencereferences/cli-reference.md— CLI command referencereferences/setup-guide.md— onboarding, credentials, and connectivitydocs/VERIFICATION.md— live-verification checklist (what the mock suite covers, and what a real-proxy run must prove)
相关技能
从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。
以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。
在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。
把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。
诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。
zw008 的更多技能
浏览全部技能通过 33 个 MCP 工具查询 VMware Aria Operations 的指标、告警、容量、异常与报告。
通过 21 个 MCP 工具或配套 CLI,管理 NSX-T 分布式防火墙策略、安全组、VM 标签、Traceflow 与 IDPS。
用 28 个读写工具管理 AVI 虚拟服务、AKO Ingress 与后端成员,覆盖 NSX ALB 运维场景。
用自然语言管理 vSphere Kubernetes Service 的 Supervisor 集群、命名空间与 TKC 集群生命周期。
通过 33 个 CLI/MCP 工具管理 NSX-T 网段、Tier-0/Tier-1 网关、NAT、静态路由与 IP 池。
为 VMware 多步操作设计审批流程、追踪状态、失败时自动回滚的统一编排入口。