argo-search 2.9.7 → 2.9.8

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.
Files changed (140) hide show
  1. package/README.en.md +58 -145
  2. package/README.es.md +58 -145
  3. package/README.ja.md +64 -151
  4. package/README.ko.md +63 -150
  5. package/README.md +65 -154
  6. package/SKILL.md +3 -3
  7. package/assets/readme/hero.svg +2 -2
  8. package/backends/domain_profiles.json +48 -0
  9. package/backends/engine_registry.yaml +118 -4
  10. package/backends/quota_profiles.json +92 -12
  11. package/backends/source_types_cn.json +27 -1
  12. package/bin/argo +74 -5
  13. package/bin/argo.js +33 -2
  14. package/config.yaml +219 -60
  15. package/docs/ENGINE_CATALOG.md +50 -39
  16. package/docs/MCP_SETUP.md +3 -1
  17. package/docs/RELEASE_NOTES_v2.9.8.md +73 -0
  18. package/engines/specs/cfets.yaml +41 -0
  19. package/engines/specs/defillama.yaml +38 -0
  20. package/engines/specs/firecrawl.yaml +1 -1
  21. package/engines/specs/fxtwitter.yaml +5 -0
  22. package/engines/specs/gleif.yaml +55 -0
  23. package/engines/specs/hkex.yaml +40 -0
  24. package/engines/specs/keenable_free.yaml +36 -0
  25. package/engines/specs/shfe.yaml +39 -0
  26. package/engines/specs/stackexchange.yaml +2 -2
  27. package/engines/specs/tavily_free.yaml +56 -0
  28. package/engines/specs/yuanbao.yaml +93 -0
  29. package/mcp/clients.yaml +32 -0
  30. package/package.json +6 -2
  31. package/packages/dsh-plugin/README.md +23 -5
  32. package/packages/dsh-plugin/dsh/client.js +304 -15
  33. package/packages/dsh-plugin/dsh/diagnostics.js +54 -0
  34. package/packages/dsh-plugin/dsh/index.js +112 -1875
  35. package/packages/dsh-plugin/dsh/native-tools.mjs +7 -1
  36. package/packages/dsh-plugin/dsh/runner.js +666 -0
  37. package/packages/dsh-plugin/dsh/wide-research.js +878 -0
  38. package/packages/dsh-plugin/package.json +2 -2
  39. package/packages/dsh-plugin/scripts/sync-local.sh +70 -0
  40. package/packages/dsh-plugin/test/client.test.js +175 -1
  41. package/packages/dsh-plugin/test/diagnostics.test.js +28 -0
  42. package/packages/dsh-plugin/test/index.test.js +44 -0
  43. package/scripts/adaptive.py +24 -1
  44. package/scripts/article_meta.py +131 -0
  45. package/scripts/budget.py +247 -0
  46. package/scripts/budget_cli.py +93 -0
  47. package/scripts/build_release_assets.sh +65 -0
  48. package/scripts/cache.py +60 -72
  49. package/scripts/ci_drift_gate.py +90 -0
  50. package/scripts/content_boundary.py +46 -0
  51. package/scripts/content_signals.py +26 -5
  52. package/scripts/cross_lingual_trace.py +293 -0
  53. package/scripts/dispatch_result.py +98 -0
  54. package/scripts/engine_dispatch.py +49 -86
  55. package/scripts/engine_env.py +5 -0
  56. package/scripts/engine_families.py +6 -0
  57. package/scripts/engine_policy.py +7 -7
  58. package/scripts/engines.py +21 -0
  59. package/scripts/engines_base.py +3 -3
  60. package/scripts/engines_builders.py +12 -0
  61. package/scripts/engines_builders_batch10.py +48 -3
  62. package/scripts/engines_builders_batch14.py +656 -0
  63. package/scripts/engines_builders_batch15.py +249 -0
  64. package/scripts/engines_builders_keyless.py +111 -0
  65. package/scripts/engines_builders_tech.py +0 -1
  66. package/scripts/evidence.py +31 -3
  67. package/scripts/evidence_loop.py +54 -22
  68. package/scripts/fetch_v3.py +25 -0
  69. package/scripts/gen_routing_snapshot.py +11 -0
  70. package/scripts/install.ps1 +18 -0
  71. package/scripts/install.sh +16 -1
  72. package/scripts/job.py +3 -3
  73. package/scripts/local_seek.py +41 -5
  74. package/scripts/macro_countries.py +15 -0
  75. package/scripts/matrix_search_eval.py +82 -0
  76. package/scripts/mcp_compact.py +234 -0
  77. package/scripts/mcp_handlers.py +60 -642
  78. package/scripts/mcp_launch.sh +10 -8
  79. package/scripts/mcp_local.py +241 -0
  80. package/scripts/mcp_server.py +19 -14
  81. package/scripts/mcp_setup.py +33 -9
  82. package/scripts/mcp_tools.py +1 -0
  83. package/scripts/mcp_transport.py +1 -1
  84. package/scripts/mcp_warm.py +127 -0
  85. package/scripts/output_transparency.py +200 -0
  86. package/scripts/paid_policy.py +98 -0
  87. package/scripts/quota.py +158 -13
  88. package/scripts/recovery_runner.py +150 -0
  89. package/scripts/replay_eval.py +18 -0
  90. package/scripts/research.py +37 -21
  91. package/scripts/research_expand.py +24 -1
  92. package/scripts/retry_policy.py +76 -0
  93. package/scripts/route.py +6 -6
  94. package/scripts/route_cache.py +18 -0
  95. package/scripts/route_combo.py +7 -0
  96. package/scripts/route_domains.py +32 -19
  97. package/scripts/search.py +15 -27
  98. package/scripts/search_attribution.py +100 -3
  99. package/scripts/search_cli.py +24 -11
  100. package/scripts/search_entry.py +7 -1
  101. package/scripts/search_output.py +99 -15
  102. package/scripts/search_pipeline.py +42 -193
  103. package/scripts/search_types.py +107 -9
  104. package/scripts/semantic_evidence.py +179 -3
  105. package/scripts/serp_guard.py +115 -7
  106. package/scripts/serp_kill_log.py +25 -2
  107. package/scripts/stats_cli.py +13 -1
  108. package/scripts/wide_research.py +45 -0
  109. package/scripts/zhihu_quota.py +139 -0
  110. package/sub-skills/local-search/bm25.py +27 -3
  111. package/sub-skills/local-search/cli_runner.py +331 -0
  112. package/sub-skills/local-search/parsers.py +328 -0
  113. package/sub-skills/local-search/search_v3.py +31 -674
  114. package/sub-skills/local-seek/scripts/seek_rank.py +7 -3
  115. package/assets/readme/settings-keys.png +0 -0
  116. package/assets/readme/settings-tools.png +0 -0
  117. package/scripts/image_vision/vision_probe +0 -0
  118. package/scripts/local_engines.py +0 -321
  119. package/sub-skills/ego-search/references/browser-runtime.md +0 -43
  120. package/sub-skills/ego-search/references/install.md +0 -67
  121. package/sub-skills/ego-search/references/original-ego-upgrade.md +0 -51
  122. package/sub-skills/ego-search/tests/test_query_normalize.py +0 -68
  123. package/sub-skills/js-run/tests/fixtures/challenge_like.js +0 -27
  124. package/sub-skills/js-run/tests/test_jsrun.py +0 -165
  125. package/sub-skills/local-seek/references/auto-behaviors.md +0 -24
  126. package/sub-skills/local-seek/references/fd-mdfind-recipes.md +0 -62
  127. package/sub-skills/local-seek/references/git-integration.md +0 -54
  128. package/sub-skills/local-seek/references/remote-handoff.md +0 -46
  129. package/sub-skills/local-seek/references/rg-recipes.md +0 -96
  130. package/sub-skills/local-seek/references/strategies.md +0 -52
  131. package/sub-skills/local-seek/references/structural-search.md +0 -59
  132. package/sub-skills/local-seek/tests/test_content_rank.py +0 -222
  133. package/sub-skills/local-seek/tests/test_determinism_20261006.py +0 -145
  134. package/sub-skills/local-seek/tests/test_noise_tier.py +0 -101
  135. package/sub-skills/local-seek/tests/test_pcre2_probe.py +0 -136
  136. package/sub-skills/local-seek/tests/test_rank_pinyin.py +0 -77
  137. package/sub-skills/local-seek/tests/test_regression_20261003.py +0 -169
  138. package/sub-skills/local-seek/tests/test_regression_20261006.py +0 -146
  139. package/sub-skills/local-seek/tests/test_seek_degradation.py +0 -111
  140. package/sub-skills/local-seek/tests/test_seek_fts.py +0 -313
@@ -6,9 +6,9 @@
6
6
 
7
7
  ## 一、总量与口径
8
8
 
9
- - **收录 264 个源**(config.yaml + `engines/specs/*.yaml` 声明合并后的总数)
10
- - **开箱可用 227 个**:不需要你配任何密钥或装额外工具,自动路由就会用上
11
- - **需自备密钥 22 个**:`bocha`、`bocha_ai`、`byted`、`deepseek_search`、`em_miaoxiang`、`exa`、`keenable`、`octen`、`parallel`、`qweather`、`seltz`、`tavily`、`tinyfish`、`tinyfish_news`、`tinyfish_paper`、`unpaywall`、`weread`、`you`、`zhihu`、`zhihu_global`、`zhihu_hot`、`zhihu_user`(没配也不影响搜索,路由会跳过)
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
- - **免费档 250 个**(含已停用):无需密钥,或只需免费注册的密钥;其中 13 个要自备密钥(免费额度):em_miaoxiang、keenable、qweather、searxng、tinyfish、tinyfish_news、tinyfish_paper、unpaywall、weread、wolframalpha、zhihu、zhihu_hot、zhihu_user
30
- - **计费档 14 个**(下表逐个列出,档位取自各源自己的 `cost_tier` 声明)
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` | 按调用计费 | 是 | ARGO_EXA_API_KEY |
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),用之前先确认额度;低价/按量计费的源有 12 个在自动路由路径上,多数带免费额度或已配密钥。额度记在本地配额表(`backends/quota_profiles.json` 的 limit / period,用量存在本机状态库),用尽后该源在语义路由里被降权;本地表统计的是 argo 自己的调用,若同一密钥还被别的工具用,实际额度以服务商侧为准。想彻底避开计费源,用 `--engine` 显式指定免费源,或走 `--mode budget`。
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
- ### 全网搜索(35)
81
+ ### 全网搜索(38)
81
82
 
82
83
  | 引擎 | 状态 | 费用 | 频率上限 | 需自备密钥 | 什么时候用到 | 说明 |
83
84
  |---|---|---|---|---|---|---|
84
- | `anysearch` | 可直接用 | 免费 | 2000/天 | — | 域 ai_model、域 book_search、域 chinese_general、域 claim_check、域 code_search、域 crypto_search、域 dataset_search、域 earth_science、域 energy_grid、域 english_tech、域 financial_news、域 fund_query、域 fx_query、域 game_search、域 hackernews_search、域 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 |
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` | 需自备密钥 | 低价计费 | 10000/月 | ARGO_BOCHA_API_KEY | 域 chinese_general、域 local_chinese、域 modal_card、语义画像命中 | 博查搜索 API(中文,freshness 按查询时效动态化) |
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 次/月,按 credit 计费;与 exa 同为 api 档) |
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
- ### 百科 / 实体(18)
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/X |
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
- ### 宏观数据(6)
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` | 需自备密钥 | 低价计费 | 10000/月 | ARGO_BOCHA_API_KEY | 域 modal_card | 博查 AI 搜索(ai-search 端点网页结果直连) |
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
- 共 95 个业务域;命中即按域内的组合取源(多意图时按配置顺序取,窄意图域排在宽泛域之前)。自己看某个域为什么选这些源,看 `config.yaml` 的 `domains` 段。
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`、`octen`、`zhihu_global`、`wechat_sogou`、`local_search`、`so`、`shenma`、`metaso` |
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 # 全部 264 个源的详情
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`(12 例)全过。
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,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 质押 规模
@@ -31,7 +31,7 @@ qps: 1
31
31
  period: month
32
32
  limit: 1000
33
33
  cost_per_call: 0.001
34
- cost_unit: credit
34
+ cost_unit: usd
35
35
 
36
36
  # 可选密钥(OPTIONAL_ENV_ENGINES):未配置时不发送 Authorization(keyless 直连免费层)
37
37
  headers:
@@ -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: 阿里巴巴
@@ -0,0 +1,40 @@
1
+ # 港交所披露易(HKEXnews)公告检索(免 key)
2
+ #
3
+ # 补的盲区:**港股一手公告**。A 股有巨潮(cninfo)、美股有 SEC EDGAR,
4
+ # 港股此前没有对应源——查「腾讯回购」「某股供股」只能落到网页搜索。
5
+ # 披露易是港交所官方发布渠道,公告原文 PDF 直链可用。
6
+ #
7
+ # 端点语义(2026-10-21 实测):两个接口组合。
8
+ # 1) 代码/公司名解析:/search/prefix.do?...&name=<代码或名称>&market=SEHK
9
+ # → callback({stockInfo:[{stockId, code, name}]}),stockId 是内部 ID
10
+ # 2) 公告检索:/search/titleSearchServlet.do?...&stockId=…&title=…&searchType=…
11
+ # → {result: "<JSON 字符串>"},逐条含 TITLE/STOCK_CODE/DATE_TIME/FILE_LINK
12
+ # 文档标题是繁体中文,builder 对高频简体词做了映射;纯简体生僻词可能 0 结果,
13
+ # 此时用代码查询仍可命中(如「00700 回购」)。
14
+ #
15
+ # 验证:
16
+ # python3 scripts/engine_validate.py --engine hkex --stage health --admit
17
+ # argo search "00700 回购" --engine hkex --json
18
+
19
+ engine_id: hkex
20
+ type: hkex
21
+ enabled: true
22
+ cost_tier: free
23
+ label: 港交所披露易
24
+ family: finance_market
25
+ priority: 50
26
+ qps: 1
27
+ period: second
28
+ cost_per_call: 0.0
29
+ cost_unit: free
30
+ recommended: false
31
+
32
+ timeout: 20
33
+ canary_query: "00700"
34
+ desc: "港交所披露易公告检索(港股一手公告 PDF,代码/公司名/标题关键词,免 key)"
35
+ coverage: [finance, stock, hk_stock, legal, official]
36
+
37
+ quality_queries:
38
+ - query: "00700 回购"
39
+ - query: 腾讯 公告
40
+ - query: 汇丰 业绩
@@ -0,0 +1,36 @@
1
+ # Keenable 免 key 通道(官方 MCP 匿名额度)
2
+ #
3
+ # 与 keenable 并列而不是合并:keyenable 的 REST 通道按 ARGO_KEENABLE_API_KEY
4
+ # 计 credits,本通道走官方 MCP 匿名池、不读任何 key。两条通道额度模型不同,
5
+ # 分开注册才能让「免费源不当计费源」的检查各自成立(同 tavily / parallel 先例)。
6
+ #
7
+ # 端点语义(2026-10-21 实测):POST https://api.keenable.ai/mcp,
8
+ # JSON-RPC tools/call → search_web_pages {query, mode:"realtime"};
9
+ # 返回 content[0].text 为纯文本块(Title/URL/Published/Snippets,`---` 分隔)。
10
+ # 匿名池按 IP 限流,失效时返回 4xx/空块,由调度层换源。
11
+ #
12
+ # 验证:
13
+ # python3 scripts/engine_validate.py --engine keenable_free --stage health --admit
14
+ # argo search "OpenAI latest news" --engine keenable_free --json
15
+
16
+ engine_id: keenable_free
17
+ type: keenable_free
18
+ enabled: true
19
+ cost_tier: free
20
+ label: Keenable (keyless)
21
+ family: web_general
22
+ priority: 57
23
+ qps: 1
24
+ period: second
25
+ cost_per_call: 0.0
26
+ cost_unit: free
27
+ recommended: false
28
+
29
+ timeout: 20
30
+ canary_query: OpenAI
31
+ desc: "Keenable 官方免 key 匿名通道(通用网页搜索,无需注册)"
32
+ coverage: [general, english, chinese]
33
+
34
+ quality_queries:
35
+ - query: OpenAI latest news
36
+ - query: 人工智能 最新进展
@@ -0,0 +1,39 @@
1
+ # 上海期货交易所(SHFE)日行情(免 key)
2
+ #
3
+ # 补的盲区:**商品期货此前零源**。现有 finance 源覆盖 A/美/港股票、基金、
4
+ # 债券、汇率,唯独没有商品——「铜价」「螺纹钢主力」「黄金期货」这类问题
5
+ # 只能落到网页搜索,拿二手解读。SHFE 是官方一手日行情。
6
+ #
7
+ # 端点语义(2026-10-21 实测):按交易日全量文件,不支持关键词查询,
8
+ # 所以按「品种」本地过滤(铜/铝/锌/铅/镍/锡/黄金/白银/螺纹钢/热卷/原油等)。
9
+ # GET /data/tradedata/future/dailydata/kxYYYYMMDD.dat
10
+ # → o_curinstrument[]:PRODUCTNAME/PRODUCTGROUPID/DELIVERYMONTH/
11
+ # CLOSEPRICE/SETTLEMENTPRICE/VOLUME/OPENINTEREST
12
+ # 周末与节假日文件不存在,builder 会自动往前找最近一个交易日(最多 12 天)。
13
+ #
14
+ # 验证:
15
+ # python3 scripts/engine_validate.py --engine shfe --stage health --admit
16
+ # argo search "沪铜主力" --engine shfe --json
17
+
18
+ engine_id: shfe
19
+ type: shfe
20
+ enabled: true
21
+ cost_tier: free
22
+ label: 上期所行情
23
+ family: finance_market
24
+ priority: 52
25
+ qps: 2
26
+ period: second
27
+ cost_per_call: 0.0
28
+ cost_unit: free
29
+ recommended: false
30
+
31
+ timeout: 20
32
+ canary_query: 铜
33
+ desc: "上海期货交易所日行情(铜/铝/黄金/螺纹钢等品种,官方一手,免 key)"
34
+ coverage: [finance, futures, commodity, china, official]
35
+
36
+ quality_queries:
37
+ - query: 沪铜主力
38
+ - query: 螺纹钢 期货
39
+ - query: 黄金 期货 收盘
@@ -23,8 +23,8 @@ priority: 45
23
23
  qps: 1
24
24
  period: day
25
25
  limit: 300
26
- cost_per_call: 1.0
27
- cost_unit: request
26
+ cost_per_call: 0.0
27
+ cost_unit: usd
28
28
  method: GET
29
29
  url: https://api.stackexchange.com/2.3/search/advanced
30
30
  timeout: 12