@epoch-agent/plugin-web 3.1.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
web 搜索(native / tavily / brave / searxng / keyless 五个后端)
|
|
8
8
|
- ❌ **不做**:不执行 JS、不渲染页面、不带浏览器;**不抓搜索引擎的 HTML 结果页**
|
|
9
9
|
(违反 ToS、随时会碎、要处理验证码 —— 要搜就走后端,不走爬虫)
|
|
10
|
-
-
|
|
11
|
-
HTML 转换是手写的(无第三方库)
|
|
10
|
+
- **依赖**:`@epoch-agent/protocol` + `@epoch-agent/infra`,两个都是 `dependencies`
|
|
11
|
+
(本包**没有 `peerDependencies`**),HTML 转换是手写的(无第三方库)
|
|
12
12
|
|
|
13
13
|
## 工具参数
|
|
14
14
|
|
|
@@ -50,7 +50,29 @@
|
|
|
50
50
|
- **`keyless`**(`search/keyless.ts`)打 Exa / Parallel 的匿名 MCP 端点,
|
|
51
51
|
带游标轮转摊平两家免费额度。**查询词会发给第三方**,所以它排在最后、且能整档关掉。
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
两个开关**缺省开**,只有显式写 `search.native: false` / `search.keyless: false` 才关
|
|
54
|
+
(实现是 `=== false ? 关 : 开`,**不是「真值才开」**)。
|
|
55
|
+
|
|
56
|
+
#### 为什么是这两家(2026-09-15 实探,不是照抄)
|
|
57
|
+
|
|
58
|
+
四家里只有 epoch 原来会「什么都没有就把工具拿掉」,所以选型时把同级项目的做法
|
|
59
|
+
和这几家的实际表现一起量了一遍:
|
|
60
|
+
|
|
61
|
+
| 结论 | 证据 |
|
|
62
|
+
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
63
|
+
| Exa / Parallel 公开 MCP 端点**匿名可用** | 无 Authorization,`tools/call` 返回 200 |
|
|
64
|
+
| **直连可达**,不需要代理 | 绕开本机代理重测:两域名 200 / 0.7s,结果一致 |
|
|
65
|
+
| Exa 中文覆盖**不差**、但**质量差** | 中文查 8/8 是中文结果,其中 3 条品牌软文、2 条豆丁网 |
|
|
66
|
+
| Parallel 有语义漂移 | 英文查 10 条里 3 条是 Curtain **Wall**(建筑幕墙) |
|
|
67
|
+
| **DeepSeek 服务端搜索更好**(所以 native 排第一) | `POST /anthropic/v1/messages` + `web_search_20250305`:10 条全中文、**0 条软文**,还捞到了 Exa / Parallel 都没有的平台维度数据 |
|
|
68
|
+
|
|
69
|
+
横向对照:codex 用 OpenAI Responses 的服务端 `web_search`、gemini-cli 用 Gemini
|
|
70
|
+
grounding(两家都是 `native` 那一档),opencode 打 Exa / Parallel 公开端点(就是
|
|
71
|
+
`keyless` 这一档),hermes-agent 做了最全的探测级联 + keyless ring。
|
|
72
|
+
|
|
73
|
+
> ⚠️ **native 排在 tavily 前面是有代价的决定**:只设了 `TAVILY_API_KEY` 却没写
|
|
74
|
+
> `search.provider` 的人,从这一版起会改走 native,那把 key 变成静默失效的配置。
|
|
75
|
+
> 要钉住一家就显式写 `search.provider`。
|
|
54
76
|
|
|
55
77
|
> SearXNG **默认没开** JSON 输出,实例的 `settings.yml` 里要有
|
|
56
78
|
> `search: { formats: [html, json] }`。没开时它返回 403,我们把这句话写进了错误里 ——
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epoch-agent/plugin-web",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Web 抓取插件 — URL 安全校验 + HTML→Markdown + SSRF 防护",
|
|
6
6
|
"repository": {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@epoch-agent/infra": "3.
|
|
26
|
-
"@epoch-agent/protocol": "3.
|
|
25
|
+
"@epoch-agent/infra": "3.2.0",
|
|
26
|
+
"@epoch-agent/protocol": "3.2.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "^22.0.0",
|