Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add shenyangs/Guanlan --skill skillgit clone --depth 1 https://github.com/shenyangs/GuanlanWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/shenyangs/guanlan/skill)<a href="https://agentmods.dev/skills/shenyangs/guanlan/skill"><img src="https://agentmods.dev/badge/skills/shenyangs/guanlan/skill/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/shenyangs/guanlan/skill"><img src="https://agentmods.dev/badge/skills/shenyangs/guanlan/skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00173 | $0.10361 |
| Opus 5.5 | $0.00069 | $0.04144 |
| Sonnet 5.5 | $0.00035 | $0.02072 |
| Haiku 4.5 | $0.00017 | $0.01036 |
Grade A, and why
guanlan scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s "https://www.v2ex.com/api/topics/hot.json" -H "User-Agent: guanlan/1.0" How it starts
The opening of the file, as written. The whole thing — 370 lines — stays where its author put it; the contents beside it link to each section on GitHub.
观澜 / Guanlan — 路由器
面向 AI Agent 的中文互联网信源与平台路由器。根据用户意图选择对应分类。
Agent 运行规则
- 把
AGENTS.md、docs/agent-playbook.md、docs/agent-usage.md和本文件当作 Guanlan 的长期记忆入口;做新 benchmark、自动化或 MCP 编排前,至少重读前两份。 - 搜索、研究、热榜、回响和本地知识库检索时,默认使用 80 条候选池;复杂调研可提高到 80-100。
- 只有用户明确要“少量样本”“快速试一下”“只看前几条”时,才主动降低 limit。
- 如果命令或用户要求
--limit小于 30,把它当作 smoke sample,不要直接下强结论;读取 trace 里的agent_limit_advice.silent_repair_commands,除非用户明确只要 smoke,先无感补跑--limit 80再回答。 --site是硬过滤:--site gov.cn不允许返回知乎、SEO 页或其他域名当作结果;为空时按external_fetch_strategy或站内入口补证。- 显式年份/年份范围是强时间窗,窗口外材料只作背景,不应进入主时间线或写成最新证据。
- 强路由命中时直接走对应
--preset或--scope,不要先泛搜一轮;只有意图混合、拿不准信源角色、或需要解释路由时,才先跑guanlan route "query" --json。 - 强路由包括:WPS/AI Office
wps_office、欧美娱乐global_entertainment、日韩娱乐jp_kr_entertainment、CVE/反诈cybersecurity、天气灾害weather_disaster、体育sports、财经/股票/宏观金融finance、科学新闻science、职场薪资面经career、播客podcast、考试备考test_prep、高校招生导师university、学术投稿检索academic、产品/公司口碑reputation。 - Agent 自动挡:如果只是拿不准该用哪个 Guanlan 命令,先跑
guanlan agent "query" --json;MCP 模式调用guanlan_agent。它只做本地规划,默认返回schema_version=agent_plan_v2、primary_command、少量agent_next_steps、task_model、capability_selection、execution_contract和self_check_contract。执行 primary 后,把 Guanlan JSON/错误摘要交给guanlan agent "query" --phase review --observation-json result.json --json或 MCPguanlan_agent phase=review,按next_decision=answer|continue|repair|ask_user|authorize_browser|stop决定回答、补证、换路由、请求授权或停止。--mode quick保持轻路径,--mode fresh把 hotnews/feeds 放进短链路,--mode deep进入深查。 - Evidence Mixer 只做候选证据优先级诊断:默认
search附带evidence_mixer_shadow,不删除、不重排、不扩大空结果率;需要 Agent 明确看到优先阅读顺序时用--evidence-mode assist,回滚或对照时用--evidence-mode off。coverage_floorfallback 说明应保留完整候选池继续补读,不应收紧过滤。 - 信源解释:当需要说明“为什么该看这些来源/某来源能不能当主证据”时,先用
guanlan sources explain "query"或guanlan sources show gov.cn;需要治理口径漂移时用guanlan sources audit。这些都是只读信源元数据,不是实际搜索结果。 - 搜索入口目录:
query_strategy.search_entrypoint_policy与sources explain/export会展示 Baidu/Bing/DuckDuckGo/搜狗微信/头条/集思录/Google 等入口的适用边界和 operator 提示。它是只读目录,不是“逐个裸抓 17 个搜索引擎”的执行计划;真正执行仍走 Guanlan search 后端、scope/site、AnySearch 和质量门禁,不把 session cookie retry 当稳定恢复能力。 - 站点入口发现:用户给出明确网站/域名并要找站内文档、价格、公告、API、联系方式或下载页时,用
guanlan map "https://example.com" --query "pricing docs" --limit 80 --read-top 2。map只从公开 robots.txt、sitemap XML 和页面链接发现候选 URL;不是全网搜索、不是规模化爬取。--read-top只读取少量代表页,回答只能引用read_pack.readings/readings中read_evidence_v1.usable=true的正文,未读 URL 仍只是入口线索。 - 轻重分流:不确定任务该轻搜还是深查时,先跑
guanlan workflow "query" --json;simple/direct 任务不要过度规划,复杂/高风险/对比/时间线/档案任务才用guanlan investigate "query" --limit 80 --format context。 - 页面诊断:当
read读到动态页壳、登录墙、WAF、安全验证、搜索兜底或弱正文时,先跑guanlan diagnose page "URL";诊断只解释页面是否能当证据,不读取 Cookie,不执行浏览器动作。 - Jina 读取保持兼容模式:普通
read不默认启用agent preset、frontmatter、chunking 或 browser engine。只有 Jina 与 direct 都确认返回动态页壳时,才允许一次有界 browser 修复;登录墙、验证码/WAF、网络错误和动态财经页跳过该重试。显式--no-cache同时绕过观澜与 Jina 缓存,内部行为通过jina_read_contract_v1进入 trace/JSON,不机械外显给普通用户。 - 浏览器辅助补证:如果
diagnose page输出browser_assist.recommended=true,必须先询问用户授权;如需登录、验证或切换账号,让用户自己在浏览器里完成;Agent 只读取目标页面的浏览器可见内容,本次可见页补证不读取 Cookie、Token、钥匙串、localStorage、sessionStorage、浏览器数据库/profile 或无关个人信息。私信、订单、后台、账号页只有在它们就是目标页且用户单独明确授权目标、用途、风险和只读范围时才读取,并标记private_account_evidence=true;如果仍需 Cookie 或其他凭据材料,必须另行说明平台、用途和风险并获得用户明确同意,凭据材料不得进入 browser-visible payload,也不点赞、评论、关注、发帖、私信、下单或提交表单。OpenGuanlan 就是 Guanlan 的浏览器补证总层,默认复用宿主 Agent 浏览器可见页契约,不要求插件、daemon、OpenCLI、Playwright 或独立浏览器 profile。用户授权后可先用guanlan browser-assist adapters --check查看只读适配器自检,用guanlan browser-assist sessions "URL" --json获取同一目标页会话契约,再用guanlan browser-assist run "URL" --adapter openguanlan --json取得 OpenGuanlan 执行契约;可见页结果优先由宿主 Agent 直接提取 JSON/JSONL,并用guanlan archive add-browser-note --from-json browser-notes.jsonl入库。openguanlan-bridge只是可选扩展桥;只有用户明确需要独立 Chrome/Chromium 桥时,才用guanlan browser-assist setup-openguanlan --json、openguanlan pair-code --json和扩展 popup 配对。open-cli只作为兼容迁移入口,不要求用户安装 OpenCLI。xhs-cli等外部适配器必须由用户预先配置;不要临时下载 Playwright、启动独立浏览器或读取浏览器 profile。--url "URL" --text-file notes.md只是无浏览器提取能力时的手动兜底,并保留browser_assisted/visible_page_only边界。 - 浏览器可见页动态采集不能只靠固定 sleep。优先等待标题/正文、结果数增长、DOM 变化趋稳或相关网络响应;
aria-label、placeholder、title、按钮文字等会随语言变化,不要用单一 UI 文案当唯一 selector。列表、评论、搜索页需要样本池时,用--min-visible-items并输出requested_min_items、collected_count、partial_reason;未达到目标要标记 partial,不要把空结果当成功。 - 研究模板:高频垂直任务先用
guanlan recipe list/guanlan recipe run <recipe> "query"固化流程,例如finance-risk、university-advisor、product-reputation、public-opinion-pulse、brand-risk-watch、competitor-watch、pricing-watch、review-mining、app-review-pulse、entertainment-pulse、security-advisory、tech-radar、wps-office-radar、trajectory-map。 - 关键词引申/选题发散用
guanlan yinshen "关键词" --limit 80 --angles 5-8。它先建立关键词证据语境,再生成媒体友好的延展角度和每个角度的深搜路径;不要把它当成无来源脑暴。 - 不要把 Guanlan 降格成“一次泛搜”。默认工作流是动态分档:结果已可用时走
search -> read;普通研究走route -> scoped search -> read;热点题先补hotnews;技术/AI/WPS/AI Office 题补feeds;来源过窄时再补dossier/compare/timeline或受控research。 research是重型证据包工具,不是 Agent 自动挡的第一选择。只有用户明确要深度综合/可复用证据包,或search + read后仍缺信源角色覆盖时再用;MCP/Agent 默认把read_top控在 0-2,并优先用单独guanlan read补代表 URL。Schema 接受 0-5,3-5 只给用户明确要求多页深查且宿主外层 timeout 为 180-300 秒的任务。- 宿主 Agent 的数值边界:正常搜索
limit=80,同类搜索最多 2 轮,同一工具失败最多重试 1 次,单任务网络并发推荐 2/上限 3,重型工具并发和单任务数量都为 1,总工具调用推荐 4-7/上限 12。compare只接受 2-4 个对象名,比较维度单独放focus;不要先完整泛搜后再重复跑整套 compare/research。 - 体育比分/赛程、财经行情/公告披露/宏观数据、天气灾害、CVE、安全公告、科学机构声明、文娱榜单/票房、考试官方信息等高确定性垂直题,优先执行
route推荐的 directguanlan read命令,再用匹配的preset/scope扩大证据面;不要只看搜索引擎是否返回。 - 在完成当前档位要求的 Guanlan 工具前,不要立刻切
web_search/web_fetch。quality_summary=warn通常表示证据包还不完整,不等于 Guanlan 搜索失败。 quality_gate.reason=partial_salvage表示观澜保留了强官方/垂直信源线索但仍有覆盖缺口;先读代表原文,不要写成失败。read出现兜底状态: unusable时,不要引用搜索兜底,改用页面诊断、结构化入口、scope 搜索或 WebFetch 定点补证。- 使用
guanlan agent "query" --json时,先执行primary_command,再用 review 模式复盘观察结果。若出现空结果、小 limit、preferred 命中为 0、后端降级、partial_salvage、时间窗不符、read 不可用、official-only 或 research timeout 等信号,按 review 返回的next_commands先补证;用户面前不要说 Guanlan 崩了/坏了/没搜到,而是说明“当前证据包覆盖不足,需要补证/补读代表性来源”,再合并证据回答。 - 如果 Guanlan 输出
external_fetch_strategy,可以调用宿主 Agent 的 WebFetch/WebRead 读取候选 URL;外显时说明这是“Guanlan 规划信源 + WebFetch 定点补证”的搜索策略,不是 Guanlan 脆弱。 guanlan read --format json的backend_capability/extract_contract是给 Agent 的内部抽取契约:can_cite_as_page_body=true才能引用目标页正文;status=context_only只是搜索兜底线索;truncation.content_truncated=true表示正文被截断。对用户表达为“需要补读代表页/原文”,不要表达为工具报错。- 公开 HTML 需要保留代码、表格和链接时,可显式用
read --backend defuddle或研究命令的--read-backend defuddle。需 Node.js 与 Defuddle>=0.19.6,<0.20在同一 PATH(按需npm install -g [email protected]);仅支持 article,观澜取页后本地解析,关闭异步补抓,不提供动态页渲染/字幕。auto不自动启用;引用仍检查extract_contract.can_cite_as_page_body。 - 面向用户不要写“Guanlan 崩了 / 抽风了 / 挂了 / 炸了 / 翻车 / 拉胯 / 坏了”。只在影响证据边界时说明“目标页公开读取超时或上游响应慢,已按 Guanlan 定点补证路线读取目标页”;否则直接给来源和结论。
- 做 benchmark 时不要误用:实时题必须带
hotnews,技术/AI/WPS/AI Office 题必须带feeds,政策题要测search --scope gov + read;research --preset ...只作为深查/证据包链路单独评估。 - 自动挡或路由规则变更要沉淀 positive/negative/near-miss:把错例加到
tests/fixtures/routing_regression_cases.jsonl,用expected_*和forbidden_*同时约束命中与误命中,再跑tests/test_routing_regression_cases.py、guanlan eval benchmark和guanlan eval suite run chinese-web-v1。 guanlan quality live-smoke是可选公网漂移探针,默认不阻断。长期观察用guanlan quality live-smoke --record-history --trend-window 10,看live_trend_report的 new/recovered/persistent/network-or-upstream 信号;--strict仍只按本次 fail 决定退出码。- 如果 Agent/MCP/自动化平台能设置工具 timeout:
search/read/status/doctor用 60-90 秒;hotnews/feeds/pulse/read batch和默认archive ingest-research用 120 秒;research/compare/timeline/dossier/archive ingest-research --read-top N用 180-300 秒;安装/升级/发布 smoke 用 300-600 秒。单位要按宿主字段名换算:timeout_budget_seconds传秒,timeout_ms/timeout_milliseconds传毫秒,例如 120 秒 = 120000 ms、300 秒 = 300000 ms;不要把timeout=120这种裸数字交给下游。 - 超时只代表网络或上游源未完成,不代表没有证据;优先重试一次、加
--cache-ttl 3600,或把--read-top降到 0/1,不要为了速度把 80 条候选池砍成小样本。 - 科技/AI/WPS/AI Office/开发者/工程实践类问题必须额外补一轮 RSS/精品内容流;默认用
search --scope tech_dev|wps_office加guanlan feeds curated --category ai --limit 80。AI 公司、模型、Agent、开发者平台更新类任务再补guanlan feeds ai-official --limit 80和guanlan feeds ai-media --limit 80。research --preset tech|wps_office只在深查/证据包模式下使用,且保持--read-top 0-2。 - arXiv、预印本、论文线索和近期研究发现任务补
guanlan feeds arxiv --keyword "query" --limit 80。preprint_record是论文候选,不是同行评议结论;若输出preprint_search_entrypoint/api_unavailable,使用返回入口或research --preset academic继续补证。 - 长期观察指定博客、项目、机构公告或固定源池时用
guanlan feeds watchlist --watchlist PATH --limit 80;watchlist 支持 JSON、JSONL、每行一个 RSS/Atom URL。watchlist_update_signal要保留user_watchlist/feed_dependent边界。 - 长期观察一个意图而不只是固定 RSS 源时用
guanlan watch plan/add/fire。watch是 Guanlan-native standing intent 雷达,不启动后台、不发通知、不要求 Qdrant/Docker;watch fire默认是诊断调用,不写 seen,只有--record-seen才更新本地去重状态。NEW 线索仍需read --quality-report或research/archive ingest-research补证。 - 品牌、公关、市场、舆情团队要日报/晨报/每日简报时,优先用
guanlan daily "主题" --time-window 3d --format markdown --read-top 3。日报主线来自storylines,会区分 A 一手/官方、B 媒体/产业/开发者、C 社区/用户样本、D 弱线索/SEO;不要把官网信息写成全网情况,不要把社区样本外推成总体口碑。editorial_health.status=block时只能当线索池。交付到 IM 用--format im,静态页用--format html,连续日报显式加--record-history --compare-days N。 - 公众号文章链接先跑普通
guanlan read "https://mp.weixin.qq.com/s/..." --trace。selected_backend=wechat_article说明已成功走公开文章专项正文提取;不要再要求用户授权浏览器或 Cookie。这个路径只读公开文章 HTML,不读取 Cookie、credentials、IndexedDB 或公众号后台。只有专项提取、Jina 和 direct HTML 都弱/被挡时,才转diagnose page或浏览器可见页补证。用户已经自配公众号导出服务时,才使用guanlan wechat-exporter status --probe/account-search/articles/download;auth key 只能从当前 shell 环境读取,不写入提示词、日志或文档。 - 金山办公/WPS/WPS AI/WPS 365/AI Office/PPT/办公 Agent/文档协作/SaaS/信创/办公安全等选题任务先用
search --scope wps_office --trace,再补feeds curated --category ai、feeds ai-official、feeds ai-media;深查时才用受控research --preset wps_office --read-top 0-2 --max-search-jobs 2。它不是品牌白名单搜索,应主动外扩到竞品、科技/AI 媒体、RSS/公众号/热榜、开发者/用户样本和安全/信创线索。 - 文娱/影视/综艺/明星/游戏/票房/评分/口碑类问题优先用
route或research --preset entertainment;把平台热度、用户评分、产业报道、宣发通稿和粉圈讨论分层看。 - 欧美娱乐、Hollywood、Taylor Swift、Billboard、Grammy、巡演、新歌专辑等问题优先用
research --preset global_entertainment --profile english;英文行业媒体、榜单/奖项和艺人/厂牌一手信息优先于粉丝账号和八卦站。 - 日韩娱乐、K-pop/J-pop、韩剧日剧、Soompi、Oricon、Naver 等问题优先用
research --preset jp_kr_entertainment --profile hybrid;区分本地媒体/榜单、经纪公司口径、英文翻译站和粉丝讨论。 - 财经、股票、行情、ETF/基金净值、公告、财报、基金公告、监管、宏观金融、雪球/股吧情绪和研报问题先跑
guanlan stock plan "问题"(如果不确定该怎么查),再用guanlan stock .../guanlan-stock ...获取结构化行情、净值、榜单、资金流向和大盘概览,再用search --scope finance_quote|finance_disclosure|finance_macro|finance_sentiment|finance_research扩展证据;只有深查/证据包时才用受控research --preset finance --read-top 0-2 --max-search-jobs 2。把行情/净值、公告披露、监管/宏观、新闻、研报观点和投资者情绪分层看,不输出买卖建议。 - CVE/漏洞/补丁/反诈/诈骗短信用
research --preset cybersecurity或search --scope cybersecurity --trace;优先 CVE/NVD/CISA/厂商公告/监管来源。 - 台风/天气/地震/灾害预警用
search --scope weather_disaster --trace;优先官方气象和应急来源,并检查时间戳。 - 体育、科学新闻、招聘薪资面经、播客、考试备考分别用
sports、science、career、podcast、test_preppreset/scope,不要停在泛搜索。 - 如果新用户问“装好了怎么用/怎么让 Agent 用观澜”,先运行
guanlan welcome。 - 如果用户或 Agent 不知道观澜有哪些功能、该用哪个命令,先运行
guanlan capabilities;MCP 模式下调用guanlan_capabilities。 --advisor输出的是证据边界和写作规则,Agent 需要据此生成自然建议,不要机械复述固定小标题。research证据包会附带证据审计提示;遇到版本号、价格、参数量、发布日期冲突时,先说明不同来源分别怎么说,再给取舍依据。- 知识星球属于授权私域社区;只有用户明确要查自己已加入/创建的星球内容时,才引导安装/登录
zsxq-cli。默认只做浏览、搜索和资料整理,发帖、评论、回答、编辑、删除、打标签和笔记写入必须逐次确认。 report html是旁支展示层,只把已有 JSON/stdin/demo 数据渲染成静态 HTML;不要用它替代 search/read/research/hotnews 主链路。archive wiki/context/pack是本地 archive 的旁支组织层:只使用已归档资料,不代表全网知识,不自动上传。- 更新观澜时必须全量更新,不要只跑增量 upgrade:优先
uv tool install --force --upgrade --refresh --default-index https://pypi.org/simple guanlan,注意 uv 只有--force可能重装旧锁定版本;Homebrew 用brew update && brew reinstall shenyangs/tap/guanlan;pipx 用pipx install --force guanlan。更新后运行hash -r、command -v guanlan、which -a guanlan、guanlan version,再跑guanlan capabilities、guanlan doctor --install-check、guanlan doctor --trace、guanlan search "人工智能 政策" --profile china --limit 5 --trace、guanlan read "https://example.com/" --backend direct --no-fallback-search --format json、guanlan hotnews today --limit 5 --trends。若 Agent 报 PyPI 低于 GitHub,必须用 PyPI JSON 与 pip index 安装源复核,不要用搜索结果或缓存文本判断最新版。版本、路径或 read smoke 不一致时停止配置 MCP。
What ships with it
7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed · +1 lines 359673c3212d
- 2mo ago First seen · 369 lines · 173 tokens per session scan A be9df427af5a
guanlan is a skill published in the GitHub repository shenyangs/Guanlan (57 stars, last pushed 3d ago), licensed MIT. It adds 173 tokens to every session and 10,361 once invoked, about $0.0007 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
guanlan compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| guanlanshenyangs/Guanlan | Skill | 57 | 3d ago | MIT | A | 173 | Claude Code, Codex |
| llm-as-judge-evaluationsynthetic-sciences/openscience | Skill | 4.3k | 2d ago | Apache-2.0 | A | 56 | Claude Code, Codex |
| dd-code-generationDataDog/pup | Skill | 1.0k | yesterday | Apache-2.0 | A | 16 | Claude Code |
| telegrambubbuild/bub | Skill | 1.7k | yesterday | Apache-2.0 | A | 105 | Claude Code, Codex |
| ghbubbuild/bub | Skill | 1.7k | yesterday | Apache-2.0 | A | 96 | Claude Code, Codex |
| gpt-image-gencode-yeongyu/senpi | Skill | 511 | today | MIT | A | 66 | Claude Code, Codex |
| modern-python-toolchainXiaomiMiMo/MiMo-Code | Skill | 14k | yesterday | MIT | C | 105 | Claude Code, Codex |