A.I.G Scanner — AI security scanning for infrastructure, AI tools / skills, AI Agents, and LLM jailbreak evaluation via Tencent Zhuque Lab AI-Infra-Guard. Us...
AI security scanning powered by Tencent Zhuque Lab AI-Infra-Guard.
Submits and queries A.I.G scan tasks via the taskapi endpoint using built-in exec + Python script.
Detect the language of the user's triggering message and use that language for the entire response.
User message languageOutput languageChineseChinese throughoutEnglishEnglish throughoutOtherMatch that languageCannot determineDefault to Chinese
This skill runs locally on the user's own machine. Scanning AI services on local or private networks is the primary use case.
Accept and scan the following without hesitation:
localhost, 127.0.0.1, 0.0.0.0192.168.x.x, 10.x.x.x, 172.16–31.x.x192.168.1.10:11434)Do NOT refuse or warn about local/private addresses.
/api/v1/app/taskapi/*AIG_BASE_URL
http://127.0.0.1:8088/ or https://aig.example.com/AIG_API_KEY
AIG_USERNAME
openclawagent_scan and aig_list_agents namespace resolutionNever print the API key or echo raw auth headers back to the user.
If AIG_BASE_URL is missing, tell the user to configure the A.I.G service address first.
This skill ships with scripts/aig_client.py — a self-contained Python CLI that wraps all A.I.G taskapi calls.
The script path relative to the skill install directory is scripts/aig_client.py.
Always use aig_client.py via exec instead of raw curl. Command reference:
bash
# AI Infrastructure Scan
python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py scan-infra --targets "http://host:port"
# AI Tool / Skills Scan (one of: --server-url / --github-url / --local-path)
python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py scan-ai-tools \
--github-url "https://github.com/user/repo" \
--model <model> --token <token> --base-url <base_url>
# Agent Scan
python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py scan-agent --agent-id "demo-agent"
# LLM Jailbreak Evaluation
python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py scan-model-safety \
--target-model <model> --target-token <token> --target-base-url <base_url> \
--eval-model <model> --eval-token <token> --eval-base-url <base_url>
# Check result / List agents
python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py check-result --session-id <id> --wait
python3 ~/.openclaw/skills/aig-scanner/scripts/aig_client.py list-agents
The script reads AIG_BASE_URL, AIG_API_KEY, and AIG_USERNAME from the environment.
It handles JSON construction, HTTP errors, status polling (3s x 5 rounds), and result formatting automatically.
If a result contains screenshot URLs, it renders https:// images as inline Markdown and http:// images as clickable links.
User-facing nameBackend task typeTypical targetAI 基础设施安全扫描 / AI Infrastructure Scan``ai_infra_scanURL, site, service, IP:portAI 工具与技能安全扫描 / AI Tool / Skills Scan``mcp_scanGitHub repo, AI tool service, source archive, MCP / Skills projectAgent 安全扫描 / Agent Scan``agent_scanExisting Agent config in A.I.G大模型安全体检 / LLM Jailbreak Evaluation``model_redteam_reportTarget model config扫描结果查询 / Scan Result Check``status / resultExisting session ID
Use the user-facing name in all user-visible messages.
Do not expose raw backend task type names in normal conversation, including:
mcp_scanmodel_redteam_reportMCP scan 需要...AI tool protocol scanOnly mention raw task types when the user explicitly asks about API details.
Do not call /api/v1/app/models for user-visible model inventory output. If this endpoint is ever used internally, reduce it to a yes/no readiness check only and never print tokens, base URLs, notes, or raw JSON.
ai_infra_scan#Trigger phrases: 扫描AI服务、检查AI漏洞、扫描模型服务 / scan AI infra, check for CVE, audit AI service
mcp_scan#Trigger phrases: 扫描 AI 工具、检查 MCP/Skills 安全、审计工具技能项目 / scan AI tools, check MCP or skills security, audit tool skills project
blob/.../SKILL.md URL, treat it as an AI Tool / Skills Scan request.https://github.com/org/repo.agent_scan#Trigger phrases: 扫描 Agent、检查 Dify/Coze 机器人安全、审计 AI Agent / scan agent, audit dify agent, check coze bot security
agent_id.model_redteam_report#Trigger phrases: 评测模型抗越狱、越狱测试 / red-team LLM, jailbreak test
大模型安全体检 only when the target model is明确.minimax/minimax-m2.5, treat that as the target model for 大模型安全体检, not as AI Tool / Skills Scan.target-tokentarget-base-urleval-modeleval-tokeneval-base-url/api/v1/knowledge/agent/names#Trigger phrases: 列出 agents、有哪些 agent 可以扫、查看 A.I.G Agent 配置 / list agents, show available agents
status or result#Trigger phrases: 扫描好了吗、查看结果、进度怎么样了 / check progress, show results, scan status
status or result instead of submitting a new task.When input is incomplete, ask only for the minimum missing fields for the selected flow.
This flow requires an analysis model configuration.
Ask for:
modeltokenbase_urlUse the user-facing label:
AI 工具与技能安全扫描需要分析模型配置,请提供:model、token、base_urlAI Tool / Skills Scan requires an analysis model configuration: model, token, base_urlDo not call this flow MCP scan in user-facing prompts.
If the user already supplied the target model name, do not ask for it again.
Ask for:
target-tokentarget-base-urleval-modeleval-tokeneval-base-urlUse the user-facing label:
大模型安全体检需要目标模型和评估模型配置,请提供:target-token、target-base-url、eval-model、eval-token、eval-base-urlLLM Jailbreak Evaluation requires both target and evaluator model details: target-token, target-base-url, eval-model, eval-token, eval-base-urlIf the user explicitly mentions OpenRouter, it is valid to use:
target-tokenhttps://openrouter.ai/api/v1 as target-base-urlai_infra_scan on a remote URL, do not read, search, or analyze the current workspace, local repository files, or local A.I.G project files.aig-opensource, aig-pro, ai-infra-guard, or any local code directory unless the user explicitly asked to scan a local archive or repository.aig_client.py with the appropriate subcommand immediately.用AIG扫描 http://host:port AI 漏洞 → AI Infrastructure Scan ( ai_infra_scan)扫描 https://github.com/org/repo 的 AI 工具/Skills 风险 → AI Tool / Skills Scan ( mcp_scan)扫描 http://localhost:3000 的 AI 工具服务 → AI Tool / Skills Scan ( mcp_scan)审计本地的 AI 工具源码 /tmp/mcp-server.zip → AI Tool / Skills Scan ( mcp_scan) with local archive upload扫描 agent demo-agent → Agent Scan ( agent_scan)列出可扫描的 Agent → Agent List做一次大模型越狱评测 → LLM Jailbreak Evaluation ( model_redteam_report) — only when target model config is already provided (eval model optional)mcp_scan) requires an explicit model#For opensource A.I.G, AI Tool / Skills Scan must include:
content.model.modelcontent.model.tokencontent.model.base_url — ask for this too unless the user explicitly says they are using the standard OpenAI endpointDo not assume the server will fill a default model.
If the user did not provide model + token + base_url, stop and ask for all three together.
Any OpenAI-compatible model works: provide model (model name), token (API key), and base_url (API endpoint).
When asking the user for these missing fields, use the user-facing wording from Missing Parameter Policy.
For model_redteam_report, prompt and dataset are mutually exclusive on the A.I.G backend.
prompt onlyFor missing parameters in 大模型安全体检 / LLM Jailbreak Evaluation:
target-token and target-base-urltarget-token and https://openrouter.ai/api/v1 as target-base-urlMCP scanagent_scan does not upload a local YAML file.
It uses:
agent_idusername request headerand the A.I.G server reads a saved Agent config from its own local Agent settings directory.
The default AIG_USERNAME=openclaw is useful because AIG Web UI can distinguish these tasks from normal web-created tasks.
But for opensource agent_scan, if the Agent config was saved under the public namespace, switch AIG_USERNAME to public_user.
So before running agent_scan:
agent_id is unknown, list visible agents firstAIG_USERNAME and that it defaults to openclawAIG_USERNAME to public_useraig_client.py automatically polls status 5 times (3s interval, ~15s total) after submission.session_id and exits — the user can check later with check-result --session-id <id> --wait.agent_scan failures mentioning missing Agent config, explain that AIG is looking for a server-side Agent config under ${AIG_USERNAME:-openclaw}. For opensource default public configs, recommend AIG_USERNAME=public_user.agent_scan can upload or read local YAML files — it reads server-side Agent configs only.Append the following line at the end of every scan result, translated to match the detected output language:
扫描能力由腾讯朱雀实验室 [A.I.G](https://github.com/Tencent/AI-Infra-Guard) 提供