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
|
@@ -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: 黄金 期货 收盘
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Tavily 免 key 通道(官方 keyless 匿名额度)
|
|
2
|
+
#
|
|
3
|
+
# 为什么与 tavily 并列而不是合并:两者同上游、不同经济模型——tavily 用
|
|
4
|
+
# ARGO_TAVILY_API_KEY 走账号档(额度高、结果稳),本引擎走官方 keyless
|
|
5
|
+
# 头(x-tavily-access-mode),不读任何 key。计费语义不同,合并会让
|
|
6
|
+
# 「免费源不当计费源」的检查失真(与 parallel / parallel_free 同一处理)。
|
|
7
|
+
#
|
|
8
|
+
# 端点语义(2026-10-21 实测):POST /search,带 `x-tavily-access-mode: keyless`
|
|
9
|
+
# 且不带 Authorization,返回与账号档同构的 {results:[{title,url,content,score}]}。
|
|
10
|
+
# 匿名额度有 IP 级限流;失效时返回 4xx,由调度层换源,不静默伪装成空结果。
|
|
11
|
+
#
|
|
12
|
+
# 验证:
|
|
13
|
+
# python3 scripts/engine_validate.py --engine tavily_free --stage health --admit
|
|
14
|
+
# argo search "OpenAI" --engine tavily_free --json
|
|
15
|
+
|
|
16
|
+
engine_id: tavily_free
|
|
17
|
+
type: http
|
|
18
|
+
enabled: true
|
|
19
|
+
cost_tier: free
|
|
20
|
+
label: Tavily (keyless)
|
|
21
|
+
family: web_general
|
|
22
|
+
priority: 56
|
|
23
|
+
qps: 1
|
|
24
|
+
period: second
|
|
25
|
+
cost_per_call: 0.0
|
|
26
|
+
cost_unit: free
|
|
27
|
+
recommended: false
|
|
28
|
+
|
|
29
|
+
method: POST
|
|
30
|
+
url: https://api.tavily.com/search
|
|
31
|
+
timeout: 15
|
|
32
|
+
|
|
33
|
+
headers:
|
|
34
|
+
Content-Type: application/json
|
|
35
|
+
x-tavily-access-mode: keyless
|
|
36
|
+
|
|
37
|
+
body:
|
|
38
|
+
query: "{query}"
|
|
39
|
+
max_results: "{n}"
|
|
40
|
+
search_depth: basic
|
|
41
|
+
include_answer: false
|
|
42
|
+
|
|
43
|
+
output_map:
|
|
44
|
+
items: results
|
|
45
|
+
item_title: title
|
|
46
|
+
item_url: url
|
|
47
|
+
item_summary: content
|
|
48
|
+
item_published_at: published_date
|
|
49
|
+
|
|
50
|
+
canary_query: OpenAI
|
|
51
|
+
desc: "Tavily 官方免 key 匿名通道(通用网页搜索,无需注册)"
|
|
52
|
+
coverage: [general, english, chinese]
|
|
53
|
+
|
|
54
|
+
quality_queries:
|
|
55
|
+
- query: OpenAI
|
|
56
|
+
- query: 人工智能 应用
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# 腾讯元宝搜索(Tencent WSA SearchPro,需 key)——默认开,无 key 时路由自动跳过
|
|
2
|
+
#
|
|
3
|
+
# 它是什么:腾讯云「联网搜索」的元宝口径(POST api.wsa.cloud.tencent.com/SearchPro)。
|
|
4
|
+
# 中文全网检索,返回**权威源占比很高**:实测「三星堆的由来」10 条里 8 条来自
|
|
5
|
+
# 人民日报 / 新华网 / 国家文物局 / 住建部 / 国家民委 / 中国日报 / 中新网 /
|
|
6
|
+
# 中国经济网,另 2 条为环球网与腾讯新闻。这与 bocha/byted 的「门户+自媒体」
|
|
7
|
+
# 构成互补——同一个查询上,它更偏一手/官方口径。
|
|
8
|
+
#
|
|
9
|
+
# 返回字段(实测):passage(摘要 ~800 字)、content(更长正文 ~2000 字)、
|
|
10
|
+
# score(相关度 0.55-0.65 区间)、date(`YYYY/MM/DD HH:MM:SS`,东八区)、
|
|
11
|
+
# title、url、site(站点中文名,如「人民日报」)、favicon、pics。
|
|
12
|
+
# 搜索层只取 passage 当摘要,正文按需走 fetch/verify 链(与 DeepSeek 引擎同口径)。
|
|
13
|
+
#
|
|
14
|
+
# 为什么是独立 builder 而不是 type: http(四条声明式表达不了的事实):
|
|
15
|
+
# 1. Pages 是 **JSON 字符串数组**,要二次解析
|
|
16
|
+
# 2. 错误全部走 HTTP 200 + Response.Error(鉴权/欠费/限流都是),
|
|
17
|
+
# 声明式会把它当「0 结果」
|
|
18
|
+
# 3. date 是斜杠格式,不是 argo 的 ISO 约定
|
|
19
|
+
# 4. Cnt 只接受 10/20/30/50,传别的值回 "illegal Cnt"
|
|
20
|
+
# 详见 scripts/engines_builders_batch15.py 的模块 docstring。
|
|
21
|
+
#
|
|
22
|
+
# 成本口径:**未知**。官方文档未公布单价,只有 ResourceUnavailable「请检查账号
|
|
23
|
+
# 是否欠费」这一条侧面说明它按量计费。故 cost_per_call 记 0.0(预算层因此不会
|
|
24
|
+
# 扣减),并用 explicit_only 把它挡在自动路由之外——在价格与额度未知之前,
|
|
25
|
+
# 不让它进任何域 combo,避免「自动花钱却算不出花了多少」。补齐价格后再按
|
|
26
|
+
# scripts/paid_policy.py 的既有做法决定是否放进白名单域的付费对冲位。
|
|
27
|
+
#
|
|
28
|
+
# 启用前提:
|
|
29
|
+
# 1. 配置 key(两个名字都认):
|
|
30
|
+
# ARGO_YUANBAO_API_KEY=<key> # argo 推荐名
|
|
31
|
+
# TENCENTCLOUD_WSA_APIKEY=<key> # 腾讯官方名(文档里的环境变量名)
|
|
32
|
+
# 写进 ~/.config/argo/env 即可,只进环境不落仓库。
|
|
33
|
+
# 2. 健康门:python3 scripts/engine_validate.py --engine yuanbao --stage all --admit
|
|
34
|
+
# 3. 显式调用:argo search "三星堆的由来" --engine yuanbao --json --fields agent
|
|
35
|
+
#
|
|
36
|
+
# 实测(2026-10-21 本机):单次 POST 0.44s,返回 10 条,响应体 ~90KB。
|
|
37
|
+
engine_id: yuanbao
|
|
38
|
+
type: yuanbao
|
|
39
|
+
enabled: true
|
|
40
|
+
# 额度是**按次**的(默认 2000/月),不是按钱的——用 limit + period 的计数档位,
|
|
41
|
+
# 不用 budget.py 的金额档(金额档要单价,计数档不要;单价官方也没公布)。
|
|
42
|
+
#
|
|
43
|
+
# 「次数」的口径:quota.record_many 的 used 计的是**发出过的调用数(含失败)**,
|
|
44
|
+
# 只有 cost_used 是成功才累加。对硬额度而言这是安全的一侧——本地宁可早停,
|
|
45
|
+
# 不让远端 2000 次的硬上限被撞穿;反过来说,本地显示「已用 100 次」时上游
|
|
46
|
+
# 可能只计了其中成功的那些。本轮不改这个口径(改它要动 record_many 的通用
|
|
47
|
+
# 语义,影响全部引擎)。
|
|
48
|
+
#
|
|
49
|
+
# 额度用完即 is_hard_down(全模式排除,不是仅仅排除路由),到 30 天周期边界
|
|
50
|
+
# 惰性自愈;想提前恢复用 `python3 scripts/quota.py reset yuanbao`。
|
|
51
|
+
#
|
|
52
|
+
# **进自动路由(无 explicit_only)**:2026-10-21 起作为 chinese_general 域的第
|
|
53
|
+
# 2 位对冲位(config.yaml 该域的注释里有实测依据)。之所以敢进,是因为额度是
|
|
54
|
+
# **硬上限 + 自动摘除**:耗尽后 is_hard_down 把它从 combo 里摘掉,组合回落到
|
|
55
|
+
# 此前的 anysearch/zhihu_global 形态——降级是明确的一步,不是静默变窄。
|
|
56
|
+
# 代价是额度按查询量线性消耗(中文通用查询每次 1 次调用),档位见下方 limit。
|
|
57
|
+
cost_tier: api
|
|
58
|
+
method: POST
|
|
59
|
+
url: https://api.wsa.cloud.tencent.com/SearchPro
|
|
60
|
+
timeout: 12
|
|
61
|
+
canary_query: 三星堆的由来
|
|
62
|
+
label: 腾讯元宝搜索
|
|
63
|
+
family: web_general
|
|
64
|
+
priority: 55
|
|
65
|
+
# 上游有 RequestLimitExceeded,但公开文档未给具体 QPS;保守取 2,避免撞限流。
|
|
66
|
+
# 限频与下面的 period 无关:qps 检查走硬编码 60 秒窗口(quota.py:585 的
|
|
67
|
+
# `now - t < 60`),全仓没有限频器读 period。
|
|
68
|
+
qps: 2
|
|
69
|
+
# period 是**额度语义**,今天只影响两处 + 一处展示:
|
|
70
|
+
# 1. 本地额度重置跨度:quota._period_elapsed(month → 30 天,否则 1 天)
|
|
71
|
+
# 2. 远端耗尽冷却窗:quota._PERIOD_SECONDS(month → 30 天;表里查不到的值
|
|
72
|
+
# ——含 second/minute——落 86400,且「过短一律按 24h 保守处理」)
|
|
73
|
+
# 3. ENGINE_CATALOG 的「频率上限」列展示
|
|
74
|
+
# 本引擎限额是月度,故两处都应为 30 天 = month。
|
|
75
|
+
period: month
|
|
76
|
+
# 月度调用额度。默认按体验额度 2000 次/月;开通更高套餐时改本行 limit
|
|
77
|
+
# (DSH 面板默认值也按 2000 显示,面板写入只覆盖当前环境,不改进本文件)。
|
|
78
|
+
limit: 2000
|
|
79
|
+
# 单价未知(官方未公布超额度后的计价),故不填金额,只由 limit 约束次数。
|
|
80
|
+
cost_per_call: 0.0
|
|
81
|
+
cost_unit: credit
|
|
82
|
+
recommended: false
|
|
83
|
+
|
|
84
|
+
# key 候选链:任一有值即视为就绪(解析见 engine_env.missing_env_for)
|
|
85
|
+
required_env:
|
|
86
|
+
- [ARGO_YUANBAO_API_KEY, TENCENTCLOUD_WSA_APIKEY, YUANBAO_API_KEY]
|
|
87
|
+
|
|
88
|
+
coverage: [web, chinese, news, official]
|
|
89
|
+
|
|
90
|
+
quality_queries:
|
|
91
|
+
- query: 三星堆的由来
|
|
92
|
+
- query: 央行 降准 最新
|
|
93
|
+
- query: 国家统计局 一季度 GDP
|
package/mcp/clients.yaml
CHANGED
|
@@ -72,3 +72,35 @@ clients:
|
|
|
72
72
|
servers_key: mcpServers
|
|
73
73
|
format: json
|
|
74
74
|
detect: [.workbuddy]
|
|
75
|
+
|
|
76
|
+
- id: claude-desktop
|
|
77
|
+
name: Claude Desktop
|
|
78
|
+
config_path: Library/Application Support/Claude/claude_desktop_config.json
|
|
79
|
+
config_path_darwin: Library/Application Support/Claude/claude_desktop_config.json
|
|
80
|
+
config_path_win32: AppData/Roaming/Claude/claude_desktop_config.json
|
|
81
|
+
config_path_linux: .config/Claude/claude_desktop_config.json
|
|
82
|
+
servers_key: mcpServers
|
|
83
|
+
format: json
|
|
84
|
+
detect_darwin: [Library/Application Support/Claude]
|
|
85
|
+
detect_win32: [AppData/Roaming/Claude]
|
|
86
|
+
detect_linux: [.config/Claude]
|
|
87
|
+
|
|
88
|
+
- id: zed
|
|
89
|
+
name: Zed
|
|
90
|
+
config_path: .config/zed/settings.json
|
|
91
|
+
servers_key: context_servers
|
|
92
|
+
format: json
|
|
93
|
+
detect: [.config/zed]
|
|
94
|
+
|
|
95
|
+
- id: roo-code
|
|
96
|
+
name: Roo Code
|
|
97
|
+
config_path: Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
|
|
98
|
+
config_path_darwin: Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
|
|
99
|
+
config_path_win32: AppData/Roaming/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
|
|
100
|
+
config_path_linux: .config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
|
|
101
|
+
servers_key: mcpServers
|
|
102
|
+
format: json
|
|
103
|
+
detect_darwin: [Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline]
|
|
104
|
+
detect_win32: [AppData/Roaming/Code/User/globalStorage/rooveterinaryinc.roo-cline]
|
|
105
|
+
detect_linux: [.config/Code/User/globalStorage/rooveterinaryinc.roo-cline]
|
|
106
|
+
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "argo-search",
|
|
3
|
-
"version": "2.9.
|
|
4
|
-
"description": "Argo 阿尔戈 — 统一搜索与证据核验。推荐 npx -y
|
|
3
|
+
"version": "2.9.9",
|
|
4
|
+
"description": "Argo 阿尔戈 — 统一搜索与证据核验。推荐 npx -y argo-search(npm 发布版)或 install.sh 安装。多语言路由、272 个源(235 个免密钥开箱可用)、影视/体育/金融等垂直源、19 个 MCP 工具(与 CLI 能力面对齐)。",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
7
7
|
"mcp-server",
|
|
@@ -53,6 +53,8 @@
|
|
|
53
53
|
"docs/RELEASE_NOTES_v2.8.8.md",
|
|
54
54
|
"docs/RELEASE_NOTES_v2.8.9.md",
|
|
55
55
|
"docs/RELEASE_NOTES_v2.9.0.md",
|
|
56
|
+
"docs/RELEASE_NOTES_v2.9.9.md",
|
|
57
|
+
"docs/RELEASE_NOTES_v2.9.8.md",
|
|
56
58
|
"docs/assets/",
|
|
57
59
|
"docs/engines/",
|
|
58
60
|
"cordis.patch.yml",
|
|
@@ -67,6 +69,9 @@
|
|
|
67
69
|
"!**/*.pyc",
|
|
68
70
|
"!sub-skills/**/__pycache__/**",
|
|
69
71
|
"!sub-skills/**/*.pyc",
|
|
72
|
+
"!sub-skills/**/tests/**",
|
|
73
|
+
"!sub-skills/**/references/**",
|
|
74
|
+
"!assets/readme/*.webp",
|
|
70
75
|
"!data/jobs"
|
|
71
76
|
],
|
|
72
77
|
"dsh": {
|
|
@@ -5,10 +5,29 @@ DeepSeek Harness 插件:一行同时挂上 [Argo](https://github.com/taxueseek
|
|
|
5
5
|
## 安装
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
dsh plugin --profile web add
|
|
8
|
+
dsh plugin --profile web add @taxueseek/argo-dsh # npm 发布版,已支持,当前 2.9.9
|
|
9
|
+
dsh plugin --profile web add "github:taxueseek/argo#main&path:packages/dsh-plugin" # GitHub main
|
|
9
10
|
```
|
|
10
11
|
|
|
11
|
-
重启 `dsh web`
|
|
12
|
+
重启 `dsh web` 后生效。
|
|
13
|
+
|
|
14
|
+
### 本地开发:改完源码必须同步进 profile
|
|
15
|
+
|
|
16
|
+
profile 里的依赖是 `file:` / `github:`,pnpm 安装时**复制**进
|
|
17
|
+
`node_modules/@taxueseek/argo-dsh`,不是软链。只改本仓源码、不跑同步,
|
|
18
|
+
DSH 设置页读到的仍是旧 bundle(2026-10-22 实测:缓存开关与付费额度已改,
|
|
19
|
+
面板仍显示旧版)。
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
packages/dsh-plugin/scripts/sync-local.sh --check # 比对源码与已安装 bundle
|
|
23
|
+
packages/dsh-plugin/scripts/sync-local.sh # 同步 web/desktop
|
|
24
|
+
packages/dsh-plugin/scripts/sync-local.sh --restart # 同步并重启 dsh web
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
同步会先备份到 `~/.dsh/backups/argo-dsh-sync-<时间>-<profile>`;浏览器如仍显示
|
|
28
|
+
旧面板,做一次硬刷新(Cmd+Shift+R)。
|
|
29
|
+
|
|
30
|
+
本 bundle 提供 **三形态接入**——同一套 argo 检索能力(同引擎、同压缩、同守卫),三种调用通道互为冗余,按宿主能力自动降级:
|
|
12
31
|
|
|
13
32
|
- **原生一等工具**(默认开):`argo_search` / `argo_fetch`(`ctx.tools.register`),走 CLI 单发(`--call`)复用 MCP 同一套引擎与守卫,**不依赖 MCP 连接、零常驻 token 开销**;`nativeTools: []` 关闭
|
|
14
33
|
- **原生 web seam**(默认开):注册 `argo` 搜索与抓取两个 provider,宿主内置 `web_search` 路由到 argo 引擎链、`web_fetch` 走 argo 抓取链(HTTP 优先,遇 Cloudflare/JS 渲染自动升级反检测浏览器);`searchProviderEnabled: false` / `fetchProviderEnabled: false` 时对应 provider 注册但不可选
|
|
@@ -29,7 +48,7 @@ dsh plugin --profile web add "github:taxueseek/argo#main&path:packages/dsh-plugi
|
|
|
29
48
|
|
|
30
49
|
- **接入**:`web_search` / `web_fetch` seam 开关;引擎入口命令与参数(npx 或本机 `mcp_server.py`);搜索/抓取超时、正文上限、连接空闲回收、并发连接数
|
|
31
50
|
- **工具**:18 个原生一等工具的勾选(默认只开 `argo_search` / `argo_fetch`);单次调用超时与返回文本上限
|
|
32
|
-
- **引擎**:argo 本体的行为开关(原环境变量,curated 白名单
|
|
51
|
+
- **引擎**:argo 本体的行为开关(原环境变量,curated 白名单 35 个,分八组:缓存与排序 / 抓取层 / 语义与自适应 / 引擎启停 / 网络出口 / 本机检索 / **额度与预算** / 其他)。「缓存与排序」组第一项是**测试模式(关闭结果缓存)**,默认关、日常结果缓存 1 小时;只有改进 Skill/插件、需要实时结果时才打开。「额度与预算」组把免费与付费源放在同一套 QuotaManager 下:金额计费的源设月度预算(DeepSeek 元 / Exa 美元),按次数限额的源设日/月次数上限(AnySearch / 知乎按日,元宝默认 2000/月、Tavily 按月);博查按量付费,不设固定次数上限,由服务商侧结算。额度或预算用尽后该源自动跳过并回落免费源。开关类即时生效,数字 / 文本 / 名单类分组保存;未配置行显示 argo 默认态并标注「默认」。授权类开关(可复算执行、内网 URL)刻意不进面板
|
|
33
52
|
- **密钥**:常用引擎 key 的填写、更新、清除;显示「已配置 / 未配置 + 来源层(凭证库 / 启动环境 / .env)+ 只读态」,明文不回显;每行可勾选「转发」,等价于把引用名加进 `keyRefs`
|
|
34
53
|
- **研究**:worker / 轨道 / 每轨信源 / token 上限与报告落盘目录
|
|
35
54
|
- **高级**:worker 工具 allow / deny 名单、凭证转发名单
|
|
@@ -70,7 +89,7 @@ argo 的 `deepseek_search` 引擎(官方 `api.deepseek.com/v1/tools/search`,
|
|
|
70
89
|
- 安全:插件不读 key 文件、不落盘、不打日志;key 值只经内存进入 argo 子进程 env,任何输出与错误信息都不含它
|
|
71
90
|
- 旧宿主无 credentials 服务时静默跳过:argo 侧该引擎按缺 key 停用,其余 265 个源不受影响
|
|
72
91
|
- `keyRefs: []` 可整体关闭转发;后续要转发别的宿主凭证(如 `ARGO_EXA_API_KEY`),把引用名加进数组即可,entry 必须是 POSIX 标识符(apply 期 loud fail)
|
|
73
|
-
- `argoEnv`(设置页「引擎」分区写入):argo 行为开关,一行一个 `KEY=VALUE`,名字限 curated 白名单(index.js 的 `ARGO_ENV_SPECS`,
|
|
92
|
+
- `argoEnv`(设置页「引擎」分区写入):argo 行为开关,一行一个 `KEY=VALUE`,名字限 curated 白名单(index.js 的 `ARGO_ENV_SPECS`,35 个;白名单外 apply 期 loud fail,防拼错静默失效);授权位与路径 / 状态类变量刻意不收。与 `keyRefs` 的分工:`keyRefs` 管密钥(凭证库),`argoEnv` 管行为开关(插件配置),两者都不落明文
|
|
74
93
|
|
|
75
94
|
## 依赖
|
|
76
95
|
|
|
@@ -83,8 +102,8 @@ argo 的 `deepseek_search` 引擎(官方 `api.deepseek.com/v1/tools/search`,
|
|
|
83
102
|
|
|
84
103
|
| argo-dsh | DSH Harness | 说明 |
|
|
85
104
|
|----------|-------------|------|
|
|
86
|
-
| 2.9.
|
|
87
|
-
| 2.9.7
|
|
105
|
+
| 2.9.9(当前) | 0.2.1-rc.2(当前,运行中) | 自带设置页(接入 / 工具 / API 密钥 / 研究 / 高级)新增路由观测卡片(getRouteHealth 只读本机 usage_log / route.jsonl 汇总最近路由决策,无日志不假装有数据)与工具推荐组合(按场景一键套用工具勾选,中英双语);双栈入口 `startActivation({provider, label, request, signal, delivery})`;rc.2 移除 `toolFilter` 启动期字段后由插件内 tool guard 阻止 worker 嵌套调用 `wide_research`;`wide_research` 端到端实测通过(planner → 2 worker → synthesis,passed=true / 14 sources) |
|
|
106
|
+
| 2.9.7(上一版,兼容) | 0.2.1-alpha.1(实测,兼容) | 旧宿主走 `start(provider, request)` 分支,`toolFilter` 启动期字段仍认;该分支由插件单测覆盖,未在 alpha.x 上重跑端到端 |
|
|
88
107
|
| 2.9.2 | 0.2.1-alpha.1(实测) | 上一轮适配验证基线;rc.2 的新入口与 tool guard 自 2.9.4 起进入 |
|
|
89
108
|
|
|
90
109
|
低于 0.2.1 的 Harness 未做验证,不保证可用。
|