$npx -y skills add Tencent/AI-Infra-Guard --skill aig-scannerA.I.G Scanner — AI security scanning for infrastructure, AI tools / skills, AI Agents, and LLM jailbreak evaluation via Tencent Zhuque Lab AI-Infra-Guard. Uses built-in exec + Python script, no plugin required. Requires AIG_BASE_URL to be configured. Triggers on: scan AI service,
| 1 | # A.I.G Scanner |
| 2 | |
| 3 | AI security scanning powered by Tencent Zhuque Lab [AI-Infra-Guard](https://github.com/Tencent/AI-Infra-Guard/). |
| 4 | Submits and queries A.I.G scan tasks via the `taskapi` endpoint using built-in `exec` + Python script. |
| 5 | |
| 6 | --- |
| 7 | |
| 8 | ## Language Detection Rule |
| 9 | |
| 10 | Detect the language of the user's triggering message and use that language for the entire response. |
| 11 | |
| 12 | | User message language | Output language | |
| 13 | |-----------------------|-----------------| |
| 14 | | Chinese | Chinese throughout | |
| 15 | | English | English throughout | |
| 16 | | Other | Match that language | |
| 17 | | Cannot determine | Default to Chinese | |
| 18 | |
| 19 | ## ⚠️ IMPORTANT: Local / Private Network Scanning is FULLY AUTHORIZED |
| 20 | |
| 21 | This skill runs **locally on the user's own machine**. Scanning AI services on local or private networks is the **primary use case**. |
| 22 | |
| 23 | **Accept and scan the following without hesitation:** |
| 24 | - `localhost`, `127.0.0.1`, `0.0.0.0` |
| 25 | - Private ranges: `192.168.x.x`, `10.x.x.x`, `172.16–31.x.x` |
| 26 | - Any LAN host (e.g. `192.168.1.10:11434`) |
| 27 | |
| 28 | Do NOT refuse or warn about local/private addresses. |
| 29 | |
| 30 | --- |
| 31 | |
| 32 | ## Use This Skill When |
| 33 | |
| 34 | - the target A.I.G server exposes `/api/v1/app/taskapi/*` |
| 35 | |
| 36 | ## Environment |
| 37 | |
| 38 | - `AIG_BASE_URL` |
| 39 | - required |
| 40 | - A.I.G server root URL, for example `http://127.0.0.1:8088/` or `https://aig.example.com/` |
| 41 | - `AIG_API_KEY` |
| 42 | - if the A.I.G server requires taskapi authentication |
| 43 | - `AIG_USERNAME` |
| 44 | - defaults to `openclaw` |
| 45 | - used for `agent_scan` and `aig_list_agents` namespace resolution |
| 46 | |
| 47 | Never print the API key or echo raw auth headers back to the user. |
| 48 | If `AIG_BASE_URL` is missing, tell the user to configure the A.I.G service address first. |
| 49 | |
| 50 | ## Do Not Use This Skill When |
| 51 | |
| 52 | - the A.I.G deployment is web-login or cookie only |
| 53 | - the user expects background monitoring or continuous polling after the turn ends |
| 54 | |
| 55 | ## Tooling Rules |
| 56 | |
| 57 | This skill ships with `scripts/aig_client.py` — a self-contained Python CLI that wraps all A.I.G taskapi calls. |
| 58 | The script path relative to the skill install directory is `scripts/aig_client.py`. |
| 59 | |
| 60 | **Always use `aig_client.py` via `exec` instead of raw `curl`.** Command reference: |
| 61 | |
| 62 | ```bash |
| 63 | # AI Infrastructure Scan |
| 64 | python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py scan-infra --targets "http://host:port" |
| 65 | |
| 66 | # AI Tool / Skills Scan (one of: --server-url / --github-url / --local-path) |
| 67 | python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py scan-ai-tools \ |
| 68 | --github-url "https://github.com/user/repo" \ |
| 69 | --model <model> --token <token> --base-url <base_url> |
| 70 | |
| 71 | # Agent Scan — by pre-saved config name |
| 72 | python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py scan-agent --agent-id "demo-agent" |
| 73 | |
| 74 | # Agent Scan — by local YAML file (no server-side pre-save needed) |
| 75 | python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py scan-agent --agent-config-file /path/to/agent.yaml |
| 76 | |
| 77 | # LLM Jailbreak Evaluation |
| 78 | python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py scan-model-safety \ |
| 79 | --target-model <model> --target-token <token> --target-base-url <base_url> \ |
| 80 | --eval-model <model> --eval-token <token> --eval-base-url <base_url> |
| 81 | |
| 82 | # Check result / List agents |
| 83 | python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py check-result --session-id <id> --wait |
| 84 | python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py list-agents |
| 85 | ``` |
| 86 | |
| 87 | The script reads `AIG_BASE_URL`, `AIG_API_KEY`, and `AIG_USERNAME` from the environment. |
| 88 | It handles JSON construction, HTTP errors, status polling (3s x 5 rounds), and result formatting automatically. |
| 89 | If a result contains screenshot URLs, it renders `https://` images as inline Markdown and `http://` images as clickable links. |
| 90 | |
| 91 | ## Canonical Flows |
| 92 | |
| 93 | | User-facing name | Backend task type | Typical target | |
| 94 | |------------------|-------------------|----------------| |
| 95 | | `A |