03 图像识别

PassAudited by VirusTotal on May 11, 2026.

Overview

Type: OpenClaw Skill Name: 03 Version: 1.0.0 The skill bundle is a legitimate image recognition tool supporting both local (BLIP model) and API-based (OpenAI, Anthropic, Zhipu) processing. It includes robust file validation logic in `vision_ai.py` to check MIME types and file sizes, and the `install.sh` script performs standard dependency management without suspicious side effects. No indicators of data exfiltration, malicious execution, or prompt injection were found.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A user cannot verify from the supplied artifacts which code will configure the API provider, and a different parent-directory module could change where images or keys are sent.

Why it was flagged

The skill imports llm_config.py from the parent directory, but that file is not in the provided manifest. That missing, out-of-package module appears to control provider configuration, API keys, models, and base URLs.

Skill content
sys.path.insert(0, str(Path(__file__).parent.parent))
from llm_config import LLMConfig
Recommendation

Bundle and review llm_config.py with the skill, avoid parent-directory imports, and make provider configuration explicit in the skill package.

What this means

The skill may use existing local/API credentials in ways the registry metadata does not clearly describe.

Why it was flagged

The code says API keys can be read from environment variables or a configuration file, but the registry metadata declares no env vars or primary credential, and the config-reading code is not included.

Skill content
api_key: API密钥(可选,默认从环境变量或配置文件读取)
Recommendation

Declare all supported credential names and config paths, require explicit provider selection, and avoid silently reading credential files.

What this means

Private images could be uploaded to an unexpected model provider or endpoint if the configuration differs from what the user expects.

Why it was flagged

API mode encodes the image and sends it to an endpoint returned by the missing LLMConfig module, so the exact external destination is not fully reviewable from the supplied artifacts.

Skill content
client = OpenAI(api_key=self.llm_config.api_key, base_url=self.llm_config.get_base_url()) ... "url": f"data:{file_info['mime_type']};base64,{base64_image}"
Recommendation

Show the selected provider and endpoint before upload, document all supported providers, and use local mode for sensitive images.

What this means

A user may approve API analysis believing images go to one of the documented providers, while the code defaults to another provider.

Why it was flagged

The code defaults API analysis to zhipu, while SKILL.md frames API mode as OpenAI or Claude. That mismatch can make users trust the privacy/provider description without realizing the default destination differs.

Skill content
def __init__(self, provider: str = "zhipu", api_key: str = None):
Recommendation

Update the user-facing documentation and metadata to list the actual default provider and all supported providers, or require the user to choose one explicitly.