核心用法
EZCTO Smart Web Reader 是面向 OpenClaw Agent 的网页访问加速层,作为 web_fetch 的智能替代方案运行。当 Agent 需要访问任意 URL 时自动触发,采用 Cache-First 策略——优先查询 EZCTO 公共资产库,命中时零 token 消耗、1-2 秒返回;未命中则执行完整的智能解析流水线。
工作流程:①缓存查询 → ②HTML抓取(curl,防SSRF/注入)→ ③SHA256哈希校验 → ④零token站点类型识别(正则匹配识别加密/电商/餐饮等垂直领域)→ ⑤LLM结构化提取(HTML清洗+提示注入防护)→ ⑥JSON校验 → ⑦双存储(本地~/.ezcto/cache/ + 贡献至社区库)→ ⑧OpenClaw原生格式返回。
输出结构:包含 meta(标题/语言/站点类型)、navigation(导航结构)、content(分区内容)、entities(组织/联系人)、media(图片/视频描述)、actions(可执行操作)及 agent_suggestions(技能链推荐)。
显著优点
1. 极致成本优化:缓存命中 0 token,缓存未命中 500-2000 token,官方宣称较截图方案节省 80%+ 成本
2. 透明拦截:无需显式调用,Agent 访问 URL 时自动触发,无缝替代原生 web_fetch
3. 垂直领域增强:内置加密(合约地址、DEX 检测)、电商(价格/购物车识别)、餐饮(菜单/营业时间)专用提取规则
4. 多层安全防护:
5. 本地优先架构:缓存存储于 ~/.ezcto/cache/,符合 OpenClaw 本地数据哲学
6. 社区飞轮:解析结果自动贡献至 EZCTO 资产库,形成共享缓存网络
- 输入层:严格校验
https?://协议防 SSRF,URL 编码防注入 - 处理层:HTML 清洗(剥离 script/style/comment/meta)、XML 定界符包裹、显式 LLM 防护指令
- 执行层:
curl --防参数注入,Python3 构造 JSON 避免 shell 插值
潜在缺点与局限性
- 外部依赖:核心功能依赖
api.ezcto.fun可用性,API 故障时降级为纯本地模式(无社区缓存) - 覆盖盲区:站点类型检测基于硬编码正则(需 3+ 信号),新型/混淆站点可能误判为 "general"
- LLM 瓶颈:缓存未命中时仍依赖 LLM 解析,复杂页面耗时 5-15 秒,大 HTML(>500KB)需截断处理
- 隐私考量:URL、HTML 哈希、结构化结果上传至 EZCTO 社区库,敏感内网 URL 可能被记录
- 扩展成本:新增垂直领域需维护
references/extensions/*.md规则文件,非配置化扩展
适合人群
- 高频网页检索 Agent:需要频繁解析外部站点(研究、比价、尽职调查)
- 成本敏感场景:Token 预算受限,希望将网页解析成本压至极低
- OpenClaw 生态用户:已采用 OpenClaw 框架,需要与本地缓存哲学对齐的工具
- 社区贡献者:愿意共享解析结果以换取网络效应的开发者
常规风险
| 风险类别 | 说明 |
|---------|------|
| 供应链安全 | `api.ezcto.fun` 被攻陷可导致缓存投毒,需校验 HTML 哈希 |
| 提示注入 | 尽管有多层防护,恶意 HTML 仍可能尝试操纵 LLM,依赖模型遵循安全指令的能力 |
| 数据残留 | `/tmp/` 临时文件需确认清理机制,避免敏感 HTML 残留 |
| 速率限制 | EZCTO API 429 时强制 60 秒退避,可能影响实时性要求高的场景 |
| 哈希碰撞 | SHA256 理论可行但实际极低,未设计二次校验机制 |