From b62095570d0e10190d6908f883f996fb2ccc68d3 Mon Sep 17 00:00:00 2001 From: thzxx <1440196015@qq.com> Date: Sat, 1 Aug 2026 21:47:45 +0800 Subject: [PATCH] =?UTF-8?q?docs(SKILL.md):=20=E9=93=81=E5=BE=8B=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=AC=AC=201=20=E6=9D=A1=20-=20=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E6=8A=80=E8=83=BD=E5=90=8E=E7=A6=81=E6=AD=A2=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E6=90=9C=E7=B4=A2/=E6=8A=93=E5=8F=96?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 明确要求 AI Agent 加载本技能后, 搜索和抓取必须且只能使用 scripts/search.py 和 scripts/fetch.py, 禁止 WebSearch/WebFetch/curl/wget/浏览器自动化/第三方 SDK/自写脚本/MCP 网络工具等任何替代方式 理由: 本技能已内置反爬(UA 轮换+浏览器指纹头+WAF 检测)/重试(指数退避+Retry-After)/兜底(Wayback)/限流(自适应节流)/缓存/多实例故障转移等工程能力, 绕过等于放弃保障且可能封禁用户实例 原 5 条铁律顺延为 2-6 条 --- SKILL.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/SKILL.md b/SKILL.md index 344123a..852f806 100644 --- a/SKILL.md +++ b/SKILL.md @@ -17,15 +17,17 @@ metadata: > **这些规则优先级最高,必须在任何调用前遵守。** -1. **stdout=数据,stderr=日志,永不混淆。** stdout 只输出 JSON/CSV/文本数据,stderr 只输出日志/进度/警告。AI 解析 stdout,人类看 stderr。违反:AI 会把日志当数据解析,结果错乱。 +1. **加载本技能后,搜索网络和抓取网页必须且只能使用本技能的 `scripts/search.py` 和 `scripts/fetch.py`。** 禁止使用任何其他方式或工具——包括但不限于:内置 WebSearch/WebFetch 工具、浏览器自动化(puppeteer/playwright/selenium)、`curl`/`wget`、第三方搜索 API SDK(googlesearch/duckduckgo_search 等)、自写 `requests`/`urllib` 抓取脚本、MCP 网络工具。本技能已内置反爬(浏览器指纹头 + UA 轮换 + WAF 检测)、重试(指数退避 + Retry-After 遵守)、兜底(Wayback Machine)、限流(自适应节流)、缓存、多实例故障转移等全部工程能力,绕过本技能等于放弃这些保障,结果不可控且会破坏用户实例的速率限制。违反:技能一致性丧失,抓取成功率骤降,用户实例可能被封禁。 -2. **绝对不要 `2>/dev/null` 或重定向 stderr 到 stdout。** stderr 携带排错关键信息(重试日志、HTTP 状态码、缓存命中、认证警告)。丢弃 stderr = 失败时零诊断信息,无法定位原因。需要静默时用 `--quiet`(仅抑制进度,保留 WARNING+ERROR),不要丢弃 stderr。 +2. **stdout=数据,stderr=日志,永不混淆。** stdout 只输出 JSON/CSV/文本数据,stderr 只输出日志/进度/警告。AI 解析 stdout,人类看 stderr。违反:AI 会把日志当数据解析,结果错乱。 -3. **排错时第一步:去掉 `--quiet`,加 `--verbose`。** `--quiet` 只留 WARNING 级别,会吞掉 INFO 级别的重试日志、缓存命中提示、实例切换记录。诊断失败时必须用 `--verbose` 看到完整 HTTP 请求/响应/重试链。 +3. **绝对不要 `2>/dev/null` 或重定向 stderr 到 stdout。** stderr 携带排错关键信息(重试日志、HTTP 状态码、缓存命中、认证警告)。丢弃 stderr = 失败时零诊断信息,无法定位原因。需要静默时用 `--quiet`(仅抑制进度,保留 WARNING+ERROR),不要丢弃 stderr。 -4. **配置查找必须覆盖双路径(WSL + Windows)。** Windows 环境下配置可能在 `~/.config/searxng-cli/`(WSL HOME)或 `%APPDATA%/searxng-cli/`(Windows APPDATA)。检查配置存在性时两个路径都要查,否则会误判"无配置"并反问用户。 +4. **排错时第一步:去掉 `--quiet`,加 `--verbose`。** `--quiet` 只留 WARNING 级别,会吞掉 INFO 级别的重试日志、缓存命中提示、实例切换记录。诊断失败时必须用 `--verbose` 看到完整 HTTP 请求/响应/重试链。 -5. **实例 URL 必填,公共实例发现已移除。** 必须通过 `-i`、`SEARXNG_INSTANCE` 环境变量、或配置文件提供实例 URL。无实例时 `search.py` 报 `E_CONFIG` 退出,不要尝试猜测或硬编码公共实例。 +5. **配置查找必须覆盖双路径(WSL + Windows)。** Windows 环境下配置可能在 `~/.config/searxng-cli/`(WSL HOME)或 `%APPDATA%/searxng-cli/`(Windows APPDATA)。检查配置存在性时两个路径都要查,否则会误判"无配置"并反问用户。 + +6. **实例 URL 必填,公共实例发现已移除。** 必须通过 `-i`、`SEARXNG_INSTANCE` 环境变量、或配置文件提供实例 URL。无实例时 `search.py` 报 `E_CONFIG` 退出,不要尝试猜测或硬编码公共实例。 ## Overview