argo-search 2.9.7 → 2.9.9
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.en.md +73 -150
- package/README.es.md +73 -150
- package/README.ja.md +79 -156
- package/README.ko.md +78 -155
- package/README.md +80 -159
- package/SKILL.md +3 -3
- package/assets/readme/hero.svg +2 -2
- package/backends/domain_profiles.json +48 -0
- package/backends/engine_registry.yaml +118 -4
- package/backends/quota_profiles.json +92 -12
- package/backends/source_types_cn.json +27 -1
- package/bin/argo +78 -5
- package/bin/argo.js +33 -2
- package/config.yaml +269 -63
- package/docs/ARGO_INTRO.md +5 -3
- package/docs/ENGINE_CATALOG.md +50 -39
- package/docs/MCP_SETUP.md +3 -1
- package/docs/RELEASE_NOTES_v2.9.8.md +73 -0
- package/docs/RELEASE_NOTES_v2.9.9.md +78 -0
- package/engines/specs/cfets.yaml +41 -0
- package/engines/specs/defillama.yaml +38 -0
- package/engines/specs/firecrawl.yaml +1 -1
- package/engines/specs/fxtwitter.yaml +5 -0
- package/engines/specs/gleif.yaml +55 -0
- package/engines/specs/hkex.yaml +40 -0
- package/engines/specs/keenable_free.yaml +36 -0
- package/engines/specs/shfe.yaml +39 -0
- package/engines/specs/stackexchange.yaml +2 -2
- package/engines/specs/tavily_free.yaml +56 -0
- package/engines/specs/yuanbao.yaml +93 -0
- package/mcp/clients.yaml +32 -0
- package/package.json +7 -2
- package/packages/dsh-plugin/README.md +25 -6
- package/packages/dsh-plugin/dsh/client.js +402 -47
- package/packages/dsh-plugin/dsh/diagnostics.js +97 -0
- package/packages/dsh-plugin/dsh/index.js +135 -1876
- package/packages/dsh-plugin/dsh/native-tools.mjs +7 -1
- package/packages/dsh-plugin/dsh/runner.js +666 -0
- package/packages/dsh-plugin/dsh/wide-research.js +878 -0
- package/packages/dsh-plugin/package.json +3 -3
- package/packages/dsh-plugin/scripts/sync-local.sh +70 -0
- package/packages/dsh-plugin/test/client.test.js +177 -2
- package/packages/dsh-plugin/test/diagnostics.test.js +28 -0
- package/packages/dsh-plugin/test/index.test.js +44 -0
- package/scripts/adaptive.py +126 -43
- package/scripts/article_meta.py +131 -0
- package/scripts/bench_tail_ab.py +281 -0
- package/scripts/bounded_run.py +91 -49
- package/scripts/budget.py +247 -0
- package/scripts/budget_cli.py +93 -0
- package/scripts/build_release_assets.sh +65 -0
- package/scripts/cache.py +60 -72
- package/scripts/ci_drift_gate.py +90 -0
- package/scripts/clock_bridge.py +22 -0
- package/scripts/content_boundary.py +46 -0
- package/scripts/content_security.py +119 -4
- package/scripts/content_signals.py +26 -5
- package/scripts/cross_lingual_trace.py +293 -0
- package/scripts/dispatch_result.py +105 -0
- package/scripts/engine_add.py +602 -0
- package/scripts/engine_dispatch.py +58 -86
- package/scripts/engine_env.py +5 -0
- package/scripts/engine_families.py +6 -0
- package/scripts/engine_policy.py +7 -7
- package/scripts/engines.py +21 -0
- package/scripts/engines_base.py +3 -3
- package/scripts/engines_builders.py +12 -0
- package/scripts/engines_builders_batch10.py +48 -3
- package/scripts/engines_builders_batch14.py +656 -0
- package/scripts/engines_builders_batch15.py +249 -0
- package/scripts/engines_builders_keyless.py +111 -0
- package/scripts/engines_builders_tech.py +0 -1
- package/scripts/evidence.py +31 -3
- package/scripts/evidence_loop.py +58 -22
- package/scripts/fetch_quality.py +13 -0
- package/scripts/fetch_v3.py +28 -3
- package/scripts/gen_routing_snapshot.py +11 -0
- package/scripts/http_client.py +24 -38
- package/scripts/install.ps1 +18 -0
- package/scripts/install.sh +16 -1
- package/scripts/job.py +3 -3
- package/scripts/local_seek.py +41 -5
- package/scripts/macro_countries.py +15 -0
- package/scripts/matrix_search_eval.py +192 -0
- package/scripts/mcp_compact.py +234 -0
- package/scripts/mcp_handlers.py +60 -642
- package/scripts/mcp_launch.sh +10 -8
- package/scripts/mcp_local.py +241 -0
- package/scripts/mcp_server.py +19 -14
- package/scripts/mcp_setup.py +33 -9
- package/scripts/mcp_tools.py +1 -0
- package/scripts/mcp_transport.py +1 -1
- package/scripts/mcp_warm.py +127 -0
- package/scripts/net_proxy.py +27 -0
- package/scripts/output_transparency.py +200 -0
- package/scripts/paid_policy.py +98 -0
- package/scripts/quota.py +158 -13
- package/scripts/recovery.py +7 -3
- package/scripts/recovery_runner.py +150 -0
- package/scripts/replay_eval.py +18 -0
- package/scripts/research.py +37 -21
- package/scripts/research_expand.py +24 -1
- package/scripts/retry_policy.py +76 -0
- package/scripts/route.py +6 -6
- package/scripts/route_cache.py +18 -0
- package/scripts/route_combo.py +26 -5
- package/scripts/route_domains.py +170 -31
- package/scripts/safe_conn.py +52 -0
- package/scripts/search.py +15 -27
- package/scripts/search_attribution.py +100 -3
- package/scripts/search_cli.py +24 -11
- package/scripts/search_entry.py +8 -1
- package/scripts/search_output.py +99 -15
- package/scripts/search_pipeline.py +62 -195
- package/scripts/search_rank.py +6 -0
- package/scripts/search_types.py +107 -9
- package/scripts/semantic_evidence.py +179 -3
- package/scripts/serp_guard.py +138 -7
- package/scripts/serp_kill_log.py +25 -2
- package/scripts/stats_cli.py +13 -1
- package/scripts/tail_completion.py +212 -0
- package/scripts/url_safety.py +126 -3
- package/scripts/usage_log.py +45 -0
- package/scripts/wide_research.py +45 -0
- package/scripts/zhihu_quota.py +139 -0
- package/sub-skills/local-search/bm25.py +27 -3
- package/sub-skills/local-search/cli_runner.py +331 -0
- package/sub-skills/local-search/parsers.py +328 -0
- package/sub-skills/local-search/search_v3.py +31 -674
- package/sub-skills/local-seek/scripts/seek_rank.py +7 -3
- package/assets/readme/settings-keys.png +0 -0
- package/assets/readme/settings-tools.png +0 -0
- package/sub-skills/ego-search/references/browser-runtime.md +0 -43
- package/sub-skills/ego-search/references/install.md +0 -67
- package/sub-skills/ego-search/references/original-ego-upgrade.md +0 -51
- package/sub-skills/ego-search/tests/test_query_normalize.py +0 -68
- package/sub-skills/js-run/tests/fixtures/challenge_like.js +0 -27
- package/sub-skills/js-run/tests/test_jsrun.py +0 -165
- package/sub-skills/local-seek/references/auto-behaviors.md +0 -24
- package/sub-skills/local-seek/references/fd-mdfind-recipes.md +0 -62
- package/sub-skills/local-seek/references/git-integration.md +0 -54
- package/sub-skills/local-seek/references/remote-handoff.md +0 -46
- package/sub-skills/local-seek/references/rg-recipes.md +0 -96
- package/sub-skills/local-seek/references/strategies.md +0 -52
- package/sub-skills/local-seek/references/structural-search.md +0 -59
- package/sub-skills/local-seek/tests/test_content_rank.py +0 -222
- package/sub-skills/local-seek/tests/test_determinism_20261006.py +0 -145
- package/sub-skills/local-seek/tests/test_noise_tier.py +0 -101
- package/sub-skills/local-seek/tests/test_pcre2_probe.py +0 -136
- package/sub-skills/local-seek/tests/test_rank_pinyin.py +0 -77
- package/sub-skills/local-seek/tests/test_regression_20261003.py +0 -169
- package/sub-skills/local-seek/tests/test_regression_20261006.py +0 -146
- package/sub-skills/local-seek/tests/test_seek_degradation.py +0 -111
- package/sub-skills/local-seek/tests/test_seek_fts.py +0 -313
package/docs/ARGO_INTRO.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
## 安装方式
|
|
8
8
|
|
|
9
|
-
>
|
|
9
|
+
> npm 安装已支持,当前版本 **2.9.9**。GitHub 与 npm 都由本仓库发布:GitHub 跟 main 走,npm 按 tag 发布、版本固定。
|
|
10
10
|
|
|
11
11
|
### 方式一:一键脚本(推荐本机长期用)
|
|
12
12
|
|
|
@@ -14,10 +14,12 @@
|
|
|
14
14
|
curl -fsSL https://raw.githubusercontent.com/taxueseek/argo/main/scripts/install.sh | bash
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
### 方式二:
|
|
17
|
+
### 方式二:npm(已支持,当前 2.9.9)
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
|
|
20
|
+
npm install -g argo-search # 全局安装 CLI
|
|
21
|
+
npx -y argo-search # 或即用即走,不装
|
|
22
|
+
npx -y github:taxueseek/argo # 要跟 main 最新提交时用这条
|
|
21
23
|
```
|
|
22
24
|
|
|
23
25
|
### 方式三:给 Agent 挂 MCP
|
package/docs/ENGINE_CATALOG.md
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
## 一、总量与口径
|
|
8
8
|
|
|
9
|
-
- **收录
|
|
10
|
-
- **开箱可用
|
|
11
|
-
- **需自备密钥 22 个**:`bocha`、`bocha_ai`、`byted`、`deepseek_search`、`em_miaoxiang`、`
|
|
9
|
+
- **收录 272 个源**(config.yaml + `engines/specs/*.yaml` 声明合并后的总数)
|
|
10
|
+
- **开箱可用 235 个**:不需要你配任何密钥或装额外工具,自动路由就会用上
|
|
11
|
+
- **需自备密钥 22 个**:`bocha`、`bocha_ai`、`byted`、`deepseek_search`、`em_miaoxiang`、`keenable`、`octen`、`parallel`、`qweather`、`seltz`、`tavily`、`tinyfish`、`tinyfish_news`、`tinyfish_paper`、`unpaywall`、`weread`、`you`、`yuanbao`、`zhihu`、`zhihu_global`、`zhihu_hot`、`zhihu_user`(没配也不影响搜索,路由会跳过)
|
|
12
12
|
- **需装后端工具 3 个**:`reddit`、`twitter`、`xiaohongshu`(装好并登录后即可用)
|
|
13
13
|
- **已停用 12 个**:`brave`、`digup`、`europeana`、`felo`、`jikan`、`local_goodreads`、`metaso`、`nbs_stats`、`realtime_index`、`searxng`、`soilgrids`、`wolframalpha`
|
|
14
14
|
- **显式专用 16 个**:`bing_rss`、`datagov_uk`、`deepseek_search`、`doi`、`ecosia`、`gdelt`、`opencitations`、`qwant`、`tineye`、`tinyfish`、`tinyfish_news`、`tinyfish_paper`、`twitter_syndication`、`unpaywall`、`x_trending`、`zbmath`(设计上不进自动路由,按 `--engine` 或交接提示调用)
|
|
@@ -26,8 +26,8 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
26
26
|
|
|
27
27
|
## 二、费用与密钥:哪些白用、哪些要钱
|
|
28
28
|
|
|
29
|
-
- **免费档
|
|
30
|
-
- **计费档
|
|
29
|
+
- **免费档 257 个**(含已停用):无需密钥,或只需免费注册的密钥;其中 13 个要自备密钥(免费额度):em_miaoxiang、keenable、qweather、searxng、tinyfish、tinyfish_news、tinyfish_paper、unpaywall、weread、wolframalpha、zhihu、zhihu_hot、zhihu_user
|
|
30
|
+
- **计费档 15 个**(下表逐个列出,档位取自各源自己的 `cost_tier` 声明)
|
|
31
31
|
|
|
32
32
|
| 引擎 | 档位 | 是否进自动路由 | 需自备密钥 |
|
|
33
33
|
|---|---|---|---|
|
|
@@ -38,15 +38,16 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
38
38
|
| `brave` | 低价计费 | 是 | ARGO_BRAVE_API_KEY |
|
|
39
39
|
| `byted` | 低价计费 | 是 | ARGO_BYTED_API_KEY |
|
|
40
40
|
| `metaso` | 低价计费 | 是 | ARGO_METASO_API_KEY |
|
|
41
|
-
| `exa` | 按调用计费 | 是 |
|
|
41
|
+
| `exa` | 按调用计费 | 是 | — |
|
|
42
42
|
| `octen` | 按调用计费 | 是 | ARGO_OCTEN_API_KEY |
|
|
43
43
|
| `parallel` | 按调用计费 | 是 | PARALLEL_API_KEY |
|
|
44
44
|
| `seltz` | 按调用计费 | 是 | SELTZ_API_KEY |
|
|
45
45
|
| `tavily` | 按调用计费 | 是 | ARGO_TAVILY_API_KEY |
|
|
46
46
|
| `you` | 按调用计费 | 是 | YDC_API_KEY |
|
|
47
|
+
| `yuanbao` | 按调用计费 | 是 | ARGO_YUANBAO_API_KEY |
|
|
47
48
|
| `zhihu_global` | 按调用计费 | 是 | ARGO_ZHIHU_ACCESS_SECRET |
|
|
48
49
|
|
|
49
|
-
**结论**:付费档里有 1 个进了自动路由(felo),用之前先确认额度;低价/按量计费的源有
|
|
50
|
+
**结论**:付费档里有 1 个进了自动路由(felo),用之前先确认额度;低价/按量计费的源有 13 个在自动路由路径上,多数带免费额度或已配密钥。额度记在本地配额表(`backends/quota_profiles.json` 的 limit / period,用量存在本机状态库),用尽后该源在语义路由里被降权;本地表统计的是 argo 自己的调用,若同一密钥还被别的工具用,实际额度以服务商侧为准。想彻底避开计费源,用 `--engine` 显式指定免费源,或走 `--mode budget`。
|
|
50
51
|
|
|
51
52
|
## 三、特别能力(不是普通网页搜索)
|
|
52
53
|
|
|
@@ -77,12 +78,14 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
77
78
|
|
|
78
79
|
状态含义:**可直接用** = 自动路由会用上;**需自配密钥 / 需装后端工具** = 配好后即可用;**被上游封锁** = 源站当前拒绝;**已停用** = 配置层面关闭。
|
|
79
80
|
|
|
80
|
-
### 全网搜索(
|
|
81
|
+
### 全网搜索(38)
|
|
81
82
|
|
|
82
83
|
| 引擎 | 状态 | 费用 | 频率上限 | 需自备密钥 | 什么时候用到 | 说明 |
|
|
83
84
|
|---|---|---|---|---|---|---|
|
|
84
|
-
| `anysearch` | 可直接用 | 免费 |
|
|
85
|
+
| `anysearch` | 可直接用 | 免费 | 1000/天 | — | 域 ai_model、域 book_search、域 chinese_general、域 claim_check、域 code_search、域 crypto_search、域 dataset_search、域 earth_science、域 energy_grid、域 english_tech、域 financial_news、域 fund_query、域 futures_market、域 fx_query、域 game_search、域 hackernews_search、域 hk_filings、域 image_search、域 japan_law、域 kor_law、域 law_text、域 legal、域 lifecycle_search、域 local_code、域 local_general、域 macro_data、域 medical、域 meme_slang、域 outbreak_health、域 package_intel、域 prediction_market、域 redskill_search、域 rfc_search、域 sec_filings、域 security_search、域 semantic_discovery、域 shopping、域 skill_search、域 soil_agri、域 sports_search、域 stackoverflow_search、域 stock_query、域 ths_hot_search、域 trade_stats、域 transport_rt、域 us_fundamentals、域 us_legal、域 us_stock、域 v2ex_search、域 vehicle_data、域 wechat_search、域 wenshu_query、域 world_news、域 zhihu_content、深度研究 boost、语义画像命中、通用兜底链 | 通用搜索主力,进程内 JSON-RPC(HttpClient),零 token |
|
|
86
|
+
| `exa` | 可直接用 | 按调用计费 | 1000/月 | — | 域 english_tech、域 semantic_discovery、域 us_stock、深度研究 boost | Exa 语义搜索(embedding 匹配 + 内容摘要,新户 $20 赠金 + 每月 $10 赠金) |
|
|
85
87
|
| `firecrawl` | 可直接用 | 免费 | 1000/月 | — | 域 semantic_discovery、通用兜底链 | Firecrawl 云搜索(search+全文markdown,JS渲染/学术/PDF垂直,keyless 免费层 1000 credits/月) |
|
|
88
|
+
| `keenable_free` | 可直接用 | 免费 | 不限 | — | 通用兜底链 | Keenable 官方免 key 匿名通道(通用网页搜索,无需注册) |
|
|
86
89
|
| `lieu` | 可直接用 | 免费 | 不限 | — | 域 semantic_discovery、语义画像命中 | webring 专用搜索(只索引加入 webring 的小众站点,HTML 解析) |
|
|
87
90
|
| `local_baidu` | 可直接用 | 免费 | 不限 | — | 语义画像命中、通用兜底链 | 百度本地 |
|
|
88
91
|
| `local_bing` | 可直接用 | 免费 | 不限 | — | 深度研究 boost、通用兜底链 | Bing本地 |
|
|
@@ -94,17 +97,17 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
94
97
|
| `shenma` | 可直接用 | 免费 | 不限 | — | 域 chinese_general | 神马搜索(m.sm.cn/s 移动端 HTML 解析),中文通用网页 |
|
|
95
98
|
| `so` | 可直接用 | 免费 | 不限 | — | 域 chinese_general | 360 搜索(so.com/s HTML 解析),中文通用网页 |
|
|
96
99
|
| `sogou_weixin_browser` | 可直接用 | 免费 | 不限 | — | 域 wechat_search | 搜狗微信搜索·浏览器兜底通道(ego-browser 真实会话,HTTP 车道被反爬时保底;中间链会话内解析为微信真实链接) |
|
|
100
|
+
| `tavily_free` | 可直接用 | 免费 | 不限 | — | 通用兜底链 | Tavily 官方免 key 匿名通道(通用网页搜索,无需注册) |
|
|
97
101
|
| `uapi` | 可直接用 | 免费 | 不限 | — | 域 semantic_discovery、语义画像命中、通用兜底链 | UAPI 聚合搜索 |
|
|
98
102
|
| `wechat_sogou` | 可直接用 | 免费 | 不限 | — | 域 chinese_general、域 wechat_search | 搜狗微信搜索引擎(公众号文章,免登录,中间链自动解析为微信真实链接可引用;fast 跳过解析) |
|
|
99
103
|
| `wiby` | 可直接用 | 免费 | 不限 | — | 域 semantic_discovery、语义画像命中 | Wiby 老式手工网页索引(专收非商业化页面,JSON 免认证) |
|
|
100
104
|
| `bing_rss` | 显式专用 | 免费 | 不限 | — | 显式调用(--engine) | Bing 网页搜索 RSS 出口(免 key 免 HTML 解析;local_bing 改版/风控时的稳定备胎) |
|
|
101
|
-
| `bocha` | 需自备密钥 | 低价计费 |
|
|
105
|
+
| `bocha` | 需自备密钥 | 低价计费 | 不限 | ARGO_BOCHA_API_KEY | 域 chinese_general、域 local_chinese、域 modal_card、语义画像命中 | 博查搜索 API(中文,freshness 按查询时效动态化) |
|
|
102
106
|
| `brave` | 已停用 | 低价计费 | 不限 | ARGO_BRAVE_API_KEY | 域 semantic_discovery | Brave Search API |
|
|
103
107
|
| `byted` | 需自备密钥 | 低价计费 | 不限 | ARGO_BYTED_API_KEY | 域 chinese_general、域 chinese_tech_deep、域 fact_check、域 financial_news、域 legal、域 local_news、域 news_realtime、域 weather_query、语义画像命中 | 字节搜索 API,中文通用/news |
|
|
104
108
|
| `deepseek_search` | 需自备密钥 + 显式专用 | 付费 | 不限 | DEEPSEEK_API_KEY | 显式调用(--engine) | DeepSeek Search |
|
|
105
109
|
| `digup` | 已停用 | 免费 | 不限 | — | 已停用 | DigUp(EmbeddingGemma 2 本地多模态嵌入,全程离线)——照片/截图/PDF/文档/音视频按内容检索 |
|
|
106
110
|
| `ecosia` | 显式专用 | 免费 | 不限 | — | 显式调用(--engine) | Ecosia(ecosia.org HTML 解析),环保隐私取向通用网页 |
|
|
107
|
-
| `exa` | 需自备密钥 | 按调用计费 | 1000/月 | ARGO_EXA_API_KEY | 域 english_tech、域 semantic_discovery、域 us_stock、深度研究 boost | Exa 语义搜索(embedding 匹配 + 内容摘要,新户 $20 赠金 + 每月 $10 赠金) |
|
|
108
111
|
| `felo` | 已停用 | 付费 | 不限 | ARGO_FELO_API_KEY | 域 semantic_discovery、语义画像命中 | Felo AI 搜索 API |
|
|
109
112
|
| `keenable` | 需自备密钥 | 免费 | 不限 | ARGO_KEENABLE_API_KEY | 域 english_tech | Keenable 通用网页搜索(ranked results,含 published_at,按 credits 计费) |
|
|
110
113
|
| `metaso` | 已停用 | 低价计费 | 不限 | ARGO_METASO_API_KEY | 域 chinese_general | 秘塔搜索 API(中文 AI 搜索) |
|
|
@@ -112,9 +115,10 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
112
115
|
| `parallel` | 需自备密钥 | 按调用计费 | 不限 | PARALLEL_API_KEY | 域 chinese_tech_deep | Parallel AI 批量搜索(excerpts 长文摘录,结果自带正文省 fetch) |
|
|
113
116
|
| `qwant` | 显式专用 | 免费 | 不限 | — | 显式调用(--engine) | Qwant(qwant.com HTML 解析),欧盟 GDPR 合规通用网页 |
|
|
114
117
|
| `searxng` | 已停用 | 免费 | 不限 | ARGO_SEARXNG_URL | 域 semantic_discovery | SearXNG 直连(已废弃,由 T3 替代) |
|
|
115
|
-
| `tavily` | 需自备密钥 | 按调用计费 | 1000/月 | ARGO_TAVILY_API_KEY | 域 semantic_discovery、语义画像命中 | Tavily AI 搜索 API(免费层 1000
|
|
118
|
+
| `tavily` | 需自备密钥 | 按调用计费 | 1000/月 | ARGO_TAVILY_API_KEY | 域 semantic_discovery、语义画像命中 | Tavily AI 搜索 API(免费层 1000 次/月,超出按美元计费;与 exa 同为 api 档) |
|
|
116
119
|
| `tinyfish` | 需自备密钥 + 显式专用 | 免费 | 不限 | ARGO_TINYFISH_API_KEY | 显式调用(--engine) | TinyFish 实时网页搜索(免费,浏览器渲染,结果含原文摘要,X-API-Key 认证) |
|
|
117
120
|
| `you` | 需自备密钥 | 按调用计费 | 不限 | YDC_API_KEY | 域 news_realtime | You.com 网页+新闻搜索(时效性强,官方一手源,web/news 合并) |
|
|
121
|
+
| `yuanbao` | 需自备密钥 | 按调用计费 | 2000/月 | ARGO_YUANBAO_API_KEY | 域 chinese_general、域 company_search | 腾讯元宝搜索 |
|
|
118
122
|
| `zhihu_global` | 需自备密钥 | 按调用计费 | 5000/天 | ARGO_ZHIHU_ACCESS_SECRET | 域 chinese_general、域 news_realtime、域 zhihu_content | 知乎开放平台全网搜索(SearchDB=all 全网索引 + Filter host== 站点限定;需 ZHIHU_ACCESS_SECRET) |
|
|
119
123
|
|
|
120
124
|
### 学术文献(27)
|
|
@@ -207,13 +211,14 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
207
211
|
| `local_goodreads` | 已停用 | 免费 | 不限 | — | 域 book_search | Goodreads本地 |
|
|
208
212
|
| `weread` | 需自备密钥 | 免费 | 不限 | ARGO_WEREAD_API_KEY | 域 book_search | 微信读书图书搜索(中文书目/评分/在读,需 WEREAD_API_KEY) |
|
|
209
213
|
|
|
210
|
-
### 百科 / 实体(
|
|
214
|
+
### 百科 / 实体(19)
|
|
211
215
|
|
|
212
216
|
| 引擎 | 状态 | 费用 | 频率上限 | 需自备密钥 | 什么时候用到 | 说明 |
|
|
213
217
|
|---|---|---|---|---|---|---|
|
|
214
218
|
| `baidu_baike` | 可直接用 | 免费 | 不限 | — | 域 cn_encyclopedia、域 company_search、域 entity_search、域 org_entity | 百度百科词条(suggest + OpenAPI 卡片,免认证) |
|
|
215
219
|
| `dnb` | 可直接用 | 免费 | 不限 | — | 域 book_search、语义画像命中 | 德语出版物最全书目(SRU/RDF XML) |
|
|
216
220
|
| `free_dictionary` | 可直接用 | 免费 | 不限 | — | 域 dictionary_search、语义画像命中 | dictionaryapi.dev 英英词典(免认证,响应为数组) |
|
|
221
|
+
| `gleif` | 可直接用 | 免费 | 不限 | — | 域 company_search、域 org_entity | GLEIF 全球法人 LEI 注册库(法定名称/注册地/状态/母公司,免 key) |
|
|
217
222
|
| `local_wikipedia` | 可直接用 | 免费 | 不限 | — | 经 local_search 展开 | Wikipedia本地 |
|
|
218
223
|
| `local_wikiquote` | 可直接用 | 免费 | 不限 | — | 经 local_search 展开 | Wikiquote本地 |
|
|
219
224
|
| `local_wiktionary` | 可直接用 | 免费 | 不限 | — | 经 local_search 展开 | Wiktionary本地 |
|
|
@@ -246,7 +251,7 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
246
251
|
| `v2ex` | 可直接用 | 免费 | 不限 | — | 域 cn_tech_community、域 social、域 v2ex_search | V2EX(中文技术社区,官方 API 候选池 + 本地相关性过滤) |
|
|
247
252
|
| `weibo` | 可直接用 | 免费 | 不限 | — | 域 social、语义画像命中 | 微博 |
|
|
248
253
|
| `reddit` | 需装后端工具 | 免费 | 不限 | — | 域 social、语义画像命中 | Reddit |
|
|
249
|
-
| `twitter` | 需装后端工具 | 免费 | 不限 | — | 域 social、语义画像命中 | Twitter/
|
|
254
|
+
| `twitter` | 需装后端工具 | 免费 | 不限 | — | 域 social、语义画像命中 | X/Twitter 关键词搜索(ego-browser 通道,原生布尔语法 from:/-is:retweet/lang:) |
|
|
250
255
|
| `twitter_syndication` | 显式专用 | 免费 | 不限 | — | 显式调用(--engine) | X/Twitter 单条推文(syndication 通道,免登录零 key,含正文/作者/时间/媒体计数) |
|
|
251
256
|
| `xiaohongshu` | 需装后端工具 | 免费 | 不限 | — | 域 social、语义画像命中 | 小红书 |
|
|
252
257
|
| `zhihu` | 需自备密钥 | 免费 | 5000/天 | ARGO_ZHIHU_ACCESS_SECRET | 域 shopping、域 social、域 zhihu_content、域 zhihu_hot_list、语义画像命中 | 知乎搜索,中文观点/评测 |
|
|
@@ -271,6 +276,26 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
271
276
|
| `pypi` | 可直接用 | 免费 | 不限 | — | 域 package_search | PyPI 包查询(/pypi/{name}/json 精确解析,免认证) |
|
|
272
277
|
| `stackoverflow` | 可直接用 | 免费 | 300/天 | — | 域 stackoverflow_search、域 web_docs | Stack Overflow(Stack Exchange API,编程问答) |
|
|
273
278
|
|
|
279
|
+
### 行情 / 资金(15)
|
|
280
|
+
|
|
281
|
+
| 引擎 | 状态 | 费用 | 频率上限 | 需自备密钥 | 什么时候用到 | 说明 |
|
|
282
|
+
|---|---|---|---|---|---|---|
|
|
283
|
+
| `cninfo` | 可直接用 | 免费 | 不限 | — | 域 company_search、域 financial_news | 巨潮资讯网官方公告(A股公告第一官方源,免认证) |
|
|
284
|
+
| `defillama` | 可直接用 | 免费 | 不限 | — | 域 crypto_search | DeFiLlama 协议 TVL(8700+ 协议资金规模/24h 与 7d 变化,免 key) |
|
|
285
|
+
| `eastmoney` | 可直接用 | 免费 | 不限 | — | 域 financial_news、域 fund_query、域 fx_query、域 stock_query、域 us_stock、语义画像命中 | 东方财富,金融数据首选 |
|
|
286
|
+
| `em_flow` | 可直接用 | 免费 | 不限 | — | 域 stock_query | 东财资金流向(个股主力/北向/板块,push2.eastmoney.com 免认证) |
|
|
287
|
+
| `finviz` | 可直接用 | 免费 | 不限 | — | 域 us_stock | Finviz 美股快照(HTML,免认证) |
|
|
288
|
+
| `frankfurter` | 可直接用 | 免费 | 不限 | — | 域 fx_query、域 macro_data | Frankfurter ECB 官方参考汇率(免认证,2026-10-06 接入) |
|
|
289
|
+
| `hkex` | 可直接用 | 免费 | 不限 | — | 域 hk_filings | 港交所披露易公告检索(港股一手公告 PDF,代码/公司名/标题关键词,免 key) |
|
|
290
|
+
| `sec_companyfacts` | 可直接用 | 免费 | 不限 | — | 域 us_fundamentals | SEC XBRL companyfacts 年度结构化财务(营收/净利/资产/EPS,免认证) |
|
|
291
|
+
| `sec_edgar` | 可直接用 | 免费 | 不限 | — | 域 sec_filings | SEC EDGAR 美国证监会官方全文检索(公司/财报/申报,免认证) |
|
|
292
|
+
| `seeking_alpha` | 可直接用 | 免费 | 不限 | — | 域 us_stock | Seeking Alpha 美股分析(HTML,反爬较强) |
|
|
293
|
+
| `shfe` | 可直接用 | 免费 | 不限 | — | 域 futures_market | 上海期货交易所日行情(铜/铝/黄金/螺纹钢等品种,官方一手,免 key) |
|
|
294
|
+
| `sina_quote` | 可直接用 | 免费 | 不限 | — | 域 stock_query | 新浪实时行情快照(现价/涨跌/成交量,免认证) |
|
|
295
|
+
| `tencent_kline` | 可直接用 | 免费 | 不限 | — | 域 us_stock、语义画像命中 | 腾讯财经前复权日 K 线(A股+港股+美股) |
|
|
296
|
+
| `tencent_quote` | 可直接用 | 免费 | 不限 | — | 域 stock_query | 腾讯实时行情(qt.gtimg.cn 免认证,含换手率/市盈率/五档) |
|
|
297
|
+
| `yahoo_finance` | 可直接用 | 免费 | 不限 | — | 域 us_stock | Yahoo Finance 美股代码解析+实时行情(search/chart 免认证,2026-10-06 接入) |
|
|
298
|
+
|
|
274
299
|
### 本地新闻流(14)
|
|
275
300
|
|
|
276
301
|
| 引擎 | 状态 | 费用 | 频率上限 | 需自备密钥 | 什么时候用到 | 说明 |
|
|
@@ -325,23 +350,6 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
325
350
|
| `x_trending` | 显式专用 | 免费 | 不限 | — | 显式调用(--engine) | X (Twitter) Trending 全球热榜(ego-browser 浏览器通道,带分类与排名;显式调用) |
|
|
326
351
|
| `zhihu_hot` | 需自备密钥 | 免费 | 100/天 | ARGO_ZHIHU_ACCESS_SECRET | 域 hot_trending、域 zhihu_hot_list | 知乎开放平台热榜 hot_list(日配额约 100;需 ZHIHU_ACCESS_SECRET;原 zhihu skill 迁入) |
|
|
327
352
|
|
|
328
|
-
### 行情 / 资金(12)
|
|
329
|
-
|
|
330
|
-
| 引擎 | 状态 | 费用 | 频率上限 | 需自备密钥 | 什么时候用到 | 说明 |
|
|
331
|
-
|---|---|---|---|---|---|---|
|
|
332
|
-
| `cninfo` | 可直接用 | 免费 | 不限 | — | 域 company_search、域 financial_news | 巨潮资讯网官方公告(A股公告第一官方源,免认证) |
|
|
333
|
-
| `eastmoney` | 可直接用 | 免费 | 不限 | — | 域 financial_news、域 fund_query、域 fx_query、域 stock_query、域 us_stock、语义画像命中 | 东方财富,金融数据首选 |
|
|
334
|
-
| `em_flow` | 可直接用 | 免费 | 不限 | — | 域 stock_query | 东财资金流向(个股主力/北向/板块,push2.eastmoney.com 免认证) |
|
|
335
|
-
| `finviz` | 可直接用 | 免费 | 不限 | — | 域 us_stock | Finviz 美股快照(HTML,免认证) |
|
|
336
|
-
| `frankfurter` | 可直接用 | 免费 | 不限 | — | 域 fx_query、域 macro_data | Frankfurter ECB 官方参考汇率(免认证,2026-10-06 接入) |
|
|
337
|
-
| `sec_companyfacts` | 可直接用 | 免费 | 不限 | — | 域 us_fundamentals | SEC XBRL companyfacts 年度结构化财务(营收/净利/资产/EPS,免认证) |
|
|
338
|
-
| `sec_edgar` | 可直接用 | 免费 | 不限 | — | 域 sec_filings | SEC EDGAR 美国证监会官方全文检索(公司/财报/申报,免认证) |
|
|
339
|
-
| `seeking_alpha` | 可直接用 | 免费 | 不限 | — | 域 us_stock | Seeking Alpha 美股分析(HTML,反爬较强) |
|
|
340
|
-
| `sina_quote` | 可直接用 | 免费 | 不限 | — | 域 stock_query | 新浪实时行情快照(现价/涨跌/成交量,免认证) |
|
|
341
|
-
| `tencent_kline` | 可直接用 | 免费 | 不限 | — | 域 us_stock、语义画像命中 | 腾讯财经前复权日 K 线(A股+港股+美股) |
|
|
342
|
-
| `tencent_quote` | 可直接用 | 免费 | 不限 | — | 域 stock_query | 腾讯实时行情(qt.gtimg.cn 免认证,含换手率/市盈率/五档) |
|
|
343
|
-
| `yahoo_finance` | 可直接用 | 免费 | 不限 | — | 域 us_stock | Yahoo Finance 美股代码解析+实时行情(search/chart 免认证,2026-10-06 接入) |
|
|
344
|
-
|
|
345
353
|
### 法律判例(11)
|
|
346
354
|
|
|
347
355
|
| 引擎 | 状态 | 费用 | 频率上限 | 需自备密钥 | 什么时候用到 | 说明 |
|
|
@@ -387,10 +395,11 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
387
395
|
| `who_gho` | 可直接用 | 免费 | 不限 | — | 域 medical、域 outbreak_health | WHO GHO 全球卫生指标(世卫官方统计目录,免认证) |
|
|
388
396
|
| `worms` | 可直接用 | 免费 | 不限 | — | 域 species_search | WoRMS 海洋物种权威命名(分类学标准,免认证) |
|
|
389
397
|
|
|
390
|
-
### 宏观数据(
|
|
398
|
+
### 宏观数据(7)
|
|
391
399
|
|
|
392
400
|
| 引擎 | 状态 | 费用 | 频率上限 | 需自备密钥 | 什么时候用到 | 说明 |
|
|
393
401
|
|---|---|---|---|---|---|---|
|
|
402
|
+
| `cfets` | 可直接用 | 免费 | 不限 | — | 域 fx_query | 中国外汇交易中心人民币中间价(25 个币种,官方授权口径,免 key) |
|
|
394
403
|
| `eurostat` | 可直接用 | 免费 | 不限 | — | 域 macro_data | 欧盟统计局宏观数据(EU 国家 GDP/人均GDP/失业率/人口,ec.europa.eu SDMX 免认证) |
|
|
395
404
|
| `fred` | 可直接用 | 免费 | 不限 | — | 域 macro_data | FRED 宏观时序数据(CPI/失业率/国债收益率/GDP/M2,免认证) |
|
|
396
405
|
| `fx_rate` | 可直接用 | 免费 | 不限 | — | 域 fx_query、域 macro_data | 实时汇率(open.er-api.com 免认证) |
|
|
@@ -413,7 +422,7 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
413
422
|
|---|---|---|---|---|---|---|
|
|
414
423
|
| `open_meteo` | 可直接用 | 免费 | 不限 | — | 域 weather_query、语义画像命中 | 全球天气(城市/地名 → 坐标 → 当前天气,免认证) |
|
|
415
424
|
| `opensky` | 可直接用 | 免费 | 不限 | — | 域 transport_rt、语义画像命中 | 全球 ADS-B 实时航班(主要都会区 bbox,免 key) |
|
|
416
|
-
| `bocha_ai` | 需自备密钥 | 低价计费 |
|
|
425
|
+
| `bocha_ai` | 需自备密钥 | 低价计费 | 不限 | ARGO_BOCHA_API_KEY | 域 modal_card | 博查 AI 搜索(ai-search 端点网页结果直连) |
|
|
417
426
|
| `wolframalpha` | 已停用 | 免费 | 不限 | ARGO_WOLFRAM_APPID | 域 fact_check | WolframAlpha 计算知识引擎 |
|
|
418
427
|
|
|
419
428
|
### 化学 / 药学(3)
|
|
@@ -453,7 +462,7 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
453
462
|
|
|
454
463
|
## 六、分发域清单(自动生成)
|
|
455
464
|
|
|
456
|
-
共
|
|
465
|
+
共 97 个业务域;命中即按域内的组合取源(多意图时按配置顺序取,窄意图域排在宽泛域之前)。自己看某个域为什么选这些源,看 `config.yaml` 的 `domains` 段。
|
|
457
466
|
|
|
458
467
|
| 域 | 主源 | 组合 |
|
|
459
468
|
|---|---|---|
|
|
@@ -469,10 +478,12 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
469
478
|
| `em_news_search` | `em_global_news` | `em_global_news`、`cls_telegraph` |
|
|
470
479
|
| `fund_query` | `eastmoney` | `eastmoney`、`anysearch` |
|
|
471
480
|
| `sec_filings` | `sec_edgar` | `sec_edgar`、`anysearch` |
|
|
481
|
+
| `hk_filings` | `hkex` | `hkex`、`anysearch` |
|
|
482
|
+
| `futures_market` | `shfe` | `shfe`、`anysearch` |
|
|
472
483
|
| `us_fundamentals` | `sec_companyfacts` | `sec_companyfacts`、`anysearch` |
|
|
473
484
|
| `us_stock` | `finviz` | `finviz`、`exa`、`yahoo_finance`、`seeking_alpha`、`anysearch`、`eastmoney`、`tencent_kline` |
|
|
474
485
|
| `stock_query` | `sina_quote` | `sina_quote`、`tencent_quote`、`em_flow`、`eastmoney`、`anysearch` |
|
|
475
|
-
| `fx_query` | `fx_rate` | `fx_rate`、`eastmoney`、`frankfurter`、`anysearch` |
|
|
486
|
+
| `fx_query` | `fx_rate` | `fx_rate`、`cfets`、`eastmoney`、`frankfurter`、`anysearch` |
|
|
476
487
|
| `macro_data` | `fred` | `fred`、`worldbank`、`nbs_stats`、`eurostat`、`fx_rate`、`frankfurter`、`anysearch` |
|
|
477
488
|
| `chem_search` | `pubchem` | `pubchem`、`openalex` |
|
|
478
489
|
| `species_search` | `gbif` | `gbif`、`iplant`、`wikipedia`、`obis`、`worms` |
|
|
@@ -503,7 +514,7 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
503
514
|
| `zhihu_hot_list` | `zhihu_hot` | `zhihu_hot`、`zhihu` |
|
|
504
515
|
| `hot_trending` | `baidu_hot` | `baidu_hot`、`toutiao_hot`、`bilibili_hot`、`weibo_hot`、`douyin_hot`、`ths_hot`、`zhihu_hot`、`zhihu_hot_app` |
|
|
505
516
|
| `patent_search` | `google_patents` | `google_patents`、`semantic_scholar`、`local_arxiv` |
|
|
506
|
-
| `crypto_search` | `coingecko` | `coingecko`、`anysearch` |
|
|
517
|
+
| `crypto_search` | `coingecko` | `coingecko`、`defillama`、`anysearch` |
|
|
507
518
|
| `package_search` | `pypi` | `pypi`、`npm`、`crates`、`docker_hub`、`github` |
|
|
508
519
|
| `web_docs` | `mdn` | `mdn`、`stackoverflow` |
|
|
509
520
|
| `ml_models` | `huggingface` | `huggingface`、`github` |
|
|
@@ -543,8 +554,8 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
543
554
|
| `news_realtime` | `byted` | `byted`、`zhihu_global`、`people_daily`、`google_news`、`octen`、`you`、`realtime_index` |
|
|
544
555
|
| `chinese_tech_deep` | `byted` | `byted`、`octen`、`juejin`、`cn_ai_news`、`parallel` |
|
|
545
556
|
| `english_tech` | `octen` | `octen`、`anysearch`、`exa`、`keenable` |
|
|
546
|
-
| `company_search` | `opencorporates` | `opencorporates`、`cninfo`、`baidu_baike` |
|
|
547
|
-
| `chinese_general` | `bocha` | `bocha`、`byted`、`anysearch`、`
|
|
557
|
+
| `company_search` | `opencorporates` | `yuanbao`、`gleif`、`opencorporates`、`cninfo`、`baidu_baike` |
|
|
558
|
+
| `chinese_general` | `bocha` | `bocha`、`yuanbao`、`byted`、`octen`、`anysearch`、`zhihu_global`、`wechat_sogou`、`local_search`、`so`、`shenma`、`metaso` |
|
|
548
559
|
| `local_chinese` | `local_search` | `local_search`、`bocha` |
|
|
549
560
|
| `local_news` | `local_search` | `local_search`、`byted` |
|
|
550
561
|
| `local_code` | `local_search` | `local_search`、`github`、`anysearch` |
|
|
@@ -556,7 +567,7 @@ argo search --list-engines --detail # 逐源状态/密钥/依赖
|
|
|
556
567
|
## 七、怎么自己查当前状态
|
|
557
568
|
|
|
558
569
|
```bash
|
|
559
|
-
argo search --list-engines --detail | python3 -m json.tool | less # 全部
|
|
570
|
+
argo search --list-engines --detail | python3 -m json.tool | less # 全部 272 个源的详情
|
|
560
571
|
argo search --list-engines --detail --routable-only # 只看现在能用的
|
|
561
572
|
python3 scripts/matrix_search_eval.py --offline # 可达性门:有没有死源
|
|
562
573
|
python3 scripts/engine_validate.py --engine <名> --stage all # 单个源的健康+质量双阶段体检
|
package/docs/MCP_SETUP.md
CHANGED
|
@@ -103,4 +103,6 @@ argo mcp undo --all # 精确移除 entry;无 entry 从备份回滚
|
|
|
103
103
|
- [x] 无 entry undo:从备份回滚。
|
|
104
104
|
- [x] `atomic_write` 0600 权限。
|
|
105
105
|
- [x] `--dry-run` 不写盘。
|
|
106
|
-
- [x] 单测 `tests/test_mcp_setup.py`(
|
|
106
|
+
- [x] 单测 `tests/test_mcp_setup.py`(15 例)全过。
|
|
107
|
+
- [x] 客户端矩阵补全:Claude Code、Claude Desktop、Cursor、Windsurf、Codex、Zed、Roo Code、Cline、OpenCode、WorkBuddy。
|
|
108
|
+
- [x] 跨平台声明支持:针对 macOS / Windows / Linux 支持 `config_path_*` 与 `detect_*` 平台适配。
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Argo v2.9.8 发布说明
|
|
2
|
+
|
|
3
|
+
**版本**:2.9.8
|
|
4
|
+
**定位**:路由精度审计与反馈闭环。把 v2.9.7 以来积累的分发、质量、重构改动一并收进本版,并集中修掉 issue #18 / #19 暴露的路由与夜间任务问题。
|
|
5
|
+
|
|
6
|
+
**致谢**:感谢 [@wpp666](https://github.com/wpp666)(王平)在 issue #18 提供的复现环境、查询样本和期望对照。这个 issue 把「有结果但答非所问」的链路讲得很清楚,本版沿着它扩展成了更广泛的路由精度审计。
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 这次更新有什么(通俗版)
|
|
11
|
+
|
|
12
|
+
### 1. issue #18 的三件事都已复现并修掉
|
|
13
|
+
|
|
14
|
+
**以前**:
|
|
15
|
+
|
|
16
|
+
- 查询里出现 `latest` 就被判进实时新闻域,软件版本查询也会走新闻源
|
|
17
|
+
- 人民网的模糊搜索匹配不到时,返回整页最新 feed,形态正常但内容无关
|
|
18
|
+
- `local_bing` 对「2026年新能源汽车销量数据」只命中「2026」,五条结果全是年表、节假日
|
|
19
|
+
- `cross_validation` 对中文查询恒报 `0/N 相关`,这个信号本身不可信
|
|
20
|
+
|
|
21
|
+
**现在**:
|
|
22
|
+
|
|
23
|
+
- `latest` 只有在 `latest news / on / about / in` 等明确新闻搭配下才触发实时新闻
|
|
24
|
+
- 人民网默认 feed、SERP 缓存页按 query token 覆盖率识别为「答非所问」,整页丢弃并触发恢复链
|
|
25
|
+
- `local_bing` 的年份表垃圾页同样被覆盖率门拦下,返回诚实空结果,不再伪装成成功
|
|
26
|
+
- `cross_validation` 改用 CJK 二元组覆盖率,真实中文查询能正确报出相关条数
|
|
27
|
+
|
|
28
|
+
### 2. 顺着同一类问题,审计并收窄了 16 类误触发
|
|
29
|
+
|
|
30
|
+
用真实查询回放 + 97 个域规则自检,找到的不是一条查询,而是一批同构问题:
|
|
31
|
+
|
|
32
|
+
- **CJK 构词成分**:品牌名里的「雪」被当天气、产品名里的「火山」被当地理、UI 排障里的「图标」被当找图、图书馆语境里的「馆藏」被当博物馆、电动车里的「动车」被当车票
|
|
33
|
+
- **ASCII 子串**:`F1` 命中 `off10/off11`,`Go` 命中 `argo`,`Java` 命中 `JavaScript`
|
|
34
|
+
- **跨域同形**:统一社会信用代码/基金代码/商品代码被当代码搜索;代码库语境里的「汇率」被当实时牌价;裸「漏洞」没有域接
|
|
35
|
+
- **域缺口**:「降准」没进财经新闻、工商字段没让位给 `company_search`、中国宏观查询让 FRED 领队返回了美国 GDP
|
|
36
|
+
|
|
37
|
+
修法的共同点是**保留真查询、只排除撞车说法**:每条收窄都配一条误判反例和一条真查询对照,避免把域改废。
|
|
38
|
+
|
|
39
|
+
### 3. issue #19:nightly 账本不再因为空日志失败
|
|
40
|
+
|
|
41
|
+
**以前**:全新 runner 没有使用日志,`argo stats` 只返回 `{"samples": 0}`,夜间账本直接读 `avg_elapsed_ms` 就 `KeyError`。
|
|
42
|
+
|
|
43
|
+
**现在**:`argo stats` 空日志也返回稳定字段形状,指标用 `None` 表示「没有样本」;夜间工作流按 `samples` 判断,没有样本就不喂 benchmark,不画 0ms 假曲线。
|
|
44
|
+
|
|
45
|
+
### 4. v2.9.7 以来的其他改动也一并收进本版
|
|
46
|
+
|
|
47
|
+
- **分发**:打通 PyPI/uvx 标准分发与 MCP 客户端矩阵;npm 包瘦身与自愈提示;Release 资产构建与 Windows 镜像回退
|
|
48
|
+
- **质量**:内容农场过滤真正接线;跨语言长程溯源;BM25+ 与短语邻近度加权;本地工程意图与文件名精准度
|
|
49
|
+
- **重构**:搜索主管线恢复执行器拆出、MCP 压缩/本地沙箱/预热模块化、DSH 插件 wide_research 与执行器连接池拆模块
|
|
50
|
+
- **DSH 插件**:运行监控看板、快速预设、配置即时搜索过滤
|
|
51
|
+
- **路由**:修三处域冲突;补 53 个零用例域的路由用例,并加「每域至少一条路由用例」门禁
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 验证
|
|
56
|
+
|
|
57
|
+
- 全量 `python3 -m pytest -q` 退出码 0
|
|
58
|
+
- 路由精度、域规则 schema、路由快照、矩阵覆盖、macro/fx 专项全部通过
|
|
59
|
+
- 单飞用例连跑 50 次无偶发失败
|
|
60
|
+
- 夜间账本用空日志和真实日志分别模拟:空数据 `samples=0, bench=[]`,真实数据正常产出指标
|
|
61
|
+
- 真实查询复验:issue #18 的两条查询都从「答非所问」回到相关结果;`央行 降准 最新` 从维基实体回到财经新闻;`国家统计局 一季度 GDP` 从 FRED 美国 GDP 回到 worldbank 中国 GDP
|
|
62
|
+
- 路由本身没有变慢:200 条查询平均 1.8ms
|
|
63
|
+
|
|
64
|
+
## 兼容性
|
|
65
|
+
|
|
66
|
+
- 无破坏性变更,v2.9.7 的配置与用法继续有效
|
|
67
|
+
- 仓库版本号、五语 README、DSH 插件对照表、hero 图标统一到 2.9.8
|
|
68
|
+
- 测试态隔离只影响测试:adaptive 与熔断状态按用例使用独立临时库,不再跨用例串味
|
|
69
|
+
|
|
70
|
+
## 相关 issue
|
|
71
|
+
|
|
72
|
+
- [#18](https://github.com/taxueseek/argo/issues/18):auto 路由 latest 误判、people_daily 默认 feed、local_bing 只命中 2026
|
|
73
|
+
- [#19](https://github.com/taxueseek/argo/issues/19):nightly 失败 2026-10-22
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Argo v2.9.9 发布说明
|
|
2
|
+
|
|
3
|
+
**版本**:2.9.9
|
|
4
|
+
**定位**:安全纵深 + 交付质量。三条主线:内容与网络出口的安全加固(高风险正文隔离、逐跳重定向校验、DNS 重绑定封堵)、调度与学习重构(早停弃置的慢源交付不再丢弃、场景分桶学习)、路由精度的六族真实场景扫描收口;另有 `argo engine add` 一键接入与 ZCode 插件包两个能力扩展。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 这次更新有什么(通俗版)
|
|
9
|
+
|
|
10
|
+
### 1. 高风险网页内容不再原样进上下文(风险门禁)
|
|
11
|
+
|
|
12
|
+
**以前**:内容安全引擎只「评分」,`risk_score` 等元数据回传了,清洗后的正文却被丢弃——安全引擎只评分不门禁,高风险注入页照样进证据流水线与 Agent 上下文。
|
|
13
|
+
|
|
14
|
+
**现在**:`risk_score ≥ 0.5`(阈值可调)的正文被隔离:用清洗后正文替换原始正文、标 `content_quarantined`、`content_ok=false`,且不进证据分(与 `--verify` 联动)。默认开启,`ARGO_CONTENT_RISK_GATE=0` 应急放行,`ARGO_CONTENT_RISK_THRESHOLD` 调阈值。
|
|
15
|
+
|
|
16
|
+
### 2. 网络出口纵深防御
|
|
17
|
+
|
|
18
|
+
**以前**:主抓取路径的内联重定向循环只校验第一跳,重定向到内网即可绕过 SSRF 防护;DNS 解析与 TCP 连接之间存在重绑定窗口。
|
|
19
|
+
|
|
20
|
+
**现在**:
|
|
21
|
+
|
|
22
|
+
- 重定向逐跳校验,跳数上限 `ARGO_MAX_REDIRECTS`(默认 5)
|
|
23
|
+
- 解析即锁定:DNS 解析一次、过滤私网、把结果钉给本次 TCP 连接,堵住 check 与 connect 之间的 DNS 重绑定窗口;SNI/Host 仍用原域名
|
|
24
|
+
- 数字 IP 字面量直接查表判定,不再依赖解析器;直连显式校验 TLS 上下文(`check_hostname` + `CERT_REQUIRED`)
|
|
25
|
+
|
|
26
|
+
### 3. 早停弃置的慢源交付不再丢弃
|
|
27
|
+
|
|
28
|
+
**以前**:74% 的查询发生早停,被放弃的交付 81% 来自 anysearch(相关度高于均线);五条对照查询里四条唯一有结果的正是慢源。早停省的是等待,连交付一起丢是拿准确性换速度。
|
|
29
|
+
|
|
30
|
+
**现在**:早停弃置的引擎转入后台收割,宽限窗内完成的照常交付(`ARGO_TAIL_COMPLETE_S`,默认 3 秒,0=关):学习器记真实成绩(此前 cancelled 一律跳过,慢源真实表现从没进过学习器)、交付按 URL 去重合并写回 L2 缓存(同查询第二次免费拿全量覆盖)。CLI 输出先行、退出前等宽限,MCP/daemon 常驻进程自然收割;真超窗的 timeout 弃置不收。
|
|
31
|
+
|
|
32
|
+
### 4. 路由精度:六族真实场景扫描,五类误路由收口
|
|
33
|
+
|
|
34
|
+
按 97 域全景构造真实场景探针电池(目标类目 + 边界反例 + 既有域回归)离线实测,五类实锤全部按「让位 unless + 收口 match/unless 成对改动」修:
|
|
35
|
+
|
|
36
|
+
- **学术**:论文写作 howto(怎么写/查重/盲审)不再落学术检索域;综述语境不再被 AI 模型域的「模型+上下文」抢走
|
|
37
|
+
- **金融/财务**:A 股企业的年报/营收/毛利率/市盈率查询此前落只认 CIK 的 SEC 源(全空)——中文词形财务查询统一进 `stock_query`(sina/eastmoney 双地覆盖),英文词形与美股标记进美股域,美股域中文词形全部让位
|
|
38
|
+
- **企业主体**:尽调风险(注销/吊销/经营异常/行政处罚)、开票信息、人查公司(法定代表人/名下公司/实际控制人)三类此前落 wikidata 组合(中文企业空结果率 82%)——统一收口进 `company_search`,「公司注销流程 怎么办」这类办事指南形态不误吸
|
|
39
|
+
- **法律**:民事实务(劳动合同/工伤/民间借贷/婚姻/继承/侵权赔偿)进 `flk_law`,不再落通用域;岗位/薪资仍归求职
|
|
40
|
+
- **医药**:药品说明书/用法用量不再被 code_search 的「用法」子串抢走(GitHub/MDN 答不了药)
|
|
41
|
+
|
|
42
|
+
### 5. 遥测去污 + 权威源加权补表
|
|
43
|
+
|
|
44
|
+
- 测试夹具引擎名三次绕过隔离写进生产使用日志——在唯一落盘口反向判定,注册表外引擎名的整条拒写;存量 63 条隔离留档。stats 均值 2295→1855ms,假引擎(slow/fast)从最慢榜消失,真实慢尾(skillsmp/anysearch)露出
|
|
45
|
+
- 12 个学术聚合/官方一手源(core/sec_edgar/federal_register/eu_opendata/egov_law/openstd/who_gho/usgs/nasa_cmr=1.3,zenodo/datacite=1.2)补融合权重——此前独家交付却拿基线 1.0
|
|
46
|
+
|
|
47
|
+
### 6. 调度层确定性重构
|
|
48
|
+
|
|
49
|
+
时间读写统一走 `clock()`(测试注入虚拟时钟,生产回退 monotonic);等待一律按剩余预算(deadline 语义)判断,单次轮询抖动不再累加;完成判据从 `Thread.is_alive()` 改为 `holder[done]`,消除「跑完最后一行到被观测之间」的误判窗口——调度类用例在全量套件里间歇性红的共同根因。
|
|
50
|
+
|
|
51
|
+
### 7. 能力扩展
|
|
52
|
+
|
|
53
|
+
- **`argo engine add`**:写 spec→设 env→验证→同步→改 combo→补白名单→补语料的人工多步链编排成一步。三档:`--from-yaml` 安装+验证+准入、`--from-url` 探测+生成模板、`--engine` 只补元数据;幂等、`--dry-run`、判不准的字段保守留空
|
|
54
|
+
- **场景分桶学习**:自适应学习按 `(engine, domain, lang)` 分桶聚合,与全局分加权融合(桶样本 <3 权重 0.3,≥3 权重 0.5)——「引擎在 A 域强、B 域弱」从此可被路由区分,新引擎也能在建议域里被更快识别
|
|
55
|
+
- **ZCode 插件包**:skill 与 CLI 白名单为主通道、零 token 面板(MCP 每轮注入清不掉的问题绕开),已进 [zcode-plugins#120](https://github.com/zai-org/zcode-plugins/pull/120)
|
|
56
|
+
- **DSH 设置页**:新增路由观测卡片(只读本机 usage_log/route.jsonl 汇总最近路由决策,无日志不假装有数据)与工具推荐组合(按场景一键套用工具勾选)
|
|
57
|
+
- **慢源质量实证**:尾宽 A/B 回放基准(2721 条真实日志离线回放)+ 实证文档 `docs/QUALITY_OF_SLOW_SOURCES.md`——缩全局尾宽是拿准确性换速度,正确方向是早交付+后台补全
|
|
58
|
+
|
|
59
|
+
### 8. 离线评测自愈重入
|
|
60
|
+
|
|
61
|
+
缺 PyYAML 的解释器跑离线评测时,config 会静默回落内置默认引擎集,route 段整片假红(同机实测 94 FAIL vs 197 全绿,差异全在解释器不在路由)。守卫升级为自愈重入:按 `ARGO_PYTHON` → PATH 上 python3.14/3.13/3.15/3.12 → python3 的候选序逐个真验 import,找到即 `execv` 重入;换无可换才报错并给修法。
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 验证
|
|
66
|
+
|
|
67
|
+
- 全量 `python3.14 -m pytest -q` 退出码 0(4625 用例,少量平台性 skip)
|
|
68
|
+
- pre-commit 七门(静态检查/体积门禁/开关总表/五语一致性/路由快照/上下文预算/引擎目录)全绿
|
|
69
|
+
- 路由探针电池 30/30;matrix 离线评测绿 0 红(路由段 212 用例)
|
|
70
|
+
- 早交付端到端实证:skillsmp 被弃置 990ms 后收割线程等到其 2205ms 完成交付,学习器落真实成绩
|
|
71
|
+
- 真实查询复验:合成开票查询从 wikidata 空结果回到 company_search(元宝交付);学术域 core 独家交付查询加权后排基线源之上
|
|
72
|
+
|
|
73
|
+
## 兼容性
|
|
74
|
+
|
|
75
|
+
- 无破坏性变更,v2.9.8 的配置与用法继续有效
|
|
76
|
+
- 新增开关:`ARGO_TAIL_COMPLETE_S`(默认 3,0=关)、`ARGO_CONTENT_RISK_GATE`(默认开)、`ARGO_CONTENT_RISK_THRESHOLD`(默认 0.5)、`ARGO_MAX_REDIRECTS`(默认 5)
|
|
77
|
+
- 两处金标随约定更新:中文财务词形期望统一进 `stock_query`;其余既有查询行为不变
|
|
78
|
+
- 仓库版本号、五语 README、DSH 插件对照表统一到 2.9.9
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 中国外汇交易中心(CFETS)人民币中间价(免 key)
|
|
2
|
+
#
|
|
3
|
+
# 补的盲区:**在岸人民币官方价**。现有汇率源都是离岸/聚合口径:
|
|
4
|
+
# frankfurter 是 ECB 参考价、fx_rate 是 open.er-api 聚合价,都不是
|
|
5
|
+
# 人民银行授权的中间价。CFETS 是每个交易日 9:15 公布的官方中间价,
|
|
6
|
+
# 也是跨境结算与合同计价的口径来源。
|
|
7
|
+
#
|
|
8
|
+
# 端点语义(2026-10-21 实测):按货币对 + 日期区间查历史,不支持自由文本。
|
|
9
|
+
# GET /ags/ms/cm-u-bk-ccpr/CcprHisNew?currency=USD/CNY&startDate=…&endDate=…
|
|
10
|
+
# → records[].date + values[](values[0] 即该货币对中间价)
|
|
11
|
+
# 币种覆盖 25 个(USD/EUR/100JPY/HKD/GBP/AUD/NZD/SGD/CHF/CAD/CNY-MOP…
|
|
12
|
+
# CNY-MYR/RUB/ZAR/KRW/AED/SAR/HUF/PLN/DKK/SEK/NOK/TRY/MXN/THB)。
|
|
13
|
+
# builder 负责把「美元」「日元」「USD/CNY」这类查询词解析成货币对;
|
|
14
|
+
# 只说「人民币中间价」时按美元对(市场最常用口径)。
|
|
15
|
+
#
|
|
16
|
+
# 验证:
|
|
17
|
+
# python3 scripts/engine_validate.py --engine cfets --stage health --admit
|
|
18
|
+
# argo search "美元 人民币 中间价" --engine cfets --json
|
|
19
|
+
|
|
20
|
+
engine_id: cfets
|
|
21
|
+
type: cfets
|
|
22
|
+
enabled: true
|
|
23
|
+
cost_tier: free
|
|
24
|
+
label: 人民币中间价
|
|
25
|
+
family: finance_macro
|
|
26
|
+
priority: 51
|
|
27
|
+
qps: 2
|
|
28
|
+
period: second
|
|
29
|
+
cost_per_call: 0.0
|
|
30
|
+
cost_unit: free
|
|
31
|
+
recommended: false
|
|
32
|
+
|
|
33
|
+
timeout: 15
|
|
34
|
+
canary_query: 美元 人民币 中间价
|
|
35
|
+
desc: "中国外汇交易中心人民币中间价(25 个币种,官方授权口径,免 key)"
|
|
36
|
+
coverage: [finance, macro, china, official, realtime]
|
|
37
|
+
|
|
38
|
+
quality_queries:
|
|
39
|
+
- query: 美元 人民币 中间价
|
|
40
|
+
- query: 日元 人民币 中间价
|
|
41
|
+
- query: CNY HKD mid rate
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# DeFiLlama 协议 TVL(免 key)
|
|
2
|
+
#
|
|
3
|
+
# 补的盲区:**链上资金规模**。现有 crypto 源只有 CoinGecko(币价/市值),
|
|
4
|
+
# 没有「协议里锁了多少钱」这个口径。DeFiLlama 是 DeFi TVL 的事实标准,
|
|
5
|
+
# 免 key、免注册,覆盖 8700+ 协议与 300+ 链。
|
|
6
|
+
#
|
|
7
|
+
# 端点语义(2026-10-21 实测):单次返回全量协议列表(约 9 MB / 2.4s),
|
|
8
|
+
# 不支持关键词查询,builder 本地过滤(名称/代号/类别/链)并按 TVL 排序。
|
|
9
|
+
# 全量结果进程内缓存 5 分钟,连续查询不重复下载。
|
|
10
|
+
# GET /protocols → [{name, symbol, category, chain, chains, tvl,
|
|
11
|
+
# change_1d, change_7d, slug, url, description}]
|
|
12
|
+
#
|
|
13
|
+
# 验证:
|
|
14
|
+
# python3 scripts/engine_validate.py --engine defillama --stage health --admit
|
|
15
|
+
# argo search "aave tvl" --engine defillama --json
|
|
16
|
+
|
|
17
|
+
engine_id: defillama
|
|
18
|
+
type: defillama
|
|
19
|
+
enabled: true
|
|
20
|
+
cost_tier: free
|
|
21
|
+
label: DeFiLlama
|
|
22
|
+
family: finance_market
|
|
23
|
+
priority: 45
|
|
24
|
+
qps: 1
|
|
25
|
+
period: second
|
|
26
|
+
cost_per_call: 0.0
|
|
27
|
+
cost_unit: free
|
|
28
|
+
recommended: false
|
|
29
|
+
|
|
30
|
+
timeout: 30
|
|
31
|
+
canary_query: aave
|
|
32
|
+
desc: "DeFiLlama 协议 TVL(8700+ 协议资金规模/24h 与 7d 变化,免 key)"
|
|
33
|
+
coverage: [crypto, finance, blockchain, defi]
|
|
34
|
+
|
|
35
|
+
quality_queries:
|
|
36
|
+
- query: aave tvl
|
|
37
|
+
- query: uniswap 锁仓
|
|
38
|
+
- query: Lido 质押 规模
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
engine_id: fxtwitter
|
|
8
8
|
type: http
|
|
9
|
+
# 状态注记(2026-10-21 实测):上游 /2/search 搜索端点已停用(对任意查询返回
|
|
10
|
+
# 空 results,强制调用 6.3s 零结果),status/profile 端点仍正常但不属本引擎职责。
|
|
11
|
+
# X 关键词搜索走 `argo x-search`(ego-browser 通道,见 config.yaml 的 twitter 引擎)
|
|
12
|
+
# 或 `--engine twitter`;单条推文按 URL 取正文仍走 `argo tweet`(twitter_syndication)。
|
|
13
|
+
# 保留注册:上游若恢复搜索端点可直接复用,声明本身无需改动。
|
|
9
14
|
enabled: true
|
|
10
15
|
cost_tier: free
|
|
11
16
|
method: GET
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# GLEIF — 全球法人识别编码(LEI)注册库(免 key)
|
|
2
|
+
#
|
|
3
|
+
# 补的盲区:**「这家公司到底是谁」的跨境法人底稿**。现有 company 源里
|
|
4
|
+
# opencorporates 需要 token(本机实测 401)、SEC EDGAR 只覆盖美国上市公司,
|
|
5
|
+
# GLEIF 是唯一全球口径、免认证的法人主数据:LEI、法定名称、注册地、
|
|
6
|
+
# 总部地址、注册状态、母公司关系(直接/最终母公司)。
|
|
7
|
+
#
|
|
8
|
+
# 端点语义(2026-10-21 实测):fulltext 全文过滤(legalName 过滤器是精确匹配,
|
|
9
|
+
# 「Tencent Holdings」会 0 条;fulltext 能命中「騰訊控股有限公司」),支持中英文原文。
|
|
10
|
+
# GET /api/v1/lei-records?filter[fulltext]=Tencent&page[size]=5
|
|
11
|
+
# → data[].attributes.entity.legalName.name / legalAddress / registration.status
|
|
12
|
+
# 人名/品牌名可能召回近似主体,是「按名检索」的固有限制,不是脏数据。
|
|
13
|
+
#
|
|
14
|
+
# 验证:
|
|
15
|
+
# python3 scripts/engine_validate.py --engine gleif --stage health --admit
|
|
16
|
+
# argo search "Tencent" --engine gleif --json
|
|
17
|
+
|
|
18
|
+
engine_id: gleif
|
|
19
|
+
type: http
|
|
20
|
+
enabled: true
|
|
21
|
+
cost_tier: free
|
|
22
|
+
label: GLEIF 法人标识
|
|
23
|
+
family: knowledge
|
|
24
|
+
priority: 55
|
|
25
|
+
qps: 2
|
|
26
|
+
period: second
|
|
27
|
+
cost_per_call: 0.0
|
|
28
|
+
cost_unit: free
|
|
29
|
+
recommended: false
|
|
30
|
+
|
|
31
|
+
method: GET
|
|
32
|
+
url: https://api.gleif.org/api/v1/lei-records
|
|
33
|
+
query_param: "filter[fulltext]"
|
|
34
|
+
extra_params:
|
|
35
|
+
"page[size]": "{n}"
|
|
36
|
+
timeout: 15
|
|
37
|
+
|
|
38
|
+
canary_query: Tencent
|
|
39
|
+
desc: "GLEIF 全球法人 LEI 注册库(法定名称/注册地/状态/母公司,免 key)"
|
|
40
|
+
coverage: [company, business, legal, org_entity]
|
|
41
|
+
|
|
42
|
+
headers:
|
|
43
|
+
User-Agent: argo-search/2.9 (+gleif)
|
|
44
|
+
Accept: application/json
|
|
45
|
+
|
|
46
|
+
output_map:
|
|
47
|
+
items: data
|
|
48
|
+
item_title: attributes.entity.legalName.name
|
|
49
|
+
item_summary: attributes.entity.legalAddress.addressLines.0
|
|
50
|
+
url_template: https://api.gleif.org/api/v1/lei-records/{id}
|
|
51
|
+
|
|
52
|
+
quality_queries:
|
|
53
|
+
- query: Tencent
|
|
54
|
+
- query: Siemens
|
|
55
|
+
- query: 阿里巴巴
|