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 agentmods add skills/shenyangs/guanlan/skillnpx 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.svg" alt="Measured on agentmods" height="20"></a>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 | $0.00173 | $0.10230 |
| Opus 5 | $0.00086 | $0.05115 |
| Sonnet 5 | $0.00035 | $0.02046 |
| Haiku 4.5 | $0.00017 | $0.01023 |
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 4d 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 — 369 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表示正文被截断。对用户表达为“需要补读代表页/原文”,不要表达为工具报错。- 面向用户不要写“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.
- 4d ago First seen · 369 lines · 173 tokens per session scan A be9df427af5a
guanlan is a skill published in the GitHub repository shenyangs/Guanlan (55 stars, last pushed 5d ago), licensed MIT. It adds 173 tokens to every session and 10,230 once invoked, about $0.0009 per session on Opus 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.
Other skills, from other repositories
当用户需要对PDF文件进行任何操作时,请使用此技能。包括从 PDF 中读取或提取文本/表格、合并多个 PDF、拆分 PDF、旋转页面、添加水印、创建新PDF、填写PDF表单、加密/解密 PDF、提取图片,以及对扫描版 PDF 进行 OCR 使其可搜索。如果用户提到 .pdf 文件或要求生成 PDF,请使用此技能。.
make_plan
For external plan request scenarios, guides the Agent to request a clear, actionable, step-by-step plan from a stronger Agent via listagents and chatwithagent, emphasizing that the plan is executed by the requester, not by the consulted Agent.
wiki-status
Show the current state of the wiki — what's been ingested, what's pending, and the delta between sources and wiki content. Use this skill when the user asks "what's the status", "how much is ingested", "what's left to process", "show me the delta", "what changed since last ingest", "wiki dashboard", or wants an…
hermes-history-ingest
Ingest Hermes agent history into the Obsidian wiki. Use this skill when the user wants to mine their past Hermes sessions for knowledge, import their /.hermes folder, extract insights from previous Hermes conversations, or says things like "process my Hermes history", "add my Hermes memories to the wiki", "ingest…
wiki-context-pack
Produce a token-bounded, citation-ready context slice from an existing Obsidian vault for a downstream agent or task. Use for "/wiki-context-pack", "use my vault as context", "context slice for X", "pack the wiki for my agent", or "bounded context for Y".
security-review
Perform a focused security review of pending git changes to identify high-confidence security vulnerabilities with real exploitation potential. Use this skill when the user asks for a security review, security audit, vulnerability scan, or wants to check pending changes on a branch for security issues before merging.…