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.
- package/README.en.md +58 -145
- package/README.es.md +58 -145
- package/README.ja.md +64 -151
- package/README.ko.md +63 -150
- package/README.md +65 -154
- 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 +74 -5
- package/bin/argo.js +33 -2
- package/config.yaml +219 -60
- 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/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 +6 -2
- package/packages/dsh-plugin/README.md +23 -5
- package/packages/dsh-plugin/dsh/client.js +304 -15
- package/packages/dsh-plugin/dsh/diagnostics.js +54 -0
- package/packages/dsh-plugin/dsh/index.js +112 -1875
- 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 +2 -2
- package/packages/dsh-plugin/scripts/sync-local.sh +70 -0
- package/packages/dsh-plugin/test/client.test.js +175 -1
- package/packages/dsh-plugin/test/diagnostics.test.js +28 -0
- package/packages/dsh-plugin/test/index.test.js +44 -0
- package/scripts/adaptive.py +24 -1
- package/scripts/article_meta.py +131 -0
- 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/content_boundary.py +46 -0
- package/scripts/content_signals.py +26 -5
- package/scripts/cross_lingual_trace.py +293 -0
- package/scripts/dispatch_result.py +98 -0
- package/scripts/engine_dispatch.py +49 -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 +54 -22
- package/scripts/fetch_v3.py +25 -0
- package/scripts/gen_routing_snapshot.py +11 -0
- 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 +82 -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/output_transparency.py +200 -0
- package/scripts/paid_policy.py +98 -0
- package/scripts/quota.py +158 -13
- 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 +7 -0
- package/scripts/route_domains.py +32 -19
- 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 +7 -1
- package/scripts/search_output.py +99 -15
- package/scripts/search_pipeline.py +42 -193
- package/scripts/search_types.py +107 -9
- package/scripts/semantic_evidence.py +179 -3
- package/scripts/serp_guard.py +115 -7
- package/scripts/serp_kill_log.py +25 -2
- package/scripts/stats_cli.py +13 -1
- 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/scripts/image_vision/vision_probe +0 -0
- package/scripts/local_engines.py +0 -321
- package/sub-skills/ego-search/references/browser-runtime.md +0 -43
- package/sub-skills/ego-search/references/install.md +0 -67
- package/sub-skills/ego-search/references/original-ego-upgrade.md +0 -51
- package/sub-skills/ego-search/tests/test_query_normalize.py +0 -68
- package/sub-skills/js-run/tests/fixtures/challenge_like.js +0 -27
- package/sub-skills/js-run/tests/test_jsrun.py +0 -165
- package/sub-skills/local-seek/references/auto-behaviors.md +0 -24
- package/sub-skills/local-seek/references/fd-mdfind-recipes.md +0 -62
- package/sub-skills/local-seek/references/git-integration.md +0 -54
- package/sub-skills/local-seek/references/remote-handoff.md +0 -46
- package/sub-skills/local-seek/references/rg-recipes.md +0 -96
- package/sub-skills/local-seek/references/strategies.md +0 -52
- package/sub-skills/local-seek/references/structural-search.md +0 -59
- package/sub-skills/local-seek/tests/test_content_rank.py +0 -222
- package/sub-skills/local-seek/tests/test_determinism_20261006.py +0 -145
- package/sub-skills/local-seek/tests/test_noise_tier.py +0 -101
- package/sub-skills/local-seek/tests/test_pcre2_probe.py +0 -136
- package/sub-skills/local-seek/tests/test_rank_pinyin.py +0 -77
- package/sub-skills/local-seek/tests/test_regression_20261003.py +0 -169
- package/sub-skills/local-seek/tests/test_regression_20261006.py +0 -146
- package/sub-skills/local-seek/tests/test_seek_degradation.py +0 -111
- package/sub-skills/local-seek/tests/test_seek_fts.py +0 -313
package/README.ko.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="assets/readme/hero.svg" width="100%" alt="Argo 아르고: 에이전트를 위한 검색과 심층 리서치 도구,
|
|
2
|
+
<img src="assets/readme/hero.svg" width="100%" alt="Argo 아르고: 에이전트를 위한 검색과 심층 리서치 도구, 272개 검색 소스, 도메인·언어별 라우팅, 흡수 가능한 증거 출력">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
<p align="center">
|
|
25
25
|
<img alt="license" src="https://img.shields.io/badge/license-Apache_2.0-blue">
|
|
26
26
|
<img alt="python" src="https://img.shields.io/badge/python-3.9+-green">
|
|
27
|
-
<img alt="version" src="https://img.shields.io/badge/version-2.9.
|
|
28
|
-
<img alt="engines" src="https://img.shields.io/badge/engines-
|
|
27
|
+
<img alt="version" src="https://img.shields.io/badge/version-2.9.8-informational">
|
|
28
|
+
<img alt="engines" src="https://img.shields.io/badge/engines-272-orange">
|
|
29
29
|
<img alt="mcp" src="https://img.shields.io/badge/MCP-19%20tools-purple">
|
|
30
30
|
</p>
|
|
31
31
|
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
|
|
36
36
|
## 무엇인가
|
|
37
37
|
|
|
38
|
-
**Argo는 에이전트에 설치하는 검색·심층 리서치 도구이며, 관련 웹페이지의 정보도 가져올 수 있습니다. 뒤에는
|
|
38
|
+
**Argo는 에이전트에 설치하는 검색·심층 리서치 도구이며, 관련 웹페이지의 정보도 가져올 수 있습니다. 뒤에는 272개의 검색 소스가 있고 97개 업무 영역을 커버하며, 로컬 파일 기본 검색도 지원합니다. 오픈소스 검색 프로젝트 가운데 매우 강력한 검색 능력을 갖췄습니다.**
|
|
39
39
|
|
|
40
40
|
API Key를 설정하면 검색 품질이 올라갑니다(키가 있는 소스는 보통 더 좋고, 없으면 자동으로 건너뜀). 무료 엔진과 로컬 엔진이 자동으로 보루 역할을 합니다. 중국어·영어·일본어·한국어 등 18개 언어를 커버하고, 금융·학술·영화·스포츠·코드·매크로 같은 수직 시나리오를 지원합니다.
|
|
41
41
|
|
|
@@ -81,11 +81,15 @@ dsh plugin --profile web add "github:taxueseek/argo"
|
|
|
81
81
|
플러그인에는 브라우저 측 설정 페이지가 내장되어 있고 입구는 두 곳입니다: 설정 팝업(`Cmd+,`)의 왼쪽 메뉴 항목 "Argo", 또는 설정 > 플러그인 > Argo(같은 패널의 요약 카드, 클릭하면 열립니다).
|
|
82
82
|
|
|
83
83
|
<p align="center">
|
|
84
|
-
<img src="assets/readme/settings-tools.
|
|
84
|
+
<img src="assets/readme/settings-tools.webp" width="100%" alt="Argo 설정 페이지 '도구': 네이티브 18개 도구 체크 — 고빈도 경로는 argo_search / argo_fetch 기본 on, 롱테일 16개는 필요 시. 아래에 단발 타임아웃과 반환 상한">
|
|
85
85
|
</p>
|
|
86
86
|
|
|
87
87
|
<p align="center">
|
|
88
|
-
<img src="assets/readme/settings-
|
|
88
|
+
<img src="assets/readme/settings-engines.webp" width="100%" alt="Argo 설정 페이지 '엔진': argo 본체의 28개 동작 스위치를 패널로 — 캐시 / TF-IDF 리랭크 / 수치 교차 검증 / MinHash 중복 제거 / SERP 가드와 중복 임계값. 미설정 행은 기본값, 저장 즉시 적용">
|
|
89
|
+
</p>
|
|
90
|
+
|
|
91
|
+
<p align="center">
|
|
92
|
+
<img src="assets/readme/settings-keys.webp" width="100%" alt="Argo 설정 페이지 '키': DeepSeek 공식 검색은 '설정됨 · 자격 증명 저장소'로 호스트 web_search와 같은 키를 공유. Tencent Yuanbao / Tavily 등 주요 엔진 키 입력·갱신·삭제, 평문 미표시">
|
|
89
93
|
</p>
|
|
90
94
|
|
|
91
95
|
| 구역 | 관리 내용 |
|
|
@@ -118,7 +122,7 @@ dsh plugin --profile web add "github:taxueseek/argo"
|
|
|
118
122
|
|
|
119
123
|
## 핵심 강점
|
|
120
124
|
|
|
121
|
-
**
|
|
125
|
+
**272개 소스, 그중 235개는 키 없이 바로 사용.** API Key를 하나도 설정하지 않아도 돌아가고, 무료 엔진과 로컬 엔진이 자동으로 보루 역할을 합니다. 키가 있는 소스는 보통 더 좋고, 없으면 자동으로 건너뜁니다. 한 번 설치로 모든 시나리오를 커버합니다.
|
|
122
126
|
|
|
123
127
|
**로컬 검색 + 네트워크 검색 일체.** Argo만의 능력입니다. 로컬 파일 검색의 밑바탕은 rg, mdfind 같은 개발자 일상 도구로, 코드 심볼·파일명·문서 전문·파일 구조를 검색합니다. 스위치 하나면 로컬 적중이 같은 네트워크 검색 결과에 합쳐지고, 결과에는 출처가 로컬 파일이라고 표시됩니다. 글을 쓰다가 반년 전에 적어 둔 문단이 기억나는데 어디에 있는지 모를 때, 폴더를 뒤지는 것보다 이 검색이 빠릅니다.
|
|
124
128
|
|
|
@@ -200,10 +204,10 @@ Argo는 네 가지 연동 방식을 지원합니다. 시나리오에 맞게 고
|
|
|
200
204
|
1. **링크에서 증거로.** 에이전트는 정렬·검증 가능하고 컨텍스트에 맞는 구조화 자료가 필요 — Argo는 신뢰도 분해 JSON을 반환.
|
|
201
205
|
2. **컨텍스트가 첫 번째 비용.** 에이전트 프로필은 회당 약 3.7KB, 필드와 바이트 예산은 게이트로 고정.
|
|
202
206
|
3. **사이트들이 AI용 콘텐츠를 준비.** llms.txt와 `.md` 직접 출력이 확산 — fetch 체인이 레벨 0에서 자동 탐지, r.jina.ai 리더가 fallback.
|
|
203
|
-
4. **무료 오픈 생태계로 충분.** 정부·학술·표준·보안 공개 API와 키리스 엔진이 대부분 도메인을 커버 (무설정
|
|
207
|
+
4. **무료 오픈 생태계로 충분.** 정부·학술·표준·보안 공개 API와 키리스 엔진이 대부분 도메인을 커버 (무설정 235개).
|
|
204
208
|
5. **품질은 측정 가능.** 랭킹 골든 플로어, 융합 이득 어블레이션 게이트, 음의 라우팅 제어.
|
|
205
209
|
|
|
206
|
-
> v2.9.
|
|
210
|
+
> 위 다섯 항목은 이미 v2.9.x 계열에서 모두 구현되었습니다: 272 소스 / 97 도메인 / 235 무설정.
|
|
207
211
|
|
|
208
212
|
---
|
|
209
213
|
|
|
@@ -273,7 +277,7 @@ composite ≈ 0.40·selection + 0.35·absorption + 0.15·freshness + 0.10·engi
|
|
|
273
277
|
|
|
274
278
|
## 빠른 시작
|
|
275
279
|
|
|
276
|
-
경로를 고르면 됩니다. **설치 진원은 GitHub뿐입니다**(`npx github:taxueseek/argo` 또는 `install.sh`); 현재 권장 **v2.9.
|
|
280
|
+
경로를 고르면 됩니다. **설치 진원은 GitHub뿐입니다**(`npx github:taxueseek/argo` 또는 `install.sh`); 현재 권장 **v2.9.8**. **`npm install argo-search`는 쓰지 마세요** — npm 레지스트리 사본은 **비공식 낡은 v1.0.1**(이 저장소가 아님, 기능 부족, 갱신 안 됨). 이 패키지는 `private: true`로 npm 오배포를 막습니다.
|
|
277
281
|
|
|
278
282
|
**제로 설정으로 동작**: API 키 없이도 무료 엔진 + 로컬 `local_*` 엔진이 돌고, 키 없는 엔진은 스킵됩니다(키가 있으면 보통 더 좋습니다).
|
|
279
283
|
|
|
@@ -456,14 +460,16 @@ python3 scripts/search.py --list-engines
|
|
|
456
460
|
| `deep` | 연구, 조사 | 품질 우선, 엔진 더 허용 |
|
|
457
461
|
| `budget` | 할당량 타이트 | 쿼터 제어, 소진 시 저하 |
|
|
458
462
|
|
|
459
|
-
### 대략적인 능력 세트 (v2.9.
|
|
463
|
+
### 대략적인 능력 세트 (v2.9.8)
|
|
460
464
|
|
|
461
|
-
Argo가 하는 일을 한 줄로 말하면, 질문을 도메인과 언어로 알맞은 소스에 보내고, 돌아온 결과를 신뢰도로 줄세워, 에이전트에는 줄세우고 검증할 수 있는 재료를 넘긴다. 검색·긁기·증거 확인·로컬 파일 검색은 같은 파이프라인을 흐르고, 19개 MCP 도구는 CLI 명령과 일대일로 대응하므로 어떤 형태로 설치해도 능력이 빠지지 않는다. 단독 명령도 몇 개 있다: argo tweet은 X 게시물을 묶고, argo auth는 로그인 상태를 관리하며, argo job은 채용 정보를 모은다. 전체 소스의 비용·키·상태는 docs/ENGINE_CATALOG.md에 있다:
|
|
465
|
+
Argo가 하는 일을 한 줄로 말하면, 질문을 도메인과 언어로 알맞은 소스에 보내고, 돌아온 결과를 신뢰도로 줄세워, 에이전트에는 줄세우고 검증할 수 있는 재료를 넘긴다. 검색·긁기·증거 확인·로컬 파일 검색은 같은 파이프라인을 흐르고, 19개 MCP 도구는 CLI 명령과 일대일로 대응하므로 어떤 형태로 설치해도 능력이 빠지지 않는다. 단독 명령도 몇 개 있다: argo tweet은 X 게시물을 묶고, argo auth는 로그인 상태를 관리하며, argo job은 채용 정보를 모은다. 전체 소스의 비용·키·상태는 docs/ENGINE_CATALOG.md에 있다: 272 소스, 235 무설정, 97 도메인.
|
|
462
466
|
|
|
463
467
|
DSH 플러그인으로 설치하면 이 능력들이 호스트의 네이티브 도구가 된다. 고빈도 검색과 긁기는 기본으로 켜져 있고, 롱테일 포렌식은 설정 페이지에서 필요에 따라 체크하며, argo 본체의 28개 동작 스위치(캐시, 재순위, 중복 제거, 가드, 프록시, TTL 등)는 환경 변수에서 패널로 옮겨졌다. 키는 호스트 凭证库에 들어가고, 평문은 표시되지 않으며, 모든 변경은 저장 즉시 적용된다.
|
|
464
468
|
|
|
465
469
|
최근 몇 판이 각자 한 부류의 문제를 고쳤다.
|
|
466
470
|
|
|
471
|
+
v2.9.8은 라우팅 정밀도와 피드백 루프를 닫는 버전입니다. issue #18의 세 가지 —「latest」가 실시간 뉴스로 잘못 분류됨, people_daily가 일치하지 않을 때 기본 feed를 반환함, local_bing이 「2026」만 매칭함 — 을 모두 재현해 고쳤습니다. 같은 관점으로 실제 쿼리를 재생해 16개 클래스의 오탐을 더 좁혔습니다. 브랜드명 속 「눈」, 제품명 속 「火山引擎」, UI 트러블슈팅의 「아이콘」, 상공/금융 필드의 「코드」, 코드 문맥의 「환율」 등입니다. SERP 커버리지 게이트와 CJK 교차 검증도 넣어 「결과가 나왔다=관련 있다」로 끝나지 않게 했습니다. 재현과 진단을 도와준 @wpp666에게 감사합니다.
|
|
472
|
+
|
|
467
473
|
v2.9.7이 고친 것은 세 개의 오래된 병이다. DSH 호스트 안의 AI가 URL을 읽을 때 호스트 자체 긁기를 써서 단축 링크 점프·JS 챌린지 페이지가 구조적으로 실패하기 일쑤였고, argo의 긁기 체인은 쓸 일이 없었다; 이 판에 호스트 읽기가 argo를 흘러 그런 페이지가 실패→성공으로 바뀌고, 일반 페이지는 그대로다. 라우팅 후보 풀에 명시 전용 18개 엔진이 섞여 자동 선택되면 유일한 유료 엔진이 조용히 과금될 위험이 있었는데, 지금은 후보 풀에 없고 쓰려면 명시해야 한다. 엔진이 성공할 때마다 회로 차단기가 파일 잠금으로 디스크를 다시 썼는데, 건강 상태에서는 파일 오버헤드가 제로이고 다중 엔진 부기도 한 트랜잭션에 합쳐진다. License도 MIT에서 Apache-2.0으로 바뀌어 상용 이용이 한결 편해졌다.
|
|
468
474
|
|
|
469
475
|
그 후 DSH 플러그인에 또 한 층이 더해졌다. 설정 페이지는 다섯 구역에서 여섯 구역으로 늘었고, 새 「引擎」 구역이 argo 본체의 동작 스위치를 패널에 담았다(기존에는 환경 변수뿐). 키 페이지에서는 각 키가 凭证库, 시작 환경, `.env` 중 어디에서 오는지 보이게 됐고, 도구 체크·타임아웃·동시성·연구 상한은 모두 저장 즉시 적용된다. 취소도 연결 수립 단계까지 도달해, AI가 중간에 멈추면 아직 뜨고 있는 argo 서브프로세스는 타임아웃을 기다리지 않고 즉시 죽는다.
|
|
@@ -479,7 +485,7 @@ v2.9.4가 고친 것은 명시 엔진 지정 경로다. --engine X를 지정하
|
|
|
479
485
|
|
|
480
486
|
## 엔진과 라우팅
|
|
481
487
|
|
|
482
|
-
설정에는 현재 **
|
|
488
|
+
설정에는 현재 **272** 소스(**235**개는 키 불필요)와 **97** 도메인이 있습니다 (`config.yaml`, `--list-engines` 참고).
|
|
483
489
|
|
|
484
490
|
### 직접·수직 (발췌)
|
|
485
491
|
|
|
@@ -493,7 +499,8 @@ v2.9.4가 고친 것은 명시 엔진 지정 경로다. --engine X를 지정하
|
|
|
493
499
|
| arxiv / semantic_scholar / openalex | 학술 | mostly free |
|
|
494
500
|
| pubchem / gbif / rfc_editor | 화학 / 종 / 표준 | free |
|
|
495
501
|
| github / stackoverflow / pypi / npm | 코드·패키지 | depends |
|
|
496
|
-
| byted / bocha / metaso / octen | 중국 웹 / AI 검색 | API /
|
|
502
|
+
| byted / bocha / metaso / octen / yuanbao | 중국 웹 / AI 검색 | API / 저비용 |
|
|
503
|
+
| hkex / shfe / cfets / defillama / gleif | 홍콩 공시 / 상기소 / 위안화 중간가 / DeFi / 법인 식별자 | 무료 |
|
|
497
504
|
| zhihu / wechat_sogou | 중국 여론 / WeChat | API / free |
|
|
498
505
|
| tavily / felo / exa | 국제 / 시맨틱 | paid or quota |
|
|
499
506
|
| twitter / reddit / xiaohongshu / bilibili / weibo | 소셜 UGC | free (some need login) |
|
|
@@ -678,126 +685,31 @@ argo/
|
|
|
678
685
|
|
|
679
686
|
## 최근 업데이트
|
|
680
687
|
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
- **여섯 번째 설정 구역 "引擎"**: argo 본체의 28개 동작 스위치를 환경 변수에서 패널로 옮김(캐시 / TF-IDF 재순위 / 수치 교차 검증 / MinHash 중복 제거 / SERP 가드, Jina / 모바일 UA / Parallel 긁기 계층, 의미 증거 계층, 헤지 여유와 꼬리 폭, 엔진 활성화 목록, 프록시, 로컬 검색 루트와 읽기 허용 목록, 웜업 / 사용 로그 / 연결 풀 / 각종 TTL). 새 volatile 설정 `argoEnv`(한 줄에 하나의 `KEY=VALUE`)로 argo 서브프로세스 env에 반영. 이름은 `ARGO_ENV_SPECS` 허용 목록을 거치고 허용 목록 밖은 apply 시점에 loud fail하므로 오타가 조용히 무효가 되는 일을 막는다. 스위치류는 즉시 반영, 숫자·텍스트·목록류는 그룹 저장. 미설정 행은 argo 기본값을 표시하고 "默认"로 표기. 인가 계열 스위치(재계산 실행, 인트라넷 URL)는 의도적으로 패널에 넣지 않음
|
|
684
|
-
- **키 출처 계층이 보이게**: "설정됨 / 미설정 + 출처 계층(凭证库 / 시작 환경 / 프로젝트 .env / 홈 .env) + 읽기 전용 상태"를 표시하고 file 계층 외에는 저장 시 덮어쓰임을 안내. `DEEPSEEK_API_KEY`는 호스트의 `web_search`와 공유임을 명기. `fetchMaxChars`는 저장 시 argo 도구 스키마 상한 50000으로 잘라 "표시값과 실효값의 불일치"를 해소
|
|
685
|
-
- **취소가 연결 수립까지 도달**: `acquireMcp`가 연결 수립 중에도 취소를 인정하게 됨. abort하면 서브프로세스를 죽이고 `WEB_ABORTED`로 마무리하며 타임아웃까지 기다리지 않음. 취소는 단발 폴백에도 관통
|
|
686
|
-
- **수정**: 증거 중복 제거가 대소문자를 삼키지 않게 됨. `effect`가 없는 구형 호스트에서 활성화가 폭발하지 않게 됨. `saveKey` / `setForward` / `toggleTool`이 실시간 스냅샷을 읽어 연속 조작의 레이스로 갱신이 유실되던 문제를 수정. `describe` 응답은 순서 뒤섞임을 방어하고 최신 요청의 응답만 인정
|
|
687
|
-
|
|
688
|
-
### v2.9.7: 아키텍처 수렴——DSH web_fetch 심 + explicit_only 계약 + 상태 계약 통일(License Apache-2.0으로)
|
|
689
|
-
|
|
690
|
-
- **License 변경**: MIT → Apache License 2.0(특허 허가가 명시되어 상용에 더 안전; 그 외 불변)
|
|
691
|
-
- **DSH 플러그인 web_fetch 심**: 호스트 web_fetch가 「이 URL을 읽는다」는 기본 경로로 argo를 완전히 우회했으나, fetch provider를 등록해 argo_fetch 체인을 흐르게 함(HTTP 우선, Cloudflare / JS 렌더링 시 반탐지 브라우저로 자동 승급); search provider와 동형의 쌍로 실행——상주 MCP 풀 우선, 전송층 고장 시에만 CLI 단발 폴백, 도구 레벨 오류와 타임아웃은 재발송 안 함(호출은 이미 끝났으니 재발송은 엔진 호출과 쿼터만 배로); 실패는 다섯 부류(타임아웃 / 차단 / 빈 결과 / 일반 / 취소)로 분류해 실행 가능 문구를 부여; 새 설정 `fetchProviderEnabled` / `fetchProviderId` / `fetchTimeoutMs`(기본 25000) / `fetchMaxChars`(기본 50000)는 기본 전체 개방·탈출구 포함; 실측: 크로스 오리진 점프(단축 링크, 프로토콜 승급, 리다이렉트 껍질)와 JS 챌린지 페이지가 호스트 구조적 실패에서 argo 성공으로, 일반 정적 페이지는 품질 불변
|
|
692
|
-
- **explicit_only 계약 수렴**: `config._routable_filter`는 환경 흑백 목록 / 키 / 차단만 걸러 explicit_only는 걸지 않아, 18개 명시 전용 엔진(유일한 유료 `deepseek_search` 포함)이 enabled 후보 풀에 누운 채 TF-IDF 주입·catch-all·backfill·폴백 등 여섯 경로 전부가 선택할 수 있었음——안 터진 건 코퍼스에 표제어가 없어서뿐, 한 줄 추가하면 auto 단에서 유료 엔진을 병렬 호출해 과금됨; 이제 후보 풀 유일 생산자 한 곳에서 걸러내고 `tests/test_explicit_only_gate.py`가 세 계약(주입 미편입 / 후보 풀 제외 / 명시 `--engine` 정상 단발)을 잠금
|
|
693
|
-
- **상태 계약 통일**: 회로 차단기는 건강 closed 상태에 카운트 0일 때 메모리 단락(파일 잠금 제로·디스크 재기록 제로), `(st_mtime_ns, st_size)`로 크로스 프로세스 변경을 감지; adaptive 부기는 `MAX(created_at)`을 단일 집약 SQL에 통합하고 `batch()` 컨텍스트 매니저로 다중 엔진 부기를 단일 트랜잭션으로; 쿼터 고갈은 유효 자격증명 지문을 기록하고 새 키 교체 시 자동 잠금 해제; route 캐시는 콤보 엔진 고갈 또는 기존 고갈 엔진 회복 시 자동 무효 재계산; `is_engine_routable` 단일 입입 술어가 backfill / tfidf / breaker_filter의 다층 필터를 수렴
|
|
694
|
-
- **스케줄과 전송**: auto / deep 단에서도 쿼터 하드 고갈 엔진을 제거(fail-open 폴백); 헤지 대기 창을 좁히고 조기 정지 판정을 완화(Wave-1 크로스 엔진 누적 충족 시 정지, Wave-2 미기동); POST 연결 풀 개통(anysearch 약 320ms / octen 약 561ms 매번 절약) + MCP 사전 연결; 기상 도메인에 `early_stop_min_results: 1` 추가
|
|
695
|
-
- **하위 기술 열경로 감산**: js-run이 SIGALRM을 MiniRacer 네이티브 timeout으로 교체해 crawl / research / mcp 작업 스레드 호출 시 반드시 던지던 `ValueError: signal only works in main thread` 붕괴를 근절; local-seek 재정렬이 매번 O(N) 읽기와 JSON 파싱을 해소; local-search가 registry를 재사용해 이중 YAML 파싱을 해소; ego-search가 auto 하에서 탐침을 필요 시 단락
|
|
696
|
-
- **검증**: 플러그인 단위 테스트 71 passed; argo 전량 회귀 4264 passed / 28 skipped; pre-commit 일곱 문 123 passed; fetch 체인 대비에서 일반 페이지 비퇴행, 크로스 오리진 점프와 JS 챌린지는 실패→성공
|
|
697
|
-
|
|
698
|
-
### v2.9.6: DeepSeek Search 엔진 + 쿼리 연산자 계약 + 传输층 연결 풀 + 라우팅 스냅샷 문
|
|
699
|
-
|
|
700
|
-
- 새 엔진 `deepseek_search`(공식 `api.deepseek.com/v1/tools/search`) 기본 활성: `DEEPSEEK_API_KEY` 없을 때만 자동 스킵, 나머지 265 소스 무영향; 실측 445-510ms(anysearch 1.7-4.5s / exa 3.7s), authority 권위 등급 / rerank_score / 발행 시각의 셋 중 유일 전항목 커버, ja/ko/es 다언어는 anysearch와 대등; 종량 과금, 도메인 combo에 안 들고, 명시 `--engine deepseek_search`가 주 경로; DSH 호스트는 네이티브 자격증명 seam으로 공식 백엔드와 같은 key 공유(web Models 페이지에서 key 교체 시 다음 홉부터 효력, 저장도 로그도 안 됨)
|
|
701
|
-
- 수정: `--since/--until` 가 deepseek_search에 조용히 무효(TIME_CAPABLE_ENGINES에 추가)
|
|
702
|
-
- 새 `query_operators.py` 쿼리 연산자 계약층: `site:` / `-site:` / `-어` / `-"구"` / `lang:` / `after:` / `before:` 가 다섯 갈래 흩어진 형태에서 구조화 연산자로 수렴; 라우트·캐시·쿼리 이해는 지령을 벗긴 clean_query만 인식; `site:` / `-site:` 가 진짜 후치 필터 실행(서브도메인 매칭, 다중 사이트 OR, 필터 수는 `site_filtered`에), 연산자는 결과 캐시 키에 편입되어 혼선 방지
|
|
703
|
-
- `evidence.py`: Agent 급 이층 요약 `summary` 필드 신설(DeepSeek Search 요약 semantics 참고)
|
|
704
|
-
- 传输층 이중 지불 제거: POST가 풀 연결 재사용(실측 같은 연결 두 번째 요청에서 anysearch 320ms / octen 561ms 절약), 대출 실패 시 재시도와 몸통 읽은 뒤 반납 포함; MCP 사전 연결; 할당량 고갈과 죽은 부정 캐시 수구
|
|
705
|
-
- 라우트: octen이 일반 폴백 사슬 2번째와 TF-IDF 헤지 슬롯에 진입(anysearch 떨림 창 p90 3273→1614ms, max 6266→1928ms, 오류 9→0; 건전 창에서는 중위값 차 없음, 꼬리 보험으로 위치), 도피 스위치 `ARGO_GENERAL_FALLBACK_LEGACY=1`
|
|
706
|
-
- RRF 궤도 격리 명차 감쇠 수정: 한 엔진의 모든 결과가 동점(실측 anysearch 5건 모두 0.017213), 출력이 「엔진 가중치 블록 이어붙이기」로 퇴화; 「같은 엔진 내 점수 엄격 단조 감소」를 잠그는 새 테스트
|
|
707
|
-
- Bing ck/a 리다이렉트 껍질이 환원되지 않아 집합층이 결과를 통째로 걸러냈던 문제 수정(최근 7일 40.2% 빈 결과): 오프라인 base64url 복호로 진링크 환원, 제로 네트워크
|
|
708
|
-
- TF-IDF 리더 combo가 `['anysearch','anysearch']` 를 병렬 두 번 실행하던 문제 수정(할당량 두 배에 wasted_ms는 0 기록): 200건 실제 쿼리 재생, 중복 combo 1→0
|
|
709
|
-
- 검색 개선: 실패 부정 캐시, Nitter 페일오버, 궤도 격리, X Article 추출, 쿼리 에코 방어(조기 정지 거부 + 회복 사슬 엔진 전환)
|
|
710
|
-
- 공학화: `scripts/pre-commit` 속문 신설(static_lint / module_size_gate / usage_doc / consistency / routing_snapshot / context_budget + engine_catalog, 실측 ≈12s); 라우팅 결정 스냅샷 문이 라우트 반전을 diff 가능한 golden으로 변환(세 주석 집합의 합, 115 쿼리, domain과 kind만 비교해 환경 잡음에 의한 오적 없음); 궤도 레지스트리 동기 테스트가 「표의 엔진명은 실등록 필수」를 잠금
|
|
711
|
-
- DSH 플러그인은 DSH 0.2.1-rc.2 대응: 실행 시 입구 듀얼 스택(`startActivation({provider, label, request, signal, delivery})` 새 / `start(provider, request)` 구), rc.2에서 `toolFilter` 제거 후 플러그인 내 tool guard가 워커의 `wide_research` 중첩 호출 차단; rc.2에서 `wide_research`(planner → 2 worker → synthesis, passed=true / 14 sources)와 네이티브 `argo_search`(count=3) 종단간 실측 통과; 0.2.1-alpha.1 호환 분지는 단위 테스트 커버; 플러그인 단위 테스트 46→50
|
|
712
|
-
- DSH 환경 버전: **DSH 0.2.1-rc.2(현행·가동 중, 종단간 실측) + DSH 0.2.1-alpha.1(호환, 구 start 분지는 단위 테스트 커버)**; 대응표는 `packages/dsh-plugin/README.md`의 Compatibility 절
|
|
713
|
-
|
|
714
|
-
### v2.9.5: 환율 전용 도메인 + 2층 중복 제거 + 순위 오진단 수정 + 체크아웃별 daemon 격리
|
|
715
|
-
|
|
716
|
-
- `config.yaml`: 새 도메인 `fx_query` — "위안/달러 환율, 중심환율, 오프쇼어" 질문이 거시 도메인 빈 회전 끝에 백과사전 항목으로 떨어지지 않고 생환율 + 매일 중심환율 뉴스를 돌려준다(실측 675ms, 수정 전은 1411ms이면서 빗나감)
|
|
717
|
-
- `search_rank.py`: 중복 제거를 2층으로 — 제목 사이트 suffix 정규화(제로 의존) + rapidfuzz 퍼지 근접중복 검사(근접 명중 대역 내에서만 가동; `ARGO_DEDUP_FUZZY=0` 으로 차단, 미설치 시 순수 minhash로 자동 폴백)
|
|
718
|
-
- 수정: 열화 리랭크의 제목 구분자 오진단 — `|` / `_` / `——` 를 포함한 제목은 일률 ×0.6으로 공식 문서가 40% 눌렸다; Bocha 키 없는 auto/deep 질문 전체가 영향(판정은 rank_signals 단일 구현으로 수렴)
|
|
719
|
-
- `query_understanding.py`: 부정 이해에 「不是X」 추가(의문형 「是不是」은 부정으로 오진단하지 않음)
|
|
720
|
-
- `daemon.py`: socket/pid/포인터 등 온디스크 이름을 체크아웃별로 격리 — 다중 worktree/clone의 daemon 쟁탈·오살·"변경이 안 먹힘" 세 고장을 근절
|
|
721
|
-
- 새 선택 의존 rapidfuzz(`pip install rapidfuzz`; install.sh가 자동 설치, 미설치여도 코어 기능에 영향 없음)
|
|
722
|
-
|
|
723
|
-
### v2.9.4: 명시적 엔진 도메인 속성 + 복구 체인 차단기 + 게이트 동기화
|
|
724
|
-
|
|
725
|
-
- `route.py`: `--engine X` 시 `match_domains` 보충으로 캐시 TTL 일괄 일반화 수정
|
|
726
|
-
- `recovery.py`: 단일 엔진에 대체 없으면 L1 빈 실행 건너뜀
|
|
727
|
-
- `config.yaml`: `org_entity`에 주주 실사 용어 추가; `fund_query`에 정책 법규 용어 추가
|
|
728
|
-
- `mcp_launch.sh`: `set -a`를 `. "$ENV_FILE"` 한 줄로 축소
|
|
729
|
-
- `sub-skills/local-search/`: 엔진 레지스트리 계층 폐쇄 및 search_v3 품질 향상
|
|
730
|
-
- 게이트 동기화: module_size_gate / ENGINE_CATALOG 정합
|
|
731
|
-
|
|
732
|
-
### v2.9.3: X 게시물 완전 패키징 + 브라우저 로그인 상태 레인 + 로컬 체인 품질·속도 수정
|
|
733
|
-
|
|
734
|
-
- **신규**: `argo tweet` — 한 번의 명령으로 지정 X 게시물의 전문·스레드/인용/리포스트·인터랙션 데이터를 패키징; 기본은 텍스트만, `--out`으로 4파일 세트(post.md/raw.json/manifest.json/CHECKLIST.md), `--media`로 이미지/동영상 필요 시 다운로드; 실패 원인은 산출물에 가시화
|
|
735
|
-
- **신규**: `argo auth` 브라우저 로그인 상태 레인 — `login/status/logout`으로 사이트별 영구 브라우저 프로필 관리; QR을 한 번 스캔하면 로그인 필수 페이지도 가져올 수 있음; 쿠키는 Chrome 자체 암호화 저장소에만 보관되며 argo가 읽지 않고, 로그인 상태 결과에는 `login_state_used`를 붙여 공유 캐시에서 제외(`ARGO_AUTH_FETCH`로 활성화)
|
|
736
|
-
- **정확성**: 중국어 로컬 체인이 Sogou/Baidu 리다이렉트 껍질을 세션 없이 실제 URL로 해석(보존 결과 1→5건); 인텐트 게이트 오잠금 수정("튜토리얼"류 쿼리가 단일 엔진에 고정되지 않음); 철도 테이블 행 식별 URL로 후보 퍼널 압축(10→1)을 실제대로 10→10으로 수정
|
|
737
|
-
- **속도**: 컨센서스 유예 적응화(충분히 전달한 첫 엔진으로 방출; 영어 디스패치 ~3.0s→2.2-2.5s); 로컬 롱테일 조기 중단; 로컬 이미지 핑거프린트를 mmap 행렬곱으로(77k장 158ms→3.9ms, 기본 비활성 `ARGO_LOCAL_IMAGE=1`); 에이전트 소비 자동 슬림화 + markdown 콘텐츠 협상, MCP 호출당 고정 오버헤드 −32%
|
|
738
|
-
- **소스**: 도메인 참조 없는 43개 엔진을 각 도메인에 배선; route_lang 언어 라우팅; 키 불필요 금융 소스 3건 추가; `--academic-deep` 원플래그 학술 멀티소스; 철도 환승·경유 조회
|
|
739
|
-
- **안정성**: js-run을 fetch 체인 첫 번째 레인으로 접선(Chrome 핑거프린트 재시도); jsrun 세션 누수와 백오프 예산 수정; 타임아웃 조임(redskill 60→15s)과 선언 정책 삼분할
|
|
740
|
-
|
|
741
|
-
### v2.9.2: DSH 0.2.1-alpha.1 호환 검증 + 라우팅/가드 수정 + js-run 서브 스킬
|
|
742
|
-
|
|
743
|
-
- **호환성**: DSH 플러그인을 최신 DSH 0.2.1-alpha.1에서 실측 검증 — 네이티브 퍼스트클래스 도구 / web_search seam / wide_research 삼형태 모두 정상 작동; `argo mcp inject`에 WorkBuddy를 추가해 7번째 호스트까지 지원
|
|
744
|
-
- **정확성**: TF-IDF 약증거 보조 소스 강등, 죽은 소스 플로어 + 서킷 브레이커 슬롯 재충전, 쿼터 소진 엔진 격리, serp_guard 오탐 수정
|
|
745
|
-
- **속도와 안정성**: engines/evidence 지연 임포트(import량 −50%), 어드미션 존재 집합 단락(open 261 → 99), MCP 진입/수치 인자 가드; 신규 서브 스킬 `sub-skills/js-run`(브라우저 없이 웹 JS 실행, P50 ≈ 1ms)
|
|
746
|
-
|
|
747
|
-
### v2.9.1: 콘텐츠 품질 최적화 + 콘텐츠 팜 대응 + 최신 환경 적응
|
|
748
|
-
|
|
749
|
-
- **깨끗함**: 콘텐츠 품질 평가를 최적화하고 콘텐츠 팜 대응 능력을 강화 — 검색 결과의 저품질·대량 생성 콘텐츠를 더 효과적으로 식별하고 필터링
|
|
750
|
-
- **호환성**: 최신 버전에 적응하여 현재 환경과 원활하게 협업
|
|
751
|
-
- **안정성**: 로컬 검색에 자체 설치 트리 가드를 추가 — 검색 결과가 argo 자신의 소스 코드로 오염되지 않도록
|
|
752
|
-
|
|
753
|
-
### v2.9.0: 소스 최적화 + 플러그인과 CLI 대등 + 소수 언어
|
|
754
|
-
|
|
755
|
-
- **충실**: 소스 237 → 253(무설정 198 → 219). 14개 소수 언어 로컬 뉴스 소스, CORE 오픈액세스 전문 소스, TinEye 역방향 이미지 검색, Bing RSS 안정 출구 등 추가; 바이두와 소고우 두 상록 소스 부활
|
|
756
|
-
- **정렬**: CLI 18개 명령과 MCP 19개 도구가 일대일 대응 — 플러그인과 CLI 검색 능력이 처음으로 완전히 대등
|
|
757
|
-
- **다국어**: 14개 소수 언어 소스(타이/아랍어/히브리어/그리스어/힌디어/베트남어/터키어/인도네시아어 등) 추가, 쿼리 언어에 따라 자동 배치
|
|
758
|
-
- **고속**: 임포트 체인 −79%, n=200 재랭킹 33ms → 1.5ms, 캐시 적중률은 약 60%에서 거의 미스 없이
|
|
759
|
-
- **신뢰성**: 쿼터 쓰기 경로의 프로세스 간 안전성 수정, 조기 중단 결과가 타임아웃으로 오기되지 않으며, `argo stats`로 검색 품질이 자체 장부를 가짐
|
|
760
|
-
|
|
761
|
-
### v2.8.9: 출력 경량화 + 더 빠르고 풍부한 검색 + 해외 미디어 및 팩트체크 소스 5개
|
|
762
|
-
|
|
763
|
-
- **경량화**: 기본 출력 −66%(같은 결과를 세 번 쓰지 않음); 반복 쿼리 −30%(라우팅 결정 캐시); 느린 네트워크 대기 −36%(주 소스가 0.8초를 넘기면 자동으로 백업 소스 추가 기동)
|
|
764
|
-
- **충실화**: 리콜 +35%, 수집 지연 −30%; 본문 구조 보존 0/6 → 6/6(제목·목록·표가 눌리지 않음); 중국어 콘텐츠가 체계적으로 저품질 판정받지 않음
|
|
765
|
-
- **추가**: 소스 232 → 237(키 불필요 194 → 198, 전부 무료 — The Guardian, France 24, DW, 팩트체크 FactCheck.org / Full Fact 미·영 양권); 죽은 소스 gdelt 폐지
|
|
766
|
-
- **신뢰성**: 숫자가 서로 모순되던 여섯 장부 결함 수정; 6단 퍼널로 0건이 어느 층에서 무너졌는지 특정 가능; 오프라인 재생 도구로 변경 효과를 당일 검증. 자세히는 [릴리스 노트](docs/RELEASE_NOTES_v2.8.9.md)
|
|
767
|
-
|
|
768
|
-
### v2.8.8: 실사용자 버그 수정 + 전면 속도 개선 + 소스 232개
|
|
769
|
-
|
|
770
|
-
- **수정**: 문서 추천 이름으로 키를 설정해도 엔진이 조용히 0건을 반환하던 문제(#12), 수집 체인이 프록시를 무시해 GitHub 같은 사이트가 항상 실패하던 문제(#13) — 이제 `ARGO_PROXY`, config 도메인별 규칙, 표준 프록시 환경변수가 모두 작동하고 `NO_PROXY` 존중
|
|
771
|
-
- **속도**: 명령어 콜드 스타트 2.1s → 0.55s; 프로세스 간 설정 캐시 50–82ms → 16–18ms; 매 검색에 단계별 소요 시간과 예산 소비를 출력해 어디가 느린지 추측 불필요(`--no-timing`으로 비활성화)
|
|
772
|
-
- **신규**: 소스 218 → 232(설정 없이 바로 쓰는 184 → 194, 모두 키 불필요: 중국 트렌드 보드, 보안 취약점, 오픈 액세스 학술, 스킬 디렉터리, 에이전트 검색), 직답 `argo answer`, 웹 관찰 `argo watch`, CLI/MCP 도구면 정렬
|
|
773
|
-
- **안정성**: 3개 OS의 관례 경로(`argo paths` 자기점검 신규), Python 3.9 지원, 조용히 진행되던 성능 저하를 정직하게 기록. 자세한 내용은 [릴리스 노트](docs/RELEASE_NOTES_v2.8.8.md)
|
|
774
|
-
|
|
775
|
-
### v2.8.7: 소스 218개로 확충 + 수정 일괄
|
|
776
|
-
|
|
777
|
-
- **소스 확충**: 168 → 218 소스, 72 → 89 도메인 (StackExchange Q&A, DOI 메타데이터, 취약점 인텔, 제품 수명주기 등 공식 소스 추가), 본문 획득 직통 채널 3개 추가
|
|
778
|
-
- **수정 일괄**: 멀티 엔진 라우팅, 빈 결과 폴백, 중국어 리다이렉트, 로컬 검색 열화 등; 자세한 내용은 [릴리스 노트](docs/RELEASE_NOTES_v2.8.7.md)
|
|
779
|
-
|
|
780
|
-
### v2.8.6: 검색 고속화 + 멀티 소스 분담
|
|
688
|
+
최근 세 버전만 싣습니다. 전체 이력은 [변경 이력](#변경-이력), 각 버전의 상세는 [Releases](https://github.com/taxueseek/argo/releases)에서 볼 수 있습니다.
|
|
781
689
|
|
|
782
|
-
|
|
690
|
+
### 다음 버전: Tencent Yuanbao 검색 + 키 불필요 소스 3종 + 구조화된 실패 목록
|
|
783
691
|
|
|
784
|
-
|
|
692
|
+
- **Yuanbao 검색 추가**: 중국어 1차 정보·공식 성격 소스로, bocha / byted의 포털·자체 미디어 조합을 보완합니다. 중국어 범용 도메인 2순위에 두어 권위 소스 헤지로 씁니다. 키는 `ARGO_YUANBAO_API_KEY`
|
|
693
|
+
- **키 없이 쓸 수 있는 소스 3종 추가**: `tavily_free`, `keenable_free`, `exa` 익명 폴백. 키를 전혀 설정하지 않아도 동작합니다
|
|
694
|
+
- **실패에 대응할 수 있습니다**: 실패마다 소스와 유형을 밝히고 재시도 / 소스 교체 / 키 설정과 권고를 제시하며, `meta.uncertainty` 신뢰도도 함께 옵니다
|
|
695
|
+
- **로컬 설정 오버레이 `config.local.yaml`**: 이 머신의 조정 값이 매 버전에 동봉되는 공개 설정에 더 이상 기록되지 않습니다
|
|
696
|
+
- **DSH 설정 페이지에 엔진 섹션 추가**: argo 본체의 28개 동작 스위치를 환경 변수에서 패널로 옮겼습니다
|
|
785
697
|
|
|
786
|
-
|
|
787
|
-
- **MCP 기본 끔**: 3가지 접속 형태(수요 시 마운트 MCP / 기본 진입 네이티브 도구 / web_search seam); 평소 상주 토큰 비용 0, 19개 도구 전체가 필요하면 profile patch 한 장으로 엶
|
|
788
|
-
- **Windows 호환**(커뮤니티 PR #11): 임시 경로는 시스템 temp, GBK 인코딩 수정, `python3`/`python` 런타임 해석, symlink는 권한 없으면 junction으로 폴백, PowerShell 일괄 설치 `install.ps1` 추가
|
|
789
|
-
- **쿼터 자가 치유**: HTTP 200에 숨은 원격 쿼터 고갈을 감지하고, 라우팅이 해당 엔진을 제외해 백업 소스로 전환, 다음 쿼터 주기에 자동 복귀
|
|
790
|
-
- **페치 전역 deadline**: `ARGO_FETCH_DEADLINE_S`(기본 60s)로 폴백 사슬 총 시간 상한; 429/503 정지 시그널 존중; tinyfish 렌더링 + `.md` 변형 프로브
|
|
698
|
+
### v2.9.7: 아키텍처 수렴 + 호스트 페이지 가져오기를 argo로 + License를 Apache-2.0으로
|
|
791
699
|
|
|
792
|
-
|
|
700
|
+
- **License 변경**: MIT → Apache License 2.0. 특허 허여를 명시한 것이며 사용 방식은 그대로입니다
|
|
701
|
+
- **호스트가 못 가져오던 페이지를 이제 가져옵니다**: 단축 링크 이동, 프로토콜 상향, 리다이렉트 껍질, Cloudflare / JS 챌린지 페이지를 argo의 가져오기 체인이 처리합니다(HTTP 우선, 막히면 브라우저로 자동 승격). 기본 활성, `fetchProviderEnabled`로 끌 수 있습니다
|
|
702
|
+
- **auto 모드가 유료 엔진을 잘못 호출하지 않습니다**: 명시 지정 전용 엔진 18개를 라우팅 후보 풀에서 빼고, `--engine`으로 지목할 때만 씁니다
|
|
703
|
+
- **새 키로 바꾸면 다음 홉에서 복구**: 쿼터를 소진한 엔진이 복구를 기다리지 않으며 라우팅 캐시도 다시 계산됩니다
|
|
704
|
+
- **crawl / research / MCP에서 JS를 실행해도 죽지 않습니다**
|
|
793
705
|
|
|
794
|
-
|
|
795
|
-
- **MCP 연결을 더 이상 손으로 안 고침**: `argo mcp inject`가 Claude Code / Cursor / Windsurf / Codex / OpenCode / Cline에 기록(원자 쓰기 + 백업 + 되돌리기)
|
|
796
|
-
- **간단한 쿼리는 싸게 유지**: 정규화 + 복잡도 게이트 + 소셜/플랫폼 문법 우선 + 중국어 엔진을 버려도 후보를 계속 봄
|
|
797
|
-
- **Keenable**을 무료 체험 웹 검색 소스로 추가
|
|
798
|
-
- **보안**: recompute가 외부 프로세스 출망을 차단; 호스트 경로는 설치 인지
|
|
706
|
+
### v2.9.6: DeepSeek Search 연동 + 쿼리 연산자 + 같은 POST 이중 과금 해소
|
|
799
707
|
|
|
800
|
-
|
|
708
|
+
- **새 `deepseek_search` 엔진**: 445-510ms이며, 권위 등급·rerank_score·게시 시각 세 항목을 모두 갖춘 것은 세 엔진 중 이것뿐입니다. `--since/--until`이 실제로 동작합니다. 호출당 과금이고 `DEEPSEEK_API_KEY`가 필요하며, 키가 없으면 자동으로 건너뜁니다
|
|
709
|
+
- **쿼리 연산자를 하나의 계약으로 통합**: `site:` / `-site:` / `-단어` / `lang:` / `after:` / `before:`를 일관되게 해석하고, `site:`는 실제 후처리 필터로 동작합니다
|
|
710
|
+
- **같은 POST에 두 번 과금하지 않습니다**: 연결 풀 재사용으로 같은 연결의 두 번째 요청에서 320ms(anysearch) / 561ms(octen)를 아낍니다
|
|
711
|
+
- **링크 해석과 정렬 결함 2건 수정**: 같은 엔진 결과가 모두 동점이라 출력이 평탄해지던 문제, Bing 리다이렉트 껍질을 복원하지 못해 최근 7일 동안 쿼리의 40.2%가 결과를 얻지 못하던 문제
|
|
712
|
+
- **라우팅 판단에 스냅샷 게이트 추가**: 경로 반전이 조용히 일어나지 않고 diff 가능한 golden이 됩니다
|
|
801
713
|
|
|
802
714
|
---
|
|
803
715
|
|
|
@@ -805,30 +717,31 @@ argo/
|
|
|
805
717
|
|
|
806
718
|
| 버전 | 비고 |
|
|
807
719
|
|---------|-------|
|
|
808
|
-
| **v2.9.
|
|
809
|
-
| **v2.9.
|
|
810
|
-
| **v2.9.
|
|
811
|
-
| **v2.9.
|
|
812
|
-
| **v2.9.
|
|
813
|
-
| **v2.9.
|
|
814
|
-
| **v2.9.
|
|
815
|
-
| **v2.9.
|
|
816
|
-
| **v2.
|
|
817
|
-
| **v2.8.
|
|
818
|
-
| **v2.8.
|
|
819
|
-
| **v2.8.
|
|
820
|
-
| **v2.8.
|
|
821
|
-
| **v2.8.
|
|
822
|
-
| **v2.8.
|
|
823
|
-
| **v2.8.
|
|
824
|
-
| **v2.8.
|
|
825
|
-
| **v2.
|
|
720
|
+
| **v2.9.8** | **라우팅 정밀도 감사 + issue #18/#19 수정 + 테스트 상태 격리**: 실제 쿼리 재생으로 16개 클래스 오탐(브랜드/제품명, 필드명, ASCII 부분 문자열)을 좁히고, SERP 커버리지 게이트와 CJK 교차 검증을 추가했습니다. nightly 빈 로그, people_daily 기본 feed, 캐시 적중 가드를 고쳤고, adaptive/breaker 상태를 테스트별로 격리했습니다. 재현과 진단을 도와준 @wpp666에게 감사합니다. 자세한 내용은 [릴리스 노트](docs/RELEASE_NOTES_v2.9.8.md). |
|
|
721
|
+
| **v2.9.7** | **아키텍처 수렴 + DSH web_fetch 심 + License Apache-2.0으로**: MIT에서 Apache License 2.0으로 바뀌었고, 호스트 web_fetch가 argo 가져오기 체인을 흐릅니다. auto 모드는 명시 지정 전용 엔진 18개를 후보 풀에서 제외합니다. |
|
|
722
|
+
| **v2.9.6** | **DeepSeek Search 엔진 + 쿼리 연산자 계약 + 전송층 연결 풀 + 라우팅 스냅샷 게이트**: 새 `deepseek_search` 엔진은 445-510ms로 합류했고, 연결 풀 재사용으로 같은 POST 재호출에서 320-561ms를 아낍니다. `site:` 연산자는 실제 후처리 필터입니다. |
|
|
723
|
+
| **v2.9.5** | **환율 전용 도메인 + 2층 중복 제거 + 순위 오진단 수정 + 체크아웃별 daemon 격리**: 환율 질문이 새 전용 도메인으로 675ms에 즉시 답하고, 중복 제거에 퍼지 재확인이 더해져 구분자 있는 제목의 공식 문서가 뒤로 밀리지 않습니다. |
|
|
724
|
+
| **v2.9.4** | **명시적 엔진 도메인 속성 + 복구 체인 차단기 + 게이트 동기화**: `--engine X`로 지정한 경로도 캐시 TTL이 도메인을 따르고, 대체 엔진이 없으면 같은 엔진을 공회전하지 않습니다. |
|
|
725
|
+
| **v2.9.3** | **X 게시물 완전 패키징 + 브라우저 로그인 상태 레인 + 로컬 체인 품질·속도 수정**: 새 `argo tweet`이 X 게시물을 한 세트로 묶고(`--out` 4파일), `argo auth`가 사이트별 로그인 상태를 유지합니다. 리다이렉트 껍질은 세션 없이 풀려 보존 1→5. |
|
|
726
|
+
| **v2.9.2** | **DSH 0.2.1-alpha.1 호환 검증 + 라우팅/가드 수정 일괄 + js-run 서브 스킬**: 플러그인 세 형태가 DSH 0.2.1-alpha.1에서 동작하고, `argo mcp inject`가 WorkBuddy까지 지원합니다. js-run은 브라우저 없이 웹 JS를 1ms에 실행합니다. |
|
|
727
|
+
| **v2.9.1** | **콘텐츠 품질 최적화 + 콘텐츠 팜 대응 + 최신 버전 적응**: 저품질 대량 생성 콘텐츠를 더 잘 걸러내고, 로컬 검색 결과가 자기 설치 트리로 오염되지 않도록 가드를 넣었습니다. |
|
|
728
|
+
| **v2.9.0** | **소스 최적화 + 플러그인과 CLI 대등 + 다국어 소수 언어**: 소스가 237→253(무설정 198→219)로 늘고 재랭킹이 33ms→1.5ms로 빨라졌습니다. 명령줄과 플러그인이 같은 기능을 쓰고 `argo stats`가 로컬 사용 로그를 보여줍니다. 자세히는 [릴리스 노트](docs/RELEASE_NOTES_v2.9.0.md) |
|
|
729
|
+
| **v2.8.9** | **출력 경량화 + 더 빠르고 풍부한 검색 + 해외 미디어 및 팩트체크 소스 5개**: 기본 출력이 15.5KB→5.2KB로 줄고(`--envelope`로 복원), 반복 쿼리는 라우팅 캐시로 30% 빨라졌습니다. 키 불필요 소스 5개가 늘어 235→237. 자세히는 [릴리스 노트](docs/RELEASE_NOTES_v2.8.9.md) |
|
|
730
|
+
| **v2.8.8** | **실사용자 신고 수정(#12 키 별칭 무음 실패, #13 프록시 미지원 수집) + 전면 속도 개선 + 소스 218 → 235**: 출구 디스패치를 통일해 `ARGO_PROXY`가 모든 경로에 적용되고 #12·#13 신고가 수정됐습니다. 콜드 스타트 2.1s→0.55s, 소스 218→235. 자세히는 [릴리스 노트](docs/RELEASE_NOTES_v2.8.8.md) |
|
|
731
|
+
| **v2.8.7** | **218 소스 / 89 도메인 + 본문 직출 3채널 + 라우팅 발화 규율 + macro 제로 결과 수정**: 소스 50개(법령·표준·보안·학술·뉴스 등)를 더하고, 가져오기 체인 앞단에 llms.txt와 `.md` 직접 출력 프로브를 넣었습니다. 중국 거시 조회는 국가통계국을 우선합니다. 자세히는 [릴리스 노트](docs/RELEASE_NOTES_v2.8.7.md) |
|
|
732
|
+
| **v2.8.6** | **hedged 레이싱 + 지후 3소스 분담 + 선언적 언어 디스패치 + 도달성 게이트 + 학술 검색 프로토콜**: 빠른 엔진은 한 번만 호출하는 헤지 레이싱이 들어가고, 지후를 3개 소스로 나눠 맡깁니다. 학술 쿼리는 논문 소스로 보내고 지리 꼬리 지연이 56% 줄었습니다. 자세히는 [릴리스 노트](docs/RELEASE_NOTES_v2.8.6.md) |
|
|
733
|
+
| **v2.8.5** | **DSH 플러그인 도구 네이티브화 + MCP 기본 끔 + Windows 호환 + 쿼터 자가 치유 + 페치 deadline**: `argo_search`/`argo_fetch`가 기본 네이티브 도구가 되고 MCP는 필요 시 켭니다. 쿼터가 소진돼도 복구되고, 가져오기 상한은 `ARGO_FETCH_DEADLINE_S`입니다. [릴리스 노트](docs/RELEASE_NOTES_v2.8.5.md) |
|
|
734
|
+
| **v2.8.4** | **로컬 데이터 융합 + 다중 클라이언트 MCP 주입 + 구조화 검색 + Keenable**: 연구가 로컬 파일을 1차 데이터로 쓰고(`--include-local`), `argo mcp inject`가 여러 클라이언트에 MCP를 주입합니다. Keenable 무료 체험도 들어왔습니다. [릴리스 노트](docs/RELEASE_NOTES_v2.8.4.md) |
|
|
735
|
+
| **v2.8.3** | **다국어 라우팅 수정 + 프로세스 내 anysearch + weighted RRF**: 일본어·한국어 질의가 해당 언어 결과를 돌려주고, 독일어·프랑스어·스페인어·이탈리아어는 프로세스 내 anysearch가 맡습니다. [릴리스 노트](docs/RELEASE_NOTES_v2.8.3.md) |
|
|
736
|
+
| **v2.8.2** | **Windows + 증거 의미 통일**: Windows에서 npm `os` 제한이 풀리고 GBK 환경 크래시를 UTF-8로 막았습니다. 증거 점수의 의미도 하나로 통일했습니다. [릴리스 노트](docs/RELEASE_NOTES_v2.8.2.md) |
|
|
737
|
+
| **v2.8.0** | **증거 루프 + 구직 v3 + 날씨 쌍소스**: `--verify`로 증거 검증 루프를 돌리고 `argo job`이 채용 정보를 모읍니다. 날씨는 wttr.in + Open-Meteo 두 소스로 확인합니다. [릴리스 노트](docs/RELEASE_NOTES_v2.8.0.md) |
|
|
738
|
+
| **v2.7.3** | TF-IDF로 수직 엔진 25개를 활성화하고, 도메인 70개의 TTL과 중국어·영어 수직 검색을 정리했습니다. [릴리스 노트](docs/RELEASE_NOTES_v2.7.3.md) |
|
|
826
739
|
| **v2.7.2** | 로그인 상태 전문 검색(ego-search, 기본 꺼짐); 한일 쿼리가 중국어 엔진에 섞이지 않음. [릴리스 노트](docs/RELEASE_NOTES_v2.7.2.md) |
|
|
827
740
|
| **v2.7.1** | SSRF 강화 + 라우팅 헬스 의미 수정. [릴리스 노트](docs/RELEASE_NOTES_v2.7.1.md) |
|
|
828
|
-
| **v2.7.0** | **수직 구조화 모달 카드**:
|
|
829
|
-
| **v2.6.2** |
|
|
830
|
-
| **v2.6.1** | v2.6.0
|
|
831
|
-
| **v2.6.0** |
|
|
741
|
+
| **v2.7.0** | **수직 구조화 모달 카드**: 기차표·유가·귀금속·만년력·별자리·휴대폰·자동차·진료 예약 같은 실시간 카드를 한 가지 형식으로 인식합니다. 내장 bocha 엔진의 파싱 결함도 고쳤습니다. 자세히는 [릴리스 노트](docs/RELEASE_NOTES_v2.7.0.md) |
|
|
742
|
+
| **v2.6.2** | 네트워크 환경 인지, 가중 RRF와 시맨틱 캐시, 적응형 엔진 비활성화, 콘텐츠 안전과 쿼리 변형, 일·한 도메인 라우팅을 한 번에 통합했습니다. 자세히는 [릴리스 노트](docs/RELEASE_NOTES_v2.6.2.md) |
|
|
743
|
+
| **v2.6.1** | v2.6.0 수정판입니다. 「capital of」 같은 질문이 팩트체크 도메인을 가로채지 않도록 라우팅을 고쳤습니다. 자세히는 [릴리스 노트](docs/RELEASE_NOTES_v2.6.1.md) |
|
|
744
|
+
| **v2.6.0** | 다국어 검색이 들어가고(언어 감지, 엔진 파라미터, 교차 언어 폴백), 영화·스포츠·지리·조직·미디어 수직과 소스 120개 이상을 확보했습니다. [릴리스 노트](docs/RELEASE_NOTES_v2.6.0.md) |
|
|
832
745
|
| **v2.5.1** | 금융/매크로/화학 답형 소스 강화; 엔진 티어 + combo 예산; [v2.5.1 notes](docs/RELEASE_NOTES_v2.5.1.md) |
|
|
833
746
|
| **v2.5.0** | 설치 스크립트 + npx; rewrite와 라우팅 분리; hot-path 캐시; compact MCP |
|
|
834
747
|
| **v2.4.0** | 저점수 라우트 폴백 + 소셜 오라우트 필터; 캐시 depth / soft hits; breakers & negative cache; `engine_outcomes` |
|