Token导航 LogoToken导航

Agent Skill · 研究检索

has-anonymizer(有匿名器)

has-anonymizer 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

has-anonymizer 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为需要联网;许可证为 MIT-0,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 4,402。

总安装 32,754周安装 1,325GitHub Stars 11下载 10,282核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.3

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:has-anonymizer(有匿名器)
来源仓库:https://github.com/xuanwuskill/has-anonymizer
安装命令:
openclaw skills install has-anonymizer
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install has-anonymizer

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

has-anonymizer 提供文本与图像的多语言匿名化能力,保护隐私信息。支持 8 种语言的实体识别与 21 类图像隐私类别处理,适用敏感内容脱敏。通过 clawhub 安装后,可结合 README 了解具体调用参数与输入格式。使用前需确认是否涉及联网、文件读写或命令执行,评估安全风险。

建议保留原始数据完整性,避免对未经验证的结果进行二次加工。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install has-anonymizer;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

has-anonymizer 怎么安装?

在终端执行 openclaw skills install has-anonymizer。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

has-anonymizer 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

has-anonymizer 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

has-anonymizer 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

has-anonymizer 用的人多吗?

公开数据是累计安装 32,754 次,近一周安装 1,325 次,下载 10,282 次,GitHub 11 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

has-anonymizer 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
has-anonymizer

有匿名器 · 本页

32,75411需要联网MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
has-anonymizer
description
HaS (Hide and Seek) on-device text and image anonymization. Text: 8 languages (zh/en/fr/de/es/pt/ja/ko), open-set entity types. Image: 21 privacy categories (face, fingerprint, ID card, passport, license plate, etc.). Use when: (1) anonymizing text before sending to cloud LLMs then restoring the response, (2) anonymizing documents, code, emails, or messages before sharing, (3) scanning text or images for sensitive content, (4) anonymizing logs before handing to ops/support, (5) masking faces/IDs/plates in photos before publishing or sharing.
metadata

HaS Privacy

HaS exposes a single umbrella CLI:

  • has text ... for text anonymization, restoration, and scanning
  • has image ... for image scanning, masking, and category discovery

Use it when you need to remove private data locally before sending content elsewhere, inspect a directory for privacy risks, or mask visual privacy targets in photos and screenshots.

Agent Decision Guidelines

  • Prefer has text for plaintext and has image for raster images. For mixed directories, run both and combine the results into one report.
  • For PDFs, Word documents, or scanned pages, extract text first and then use has text. For screenshots/photos where the goal is simply to hide visible carriers such as faces, screens, paper, labels, or QR codes, use has image. If the goal is to reason about the text content inside an image, run OCR first and then use has text.
  • Do not overwrite or delete the original files. Text commands can restore later, image masking is irreversible.
  • Proactively mention configurable knobs when the user intent is clear: has text uses repeated --type; has image uses repeated --type, plus --method and --strength.
  • If the user intent is ambiguous, start with scan before hide.
  • After batch scans, summarize text file count, image file count, findings by type/category, high-risk items, and the suggested next step.
  • If timing matters to the user, add --timing and report the elapsed result in plain language afterward.
  • For qr_code and barcode, the default mosaic strength is automatically raised based on the detection size to ensure the encoding is destroyed. The agent does not need to manually increase --strength for these categories. If a detection output includes effective_strength, report it to the user.

Shared CLI Contract

The current CLI contract is designed for agents first:

  • Success returns compact JSON.
  • Failure also returns compact JSON with error.code and error.message.
  • Returned path fields are absolute.

- This includes file, output, mapping_output, and skipped[].file.

  • Invalid combinations fail fast instead of silently falling back.
  • Directory mode is non-recursive. Only immediate children are processed.
  • Batch results can include skipped and skipped_count.

- Treat skipped entries as unprocessed files, not as clean files.

Shared command layout:

{baseDir}/scripts/has.sh <text|image> <command> [options]

Shared options can be placed before or after the subcommand.


Part 1: has text

has text is the plaintext namespace. It supports:

  • scan
  • hide
  • restore

It runs entirely on-device and uses a local llama-server plus the HaS text model when model inference is required.

Core Text Concepts

Semantic tags

Anonymized text uses semantic tags such as:

<EntityType[ID].Category.Attribute>

This preserves structure better than a flat [REDACTED] token and is the reason restored downstream LLM output can remain usable.

Open-set types

Repeated --type flags are open-set. They are not limited to a fixed catalog. Natural language type names such as "person name", "address", "phone number", or "numeric values (transaction amounts)" are valid.

Public/private distinction

Type wording matters. For example, "personal location" is usually safer than "location" if you want to preserve public places but hide private addresses. Public/private person-name distinctions remain less stable and should not be trusted without verification.

Multilingual support

The text model supports Chinese, English, French, German, Spanish, Portuguese, Japanese, and Korean, including mixed-language text.

Type name language

Match the --type language to the source text language:

  • Chinese text → use Chinese type names: --type "人名" --type "电话号码" --type "地址"
  • Non-Chinese text (English, French, German, etc.) → use English type names: --type "person name" --type "phone number" --type "address"

Text Runtime Prerequisites

has text auto-starts a local llama-server when needed.

  • Default model path: ~/.openclaw/tools/has-anonymizer/models/has_text_model.gguf
  • Override model path: HAS_TEXT_MODEL_PATH=/abs/path/to/has_text_model.gguf
  • Override parallel cap: HAS_TEXT_MAX_PARALLEL_REQUESTS
  • If HuggingFace downloads fail, see Model Download Mirrors below.

Text Usage

{baseDir}/scripts/has.sh text [--timing] [--verbose] <scan|hide|restore> [options]

Namespace options:

OptionDescription
--timingInclude elapsed_ms in the JSON output
--verboseEmit runtime status and progress messages to stderr

Input methods:

MethodDescription
--text '<text>'Pass text directly
--file <path>Read text from a file
--dir <path>Process immediate plaintext files in a directory
stdinFor single-text mode when no --text, --file, or --dir is provided

Rules:

  • --text, --file, and --dir are mutually exclusive.
  • Empty --type values are rejected.
  • Directory mode only accepts batch output flags.
  • Single-file hide requires --mapping-output.
  • Single-file restore requires --mapping.
  • In text directory mode, skipped can include unprocessed files (binary, encoding, or read errors).

has text scan

Finds sensitive entities without replacing them.

{baseDir}/scripts/has.sh text scan --type "person name" --type "phone number" --file report.txt
{baseDir}/scripts/has.sh text scan --type "person name" --type "phone number" --dir ./reports/

Parameters:

ParameterRequiredDescription
--typeyesEntity type to scan for; repeat to add more
--text / --file / --dirone inputInput source
--max-chunk-tokensMax tokens per chunk, default 5000
--max-parallel-requestsMax scan chunks in parallel, default 4

Output:

  • Single-text mode returns {"entities": ...}
  • Directory mode returns {"results":[...],"count":N,"summary":{...}}
  • Batch output may include skipped and skipped_count

has text hide

Replaces sensitive entities with semantic tags.

{baseDir}/scripts/has.sh text hide --type "person name" --type "address" --text "John lives in Brooklyn" --mapping-output ./mapping.json
{baseDir}/scripts/has.sh text hide --type "person name" --file note.txt --output ./note.anonymized.txt --mapping-output ./note.mapping.json
{baseDir}/scripts/has.sh text hide --type "person name" --dir ./docs/

Parameters:

ParameterRequiredDescription
--typeyesEntity type to anonymize; repeat to add more
--text / --file / --dirone inputInput source
--mapping-outputsingle-file: yesOutput path for generated mapping JSON
--outputsingle-fileOutput path for anonymized text
--mappingsingle-fileExisting mapping JSON file for incremental anonymization
--output-dirbatchOutput directory for anonymized files (default: <dir>/.has/anonymized/)
--mapping-dirbatchOutput directory for per-file mapping JSON files (default: <output-dir>/mappings/)
--max-chunk-tokensMax tokens per chunk, default 3000
--max-parallel-requestsMax files in parallel for --dir, default 4
--no-tool-pairDisable diff-based pair extraction; always use Model-Pair (slower but more robust)

Behavior:

  • Single-file mode never emits the mapping table inline.
  • Single-file mode returns either:

- {"text":"...","mapping_output":"/abs/path/to/map.json"} - {"output":"/abs/path/to/out.txt","mapping_output":"/abs/path/to/map.json"}

  • Batch mode does not accept shared --mapping.
  • Mapping files are sensitive assets. Protect them.

has text restore

Restores anonymized text using mapping JSON.

{baseDir}/scripts/has.sh text restore --mapping mapping.json --text "<person name[1].personal.name> lives in ..."
{baseDir}/scripts/has.sh text restore --mapping mapping.json --file anonymized.txt --output restored.txt
{baseDir}/scripts/has.sh text restore --dir ./.has/anonymized/ --output-dir ./.has/restored/

Parameters:

ParameterRequiredDescription
--mappingsingle-file: yesMapping JSON file path
--text / --file / --dirone inputInput source
--outputsingle-fileOutput path for restored text
--mapping-dirbatchPer-file mapping directory (default: <dir>/mappings/)
--output-dirbatchOutput directory for restored files (default: sibling restored/ under .has/, or <dir>/.has/restored/)
--max-chunk-tokensMax tokens per chunk when model restore is needed, default 3000
--max-parallel-requestsMax model-backed restore chunks in parallel

Behavior:

  • Single-file mode returns inline text unless --output is provided.
  • restore --dir uses per-file mapping JSON files. It does not accept a shared --mapping.
  • restore --dir expects mapping files at <mapping-dir>/<filename>.mapping.json (matching the naming convention produced by hide --dir).

Typical Text Workflow

Anonymize text before sending it to a cloud LLM, then restore the answer:

  1. hide to produce anonymized text plus mapping
  2. send anonymized text to the cloud model with a tag-format explanation (see below)
  3. restore the model response with the mapping

For multi-line text, prefer file-based intermediates over shell variables.

Prompting the cloud LLM with anonymized text

When forwarding anonymized text to a cloud LLM, the agent must prepend a brief explanation of the tag format so the model understands and preserves the tags. Include wording equivalent to the following (adjust language to match the conversation):

The text below has been anonymized. Sensitive entities are replaced by tags in the format <EntityType[ID].Category.Attribute>: - EntityType — the kind of entity (matches the --type value, e.g. person name, address, phone number). - [ID] — a numeric identifier. The same type + same ID always refers to the same real-world entity (e.g. every <person name[1]> is the same person; <person name[2]> is a different person). - .Category.Attribute — additional semantic classification of the entity. Rules: 1. Preserve every tag exactly as-is in your response — do not modify, translate, paraphrase, omit, or expand any tag. 2. When referring to an anonymized entity, reuse the original tag with the correct ID. 3. Do not attempt to guess the real values behind the tags.

Omitting this explanation may cause the cloud model to strip, rewrite, or misinterpret the tags, which will break the restore step.

Model Download Mirrors

If HuggingFace downloads fail, use these ModelScope mirrors:

  • text model: https://modelscope.cn/models/TencentXuanwu/HaS_Text_0209_0.6B_Q8
  • image model: https://modelscope.cn/models/TencentXuanwu/HaS_Image_0209_FP32

Part 2: has image

has image is the image namespace. It supports:

  • scan
  • hide
  • categories

It loads the YOLO segmentation model directly and does not require llama-server.

Image Usage

{baseDir}/scripts/has.sh image [--timing] [--model MODEL] <scan|hide|categories> [options]

Namespace options:

OptionApplies toDescription
--timingall image commandsInclude elapsed_ms in the JSON output
--model PATHscan, hideOverride the image model path

Image Privacy Categories

Common categories include biometric_face, id_card, passport, license_plate, qr_code, mobile_screen, and paper.

Use has image categories when you need the full catalog of 21 supported classes.

--type accepts:

  • English names
  • Chinese names
  • numeric IDs
  • unique partial matches such as face

Rules:

  • Empty --type values are rejected.
  • Ambiguous partial matches fail fast.
  • Omit --type to scan or mask all supported categories.
  • In image directory mode, skipped can include unprocessed files.

has image scan

Finds privacy regions without modifying the image.

{baseDir}/scripts/has.sh image scan --image photo.jpg --type face --type id_card
{baseDir}/scripts/has.sh image scan --dir ./photos/ --type face

Parameters:

ParameterRequiredDescription
--image / --dirone inputSingle image or batch directory
--typeCategory filter; repeat to add more
--confConfidence threshold, default 0.25
--modelOverride image model path

Output:

  • Single-image mode returns detections and summary
  • Directory mode returns results, count, summary, and optional skipped

has image hide

Detects and masks privacy regions in images.

{baseDir}/scripts/has.sh image hide --image photo.jpg --type face --method blur --strength 25
{baseDir}/scripts/has.sh image hide --dir ./photos/

Parameters:

ParameterRequiredDescription
--image / --dirone inputSingle image or batch directory
--outputsingle-imageOutput image path
--output-dirbatchOutput directory
--typeCategory filter; repeat to add more
--methodmosaic, blur, or fill; default mosaic
--strengthMosaic block size or blur radius; default 15
--fill-colorFill color for fill; default #000000
--confConfidence threshold; default 0.25
--modelOverride image model path

Behavior:

  • Refuses to overwrite the source image.
  • Directory mode accepts --output-dir, not --output.
  • For qr_code and barcode detections with --method mosaic, the block size is automatically raised to max(strength, bbox_short_side // 10, 20) to prevent the encoding from surviving pixelation. After masking, a lightweight verification confirms the code is no longer machine-readable; if it is, the strength is escalated further (up to a fill fallback). Each affected detection includes an effective_strength field in the output.
  • A cv2-based fallback supplements YOLO detection for QR codes and barcodes. When YOLO misses a code (e.g. large codes on plain backgrounds), cv2.QRCodeDetector and cv2.barcode.BarcodeDetector provide additional coverage. When YOLO misclassifies a code region as a different category (e.g. monitor_screen), cv2 corrects the category before --type filtering, so --type qr_code catches all QR codes regardless of YOLO's label. Corrected detections include a "corrected_from" field; new detections include "cv2_fallback": true.

has image categories

Lists all supported image privacy categories.

{baseDir}/scripts/has.sh image categories
{baseDir}/scripts/has.sh image categories --timing

Behavior:

  • Returns {"categories":[...]}
  • Supports --timing

Suggested Combined Scan

For a mixed workspace:

  1. run has text scan ... --dir <dir> for plaintext
  2. run has image scan --dir <dir> for images
  3. merge the two JSON results into one privacy report

If the user wants masking after that, use hide on the specific files or directories you already identified.

平台分布

OpenClaw

91.01%
按下载量换算9,358

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills