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/woodfishhhh/ez_math_model/webcrawlnpx skills add woodfishhhh/EZ_math_model --skill webcrawlgit clone --depth 1 https://github.com/woodfishhhh/EZ_math_modelWrote 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/woodfishhhh/ez_math_model/webcrawl)<a href="https://agentmods.dev/skills/woodfishhhh/ez_math_model/webcrawl"><img src="https://agentmods.dev/badge/skills/woodfishhhh/ez_math_model/webcrawl.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.1 | $0.00062 | $0.00762 |
| Opus 5 | $0.00031 | $0.00381 |
| Sonnet 5 | $0.00012 | $0.00152 |
| Haiku 4.5 | $0.00006 | $0.00076 |
Grade B, and why
webcrawl scanned grade B with 2 findings 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 6d 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.
Sends data to an external URLmediumData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
r = requests.post( "https://api.firecrawl.dev/v1/scrape", Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
r = requests.post( What it actually says
webcrawl — 网页抓取与开放检索
何时使用
- 题目纯数学 / 物理机理 → 不要启用。
- 题目涉及行业 / 政策 / 地理 / 经济 → 启用。
- 评价类题目需要业界基准 / 标准 → 启用。
入口决策树
有具体 URL 要读 → Jina Reader(免费,零配置)
失败 → Firecrawl scrape(要 EZMM_FIRECRAWL_KEY)
失败 → 让 LLM 用 WebFetch(最后兜底)
要先搜后读 → Tavily(要 EZMM_TAVILY_KEY)
/ Exa(要 EZMM_EXA_KEY)
/ SerpAPI(要 EZMM_SERPAPI_KEY)
全部不可用 → 让用户给具体 URL,再走单页抓取
命令模板
Jina Reader(免费)
# 任意 URL → markdown,零配置
$url = 'https://example.com/article'
Invoke-RestMethod -Uri "https://r.jina.ai/$url" -OutFile workdir/.../web/$(($url | Get-FileHash -Algorithm MD5).Hash.Substring(0,8)).md
Firecrawl
import requests, os
r = requests.post(
"https://api.firecrawl.dev/v1/scrape",
headers={"Authorization": f"Bearer {os.environ['EZMM_FIRECRAWL_KEY']}"},
json={"url": "https://...", "formats": ["markdown"]},
timeout=60,
).json()
markdown = r["data"]["markdown"]
Tavily / Exa / SerpAPI
参考 tools/webcrawl/SKILL.md 的代码段。
落盘规范
抓回的页面落到:
workdir/{task_id}/attachments/external/web/<sha8>.md
文件头三行写:
<!-- source: tavily | firecrawl | jina | exa | serp -->
<!-- fetched_at: 2026-05-20T10:00:00+08:00 -->
<!-- url: https://... -->
礼貌爬取
- 单源间隔 ≥ 1s
- 尊重
robots.txt(除非用户授权) - 不绕过登录 / 反爬
- 大批量爬取走 Firecrawl,不裸 requests
失败诊断
| 情况 | 处理 |
|---|---|
| 全部 key 缺失 | 仅 Jina 可用;写诊断说明可用工具集 |
| 单页 4xx / 5xx | 退避重试 1 次;仍失败记诊断 |
| 抓回登录墙 / 验证码 | 不绕过;写诊断 |
| 超时 > 60s | 中断,写诊断 |
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.
- 6d ago First seen · 91 lines · 62 tokens per session scan B 24b66493e333
webcrawl is a skill published in the GitHub repository woodfishhhh/EZ_math_model (40 stars, last pushed 1mo ago), licensed MIT. It adds 62 tokens to every session and 762 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 2 findings (sends data to an external url, 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
math-modeling-solver
数学建模竞赛解题全流程指导。覆盖国赛(CUMCM)和美赛(MCM/ICM)全部题型(A-F),提供12种问题本质分析、95+场景模型决策矩阵、5本算法Cookbook、11本完整例题Playbook、22个Python+7个MATLAB可运行代码模板。与math-modeling-paper形成"解题→写作"配对。当用户提及建模思路、选什么模型、怎么建模、赛题求解、粘贴赛题文本、美赛/国赛题目分析、CVaR/NSGA-II/Monte Carlo/时间序列/ANOVA/灰色关联、网络流/图论/生态建模、模型命名/Memo/Letter/Our Work流程图时,使用此skill。.
mathmodel-skill
CUMCM 国赛、MCM/ICM 美赛与电工杯数学建模竞赛的端到端协作工作流。Use when a user explicitly works on one of these modeling contests or asks to run/review a modeling-competition paper from problem selection through modeling, solving, robustness, writing, compliance, and final submission review. Provides 10 stages, persistent decision state…
math-modeling-paper
数学建模竞赛论文写作全流程指导。覆盖国赛(CUMCM)和美赛(MCM/ICM),从论文结构规划、各章节撰写、模型检验、参考文献规范到最终格式检查。与math-modeling-solver形成"解题→写作"配对——可接收solver输出的论文草稿片段直接展开写作。当用户提及数学建模论文写作、建模比赛、国赛/美赛/电工杯/亚太杯/深圳杯/华为杯论文、CUMCM、MCM/ICM、数模论文结构、摘要写作、模型检验、灵敏度分析、latex建模模板、word建模排版、Memo/Letter写作、模型命名、Our Work流程图,或需要写/修改/优化/检查建模论文的任何部分时,都必须使用此 skill。.
interpret-modeling-problems
根据原始赛题和附件,生成可回查证据的国赛及类似数学建模赛题解读,建立小问输入输出、约束与歧义、附件审计、模型蓝图、验证方案和论文交付接口。适用于选题比较、正式建模前的完整解读和已有解读复核;不用于在缺少原题时臆测题意,也不把候选模型伪装成已经验证的数值求解。.
v8-jit
V8 JIT optimization patterns for writing high-performance JavaScript in Next.js server internals. Use when writing or reviewing hot-path code in app-render, stream-utils, routing, caching, or any per-request code path. Covers hidden classes / shapes, monomorphic call sites, inline caches, megamorphic deopt, closure…
use-agent-browser-for-airi
Test AIRI display-model imports with agent-browser across stage-tamagotchi Electron, stage-web, and stage-pocket mobile web layouts. Use when uploading and verifying contributor-supplied Live2D ZIP, VRM, or MMD ZIP/PMX/PMD files through AIRI's model selector, including onboarding bypass, format-specific import…