argo-search 1.0.1 → 2.9.7
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/LICENSE +201 -21
- package/README.en.md +822 -0
- package/README.es.md +864 -0
- package/README.ja.md +864 -0
- package/README.ko.md +864 -0
- package/README.md +867 -320
- package/SKILL.md +135 -0
- package/assets/readme/hero.svg +121 -0
- package/assets/readme/made-with-beautify.svg +10 -0
- package/assets/readme/proof-routes.svg +73 -0
- package/assets/readme/settings-keys.png +0 -0
- package/assets/readme/settings-tools.png +0 -0
- package/assets/readme/why-better.svg +104 -0
- package/assets/readme/workflow.svg +83 -0
- package/backends/domain_profiles.json +2308 -96
- package/backends/engine_registry.yaml +3314 -503
- package/backends/query_synonyms_cn.json +35 -0
- package/backends/quota_profiles.json +2409 -161
- package/backends/source_types_cn.json +83 -0
- package/backends/text_lexicon.json +44 -0
- package/bin/argo +703 -0
- package/bin/argo.js +71 -39
- package/config.yaml +4976 -363
- package/cordis.patch.yml +21 -0
- package/data/countries.json +40 -0
- package/data/lang_matrix/lang_capability.json +842 -0
- package/data/lang_matrix/matrix_2026-09-10.json +11921 -0
- package/data/regions_cn.json +1 -0
- package/docs/ADDING_NEW_ENGINE.md +184 -0
- package/docs/ARGO_INTRO.md +124 -0
- package/docs/DATA_SOURCE_GAPS.md +81 -0
- package/docs/DESIGN_LOCAL_DATA_FUSION.md +90 -0
- package/docs/ENGINE_CATALOG.md +564 -0
- package/docs/MCP_SETUP.md +106 -0
- package/docs/PLATFORM_PATHS.md +111 -0
- package/docs/RELEASE_NOTES_v2.8.0.md +71 -0
- package/docs/RELEASE_NOTES_v2.8.2.md +63 -0
- package/docs/RELEASE_NOTES_v2.8.3.md +55 -0
- package/docs/RELEASE_NOTES_v2.8.4.md +79 -0
- package/docs/RELEASE_NOTES_v2.8.5.md +102 -0
- package/docs/RELEASE_NOTES_v2.8.6.md +66 -0
- package/docs/RELEASE_NOTES_v2.8.7.md +65 -0
- package/docs/RELEASE_NOTES_v2.8.8.md +67 -0
- package/docs/RELEASE_NOTES_v2.8.9.md +67 -0
- package/docs/RELEASE_NOTES_v2.9.0.md +64 -0
- package/docs/SEARCH_ARCHIVE.md +115 -0
- package/docs/assets/architecture.svg +104 -0
- package/docs/assets/hero.svg +98 -0
- package/docs/engines/bangumi.md +27 -0
- package/docs/engines/biorxiv.md +27 -0
- package/docs/engines/clawhub.md +27 -0
- package/docs/engines/crt_sh.md +27 -0
- package/docs/engines/datacite.md +27 -0
- package/docs/engines/deps_dev.md +27 -0
- package/docs/engines/douban_movie.md +27 -0
- package/docs/engines/endoflife.md +27 -0
- package/docs/engines/flk_law.md +27 -0
- package/docs/engines/fxtwitter.md +27 -0
- package/docs/engines/google_news.md +27 -0
- package/docs/engines/gov_regulations.md +27 -0
- package/docs/engines/guqian.md +27 -0
- package/docs/engines/hackernews.md +27 -0
- package/docs/engines/iplant.md +27 -0
- package/docs/engines/keenable.md +27 -0
- package/docs/engines/met_museum.md +27 -0
- package/docs/engines/nasa_images.md +27 -0
- package/docs/engines/netease_music.md +27 -0
- package/docs/engines/npm.md +27 -0
- package/docs/engines/nvd.md +27 -0
- package/docs/engines/openreview.md +27 -0
- package/docs/engines/openstd.md +27 -0
- package/docs/engines/parallel_free.md +27 -0
- package/docs/engines/people_daily.md +27 -0
- package/docs/engines/realtime_index.md +27 -0
- package/docs/engines/sec_edgar.md +27 -0
- package/docs/engines/seltz.md +27 -0
- package/docs/engines/skillsmp.md +27 -0
- package/docs/engines/sspai.md +27 -0
- package/docs/engines/std_samr.md +27 -0
- package/docs/engines/train.md +27 -0
- package/docs/engines/un_comtrade.md +27 -0
- package/docs/engines/wikisource.md +27 -0
- package/docs/engines/zdic.md +27 -0
- package/docs/engines/zenodo.md +27 -0
- package/docs/engines/zhihu_hot_app.md +27 -0
- package/docs//344/270/272/344/273/200/344/271/210/351/200/211/346/213/251argo.md +176 -0
- package/engines/README.md +10 -0
- package/engines/_template_cli.yaml +39 -0
- package/engines/_template_http.yaml +37 -0
- package/engines/plugins/_template_plugin.py +50 -0
- package/engines/specs/_cisa_kev.yaml +54 -0
- package/engines/specs/_osv.yaml +63 -0
- package/engines/specs/aljazeera.yaml +43 -0
- package/engines/specs/antara.yaml +43 -0
- package/engines/specs/artic.yaml +20 -0
- package/engines/specs/aviation_weather.yaml +39 -0
- package/engines/specs/bangumi.yaml +21 -0
- package/engines/specs/biorxiv.yaml +24 -0
- package/engines/specs/carbon_intensity.yaml +32 -0
- package/engines/specs/cinii.yaml +44 -0
- package/engines/specs/clawhub.yaml +49 -0
- package/engines/specs/cleveland.yaml +19 -0
- package/engines/specs/cn_ai_news.yaml +43 -0
- package/engines/specs/core.yaml +35 -0
- package/engines/specs/crt_sh.yaml +38 -0
- package/engines/specs/ct24.yaml +43 -0
- package/engines/specs/datacite.yaml +27 -0
- package/engines/specs/datagov_uk.yaml +41 -0
- package/engines/specs/ddgs_images.yaml +45 -0
- package/engines/specs/deepseek_search.yaml +74 -0
- package/engines/specs/deezer.yaml +20 -0
- package/engines/specs/deps_dev.yaml +21 -0
- package/engines/specs/digup.yaml +36 -0
- package/engines/specs/doi.yaml +39 -0
- package/engines/specs/douban_movie.yaml +22 -0
- package/engines/specs/dw_news.yaml +47 -0
- package/engines/specs/egov_law.yaml +21 -0
- package/engines/specs/elpais.yaml +43 -0
- package/engines/specs/endoflife.yaml +21 -0
- package/engines/specs/energy_charts.yaml +21 -0
- package/engines/specs/factcheck_org.yaml +52 -0
- package/engines/specs/faz.yaml +43 -0
- package/engines/specs/federal_register.yaml +57 -0
- package/engines/specs/firecrawl.yaml +53 -0
- package/engines/specs/flk_law.yaml +24 -0
- package/engines/specs/folha.yaml +43 -0
- package/engines/specs/france24.yaml +44 -0
- package/engines/specs/full_fact.yaml +47 -0
- package/engines/specs/fxtwitter.yaml +31 -0
- package/engines/specs/gbfs_nyc.yaml +32 -0
- package/engines/specs/gdacs.yaml +21 -0
- package/engines/specs/gdelt.yaml +64 -0
- package/engines/specs/google_news.yaml +22 -0
- package/engines/specs/gov_regulations.yaml +38 -0
- package/engines/specs/guardian_rss.yaml +59 -0
- package/engines/specs/hurriyet.yaml +43 -0
- package/engines/specs/iplant.yaml +25 -0
- package/engines/specs/jikan.yaml +24 -0
- package/engines/specs/jolpica.yaml +20 -0
- package/engines/specs/k10plus.yaml +20 -0
- package/engines/specs/keenable.yaml +44 -0
- package/engines/specs/lefigaro.yaml +43 -0
- package/engines/specs/listenbrainz.yaml +19 -0
- package/engines/specs/matichon.yaml +43 -0
- package/engines/specs/met_museum.yaml +21 -0
- package/engines/specs/nasa_images.yaml +45 -0
- package/engines/specs/netease_music.yaml +38 -0
- package/engines/specs/nhk.yaml +43 -0
- package/engines/specs/nhtsa_vpic.yaml +20 -0
- package/engines/specs/noaa_swpc.yaml +20 -0
- package/engines/specs/nvd.yaml +38 -0
- package/engines/specs/obis.yaml +20 -0
- package/engines/specs/opencitations.yaml +52 -0
- package/engines/specs/openf1.yaml +21 -0
- package/engines/specs/openfoodfacts.yaml +45 -0
- package/engines/specs/openligadb.yaml +20 -0
- package/engines/specs/openreview.yaml +37 -0
- package/engines/specs/openstd.yaml +21 -0
- package/engines/specs/people_daily.yaml +22 -0
- package/engines/specs/realtime_index.yaml +34 -0
- package/engines/specs/ror.yaml +20 -0
- package/engines/specs/satnogs.yaml +20 -0
- package/engines/specs/sec_edgar.yaml +46 -0
- package/engines/specs/skillsmp.yaml +50 -0
- package/engines/specs/sogou_weixin_browser.yaml +30 -0
- package/engines/specs/soilgrids.yaml +25 -0
- package/engines/specs/sspai.yaml +36 -0
- package/engines/specs/stackexchange.yaml +46 -0
- package/engines/specs/std_samr.yaml +21 -0
- package/engines/specs/tass.yaml +43 -0
- package/engines/specs/tle_mirror.yaml +21 -0
- package/engines/specs/train.yaml +37 -0
- package/engines/specs/tvmaze.yaml +20 -0
- package/engines/specs/twitter_syndication.yaml +31 -0
- package/engines/specs/un_comtrade.yaml +23 -0
- package/engines/specs/unpaywall.yaml +54 -0
- package/engines/specs/vnpress.yaml +43 -0
- package/engines/specs/weather.yaml +32 -0
- package/engines/specs/who_don.yaml +21 -0
- package/engines/specs/who_gho.yaml +20 -0
- package/engines/specs/wikimedia_commons.yaml +34 -0
- package/engines/specs/wikisource.yaml +22 -0
- package/engines/specs/worms.yaml +19 -0
- package/engines/specs/x_trending.yaml +34 -0
- package/engines/specs/yna.yaml +43 -0
- package/engines/specs/ynet.yaml +43 -0
- package/engines/specs/zbmath.yaml +40 -0
- package/engines/specs/zdic.yaml +22 -0
- package/engines/specs/zenodo.yaml +27 -0
- package/engines/specs/zhihu_hot_app.yaml +35 -0
- package/mcp/clients.yaml +74 -0
- package/package.json +51 -12
- package/packages/dsh-plugin/README.md +134 -0
- package/packages/dsh-plugin/cordis.patch.yml +48 -0
- package/packages/dsh-plugin/dsh/client.js +1244 -0
- package/packages/dsh-plugin/dsh/index.js +2290 -0
- package/packages/dsh-plugin/dsh/native-tools.mjs +743 -0
- package/packages/dsh-plugin/package.json +38 -0
- package/packages/dsh-plugin/test/client.test.js +232 -0
- package/packages/dsh-plugin/test/config.test.js +30 -0
- package/packages/dsh-plugin/test/index.test.js +1338 -0
- package/references/query-templates.md +96 -0
- package/references/query-templates.yaml +118 -0
- package/scripts/ab_eval.py +219 -0
- package/scripts/ab_eval_p0p1.py +266 -0
- package/scripts/adaptive.py +271 -70
- package/scripts/answer.py +154 -0
- package/scripts/archive_run.py +591 -0
- package/scripts/argo_engine_registry.py +172 -0
- package/scripts/argo_paths.py +728 -0
- package/scripts/article.py +136 -0
- package/scripts/arxiv_source.py +201 -0
- package/scripts/badcase_ledger.py +252 -0
- package/scripts/batch_probe.py +241 -0
- package/scripts/benchmark.py +19 -0
- package/scripts/bounded_run.py +144 -0
- package/scripts/browser_auth.py +323 -0
- package/scripts/burstiness_detector.py +147 -0
- package/scripts/cache.py +1078 -67
- package/scripts/cache_guard.py +271 -0
- package/scripts/cache_key_vdom.py +56 -0
- package/scripts/cache_similarity.py +170 -0
- package/scripts/caliber_isolation.py +195 -0
- package/scripts/calibrate_lowquality.py +210 -0
- package/scripts/candidate_envelope.py +366 -0
- package/scripts/chrome_cdp.py +871 -0
- package/scripts/circuit_breaker.py +389 -0
- package/scripts/citations.py +334 -0
- package/scripts/cite_cli.py +59 -0
- package/scripts/cjk_tokens.py +95 -0
- package/scripts/clarify.py +47 -24
- package/scripts/cli_io.py +240 -0
- package/scripts/config.py +683 -45
- package/scripts/config_cache.py +402 -0
- package/scripts/conn_pool.py +220 -0
- package/scripts/content_security.py +685 -0
- package/scripts/content_signals.py +730 -0
- package/scripts/crawl.py +74 -35
- package/scripts/daemon.py +866 -0
- package/scripts/digup_bridge.py +214 -0
- package/scripts/engine_admission.py +366 -0
- package/scripts/engine_dispatch.py +1019 -0
- package/scripts/engine_env.py +534 -0
- package/scripts/engine_failure.py +411 -0
- package/scripts/engine_families.py +732 -0
- package/scripts/engine_policy.py +218 -0
- package/scripts/engine_requires.py +190 -0
- package/scripts/engine_status.py +322 -0
- package/scripts/engine_validate.py +638 -0
- package/scripts/engines.py +778 -294
- package/scripts/engines_base.py +1521 -0
- package/scripts/engines_builders.py +298 -0
- package/scripts/engines_builders_batch10.py +159 -0
- package/scripts/engines_builders_batch11.py +174 -0
- package/scripts/engines_builders_batch12.py +103 -0
- package/scripts/engines_builders_batch13.py +340 -0
- package/scripts/engines_builders_batch9.py +1468 -0
- package/scripts/engines_builders_cn.py +2283 -0
- package/scripts/engines_builders_data.py +2923 -0
- package/scripts/engines_builders_data_macro.py +775 -0
- package/scripts/engines_builders_feeds.py +255 -0
- package/scripts/engines_builders_intl.py +1239 -0
- package/scripts/engines_builders_search.py +440 -0
- package/scripts/engines_builders_tech.py +1360 -0
- package/scripts/evidence.py +588 -162
- package/scripts/evidence_loop.py +592 -0
- package/scripts/evidence_tier.py +298 -0
- package/scripts/except_sets.py +25 -0
- package/scripts/extract.py +55 -16
- package/scripts/fact_align.py +207 -0
- package/scripts/fact_crosscheck.py +230 -0
- package/scripts/fetch.py +25 -12
- package/scripts/fetch_browser.py +87 -0
- package/scripts/fetch_jsrun.py +122 -0
- package/scripts/fetch_quality.py +225 -0
- package/scripts/fetch_render_tinyfish.py +117 -0
- package/scripts/fetch_v3.py +1779 -0
- package/scripts/focus_extract.py +350 -0
- package/scripts/fulltext_store.py +169 -0
- package/scripts/fxtwitter_api.py +325 -0
- package/scripts/gen_engine_catalog.py +364 -0
- package/scripts/gen_native_tools.py +91 -0
- package/scripts/gen_routing_snapshot.py +184 -0
- package/scripts/health_check.py +140 -402
- package/scripts/health_probe.py +23 -8
- package/scripts/hot_state.py +134 -0
- package/scripts/http_client.py +1053 -0
- package/scripts/image_ops.py +430 -0
- package/scripts/image_vision/vision_probe +0 -0
- package/scripts/image_vision/vision_probe.swift +126 -0
- package/scripts/install.ps1 +148 -0
- package/scripts/install.sh +206 -0
- package/scripts/job.py +1186 -0
- package/scripts/jump_resolver.py +235 -0
- package/scripts/lang_capability.py +150 -0
- package/scripts/lang_detect.py +289 -0
- package/scripts/lang_matrix_probe.py +329 -0
- package/scripts/lang_pref.py +311 -0
- package/scripts/link_source.py +340 -0
- package/scripts/local_engines.py +321 -0
- package/scripts/local_image.py +970 -0
- package/scripts/local_seek.py +366 -0
- package/scripts/macro_countries.py +82 -0
- package/scripts/matrix_search_eval.py +1105 -0
- package/scripts/mcp_diag.py +8 -3
- package/scripts/mcp_handlers.py +1074 -0
- package/scripts/mcp_handlers_surface.py +157 -0
- package/scripts/mcp_launch.sh +122 -0
- package/scripts/mcp_server.py +118 -417
- package/scripts/mcp_setup.py +407 -0
- package/scripts/mcp_tools.py +330 -0
- package/scripts/mcp_transport.py +191 -0
- package/scripts/min_version_scan.py +335 -0
- package/scripts/net_proxy.py +258 -0
- package/scripts/network_aware.py +152 -0
- package/scripts/paper.py +274 -0
- package/scripts/pdf_extract.py +518 -0
- package/scripts/phrase_filter.py +66 -0
- package/scripts/plan.py +422 -0
- package/scripts/postprocess_signals.py +150 -0
- package/scripts/pre-commit +48 -0
- package/scripts/query_enhance.py +157 -0
- package/scripts/query_operators.py +196 -0
- package/scripts/query_rewriter.py +116 -7
- package/scripts/query_signals.py +300 -0
- package/scripts/query_templates.py +167 -0
- package/scripts/query_understanding.py +411 -0
- package/scripts/query_variants.py +298 -0
- package/scripts/quota.py +488 -76
- package/scripts/rank_signals.py +775 -0
- package/scripts/ranking_eval.py +319 -0
- package/scripts/readability_extract.py +433 -0
- package/scripts/recompute.py +415 -0
- package/scripts/recovery.py +616 -0
- package/scripts/recovery_l0.py +160 -0
- package/scripts/redskill/redskill_engine.py +332 -0
- package/scripts/regression_p0p1.py +318 -0
- package/scripts/replay_eval.py +640 -0
- package/scripts/rerank_tfidf.py +225 -0
- package/scripts/research.py +591 -403
- package/scripts/research_cli.py +361 -0
- package/scripts/research_dossier.py +492 -0
- package/scripts/research_expand.py +146 -0
- package/scripts/research_gates.py +272 -0
- package/scripts/research_report.py +209 -0
- package/scripts/research_strategy.py +37 -0
- package/scripts/research_work_packages.py +195 -0
- package/scripts/result_lang.py +311 -0
- package/scripts/robots_guard.py +259 -0
- package/scripts/route.py +921 -254
- package/scripts/route_bangs.py +40 -0
- package/scripts/route_cache.py +225 -0
- package/scripts/route_combo.py +910 -0
- package/scripts/route_domains.py +328 -0
- package/scripts/route_lang.py +605 -0
- package/scripts/route_log.py +63 -0
- package/scripts/route_policy.py +250 -0
- package/scripts/rrf_classic.py +66 -0
- package/scripts/screenshot.py +73 -0
- package/scripts/search.py +897 -405
- package/scripts/search_attribution.py +88 -0
- package/scripts/search_benchmark.py +407 -0
- package/scripts/search_cli.py +627 -0
- package/scripts/search_entry.py +389 -0
- package/scripts/search_output.py +606 -0
- package/scripts/search_pipeline.py +1077 -0
- package/scripts/search_rank.py +991 -0
- package/scripts/search_types.py +27 -12
- package/scripts/seek_locator.py +68 -0
- package/scripts/semantic_evidence.py +215 -0
- package/scripts/serp_guard.py +228 -0
- package/scripts/serp_kill_log.py +51 -0
- package/scripts/single_flight.py +120 -0
- package/scripts/social_engines/__init__.py +10 -0
- package/scripts/social_engines/bilibili_engine.py +131 -0
- package/scripts/social_engines/hackernews_engine.py +113 -0
- package/scripts/social_engines/reddit_engine.py +172 -0
- package/scripts/social_engines/twitter_engine.py +397 -0
- package/scripts/social_engines/v2ex_engine.py +101 -0
- package/scripts/social_engines/weibo_engine.py +128 -0
- package/scripts/social_engines/xiaohongshu_engine.py +137 -0
- package/scripts/social_engines/zhihu_engine.py +139 -0
- package/scripts/social_research.py +201 -0
- package/scripts/sogou_weixin_browser.py +318 -0
- package/scripts/source_ledger.py +249 -0
- package/scripts/stage_timing.py +58 -0
- package/scripts/stats_cli.py +95 -0
- package/scripts/straggler_policy.py +60 -0
- package/scripts/stylometry_detector.py +231 -0
- package/scripts/sync_backends.py +353 -0
- package/scripts/sync_installs.py +29 -0
- package/scripts/template_cli.py +127 -0
- package/scripts/text_lexicon.py +72 -0
- package/scripts/tfidf_router.py +109 -37
- package/scripts/time_utils.py +233 -0
- package/scripts/topic_research_profiles.py +643 -0
- package/scripts/train.py +737 -0
- package/scripts/tweet.py +596 -0
- package/scripts/url_canon.py +217 -0
- package/scripts/url_optimize.py +56 -0
- package/scripts/url_safety.py +236 -0
- package/scripts/usage_log.py +116 -0
- package/scripts/usage_log_clean.py +113 -0
- package/scripts/v2ex_nodes.py +311 -0
- package/scripts/variant_recall.py +188 -0
- package/scripts/watch.py +205 -0
- package/scripts/wechat_article.py +258 -0
- package/scripts/wide_research.py +402 -0
- package/scripts/wx.py +349 -0
- package/scripts/x_article_fetch.py +141 -0
- package/scripts/x_search.py +234 -0
- package/scripts/x_trending.py +189 -0
- package/scripts/yaml_load.py +67 -0
- package/sub-skills/ego-search/SKILL.md +253 -0
- package/sub-skills/ego-search/references/browser-runtime.md +43 -0
- package/sub-skills/ego-search/references/install.md +67 -0
- package/sub-skills/ego-search/references/original-ego-upgrade.md +51 -0
- package/sub-skills/ego-search/scripts/ego_search.py +800 -0
- package/sub-skills/ego-search/scripts/merge.py +226 -0
- package/sub-skills/ego-search/scripts/quality.py +64 -0
- package/sub-skills/ego-search/scripts/runtime.py +172 -0
- package/sub-skills/ego-search/scripts/safety.py +109 -0
- package/sub-skills/ego-search/scripts/serp_spec.py +109 -0
- package/sub-skills/ego-search/scripts/webbridge_adapter.py +374 -0
- package/sub-skills/ego-search/tests/test_query_normalize.py +68 -0
- package/sub-skills/js-run/SKILL.md +67 -0
- package/sub-skills/js-run/scripts/jsrun.py +112 -0
- package/sub-skills/js-run/scripts/shim.js +188 -0
- package/sub-skills/js-run/tests/fixtures/challenge_like.js +27 -0
- package/sub-skills/js-run/tests/test_jsrun.py +165 -0
- package/sub-skills/local-search/SKILL.md +50 -53
- package/sub-skills/local-search/bm25.py +162 -0
- package/sub-skills/local-search/config.yaml +152 -55
- package/sub-skills/local-search/engine_registry.py +91 -26
- package/sub-skills/local-search/{health_check.py → local_health_check.py} +140 -10
- package/sub-skills/local-search/local_search_adapter.py +13 -2
- package/sub-skills/local-search/parse_maps.yaml +40 -42
- package/sub-skills/local-search/search_v3.py +1182 -65
- package/sub-skills/local-search/smart_router.py +47 -7
- package/sub-skills/local-seek/SKILL.md +110 -0
- package/sub-skills/local-seek/config/domains.yaml +20 -0
- package/sub-skills/local-seek/references/auto-behaviors.md +24 -0
- package/sub-skills/local-seek/references/fd-mdfind-recipes.md +62 -0
- package/sub-skills/local-seek/references/git-integration.md +54 -0
- package/sub-skills/local-seek/references/remote-handoff.md +46 -0
- package/sub-skills/local-seek/references/rg-recipes.md +96 -0
- package/sub-skills/local-seek/references/strategies.md +52 -0
- package/sub-skills/local-seek/references/structural-search.md +59 -0
- package/sub-skills/local-seek/scripts/eval_rank.py +216 -0
- package/sub-skills/local-seek/scripts/eval_seek.py +224 -0
- package/sub-skills/local-seek/scripts/seek.py +1465 -0
- package/sub-skills/local-seek/scripts/seek_frecency.py +126 -0
- package/sub-skills/local-seek/scripts/seek_fts.py +430 -0
- package/sub-skills/local-seek/scripts/seek_rank.py +193 -0
- package/sub-skills/local-seek/tests/test_content_rank.py +222 -0
- package/sub-skills/local-seek/tests/test_determinism_20261006.py +145 -0
- package/sub-skills/local-seek/tests/test_noise_tier.py +101 -0
- package/sub-skills/local-seek/tests/test_pcre2_probe.py +136 -0
- package/sub-skills/local-seek/tests/test_rank_pinyin.py +77 -0
- package/sub-skills/local-seek/tests/test_regression_20261003.py +169 -0
- package/sub-skills/local-seek/tests/test_regression_20261006.py +146 -0
- package/sub-skills/local-seek/tests/test_seek_degradation.py +111 -0
- package/sub-skills/local-seek/tests/test_seek_fts.py +313 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`openreview`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-12T16:37:55+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: http
|
|
7
|
+
- quality_score: 0.96
|
|
8
|
+
- avg_latency_ms: 775.3
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=501.2ms · count=10
|
|
20
|
+
- quality: pass · score=0.96 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine openreview
|
|
26
|
+
python3 scripts/engine_validate.py --engine openreview --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`openstd`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-12T21:19:30+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: openstd
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 1855.9
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=2005.1ms · count=10
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine openstd
|
|
26
|
+
python3 scripts/engine_validate.py --engine openstd --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`parallel_free`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-14T14:42:32+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: parallel_free
|
|
7
|
+
- quality_score: 0.996
|
|
8
|
+
- avg_latency_ms: 1583.6
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=1400.1ms · count=10
|
|
20
|
+
- quality: pass · score=0.996 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine parallel_free
|
|
26
|
+
python3 scripts/engine_validate.py --engine parallel_free --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`people_daily`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-12T21:19:39+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: people_daily
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 446.8
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=542.8ms · count=10
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine people_daily
|
|
26
|
+
python3 scripts/engine_validate.py --engine people_daily --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`realtime_index`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-08-08T14:55:14+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: cli
|
|
7
|
+
- quality_score: None
|
|
8
|
+
- avg_latency_ms: 812.8
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=812.8ms · count=10
|
|
20
|
+
- quality: None · score=None · empty_rate=None
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine realtime_index
|
|
26
|
+
python3 scripts/engine_validate.py --engine realtime_index --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`sec_edgar`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-08-05T21:55:38+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: http
|
|
7
|
+
- quality_score: 0.8
|
|
8
|
+
- avg_latency_ms: 956.6
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=860.8ms · count=3
|
|
20
|
+
- quality: pass · score=0.8 · empty_rate=0.2
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine sec_edgar
|
|
26
|
+
python3 scripts/engine_validate.py --engine sec_edgar --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`seltz`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-14T16:32:34+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: api
|
|
6
|
+
- type: seltz
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 1919.2
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| `SELTZ_API_KEY` | 是 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=1560.2ms · count=2
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine seltz
|
|
26
|
+
python3 scripts/engine_validate.py --engine seltz --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`skillsmp`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-15T17:02:58+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: http
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 2010.8
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=4385.5ms · count=10
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine skillsmp
|
|
26
|
+
python3 scripts/engine_validate.py --engine skillsmp --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`sspai`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-12T21:18:48+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: http
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 944.1
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=1064.1ms · count=10
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine sspai
|
|
26
|
+
python3 scripts/engine_validate.py --engine sspai --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`std_samr`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-12T21:19:24+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: std_samr
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 382.0
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=518.0ms · count=10
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine std_samr
|
|
26
|
+
python3 scripts/engine_validate.py --engine std_samr --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`train`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-10-06T08:42:42+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: cli
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 414.1
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=414.1ms · count=10
|
|
20
|
+
- quality: None · score=None · empty_rate=None
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine train
|
|
26
|
+
python3 scripts/engine_validate.py --engine train --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`un_comtrade`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-12T16:38:15+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: un_comtrade
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 2776.1
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=2547.1ms · count=10
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine un_comtrade
|
|
26
|
+
python3 scripts/engine_validate.py --engine un_comtrade --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`wikisource`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-12T21:19:43+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: wikisource
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 613.4
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=736.4ms · count=10
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine wikisource
|
|
26
|
+
python3 scripts/engine_validate.py --engine wikisource --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`zdic`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-12T21:19:37+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: zdic
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 127.6
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=125.4ms · count=1
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine zdic
|
|
26
|
+
python3 scripts/engine_validate.py --engine zdic --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`zenodo`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-08-05T21:55:49+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: http
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 1873.1
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=1554.0ms · count=3
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine zenodo
|
|
26
|
+
python3 scripts/engine_validate.py --engine zenodo --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 引擎:`zhihu_hot_app`
|
|
2
|
+
|
|
3
|
+
- 准入时间: 2026-09-12T21:18:44+08:00
|
|
4
|
+
- 状态: admitted
|
|
5
|
+
- cost_tier: free
|
|
6
|
+
- type: http
|
|
7
|
+
- quality_score: 1.0
|
|
8
|
+
- avg_latency_ms: 990.2
|
|
9
|
+
- blocked: False
|
|
10
|
+
|
|
11
|
+
## 环境变量
|
|
12
|
+
|
|
13
|
+
| 变量 | 必填 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| (无) | 否 |
|
|
16
|
+
|
|
17
|
+
## 最近验证
|
|
18
|
+
|
|
19
|
+
- health: pass · latency=262.6ms · count=10
|
|
20
|
+
- quality: pass · score=1.0 · empty_rate=0.0
|
|
21
|
+
|
|
22
|
+
## 调用
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 scripts/search.py "查询词" --engine zhihu_hot_app
|
|
26
|
+
python3 scripts/engine_validate.py --engine zhihu_hot_app --stage health
|
|
27
|
+
```
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# 为什么选择 Argo?——写给被搜索坑过的人
|
|
2
|
+
|
|
3
|
+
> 一句话:Argo 是给 AI Agent 和终端用的「统一搜索层」。你问一个问题,它自动挑对的数据源、并行去查、交叉验证,把带出处的答案给你——**220 个数据源、89 个领域,其中 185 个免配置开箱可用**。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 先看七个真实场景
|
|
8
|
+
|
|
9
|
+
同样一个问题,传统网页搜索和 Argo 的差别(以下全部是 Argo 实测真实输出,非宣传语):
|
|
10
|
+
|
|
11
|
+
| 你问 | 传统网页搜索给你 | Argo 给你 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| 「python asyncio error handling」(英文·调试) | SEO 博客农场混着论坛搬运,答案还要注册登录才能看 | **StackOverflow 官方 API**:按社区得分排序、标采纳状态的问题直连 |
|
|
14
|
+
| 「log4j 漏洞 CVSS 评分」(中英·运维安全) | 各种博客的转述文章,版本对不对要自己核 | **NVD 官方漏洞库**的结构化条目:评分、影响版本、修复建议 |
|
|
15
|
+
| 「attention is all you need 相关论文」(英文·科研) | 学术站广告墙、引用数要挨个点进去数 | **arXiv + CrossRef 官方元数据**:标题、作者、DOI 直连一条龙 |
|
|
16
|
+
| 「Inception movie director」(英文·追剧) | 站内推荐流、广告、盗版站混排 | **IMDb 权威条目**:主条目与同名剧集自动区分 |
|
|
17
|
+
| 「宮崎駿 アニメ 映画」(日文·二次元) | 机器翻译的二手文章混在结果里 | **纯日文一手来源**:日本动画媒体与百科,五源并行不掺翻译腔 |
|
|
18
|
+
| 「김치찌개 레시피」(韩文·下厨) | 韩语内容在通用搜索里权重低、难命中 | **纯韩文原生结果**:Naver 博客与韩国媒体菜谱 |
|
|
19
|
+
| 「qué ver en Sevilla」(西文·旅行规划) | 西语攻略被英文机翻页淹没、中介广告混排 | **纯西文本土指南**:西班牙旅游媒体的深度攻略 |
|
|
20
|
+
| 「深蹲膝盖疼怎么恢复」(中文·日常健康) | 医疗广告与营销号 | **中文健康社区的真实讨论帖**,泛查询不误入行情/漏洞等垂直源 |
|
|
21
|
+
| 「nodejs 22 什么时候停止维护」(英文·运维) | 论坛讨论、过时博客说法不一 | **endoflife.date 生命周期表**:每个版本的维护截止日 |
|
|
22
|
+
|
|
23
|
+
九个场景横跨开发、运维、科研、娱乐、下厨、健身、日常,覆盖**中、英、日、韩、西五种语言**——共同点是:**每类问题都有「对口的一手来源」,但传统网页搜索够不着它们,或给了你也埋在噪声里**。Argo 做的事,就是把 220 个这样的源头接起来,按问题自动挑对的去查(阿拉伯语、泰语及德法西葡意等拉丁语系同样支持识别与回退)。
|
|
24
|
+
|
|
25
|
+
## 数据源版图:220 个源、89 个领域
|
|
26
|
+
|
|
27
|
+
| 领域 | 代表源 | 能答什么 |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| **通用检索** | anysearch、bocha、byted、duckduckgo、octen、exa 等 7 族 | 日常什么都查,中英日韩西泰多语言 |
|
|
30
|
+
| **金融行情** | 新浪/腾讯行情、Finviz、东财资金流、SEC EDGAR、FRED、世界银行、汇率、财联社/金十快讯 | 股价、资金流、财报、宏观指标、快讯 |
|
|
31
|
+
| **技术开发** | GitHub、MDN、StackOverflow + 180 个问答站、PyPI/npm/crates、deps.dev、endoflife、NVD + crt.sh | 代码、文档、依赖健康、生命周期、漏洞情报 |
|
|
32
|
+
| **学术科研** | arXiv、OpenAlex、Semantic Scholar、PubMed、临床试验库、专利、数据集 | 论文、引用、试验、专利尽调 |
|
|
33
|
+
| **法律政务** | 国家法律法规库、裁判文书、日本 e-Gov、韩国法令、美国判例库 | 法律法规原文、判例、规章 |
|
|
34
|
+
| **知识百科** | 维基百科(中英)、百度百科、维基数据、萌娘百科、词典 | 实体、词条、词源、梗 |
|
|
35
|
+
| **生活文娱** | IMDb、豆瓣、Bangumi、网易云音乐、iTunes、Steam、微信读书、汉典、Met 博物馆、NASA 图 | 影视书乐游艺收藏 |
|
|
36
|
+
| **科学数据** | 化学物质、蛋白质结构、物种、地震遥感、空间天气、电网碳强度、土壤农业、标准检索 | 结构化科学数据,网页搜不到的那种 |
|
|
37
|
+
| **本地与隐私** | 本机文件/代码/笔记搜索(rg/grep 级),微信读书个人数据 | 你自己的数据,不出本机 |
|
|
38
|
+
|
|
39
|
+
**185 个免配置**:不用注册、不用填 key,装完就能用。其余要么是免费注册一把 key(20 个),要么装个后端工具(3 个),清单和状态一条命令看全:`argo search --list-engines`。
|
|
40
|
+
|
|
41
|
+
## 重点源推荐:三档怎么选
|
|
42
|
+
|
|
43
|
+
### 第一档:免 key 就很好用的精选源(185 个里挑最常用的)
|
|
44
|
+
|
|
45
|
+
| 用途 | 源 | 免费额度与限速 |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| 通用多语言主力 | **anysearch**(中英日韩西泰全吃,结果质量稳定) | 2000 次/天 |
|
|
48
|
+
| 编程问答 | **stackoverflow + stackexchange**(180+ 问答站官方 API) | 300 次/天/IP |
|
|
49
|
+
| 代码与包 | **github**(1000 次/天)、MDN、npm、PyPI、Hugging Face、deps.dev | 开放接口,QPS 限速 |
|
|
50
|
+
| 学术科研 | **arXiv、OpenAlex**(2.5 亿+ 论文索引)、Semantic Scholar、OpenReview、bioRxiv | 开放接口,QPS 限速 |
|
|
51
|
+
| 安全情报 | **NVD**(CVE 编号/CVSS 评分官方源)、crt.sh 证书透明度 | 开放接口(NVD 限速 5 请求/30 秒) |
|
|
52
|
+
| 百科事实 | 中英文维基百科、维基数据、百度百科 | 开放接口,QPS 限速 |
|
|
53
|
+
| 新闻舆情 | **Google News RSS**(多语言+时间窗)、人民网、GDELT 全球事件库 | 开放接口,QPS 限速 |
|
|
54
|
+
| 软件生命周期 | **endoflife.date**(200+ 产品 EOL 时间表) | 开放接口,QPS 限速 |
|
|
55
|
+
| 法律文本 | 国家法律法规数据库(权威法条全文) | 开放接口,QPS 限速 |
|
|
56
|
+
| 生活娱乐 | 豆瓣电影、网易云音乐、Met 博物馆、NASA 图像库 | 开放接口,QPS 限速 |
|
|
57
|
+
| 天气 | wttr.in + Open-Meteo 双源 | 开放接口,QPS 限速 |
|
|
58
|
+
| 网页兜底 | **firecrawl**(JS 渲染 + 全文 markdown) | 1000 credits/月 |
|
|
59
|
+
|
|
60
|
+
### 第二档:免费注册一把 key,质量再上一个台阶
|
|
61
|
+
|
|
62
|
+
| 源 | 强项 | 免费额度 |
|
|
63
|
+
|---|---|---|
|
|
64
|
+
| **TinyFish**(网页/新闻/论文三引擎) | 浏览器渲染、结果带原文摘要、新闻含发布时间 | 免费,QPS 限速 |
|
|
65
|
+
| **bocha** 博查 | 中文搜索质量标杆,按时效动态调参 | 按次计费 |
|
|
66
|
+
| **byted** 字节搜索 | 中文通用与新闻 | 按次计费 |
|
|
67
|
+
| **zhihu 知乎三源** | 站内观点/评测、全网搜、个人创作数据 | 5000 次/天 |
|
|
68
|
+
| **exa** | 语义搜索(embedding 匹配,适合模糊描述找内容) | $10 月度赠金(约 1400 次) |
|
|
69
|
+
| **tavily** | AI 搜索管线,LLM 友好摘要 | 1000 credits/月 |
|
|
70
|
+
| **octen** | 英文技术高速搜索(技术域主搜之一) | 按量计费(新户赠 $5) |
|
|
71
|
+
| **weread** 微信读书 | 支持这个数据源 | 开放接口,QPS 限速 |
|
|
72
|
+
|
|
73
|
+
配置方式统一:去各家官网免费注册,把 key 写进 `~/.config/argo/env` 一行(`export ARGO_XXX_API_KEY=...`),热生效不用重启。
|
|
74
|
+
|
|
75
|
+
### 第三档:免费给得最大方的 API(大额度清单)
|
|
76
|
+
|
|
77
|
+
| 源 | 免费额度 | Argo 里的用法 |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| zhihu / zhihu_global | **各 5000 次/天** | 中文观点与全网搜索的量级担当 |
|
|
80
|
+
| anysearch | **2000 次/天** | 通用主力,多语言兜底 |
|
|
81
|
+
| github | **1000 次/天** | 代码与模型库搜索 |
|
|
82
|
+
| firecrawl | **1000 credits/月** | keyless 直接用,JS 页兜底 |
|
|
83
|
+
| exa / tavily | $10 月度赠金(约 1400 次)/ 1000 credits | 语义与 AI 搜索增强 |
|
|
84
|
+
| stackexchange | 300 次/天/IP(key 后 **10000/天**) | 问答补位 |
|
|
85
|
+
| 维基百科/arXiv/NVD/endoflife/法律法规库/Google News/GDELT/deps.dev 等 | 无月度配额,但一律 QPS 限速 | 官方开放接口,保持克制使用 |
|
|
86
|
+
|
|
87
|
+
**大额度源的保护策略**(值得说明的设计):免费额度大不等于随便烧。Argo 给每个源配了记账与分层——大额度通用源做主力,稀缺额度源(如 firecrawl、stackexchange)标记为「日常只补位」,预算截断时优先省着,故障兜底的关键时刻才顶上;每次调用都记账,配额耗尽自动熔断换源,恢复后自动回归。
|
|
88
|
+
|
|
89
|
+
## 给 Agent 的使用纪律(必读,避免误解)
|
|
90
|
+
|
|
91
|
+
1. **没有「真的不限」的源。** 表里写「开放接口」的只是没有月度配额,但全部有 QPS/并发限制——这是对公共服务的基本礼貌。Argo 内置节流(多数源 1–2 请求/秒)与结果缓存,**默认参数即可,不要绕过**。
|
|
92
|
+
2. **重复问题别重查。** 相同查询会命中缓存(输出里 `cached: true`),除非明确要新数据,不要用 `--no-cache` 强刷。
|
|
93
|
+
3. **额度单位不要换算错。** 有的是「次/天」,有的是「credits/月」,有的是「赠金($10 ≈ 1400 次搜索)」——计量口径各不相同,按各自单位估算。
|
|
94
|
+
4. **配额耗尽 ≠ 数据源坏了。** 额度用完或触发限速时,Argo 会熔断该源并自动换源补位,结果里的 `engine_outcomes` 会标注原因(429/403/quota)——看到这些标记应该退避等待,而不是加大并发重试。
|
|
95
|
+
5. **高频调用前先看状态。** `argo search --list-engines --detail --engine <名>` 查看该源当前可达性与配额,再决定调用节奏。
|
|
96
|
+
6. **免费额度是公共资源。** 按 key/IP/全站分摊,一次轰炸会把所有用户的配额打光并招致封禁——保持克制是这套系统能长期免费的前提。
|
|
97
|
+
|
|
98
|
+
## 它是怎么工作的(大白话五步)
|
|
99
|
+
|
|
100
|
+
1. **听懂问题**:识别语言(中英日韩西泰…)和领域(89 个领域的模式识别——「报错」「CVE」「菜谱」各有各的信号词)
|
|
101
|
+
2. **挑对来源**:按领域自动配 2–6 个对口源——问 bug 走问答社区、问论文走学术库、问影视走条目库,泛查询才走通用搜索
|
|
102
|
+
3. **并行去查**:多个源同时出发,快的先回,慢的有预算约束不拖后腿
|
|
103
|
+
4. **交叉验证**:多源结果按权威度、相关度、新鲜度五维重排合并;同一个 URL 被多个源命中会标记「共识」
|
|
104
|
+
5. **不够就补**:首选源空手而归时自动换备用源补搜,被墙/超时/欠费都会明说,不装「没结果」
|
|
105
|
+
|
|
106
|
+
## 为什么比三种替代品好
|
|
107
|
+
|
|
108
|
+
### 对比「单一传统搜索」(Google / 百度网页版)
|
|
109
|
+
|
|
110
|
+
1. **垂直数据根本不在网页里。** 漏洞评分、论文元数据、软件生命周期表、蛋白质结构这些是结构化数据库,网页搜索只能给你二手转述文章——而 Argo 直连官方接口拿一手数据。
|
|
111
|
+
2. **一个源 = 一个视角。** 一篇测评说好、一个社区说差,单一搜索你只看到一个。Argo 多源并行,结论有分歧时两个都给你,并标记哪些源达成了共识。
|
|
112
|
+
3. **SEO 噪声与内容农场。** Argo 按权威度、相关度、新鲜度五维重排,垃圾内容的排名天然靠后;恢复链里的结果还要过「与查询实质相关」的信号检查。
|
|
113
|
+
4. **挂了就没辙。** 单一搜索被墙、限流、改版,你就断粮了。Argo 220 个源 + 熔断降级 + 自动换源补搜:一个源坏了,别的顶上,而且会告诉你是谁坏了、为什么。
|
|
114
|
+
|
|
115
|
+
### 对比「单一 AI 搜索」(Perplexity 这类订阅产品)
|
|
116
|
+
|
|
117
|
+
1. **成本结构。** AI 搜索按月订阅,源是黑盒配额;Argo **185 个源免配置**,大免费额度源(每月 1000 次的 Firecrawl、每天 300 次的 StackExchange)都做了「日常只补位、关键时顶上」的保护策略,免费额度花在刀刃上。
|
|
118
|
+
2. **黑盒 vs 可审计。** AI 搜索不告诉你它用了什么源、为什么;Argo 每次输出都带 `route_reason`(为什么路由到这)和 `engines_used`(谁参与了这个答案)——答案可追溯,错了能归因。
|
|
119
|
+
3. **不能点名换源。** AI 搜索的源列表你改不了;Argo 任何源都可以 `--engine` 点名调用,加一个新源 = 放一个 YAML 文件,机器可校验。
|
|
120
|
+
4. **搜不了你自己的数据。** Argo 能搜本机文件、代码、笔记(本地数据融合),并且与联网搜索同一套出口——订阅产品做不到,也不该做到。
|
|
121
|
+
|
|
122
|
+
### 对比「Agent 自带的搜索」(Claude / Codex 内置 web search)
|
|
123
|
+
|
|
124
|
+
1. **源太薄。** 内置搜索通常一两个通用源,问漏洞、论文引用、生命周期、蛋白结构这类垂直问题,它只能拿网页转述凑合。Argo 的 89 个领域各有对口官方源。
|
|
125
|
+
2. **上下文刺客。** Agent 的上下文窗口很贵:内置搜索一次抓回来的网页动辄上万 token。Argo 有 Agent 消费档(单次约 3.7KB,砍掉一切遥测只留答案),还有 `.md`/llms.txt 直出探测——同一篇文档,拿到的体积是网页版的几分之一。
|
|
126
|
+
3. **没有证据链。** 内置搜索给你的结论很难复核出处;Argo 每条结果带编号信源、可回指原文,配合证据核验命令能把「这答案哪来的」一路追到底。
|
|
127
|
+
4. **不抗故障。** Agent 内置搜索的上游一限流,Agent 就开始编造。Argo 有失败分型(超时/被墙/欠费各自明确上报)、熔断降级、恢复链换源——坏消息诚实说,通路自动换。
|
|
128
|
+
5. **触发纪律可验证。** Argo 对「什么问题该进哪个域」有金标回归和负向控制测试(做菜的问题不许路由进行情源),这是工程化验证,不是「感觉挺准」。
|
|
129
|
+
|
|
130
|
+
### 也说边界(不吹的部分)
|
|
131
|
+
|
|
132
|
+
- 强人机验证页(Cloudflare 盾)没有银弹,Argo 会诚实升级到浏览器层,打不过就说打不过
|
|
133
|
+
- reddit 这类对非浏览器强封的平台,需要浏览器态通道
|
|
134
|
+
- 免费额度源有速率上限(所以做了补位策略),重依赖某一源的高频场景建议注册免费 key 提额
|
|
135
|
+
- 上游故障(如 FRED 偶发超时)如实上报,恢复链换源兜底,但不假装那是首选源的结果
|
|
136
|
+
|
|
137
|
+
## 专为 Agent 优化的搜索 Skill
|
|
138
|
+
|
|
139
|
+
Argo 不只是个 CLI 工具,它本身就是一份**写给 Agent 用的搜索技能包**(SKILL.md)——Agent 读一份 7KB 的说明就能掌握全部场景,不用试错。
|
|
140
|
+
|
|
141
|
+
**三种接入形态,按场景选:**
|
|
142
|
+
|
|
143
|
+
- **技能包**:SKILL.md 放进 Agent 的技能目录,靠触发词驱动——用户说「查一下」「核实」「深度研究」时自动接管搜索行为
|
|
144
|
+
- **CLI 单发**:`npx -y github:taxueseek/argo` 即用即走,适合脚本与一次性任务
|
|
145
|
+
- **MCP 常驻**:给 Claude / Codex / Kimi 等 MCP 客户端挂上,11 个工具常驻可用
|
|
146
|
+
|
|
147
|
+
**输出契约是为 Agent 的上下文窗口设计的:**
|
|
148
|
+
|
|
149
|
+
- `--json --no-envelope --fields agent` 单次约 3.7KB(同场景网页抓取是它的几倍),遥测字段全部剥离,只留答案
|
|
150
|
+
- 输出 schema 被**门禁锁死**(字段集合与字节预算都有测试钉住),不会因为升级突然多出几千 token
|
|
151
|
+
- `fetch_required` 纪律字段明确告诉 Agent:哪些结果值得抓正文、哪些摘要已够用
|
|
152
|
+
- 每条结果带编号信源(ref),Agent 可以直接向用户回指出处
|
|
153
|
+
|
|
154
|
+
**11 个子命令覆盖 Agent 的完整检索场景:** search(搜索)、research(深度研究,多源采集综合)、fetch(正文抓取,四级降级)、crawl(站点爬取)、extract(结构化提取)、article(公众号文章)、job(招聘聚合)、evidence(证据核验)、clarify(意图消歧)、preflight(批量预检)、mcp(服务模式)。
|
|
155
|
+
|
|
156
|
+
**Agent 最怕的问题,这里都有机制兜着:** 静默失败显式化(每个引擎的失败带归因,不再「没结果」装糊涂)、恢复链自动换源、缓存防重复消耗、熔断降级、以及排序金标 + 融合增益消融门禁保证版本升级不回退。
|
|
157
|
+
|
|
158
|
+
## 快速上手
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
# 装(三选一)
|
|
162
|
+
curl -fsSL https://raw.githubusercontent.com/taxueseek/argo/main/scripts/install.sh | bash
|
|
163
|
+
npx -y github:taxueseek/argo # 即用即走
|
|
164
|
+
# 或给 Claude/Codex/Kimi 挂 MCP(见 docs/ARGO_INTRO.md)
|
|
165
|
+
|
|
166
|
+
# 用
|
|
167
|
+
argo search "python asyncio tutorial" # 英文技术 → 低延迟源组合
|
|
168
|
+
argo search "log4j 漏洞 CVSS" # 安全 → NVD 官方条目
|
|
169
|
+
argo search "宮崎駿 アニメ" # 日文 → 影视域纯日文结果
|
|
170
|
+
argo search "김치찌개 레시피" # 韩语 → 原生韩文菜谱
|
|
171
|
+
argo search "attention is all you need" # 学术 → arXiv/CrossRef 元数据
|
|
172
|
+
argo search "..." --engine tinyfish_news # 点名用某个源
|
|
173
|
+
argo fetch "https://某文档站/guide" # 拿正文:.md/llms.txt/jina 自动降级
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
全部源清单与每个源的费用/配额/状态:`argo search --list-engines`,或看 [docs/ENGINE_CATALOG.md](ENGINE_CATALOG.md)。
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# engines/ — 外置引擎声明与插件
|
|
2
|
+
|
|
3
|
+
| 路径 | 用途 |
|
|
4
|
+
|------|------|
|
|
5
|
+
| `_template_http.yaml` | L1/L2 HTTP 引擎模板(复制到 `specs/`) |
|
|
6
|
+
| `specs/*.yaml` | 声明式引擎(启动时自动 merge) |
|
|
7
|
+
| `plugins/*.py` | L3 自定义 builder(`ENGINE_TYPE` + `build_engine`) |
|
|
8
|
+
| `plugins/_template_plugin.py` | 插件模板(`_` 前缀不会加载) |
|
|
9
|
+
|
|
10
|
+
完整流程见 `docs/ADDING_NEW_ENGINE.md`。
|