argo-search 2.9.7 → 2.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +73 -150
- package/README.es.md +73 -150
- package/README.ja.md +79 -156
- package/README.ko.md +78 -155
- package/README.md +80 -159
- package/SKILL.md +3 -3
- package/assets/readme/hero.svg +2 -2
- package/backends/domain_profiles.json +48 -0
- package/backends/engine_registry.yaml +118 -4
- package/backends/quota_profiles.json +92 -12
- package/backends/source_types_cn.json +27 -1
- package/bin/argo +78 -5
- package/bin/argo.js +33 -2
- package/config.yaml +269 -63
- package/docs/ARGO_INTRO.md +5 -3
- package/docs/ENGINE_CATALOG.md +50 -39
- package/docs/MCP_SETUP.md +3 -1
- package/docs/RELEASE_NOTES_v2.9.8.md +73 -0
- package/docs/RELEASE_NOTES_v2.9.9.md +78 -0
- package/engines/specs/cfets.yaml +41 -0
- package/engines/specs/defillama.yaml +38 -0
- package/engines/specs/firecrawl.yaml +1 -1
- package/engines/specs/fxtwitter.yaml +5 -0
- package/engines/specs/gleif.yaml +55 -0
- package/engines/specs/hkex.yaml +40 -0
- package/engines/specs/keenable_free.yaml +36 -0
- package/engines/specs/shfe.yaml +39 -0
- package/engines/specs/stackexchange.yaml +2 -2
- package/engines/specs/tavily_free.yaml +56 -0
- package/engines/specs/yuanbao.yaml +93 -0
- package/mcp/clients.yaml +32 -0
- package/package.json +7 -2
- package/packages/dsh-plugin/README.md +25 -6
- package/packages/dsh-plugin/dsh/client.js +402 -47
- package/packages/dsh-plugin/dsh/diagnostics.js +97 -0
- package/packages/dsh-plugin/dsh/index.js +135 -1876
- package/packages/dsh-plugin/dsh/native-tools.mjs +7 -1
- package/packages/dsh-plugin/dsh/runner.js +666 -0
- package/packages/dsh-plugin/dsh/wide-research.js +878 -0
- package/packages/dsh-plugin/package.json +3 -3
- package/packages/dsh-plugin/scripts/sync-local.sh +70 -0
- package/packages/dsh-plugin/test/client.test.js +177 -2
- package/packages/dsh-plugin/test/diagnostics.test.js +28 -0
- package/packages/dsh-plugin/test/index.test.js +44 -0
- package/scripts/adaptive.py +126 -43
- package/scripts/article_meta.py +131 -0
- package/scripts/bench_tail_ab.py +281 -0
- package/scripts/bounded_run.py +91 -49
- package/scripts/budget.py +247 -0
- package/scripts/budget_cli.py +93 -0
- package/scripts/build_release_assets.sh +65 -0
- package/scripts/cache.py +60 -72
- package/scripts/ci_drift_gate.py +90 -0
- package/scripts/clock_bridge.py +22 -0
- package/scripts/content_boundary.py +46 -0
- package/scripts/content_security.py +119 -4
- package/scripts/content_signals.py +26 -5
- package/scripts/cross_lingual_trace.py +293 -0
- package/scripts/dispatch_result.py +105 -0
- package/scripts/engine_add.py +602 -0
- package/scripts/engine_dispatch.py +58 -86
- package/scripts/engine_env.py +5 -0
- package/scripts/engine_families.py +6 -0
- package/scripts/engine_policy.py +7 -7
- package/scripts/engines.py +21 -0
- package/scripts/engines_base.py +3 -3
- package/scripts/engines_builders.py +12 -0
- package/scripts/engines_builders_batch10.py +48 -3
- package/scripts/engines_builders_batch14.py +656 -0
- package/scripts/engines_builders_batch15.py +249 -0
- package/scripts/engines_builders_keyless.py +111 -0
- package/scripts/engines_builders_tech.py +0 -1
- package/scripts/evidence.py +31 -3
- package/scripts/evidence_loop.py +58 -22
- package/scripts/fetch_quality.py +13 -0
- package/scripts/fetch_v3.py +28 -3
- package/scripts/gen_routing_snapshot.py +11 -0
- package/scripts/http_client.py +24 -38
- package/scripts/install.ps1 +18 -0
- package/scripts/install.sh +16 -1
- package/scripts/job.py +3 -3
- package/scripts/local_seek.py +41 -5
- package/scripts/macro_countries.py +15 -0
- package/scripts/matrix_search_eval.py +192 -0
- package/scripts/mcp_compact.py +234 -0
- package/scripts/mcp_handlers.py +60 -642
- package/scripts/mcp_launch.sh +10 -8
- package/scripts/mcp_local.py +241 -0
- package/scripts/mcp_server.py +19 -14
- package/scripts/mcp_setup.py +33 -9
- package/scripts/mcp_tools.py +1 -0
- package/scripts/mcp_transport.py +1 -1
- package/scripts/mcp_warm.py +127 -0
- package/scripts/net_proxy.py +27 -0
- package/scripts/output_transparency.py +200 -0
- package/scripts/paid_policy.py +98 -0
- package/scripts/quota.py +158 -13
- package/scripts/recovery.py +7 -3
- package/scripts/recovery_runner.py +150 -0
- package/scripts/replay_eval.py +18 -0
- package/scripts/research.py +37 -21
- package/scripts/research_expand.py +24 -1
- package/scripts/retry_policy.py +76 -0
- package/scripts/route.py +6 -6
- package/scripts/route_cache.py +18 -0
- package/scripts/route_combo.py +26 -5
- package/scripts/route_domains.py +170 -31
- package/scripts/safe_conn.py +52 -0
- package/scripts/search.py +15 -27
- package/scripts/search_attribution.py +100 -3
- package/scripts/search_cli.py +24 -11
- package/scripts/search_entry.py +8 -1
- package/scripts/search_output.py +99 -15
- package/scripts/search_pipeline.py +62 -195
- package/scripts/search_rank.py +6 -0
- package/scripts/search_types.py +107 -9
- package/scripts/semantic_evidence.py +179 -3
- package/scripts/serp_guard.py +138 -7
- package/scripts/serp_kill_log.py +25 -2
- package/scripts/stats_cli.py +13 -1
- package/scripts/tail_completion.py +212 -0
- package/scripts/url_safety.py +126 -3
- package/scripts/usage_log.py +45 -0
- package/scripts/wide_research.py +45 -0
- package/scripts/zhihu_quota.py +139 -0
- package/sub-skills/local-search/bm25.py +27 -3
- package/sub-skills/local-search/cli_runner.py +331 -0
- package/sub-skills/local-search/parsers.py +328 -0
- package/sub-skills/local-search/search_v3.py +31 -674
- package/sub-skills/local-seek/scripts/seek_rank.py +7 -3
- package/assets/readme/settings-keys.png +0 -0
- package/assets/readme/settings-tools.png +0 -0
- package/sub-skills/ego-search/references/browser-runtime.md +0 -43
- package/sub-skills/ego-search/references/install.md +0 -67
- package/sub-skills/ego-search/references/original-ego-upgrade.md +0 -51
- package/sub-skills/ego-search/tests/test_query_normalize.py +0 -68
- package/sub-skills/js-run/tests/fixtures/challenge_like.js +0 -27
- package/sub-skills/js-run/tests/test_jsrun.py +0 -165
- package/sub-skills/local-seek/references/auto-behaviors.md +0 -24
- package/sub-skills/local-seek/references/fd-mdfind-recipes.md +0 -62
- package/sub-skills/local-seek/references/git-integration.md +0 -54
- package/sub-skills/local-seek/references/remote-handoff.md +0 -46
- package/sub-skills/local-seek/references/rg-recipes.md +0 -96
- package/sub-skills/local-seek/references/strategies.md +0 -52
- package/sub-skills/local-seek/references/structural-search.md +0 -59
- package/sub-skills/local-seek/tests/test_content_rank.py +0 -222
- package/sub-skills/local-seek/tests/test_determinism_20261006.py +0 -145
- package/sub-skills/local-seek/tests/test_noise_tier.py +0 -101
- package/sub-skills/local-seek/tests/test_pcre2_probe.py +0 -136
- package/sub-skills/local-seek/tests/test_rank_pinyin.py +0 -77
- package/sub-skills/local-seek/tests/test_regression_20261003.py +0 -169
- package/sub-skills/local-seek/tests/test_regression_20261006.py +0 -146
- package/sub-skills/local-seek/tests/test_seek_degradation.py +0 -111
- package/sub-skills/local-seek/tests/test_seek_fts.py +0 -313
package/README.es.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="assets/readme/hero.svg" width="100%" alt="Argo: búsqueda e investigación profunda para agentes,
|
|
2
|
+
<img src="assets/readme/hero.svg" width="100%" alt="Argo: búsqueda e investigación profunda para agentes, 272 fuentes de búsqueda, enrutamiento por dominio e idioma y evidencia absorbible como salida">
|
|
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.9-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
|
## Qué es
|
|
37
37
|
|
|
38
|
-
**Argo es una herramienta de búsqueda e investigación profunda que vive dentro del agente, y también puede obtener información de las páginas web relevantes. Detrás tiene
|
|
38
|
+
**Argo es una herramienta de búsqueda e investigación profunda que vive dentro del agente, y también puede obtener información de las páginas web relevantes. Detrás tiene 272 fuentes de búsqueda que cubren 97 dominios de negocio, además de búsqueda básica sobre archivos locales. Entre los proyectos de búsqueda de código abierto, su capacidad de búsqueda es muy potente.**
|
|
39
39
|
|
|
40
40
|
Permite configurar claves API para mejorar la calidad de búsqueda (las fuentes con clave suelen dar mejores resultados; si falta la clave, se omiten automáticamente), y también cuenta con motores gratuitos y locales como red de seguridad automática. Cubre 18 idiomas, entre ellos chino, inglés, japonés y coreano, y da soporte a escenarios verticales como finanzas, academia, cine, deportes, código y macroeconomía.
|
|
41
41
|
|
|
@@ -57,7 +57,8 @@ Las cuatro sub-habilidades cubren la cadena completa, desde buscar en la máquin
|
|
|
57
57
|
Argo también es un plugin de DeepSeek Harness: se instala con una sola línea.
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
dsh plugin --profile web add
|
|
60
|
+
dsh plugin --profile web add argo-search # versión npm
|
|
61
|
+
dsh plugin --profile web add "github:taxueseek/argo" # GitHub main
|
|
61
62
|
```
|
|
62
63
|
|
|
63
64
|
Tras instalarlo, reinicia `dsh web` y queda activo. La búsqueda y el fetch pasan a ser herramientas nativas de primera clase: no dependen de una conexión MCP ni ocupan contexto permanente. Además hay 1 `wide_research` de investigación en paralelo y 19 herramientas MCP que se activan bajo demanda. Las formas de integrarlo están más abajo.
|
|
@@ -81,11 +82,15 @@ Para una pregunta cotidiana usa `argo_search`; para forense con un solo agente u
|
|
|
81
82
|
El plugin incluye una página de ajustes del lado del navegador con dos entradas: el elemento "Argo" del menú izquierdo del popup de ajustes (`Cmd+,`), o Ajustes > Plugins > Argo (una tarjeta de resumen del mismo panel: clic para abrir).
|
|
82
83
|
|
|
83
84
|
<p align="center">
|
|
84
|
-
<img src="assets/readme/settings-tools.
|
|
85
|
+
<img src="assets/readme/settings-tools.webp" width="100%" alt="Ajustes de Argo, Herramientas: 18 herramientas nativas — argo_search / argo_fetch activos en la ruta caliente, 16 de cola larga bajo demanda, con tiempo de espera y límite de texto debajo">
|
|
85
86
|
</p>
|
|
86
87
|
|
|
87
88
|
<p align="center">
|
|
88
|
-
<img src="assets/readme/settings-
|
|
89
|
+
<img src="assets/readme/settings-engines.webp" width="100%" alt="Ajustes de Argo, Motores: los 28 interruptores de comportamiento del núcleo pasan al panel — caché / rerank TF-IDF / cotejo numérico / dedup MinHash / guardia SERP y umbral de dedup; las filas sin configurar muestran el valor por defecto y se aplican al guardar">
|
|
90
|
+
</p>
|
|
91
|
+
|
|
92
|
+
<p align="center">
|
|
93
|
+
<img src="assets/readme/settings-keys.webp" width="100%" alt="Ajustes de Argo, Claves: la búsqueda oficial de DeepSeek aparece como «configurada · almacén de credenciales» y comparte una clave con el web_search del host; las claves de Tencent Yuanbao / Tavily se definen, actualizan o borran sin mostrar el texto plano">
|
|
89
94
|
</p>
|
|
90
95
|
|
|
91
96
|
| Sección | Qué controla |
|
|
@@ -118,7 +123,7 @@ Guardar surte efecto de inmediato (todo es configuración volátil): el conjunto
|
|
|
118
123
|
|
|
119
124
|
## Ventajas principales
|
|
120
125
|
|
|
121
|
-
**
|
|
126
|
+
**272 fuentes, 235 disponibles sin clave desde el primer momento.** Funciona sin configurar ninguna clave API: los motores gratuitos y locales actúan como red de seguridad. Las fuentes con clave suelen ofrecer mejor calidad; si no hay clave, se omiten. Una instalación y cubres todos los escenarios.
|
|
122
127
|
|
|
123
128
|
**Búsqueda local y búsqueda web en una sola pieza.** Es una capacidad que solo tiene Argo. La búsqueda de archivos locales se apoya en las herramientas que los desarrolladores usan a diario, como rg y mdfind, y busca símbolos de código, nombres de archivo, texto completo de documentos y estructura de archivos. Con un interruptor, los aciertos locales se integran en la misma búsqueda web, marcados como archivos de la máquina. Cuando escribes y recuerdas que hace medio año anotaste algo pero no dónde, esto es más rápido que navegar carpetas.
|
|
124
129
|
|
|
@@ -140,8 +145,10 @@ Funciona sin configuración. Tres formas de instalarlo, elige la que te acomode:
|
|
|
140
145
|
# Opción 1: script de instalación (recomendado para uso local a largo plazo)
|
|
141
146
|
curl -fsSL https://raw.githubusercontent.com/taxueseek/argo/main/scripts/install.sh | bash
|
|
142
147
|
|
|
143
|
-
# Opción 2:
|
|
144
|
-
|
|
148
|
+
# Opción 2: npm / npx (soportado, versión actual 2.9.9; se publica por tag, versión fija)
|
|
149
|
+
npm install -g argo-search # instala la CLI globalmente
|
|
150
|
+
npx -y argo-search # o úsalo sin instalar
|
|
151
|
+
npx -y github:taxueseek/argo # para seguir el último commit de main
|
|
145
152
|
|
|
146
153
|
# Opción 3: git clone (desarrollo / modificar el código)
|
|
147
154
|
git clone https://github.com/taxueseek/argo.git
|
|
@@ -170,7 +177,7 @@ Argo admite cuatro formas de integración; elige según tu caso:
|
|
|
170
177
|
| **MCP Server** | Agente montado de forma permanente | 19 herramientas de búsqueda siempre disponibles; un comando las inyecta en Claude Code / Cursor / Windsurf / Codex / OpenCode / Cline, con copia de seguridad automática antes de escribir la configuración |
|
|
171
178
|
| **Plugin DSH** | Usuarios de DeepSeek Harness | Se instala con una línea de `dsh plugin add`; búsqueda y fetch pasan a ser herramientas nativas de primera clase, sin conexión MCP y sin coste de contexto permanente; incluye una página de ajustes de seis secciones efectiva al guardar |
|
|
172
179
|
| **Archivo Skill** | Claude Code / Grok Build / Kimi, etc. | El paquete de habilidades va al directorio de skills del agente; cuando dices «búscame esto» o «verifícalo», él busca solo |
|
|
173
|
-
| **npx al paso** | Probar rápido | `npx -y github:taxueseek/argo
|
|
180
|
+
| **npx al paso** | Probar rápido | `npx -y argo-search` (versión npm) o `npx -y github:taxueseek/argo` (main), sin instalar; ideal para montar el MCP temporalmente en cualquier cliente |
|
|
174
181
|
|
|
175
182
|
Las cuatro formas comparten el mismo código Python por debajo; la CLI y las herramientas MCP se corresponden una a una, así que elijas la que elijas no pierdes capacidades.
|
|
176
183
|
|
|
@@ -200,10 +207,10 @@ Las cuatro formas comparten el mismo código Python por debajo; la CLI y las her
|
|
|
200
207
|
1. **De enlaces a evidencia.** Los agentes necesitan material estructurado, verificable y compacto — Argo devuelve JSON con desglose de credibilidad.
|
|
201
208
|
2. **El contexto es el primer coste.** Argo perfil agente: ~3,7KB por llamada, con presupuestos de bytes fijados por gates.
|
|
202
209
|
3. **Los sitios preparan contenido para IA.** llms.txt y `.md` se extienden — la cadena de fetch los sondea en el nivel 0, con lector r.jina.ai como respaldo.
|
|
203
|
-
4. **El ecosistema libre basta.** APIs abiertas de gobiernos/academia/estándares/seguridad + motores sin clave cubren la mayoría de dominios (
|
|
210
|
+
4. **El ecosistema libre basta.** APIs abiertas de gobiernos/academia/estándares/seguridad + motores sin clave cubren la mayoría de dominios (235 sin clave).
|
|
204
211
|
5. **Calidad medible.** Pisos golden de ranking, gates de ablación de fusión y controles negativos de enrutamiento.
|
|
205
212
|
|
|
206
|
-
> v2.9.
|
|
213
|
+
> Los cinco puntos ya están implementados en la serie v2.9.x: 272 fuentes, 97 dominios, 235 sin clave.
|
|
207
214
|
|
|
208
215
|
---
|
|
209
216
|
|
|
@@ -273,7 +280,7 @@ Los resultados incluyen `selection`, `absorption`, `credibility_fast`, `evidence
|
|
|
273
280
|
|
|
274
281
|
## Inicio rápido
|
|
275
282
|
|
|
276
|
-
Elige cualquier camino. **
|
|
283
|
+
Elige cualquier camino. **La instalación por npm está soportada y la versión actual es 2.9.9**, publicada desde este repo igual que GitHub. La ruta npm usa `npm install -g argo-search` o `npx -y argo-search`, se publica por tag, con versión fija y menos descarga. La ruta GitHub usa `install.sh` / `install.ps1` o `npx github:taxueseek/argo` y sigue main. A partir de ahora, cada tag hace que la CI publique los dos paquetes npm junto con el GitHub Release; el v1.0.1 antiguo del registro es una versión histórica, no fijes esa.
|
|
277
284
|
|
|
278
285
|
**Funciona sin configuración**: sin claves API corren motores gratis + `local_*` locales; los que requieren clave se omiten si faltan (y suelen mejorar cuando están).
|
|
279
286
|
|
|
@@ -343,9 +350,11 @@ Dos caminos dentro de DeepSeek Harness:
|
|
|
343
350
|
|
|
344
351
|
```bash
|
|
345
352
|
# A: 19 herramientas mcp__argo__* (bundle del paquete principal, igual que el MCP completo)
|
|
346
|
-
dsh plugin --profile web add
|
|
353
|
+
dsh plugin --profile web add argo-search # versión npm
|
|
354
|
+
dsh plugin --profile web add "github:taxueseek/argo" # GitHub main
|
|
347
355
|
|
|
348
356
|
# B: herramientas de búsqueda + orquestación wide_research (subpaquete)
|
|
357
|
+
dsh plugin --profile web add @taxueseek/argo-dsh # versión npm
|
|
349
358
|
dsh plugin --profile web add "github:taxueseek/argo#main&path:packages/dsh-plugin"
|
|
350
359
|
```
|
|
351
360
|
|
|
@@ -456,14 +465,18 @@ python3 scripts/search.py --list-engines
|
|
|
456
465
|
| `deep` | investigación, sondeos | calidad primero; más motores |
|
|
457
466
|
| `budget` | cuota justa | control de cuota; degrada al agotarse |
|
|
458
467
|
|
|
459
|
-
### Conjunto aproximado de capacidades (v2.9.
|
|
468
|
+
### Conjunto aproximado de capacidades (v2.9.9)
|
|
460
469
|
|
|
461
|
-
Lo que hace Argo, en una frase: manda cada pregunta a las fuentes adecuadas según dominio e idioma, ordena lo que vuelve por credibilidad y devuelve al agente material que puede ordenar y verificar. Búsqueda, captura, verificación de evidencia y búsqueda de archivos locales comparten una sola tubería, 19 herramientas MCP se corresponden una a una con los comandos CLI, así que ninguna capacidad falta en la forma que instales. Algunos comandos sueltos completan el conjunto: argo tweet empaqueta un post de X, argo auth gestiona el estado de sesión y argo job agrega ofertas de empleo. El catálogo completo, con coste, clave y estado de cada fuente, está en docs/ENGINE_CATALOG.md:
|
|
470
|
+
Lo que hace Argo, en una frase: manda cada pregunta a las fuentes adecuadas según dominio e idioma, ordena lo que vuelve por credibilidad y devuelve al agente material que puede ordenar y verificar. Búsqueda, captura, verificación de evidencia y búsqueda de archivos locales comparten una sola tubería, 19 herramientas MCP se corresponden una a una con los comandos CLI, así que ninguna capacidad falta en la forma que instales. Algunos comandos sueltos completan el conjunto: argo tweet empaqueta un post de X, argo auth gestiona el estado de sesión y argo job agrega ofertas de empleo. El catálogo completo, con coste, clave y estado de cada fuente, está en docs/ENGINE_CATALOG.md: 272 fuentes, 235 sin clave, 97 dominios.
|
|
462
471
|
|
|
463
472
|
Instalado como plugin DSH, estas capacidades se convierten en herramientas nativas del host: la búsqueda y el fetch de la ruta caliente vienen activos por defecto, las herramientas de forense de cola larga se activan en la página de ajustes y los 28 interruptores de comportamiento del propio argo (caché, reordenación, deduplicación, guardia, proxy, TTL y demás) salieron de las variables de entorno para entrar en el panel. Las claves van al almacén de credenciales del host, nunca se muestran y todo cambio surte efecto al guardar.
|
|
464
473
|
|
|
465
474
|
Las últimas versiones arreglaron cada una una clase de problemas.
|
|
466
475
|
|
|
476
|
+
v2.9.9 es una versión de seguridad en profundidad y calidad de entrega. El motor de seguridad de contenido puntuaba pero no detenía: una página de inyección de alto riesgo entraba tal cual en la tubería. Ahora todo lo que supera el umbral de riesgo se aísla, el texto limpio sustituye al original y no llega a la puntuación de evidencia. La salida de red gana dos capas de defensa: las redirecciones se validan salto a salto y la dirección resuelta se fija a la conexión, cerrando la ventana de reencadernación DNS. En el despacho, los resultados de motores lentos abandonados por la parada temprana ya no se tiran: se recolectan en segundo plano, se entregan como siempre si terminan dentro de la ventana de gracia y su rendimiento real por fin llega al aprendiz. Un barrido de seis familias de escenarios reales acotó cinco clases de enrutado erróneo: consultas financieras de A-share, diligencia debida / facturación / búsqueda de empresa por persona, práctica legal civil, prospectos de medicamentos y guías de escritura de papers caen donde deben. Novedades: `argo engine add` conecta un motor nuevo en un paso, y la página de ajustes de DSH estrena una tarjeta de observación de rutas con combos de herramientas recomendadas.
|
|
477
|
+
|
|
478
|
+
v2.9.8 es una versión de precisión de enrutado y cierre del ciclo de feedback. Los tres problemas del issue #18 —«latest» enviado a noticias en tiempo real, people_daily devolviendo su feed por defecto cuando no hay coincidencia, y local_bing coincidiendo solo con «2026»— se reprodujeron y corrigieron. Al reproducir consultas reales por la misma vía se acotaron 16 clases más de falsos disparadores: «nieve» dentro de nombres de marca, «Volcano Engine» dentro de nombres de producto, «iconos» en diagnóstico de UI, «código» dentro de campos mercantiles/financieros y «tipo de cambio» dentro de consultas de código/bibliotecas. Una puerta de cobertura SERP y la validación cruzada CJK evitan que «devolvió algo» cuente como «es relevante». Gracias a @wpp666 por la reproducción y el diagnóstico.
|
|
479
|
+
|
|
467
480
|
v2.9.7 arregló tres problemas antiguos. Cuando una IA dentro de un huésped DSH pedía leer una URL, el huésped usaba su propio capturador, así que redirecciones de enlaces cortos y páginas de desafío JS fallaban de forma estructural mientras la cadena de fetch de argo se quedaba sin uso; esta versión pasa las lecturas del huésped por argo, y esas páginas van de fallar a funcionar, sin cambios en las páginas estáticas. El pool de candidatos de enrutado contenía 18 motores de solo-uso-explícito, y si alguno se auto-seleccionaba el único motor de pago te facturaba en silencio; el pool está limpio ya, y usarlos requiere decirlo. Cada éxito de motor tomaba antes un bloqueo de fichero y reescribía el estado del breaker en disco; los motores sanos ahora cuestan cero E/S de ficheros y la contabilidad multi-motor se confirma en una sola transacción. La licencia también pasó de MIT a Apache-2.0, más cómoda para uso comercial.
|
|
468
481
|
|
|
469
482
|
Después de eso, el plugin DSH ganó otra capa: la página de ajustes pasó de cinco secciones a seis, la nueva sección «Motores» trae los interruptores de comportamiento de argo al panel (antes solo eran variables de entorno), la página de claves muestra ahora si cada clave viene del almacén de credenciales, del entorno de arranque o de `.env`, y los interruptores de herramientas, los tiempos de espera, la concurrencia y los límites de investigación se aplican todos al guardar. La cancelación también llegó a la etapa de establecimiento de la conexión: cuando la IA se detiene a mitad de camino, un subproceso de argo que aún se está creando se mata de inmediato en lugar de esperar a que expire su tiempo de espera.
|
|
@@ -479,7 +492,7 @@ El detalle por versión está en «Actualizaciones recientes»; las notas de cad
|
|
|
479
492
|
|
|
480
493
|
## Motores y enrutamiento
|
|
481
494
|
|
|
482
|
-
La config tiene ahora **
|
|
495
|
+
La config tiene ahora **272** fuentes (**235** sin clave) y **97** dominios (ver `config.yaml` y `--list-engines`).
|
|
483
496
|
|
|
484
497
|
### Directos y verticales (extracto)
|
|
485
498
|
|
|
@@ -493,7 +506,8 @@ La config tiene ahora **264** fuentes (**227** sin clave) y **95** dominios (ver
|
|
|
493
506
|
| arxiv / semantic_scholar / openalex | académico | mostly free |
|
|
494
507
|
| pubchem / gbif / rfc_editor | química / especies / estándares | free |
|
|
495
508
|
| github / stackoverflow / pypi / npm | código y paquetes | depends |
|
|
496
|
-
| byted / bocha / metaso / octen | web china / búsqueda IA | API /
|
|
509
|
+
| byted / bocha / metaso / octen / yuanbao | web china / búsqueda IA | API / bajo coste |
|
|
510
|
+
| hkex / shfe / cfets / defillama / gleif | anuncios de HKEX / SHFE / paridad central del yuan / DeFi / identificadores de entidad legal | Gratis |
|
|
497
511
|
| zhihu / wechat_sogou | opinión china / WeChat | API / free |
|
|
498
512
|
| tavily / felo / exa | internacional / semántica | paid or quota |
|
|
499
513
|
| twitter / reddit / xiaohongshu / bilibili / weibo | social UGC | free (some need login) |
|
|
@@ -678,126 +692,33 @@ argo/
|
|
|
678
692
|
|
|
679
693
|
## Actualizaciones recientes
|
|
680
694
|
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
- **Sexta sección de ajustes «Motores»**: los 28 interruptores de comportamiento de argo salieron de las variables de entorno para entrar en el panel (caché / reordenación TF-IDF / verificación cruzada numérica / deduplicación MinHash / guardia SERP, Jina / UA móvil / capa de fetch Parallel, capa de evidencia semántica, gracia de cobertura y anchura de cola, lista de motores activos, proxy, raíces de búsqueda local y lista de lectura permitida, calentamiento / registro de uso / pool de conexiones / TTL varios). Se aplican mediante la nueva configuración volátil `argoEnv` (un `KEY=VALUE` por línea) en el entorno del subproceso de argo; los nombres pasan por la lista `ARGO_ENV_SPECS` y cualquier cosa fuera de ella falla en voz alta al aplicar, para que un error tipográfico no quede en silencio sin efecto. Los de tipo interruptor se aplican al instante; los de número / texto / lista se guardan en grupo; las filas sin configurar muestran el valor por defecto de argo y se marcan como "default". Los interruptores de autorización (recompute, URLs intranet) quedan deliberadamente fuera del panel
|
|
684
|
-
- **La capa de origen de las claves ya es visible**: muestra "configurada / sin configurar + capa de origen (almacén de credenciales / entorno de arranque / .env del proyecto / .env del hogar) + estado de solo lectura", y las capas que no son de fichero avisan de que se sobrescribirán al guardar; `DEEPSEEK_API_KEY` se marca como compartida con el `web_search` del host; `fetchMaxChars` se trunca al límite del esquema de la herramienta de argo (50000) al guardar, eliminando la discrepancia entre «valor mostrado» y «valor efectivo»
|
|
685
|
-
- **La cancelación llega al establecimiento de la conexión**: `acquireMcp` respeta ahora la cancelación mientras se establece la conexión — al abortar mata el subproceso y cierra con `WEB_ABORTED` en lugar de esperar al timeout; la cancelación también fluye por el camino de disparo único
|
|
686
|
-
- **Correcciones**: la deduplicación de evidencia ya no traga mayúsculas y minúsculas; los hosts antiguos sin `effect` ya no rompen la activación; `saveKey` / `setForward` / `toggleTool` leen una instantánea en vivo, corrigiendo una carrera que perdía actualizaciones en acciones consecutivas rápidas; las respuestas de `describe` se protegen contra reordenaciones y solo se acepta la de la petición más reciente
|
|
687
|
-
|
|
688
|
-
### v2.9.7: Consolidación de arquitectura — seam web_fetch DSH + contrato explicit_only + contratos de estado unificados (License: Apache-2.0)
|
|
689
|
-
|
|
690
|
-
- **Cambio de licencia**: MIT → Apache License 2.0 (concesión de patentes explícita, más seguro para uso comercial); nada más cambia
|
|
691
|
-
- **Seam web_fetch del plugin DSH**: el web_fetch del huésped antes esquivaba argo por completo como ruta predeterminada de «lee esta URL»; ahora registra un proveedor de fetch en la cadena argo_fetch (HTTP primero, ascenso automático a navegador anti-detección ante Cloudflare / páginas renderizadas con JS); ejecución de doble vía isomorfa con el proveedor de búsqueda — piscina MCP residente primero, CLI de un solo disparo solo ante fallo de transporte, errores de herramienta y timeouts no se reenvían (esas ya significan que la llamada terminó; reenviar duplica llamadas de motor y cuota); fallos clasificados en cinco clases (timeout / bloqueado / vacío / genérico / cancelado) con mensajes accionables; nueva configuración `fetchProviderEnabled` / `fetchProviderId` / `fetchTimeoutMs` (25000) / `fetchMaxChars` (50000), toda activa por defecto con salidas de emergencia; medido: redirecciones de origen cruzado (enlaces cortos, ascensos de protocolo, caparazones de redirección) y páginas de desafío JS pasan de fallos estructurales del huésped a éxitos de argo, las páginas estáticas no cambian
|
|
692
|
-
- **Cierre del contrato explicit_only**: `config._routable_filter` filtraba listas negras/blancas de entorno, cles y bloqueos, pero no explicit_only, así que 18 motores de solo-uso-explícito (incluido el único `deepseek_search` de pago) yacían en el pool de candidados habilitados donde seis rutas de enrutado (inyección TF-IDF, catch-all, backfill, reserva, etc.) podían elegirlos — nunca disparó solo porque el corpus no tenía ninguna entrada; una entrada habría disparado motores de pago en modo auto; ahora se filtra en el único productor, fijado por `tests/test_explicit_only_gate.py`
|
|
693
|
-
- **Contratos de estado unificados**: cortocircuito en memoria del cortacircuitos cuando está sano y cerrado con conteo cero (sin bloqueo de fichero, sin reescritura de disco) con conciencia cross-process vía `(st_mtime_ns, st_size)`; la contabilidad adaptativa pliega `MAX(created_at)` en un solo SQL agregado más un gestor de contexto `batch()` para confirmaciones multi-motor en una transacción; el agotamiento de cuota registra la huella de credencial vigente y se desbloquea solo al rotar la clave; la caché de ruta se invalida cuando un motor del combo se agota o se recupera; `is_engine_routable` se convierte en el predicado de admisión único tras backfill / tfidf / breaker_filter
|
|
694
|
-
- **Despacho y transporte**: auto / deep también descartan motores agotados por duro (reserva fail-open); ventana de espera de cobertura estrechada, el early-stop de Wave-1 ahora acepta suficiencia acumulada cross-engine; agrupación de conexiones POST (ahorra ~320ms anysearch / ~561ms octen por petición) + preconexión MCP; el dominio de clima gana `early_stop_min_results: 1`
|
|
695
|
-
- **Resta de rutas calientes en sub-skills**: js-run reemplaza SIGALRM por el timeout nativo de MiniRacer, arreglando el crash `ValueError: signal only works in main thread` al invocarse desde hilos de trabajo de crawl / research / mcp; el rerank de local-seek elimina las lecturas de disco O(N) por consulta; local-search reutiliza el registro (sin doble parseo YAML); ego-search corta en corto la detección bajo auto
|
|
696
|
-
- **Validación**: 71 pruebas unitarias del plugin; suite completa 4264 passed / 28 skipped; siete puertas pre-commit 123 passed; la comparativa de la cadena de fetch no regresa páginas estáticas y convierte fallos en éxitos en redirecciones / desafíos JS
|
|
697
|
-
|
|
698
|
-
### v2.9.6: Motor DeepSeek Search + contrato de operadores de consulta + agrupación de conexiones + puerta de instantáneas de enrutado
|
|
699
|
-
|
|
700
|
-
- Nuevo motor `deepseek_search` (`api.deepseek.com/v1/tools/search` oficial) activo por defecto: se omite solo sin `DEEPSEEK_API_KEY`, las otras 265 fuentes no se afectan; medido 445-510ms (anysearch 1.7-4.5s / exa 3.7s), el único de los tres con cobertura completa de nivel authority / rerank_score / hora de publicación, a la par de anysearch en ja/ko/es; pago por uso, fuera de los combos de dominio, `--engine deepseek_search` explícito es la vía principal; los hosts DSH comparten la misma key con el backend oficial por el seam nativo de credenciales (rotar la key en la página Models surte efecto en el siguiente salto, nunca se persiste ni se registra)
|
|
701
|
-
- Corrección: `--since/--until` silenciosamente ineficaz para deepseek_search (añadido a TIME_CAPABLE_ENGINES)
|
|
702
|
-
- Nueva `query_operators.py`, capa de contrato de operadores de consulta: `site:` / `-site:` / `-término` / `-"frase"` / `lang:` / `after:` / `before:` convergen de cinco formas dispersas en operadores estructurados; enrutado, caché y comprensión de consulta solo ven el clean_query sin instrucciones; `site:` / `-site:` posfiltran de verdad (coincidencia de subdominio, OR multi-sitio, conteo en `site_filtered`), los operadores entran en la clave de caché de resultados para evitar contaminación cruzada
|
|
703
|
-
- `evidence.py`: nuevo campo de resumen de doble capa para Agent `summary` (semántica de resumen de DeepSeek Search)
|
|
704
|
-
- Transporte sin pagar dos veces: POST reutiliza conexiones agrupadas (medido: la segunda petición en la misma conexión ahorra 320ms anysearch / 561ms octen), con reintento por fallo de préstamo y lectura del cuerpo antes de devolver; preconexión MCP; cierre de agotamiento de cuota y caché negativa muerta
|
|
705
|
-
- Enrutado: octen entra en el segundo slot de la cadena de fallback general y el slot de cobertura TF-IDF (ventana de jitter de anysearch p90 3273→1614ms, máx 6266→1928ms, errores 9→0; sin diferencia de mediana en ventana sana, posicionado como seguro de cola), escapatoria `ARGO_GENERAL_FALLBACK_LEGACY=1`
|
|
706
|
-
- Corrección de la decadencia de rango del aislamiento RRF por calibre: todos los resultados de un motor con la misma puntuación (medido: 5 resultados de anysearch todos 0.017213), la salida degeneraba en concatenación por peso de motor; nuevo test bloquea "puntuaciones estrictamente decrecientes dentro del mismo motor"
|
|
707
|
-
- Corrección del caparazón de redirección ck/a de Bing no restaurado, que hacía que la capa de agregación filtrara lotes enteros (40.2% de resultados vacíos en los últimos 7 días): decodificación base64url offline recupera los enlaces reales, cero red
|
|
708
|
-
- Corrección del combo líder TF-IDF que producía `['anysearch','anysearch']` ejecutándose dos veces en paralelo (doble cuota con wasted_ms registrado en 0): 200 consultas reales reproducidas, combos duplicados 1→0
|
|
709
|
-
- Mejoras de búsqueda: caché negativa de fallos, conmutación por error de Nitter, aislamiento por calibre, extracción de X Article, guardián de eco de consulta (rechazo por parada temprana + cambio de motor en la cadena de recuperación)
|
|
710
|
-
- Ingeniería: nueva puerta `scripts/pre-commit` (static_lint / module_size_gate / usage_doc / consistency / routing_snapshot / context_budget + engine_catalog, ~12s medido); la puerta de instantáneas de decisión de enrutado convierte los volteos de enrutado en golden diffable (unión de tres conjuntos de anotación, 115 consultas, solo se comparan domain y kind para que el ruido de entorno no dé falsos rojos); test de sincronía del registro de calibres bloquea "los nombres de motor de la tabla deben estar realmente registrados"
|
|
711
|
-
- El plugin DSH se adapta a DSH 0.2.1-rc.2: entrada de runtime de doble stack (`startActivation({provider, label, request, signal, delivery})` nuevo / `start(provider, request)` heredado), el tool guard dentro del plugin evita llamadas anidadas de workers a `wide_research` tras eliminar rc.2 `toolFilter`; verificado extremo a extremo en rc.2 (`wide_research` planner → 2 workers → synthesis, passed=true / 14 sources) y `argo_search` nativo (count=3); rama de compatibilidad 0.2.1-alpha.1 cubierta por unit tests; unit tests del plugin 46→50
|
|
712
|
-
- Versiones de entorno DSH: **DSH 0.2.1-rc.2 (actual, en ejecución, verificado extremo a extremo) + DSH 0.2.1-alpha.1 (compatible, rama start heredada cubierta por unit tests)**; tabla de compatibilidad en `packages/dsh-plugin/README.md`
|
|
713
|
-
|
|
714
|
-
### v2.9.5: Dominio dedicado de tipo de cambio + deduplicación de dos capas + corrección de falsa penalización + aislamiento de daemon por checkout
|
|
715
|
-
|
|
716
|
-
- `config.yaml`: nuevo dominio `fx_query` — las consultas de "tipo de cambio RMB/USD, paridad central, offshore" ya no caen en callejones macro vacíos ni en entradas de enciclopedia; ahora tipo en vivo + noticia de paridad diaria (675ms medidos; antes 1411ms y desencaminado)
|
|
717
|
-
- `search_rank.py`: deduplicación de dos capas — normalización de sufijo de sitio en título ( cero dependencias) + revisión difusa rapidfuzz (solo dentro de la banda de casi-acierto; `ARGO_DEDUP_FUZZY=0` desactiva, sin instalar vuelve a minhash puro)
|
|
718
|
-
- Corrección: falsa penalización por separadores de título en rerank degradado — títulos con `|` / `_` / `——` recibían ×0.6 uniforme, hundiendo documentación oficial 40%; afectaba cada consulta auto/deep sin clave Bocha (criterio convergido a la implementación única de rank_signals)
|
|
719
|
-
- `query_understanding.py`: la negación gana "no-X" (la interrogativa "si es o no" no se lee como negación)
|
|
720
|
-
- `daemon.py`: nombres en disco (socket/pid/puntero/log) acotados por checkout — trabajo multi-worktree/clone peleándose el daemon, matar procesos ajenos y "los cambios no surten efecto", todos erradicados
|
|
721
|
-
- Nueva dependencia opcional rapidfuzz (`pip install rapidfuzz`; la instala install.sh, el núcleo no se afecta si falta)
|
|
722
|
-
|
|
723
|
-
### v2.9.4: Atribución explícita de dominio de motor + cortador de cadena de recuperación + sincronización de puertas
|
|
724
|
-
|
|
725
|
-
- `route.py`: `--engine X` complementa `match_domains`, corrigiendo TTL de caché general
|
|
726
|
-
- `recovery.py`: motor único sin alternativa omite ejecución vacía L1
|
|
727
|
-
- `config.yaml`: `org_entity` añade términos de diligencia; `fund_query` añade términos de regulación
|
|
728
|
-
- `mcp_launch.sh`: `set -a` reducido a `. "$ENV_FILE"` línea única
|
|
729
|
-
- `sub-skills/local-search/`: capa de registro cerrada y calidad mejorada
|
|
730
|
-
- Sincronización de puertas: module_size_gate / ENGINE_CATALOG alineados
|
|
731
|
-
|
|
732
|
-
### v2.9.3: empaquetado completo de posts de X + carril de estado de sesión del navegador + calidad/velocidad de la cadena local
|
|
733
|
-
|
|
734
|
-
- **Nuevo**: `argo tweet` — un comando empaqueta el texto completo, hilo/citas/retweets e interacciones de un post de X; por defecto solo texto, `--out` escribe el paquete de 4 archivos (post.md/raw.json/manifest.json/CHECKLIST.md), `--media` descarga imágenes/vídeos bajo demanda; los motivos de fallo quedan visibles en los artefactos
|
|
735
|
-
- **Nuevo**: carril de estado de sesión del navegador `argo auth` — `login/status/logout` gestiona un perfil de navegador persistente por sitio; escanea el QR una vez y las páginas que exigen sesión se vuelven accesibles; las cookies solo viven en el almacenamiento cifrado del propio Chrome (argo no las lee ni las exporta), los resultados con sesión se marcan `login_state_used` y quedan excluidos de la caché compartida (activar con `ARGO_AUTH_FETCH`)
|
|
736
|
-
- **Más preciso**: la cadena local china resuelve las shells de redirección de Sogou/Baidu en URLs reales sin sesión (resultados conservados 1→5); corregido el bloqueo falso de la puerta de intención (las consultas tipo "tutorial" ya no quedan fijadas a un solo motor); URLs de identidad de fila ferroviaria corrigen la compresión del embudo de candidatos (10→1 → fiel 10→10)
|
|
737
|
-
- **Más rápido**: gracia de consenso adaptativa (el primer motor que entrega suficiente libera la espera; despacho en inglés ~3.0s→2.2-2.5s); parada temprana de cola larga local; huellas de imagen local vía producto matricial mmap (77k imágenes 158ms→3.9ms, apagado por defecto con `ARGO_LOCAL_IMAGE=1`); adelgazamiento automático del consumo por agentes + negociación de contenido markdown, overhead fijo por llamada MCP −32%
|
|
738
|
-
- **Más fuentes**: 43 motores sin referencia de dominio conectados a sus dominios; route_lang de enrutamiento por idioma; 3 nuevas fuentes financieras sin clave; `--academic-deep` multi-fuente académica con una bandera; consultas ferroviarias con transbordo/escala
|
|
739
|
-
- **Más robusto**: js-run integrado como primer carril de la cadena de fetch (reintentos con huella Chrome); fugas de sesión jsrun y presupuesto de backoff corregidos; timeouts ajustados (redskill 60→15s) con la política de declaración dividida en tres grupos
|
|
740
|
-
|
|
741
|
-
### v2.9.2: compatibilidad verificada con DSH 0.2.1-alpha.1 + correcciones de enrutamiento/guardas + sub-skill js-run
|
|
742
|
-
|
|
743
|
-
- **Más compatible**: el plugin de DSH está verificado en el último DSH 0.2.1-alpha.1 — herramientas nativas de primera clase / web_search seam / wide_research funcionan en las tres formas; `argo mcp inject` añade WorkBuddy, cubriendo el 7.º host
|
|
744
|
-
- **Más preciso**: degradación de evidencia débil TF-IDF a fuentes auxiliares, piso de fuentes muertas + relleno de slots del breaker, aislamiento de motores con cuota agotada, corrección de falsos positivos de serp_guard
|
|
745
|
-
- **Más rápido y robusto**: importaciones diferidas de engines/evidence (volumen de import −50%), cortocircuito del conjunto de existencia en admisión (open 261 → 99), guardas de entrada/argumentos numéricos de MCP; nueva sub-skill `sub-skills/js-run` (ejecuta JS web sin navegador, P50 ≈ 1ms)
|
|
746
|
-
|
|
747
|
-
### v2.9.1: optimización de calidad de contenido + resistencia a granjas de contenido + compatibilidad con el último entorno
|
|
748
|
-
|
|
749
|
-
- **Más limpio**: evaluación de calidad de contenido mejorada y mayor resistencia a granjas de contenido — el contenido de baja calidad o generado en masa se identifica y filtra con más eficacia
|
|
750
|
-
- **Más compatible**: adaptado a la última versión para colaborar sin fisuras con el entorno actual
|
|
751
|
-
- **Más estable**: la búsqueda local añade una guarda sobre su propio árbol de instalación, evitando que los resultados se contaminen con el código fuente del propio argo
|
|
752
|
-
|
|
753
|
-
### v2.9.0: optimización de fuentes + paridad plugin/CLI + lenguas minoritarias
|
|
754
|
-
|
|
755
|
-
- **Más amplio**: fuentes 237 → 253 (sin clave 198 → 219); se añaden 14 fuentes de noticias locales en lenguas minoritarias, la fuente de texto completo de acceso abierto CORE, TinEye de búsqueda inversa de imágenes, una salida estable de Bing RSS y más; se revivieron Baidu y Sogou, dos fuentes perennes
|
|
756
|
-
- **Más alineado**: 18 comandos CLI corresponden uno a uno con 19 herramientas MCP — por primera vez plugin y CLI quedan totalmente a la par en búsqueda
|
|
757
|
-
- **Más idiomas**: 14 fuentes en lenguas minoritarias (tailandés/árabe/hebreo/griego/hindi/vietnamita/turco/indonesio, etc.), asignadas automáticamente según el idioma de la consulta
|
|
758
|
-
- **Más rápido**: cadena de importación −79%, rerank con n=200 de 33ms → 1.5ms, aciertos de caché de ~60% a casi sin fallos
|
|
759
|
-
- **Más fiable**: corrección de seguridad entre procesos en la ruta de escritura de cuotas, los resultados de parada temprana ya no se etiquetan erróneamente como timeout, y `argo stats` da a la calidad de búsqueda su propio libro contable
|
|
760
|
-
|
|
761
|
-
### v2.8.9: salida más ligera + recuperación más rica y rápida + 5 fuentes internacionales y de verificación
|
|
762
|
-
|
|
763
|
-
- **Más ligero**: salida por defecto −66% (los mismos resultados ya no se escriben tres veces); consultas repetidas −30% (caché de decisiones de enrutado); esperas con red lenta −36% (una fuente de respaldo se dispara automáticamente si la principal supera 0.8s)
|
|
764
|
-
- **Más rico**: recall +35%, latencia de fetch −30%; fidelidad estructural del cuerpo 0/6 → 6/6 (títulos, listas y tablas ya no se aplanan); el contenido en chino ya no se puntúa sistemáticamente como de baja calidad
|
|
765
|
-
- **Nuevo**: fuentes 232 → 237 (sin clave 194 → 198, todas gratis — The Guardian, France 24, DW, más los verificadores FactCheck.org / Full Fact para afirmaciones de EE. UU. y Reino Unido); fuente muerta gdelt retirada
|
|
766
|
-
- **Más fiable**: corregidos seis defectos de contabilidad donde los números se contradecían entre sí; un embudo de seis etapas localiza dónde colapsa una búsqueda sin resultados; una herramienta de repetición sin conexión permite verificar los cambios el mismo día. Ver [notas de la versión](docs/RELEASE_NOTES_v2.8.9.md)
|
|
767
|
-
|
|
768
|
-
### v2.8.8: correcciones reportadas por usuarios reales + aceleración general + 232 fuentes
|
|
769
|
-
|
|
770
|
-
- **Correcciones**: motores que devolvían cero resultados en silencio al configurar claves con los nombres recomendados (#12); cadena de fetch que ignoraba el proxy y hacía fallar siempre sitios como GitHub (#13) — ahora funcionan `ARGO_PROXY`, las reglas por dominio del config y las variables de proxy estándar, respetando `NO_PROXY`
|
|
771
|
-
- **Más rápido**: arranque en frío del comando 2.1s → 0.55s; caché de configuración entre procesos 50–82ms → 16–18ms; cada búsqueda informa tiempos por etapa y consumo de presupuesto, sin adivinar dónde está la lentitud (`--no-timing` para desactivar)
|
|
772
|
-
- **Nuevo**: fuentes 218 → 232 (listas para usar sin configuración 184 → 194, todas sin clave: tendencias de China, avisos de seguridad, académico de acceso abierto, directorios de skills, búsqueda para agentes), `argo answer` (respuestas directas con citas), `argo watch` (observación de cambios web), superficies de herramientas CLI/MCP alineadas
|
|
773
|
-
- **Más robusto**: rutas convencionales en los tres sistemas (nueva introspección `argo paths`), soporte de Python 3.9, degradaciones silenciosas ahora registradas; ver [notas de la versión](docs/RELEASE_NOTES_v2.8.8.md)
|
|
774
|
-
|
|
775
|
-
### v2.8.7: fuentes ampliadas a 218 + una tanda de correcciones
|
|
776
|
-
|
|
777
|
-
- **Ampliación de fuentes**: 168 → 218 fuentes, 72 → 89 dominios (nuevas fuentes oficiales: StackExchange Q&A, metadatos DOI, inteligencia de vulnerabilidades, ciclos de vida), más tres canales directos de obtención de contenido
|
|
778
|
-
- **Una tanda de correcciones**: enrutamiento multi-motor, fallback de resultados vacíos, redirecciones con chino, degradación de búsqueda local, etc.; ver [notas de la versión](docs/RELEASE_NOTES_v2.8.7.md)
|
|
779
|
-
|
|
780
|
-
### v2.8.6: búsqueda más rápida + reparto multi-fuente
|
|
695
|
+
Solo las tres versiones más recientes. El historial completo está en el [historial de cambios](#historial-de-cambios) y el detalle de cada versión en [Releases](https://github.com/taxueseek/argo/releases).
|
|
781
696
|
|
|
782
|
-
|
|
697
|
+
### v2.9.9: seguridad en profundidad + los resultados de fuentes lentas ya no se descartan + cinco clases de enrutado erróneo cerradas
|
|
783
698
|
|
|
784
|
-
|
|
699
|
+
- **El texto de alto riesgo ya no llega al contexto**: el motor de seguridad de contenido pasa de «solo puntuar» a «aislar + sustitución limpia»; el texto con `risk_score ≥ 0.5` se reemplaza por su versión limpia y queda fuera de la puntuación de evidencia. Activado por defecto; `ARGO_CONTENT_RISK_GATE=0` para anularlo en emergencia
|
|
700
|
+
- **Defensa en profundidad de la salida de red**: validación de redirecciones salto a salto (`ARGO_MAX_REDIRECTS`, por defecto 5) + resolución y fijación inmediata, cerrando la ventana de reencadernación DNS
|
|
701
|
+
- **Los resultados de fuentes lentas abandonadas por la parada temprana ya no se descartan**: los motores abandonados pasan a recolectarse en segundo plano; lo que termine dentro de `ARGO_TAIL_COMPLETE_S` (por defecto 3 s, 0=apagado) se entrega como siempre y registra una puntuación real, con los resultados fusionados en la caché tras deduplicar
|
|
702
|
+
- **Cinco clases de enrutado erróneo cerradas**: consultas financieras de A-share a `stock_query`, diligencia debida / facturación / persona-a-empresa a `company_search`, práctica legal civil a `flk_law`, prospectos de medicamentos que ya no roba el token «uso», y guías de escritura de papers que ya no caen en búsqueda académica
|
|
703
|
+
- **`argo engine add`**: alta de un motor nuevo en un paso; la cadena manual de spec/env/validación/sincronización/combo/lista blanca se convierte en un solo comando
|
|
704
|
+
- **Aprendizaje por cubos de escenario + paquete de plugin ZCode**: el enrutado ya distingue «fuerte en el dominio A, débil en el B»; canal directo skill+CLI y panel de cero tokens enviados a zcode-plugins
|
|
785
705
|
|
|
786
|
-
|
|
787
|
-
- **MCP apagado por defecto**: tres formas de conexión (MCP a demanda / herramientas nativas como entrada por defecto / web_search seam); coste de token residente cero, y un profile patch abre la superficie completa de 19 herramientas
|
|
788
|
-
- **Compatibilidad con Windows** (PR #11 de la comunidad): rutas temporales del sistema, arreglo de codificación GBK, resolución de intérprete en runtime (`python3`/`python`), symlink recurre a junction sin permisos, nuevo instalador PowerShell `install.ps1`
|
|
789
|
-
- **Autocuración de cuotas**: el agotamiento de cuota remota oculto en HTTP 200 se detecta; el enrutamiento excluye ese motor y pasa a fuentes de respaldo, y vuelve automáticamente en el siguiente periodo
|
|
790
|
-
- **Deadline global de fetch**: `ARGO_FETCH_DEADLINE_S` (60s por defecto) acota la cadena de respaldo; respeta señales de parada 429/503; renderizado tinyfish + sondas de variante `.md`
|
|
706
|
+
### v2.9.8: auditoría de precisión de enrutado + búsqueda de Tencent Yuanbao + tres fuentes más sin clave + lista estructurada de fallos
|
|
791
707
|
|
|
792
|
-
|
|
708
|
+
- **issue #18/#19 todos corregidos**: «latest» enviado a noticias en tiempo real, feed por defecto de people_daily, local_bing coincidiendo solo con «2026», validación cruzada CJK siempre 0, caída nocturna con log vacío; 16 clases isomorfas de falsos disparadores acotadas de paso
|
|
709
|
+
- **Búsqueda de Yuanbao**: fuente china de primera mano y voz oficial, en el 2.º puesto del dominio general chino como cobertura de autoridad. Clave: `ARGO_YUANBAO_API_KEY`
|
|
710
|
+
- **Tres fuentes más sin clave**: `tavily_free`, `keenable_free` y el retorno anónimo de `exa`
|
|
711
|
+
- **Fallos sobre los que se puede actuar**: cada fallo indica su origen y su clase, y dice si reintentar, cambiar de fuente o configurar una clave, junto a un nivel de confianza `meta.uncertainty`
|
|
712
|
+
- **Capa de configuración local `config.local.yaml`**: los ajustes de esta máquina ya no se escriben en la configuración pública
|
|
713
|
+
- **Nueva sección «Engines» en la página de ajustes de DSH**: los 28 interruptores de comportamiento de argo salen de las variables de entorno y pasan al panel
|
|
793
714
|
|
|
794
|
-
|
|
795
|
-
- **El MCP ya no se edita a mano**: `argo mcp inject` escribe Claude Code / Cursor / Windsurf / Codex / OpenCode / Cline (escritura atómica + backup + deshacer)
|
|
796
|
-
- **Las consultas simples se quedan baratas**: normalización + puerta de complejidad + sintaxis social/plataforma primero + si se descarta un motor chino, se siguen mirando candidatos
|
|
797
|
-
- **Keenable** como fuente web en prueba gratis
|
|
798
|
-
- **Seguridad**: recompute bloquea subprocesos de salida a red; las rutas de host son conscientes de la instalación
|
|
715
|
+
### v2.9.7: consolidación de arquitectura + el host delega la obtención de páginas en argo + License pasa a Apache-2.0
|
|
799
716
|
|
|
800
|
-
|
|
717
|
+
- **Cambio de License**: MIT → Apache License 2.0. Se explicita la concesión de patentes; lo demás no cambia
|
|
718
|
+
- **Las páginas que el host no podía obtener ahora sí se obtienen**: acortadores, actualizaciones de protocolo, redirect shells y páginas con desafío de JS pasan por la cadena de fetch de argo (HTTP primero, con escalada automática a un navegador cuando el sitio se resiste). Activado por defecto; se desactiva con `fetchProviderEnabled`
|
|
719
|
+
- **El modo auto ya no llama por error a motores de pago**: los 18 motores exclusivos de invocación explícita salen del pool de candidatos de enrutado y solo se usan si se nombran con `--engine`
|
|
720
|
+
- **Una clave nueva recupera el siguiente salto**: los motores con cuota agotada ya no esperan a que venza su ventana de recuperación, y la caché de enrutado se recalcula
|
|
721
|
+
- **Ejecutar JS desde crawl / research / MCP ya no se cae**
|
|
801
722
|
|
|
802
723
|
---
|
|
803
724
|
|
|
@@ -805,30 +726,32 @@ argo/
|
|
|
805
726
|
|
|
806
727
|
| Versión | Notas |
|
|
807
728
|
|---------|-------|
|
|
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.
|
|
818
|
-
| **v2.8.
|
|
819
|
-
| **v2.8.
|
|
820
|
-
| **v2.8.
|
|
821
|
-
| **v2.8.
|
|
729
|
+
| **v2.9.9** | **Seguridad en profundidad + los resultados de fuentes lentas ya no se descartan + cinco clases de enrutado erróneo cerradas**: texto de alto riesgo aislado con sustitución limpia (fuera de la puntuación de evidencia), validación de redirecciones salto a salto y fijación contra reencadernación DNS; las fuentes lentas abandonadas por la parada temprana se recolectan en segundo plano (`ARGO_TAIL_COMPLETE_S`) y registran su puntuación real; un barrido de seis familias de escenarios reales cierra el enrutado erróneo de academia/finanzas/empresas/legal/farma; además `argo engine add` en un paso, aprendizaje por cubos de escenario y el paquete de plugin ZCode. Ver [notas de la versión](docs/RELEASE_NOTES_v2.9.9.md). |
|
|
730
|
+
| **v2.9.8** | **Auditoría de precisión de enrutado + fixes de issue #18/#19 + aislamiento de estado en tests**: reproducción de consultas reales y acotado de 16 clases de falsos disparadores (marcas, productos, campos, subcadenas ASCII); puerta de cobertura SERP y validación cruzada CJK; ledger nocturno con log vacío, feed por defecto de people_daily y guardia de caché corregidos; estado adaptive/breaker aislado por test. Gracias a @wpp666 por la reproducción y el diagnóstico. Ver [notas de la versión](docs/RELEASE_NOTES_v2.9.8.md). |
|
|
731
|
+
| **v2.9.7** | **Consolidación de arquitectura + seam web_fetch DSH + License a Apache-2.0**: MIT → Apache 2.0; el fetch del huésped pasa por argo (redirect shells, desafíos JS); 18 motores de invocación explícita fuera del pool, para que el modo auto no facture por error. |
|
|
732
|
+
| **v2.9.6** | **Motor DeepSeek Search + contrato de operadores de consulta + agrupación de conexiones + puerta de instantáneas de enrutado**: `deepseek_search` nuevo y activo por defecto (se omite sin clave): 445-510 ms con `--since`/`--until`; conexiones agrupadas ahorran 320-561 ms; `site:` y `lang:` filtran de verdad. |
|
|
733
|
+
| **v2.9.5** | **Dominio dedicado de tipo de cambio + deduplicación de dos capas + corrección de falsa penalización + aislamiento de daemon por checkout**: `fx_query` nuevo: USD/CNY responde en 675 ms con tipo al contado y noticia del día, antes 1,4 s de enciclopedia; la deduplicación suma sufijos de sitio y `ARGO_DEDUP_FUZZY` opcional. |
|
|
734
|
+
| **v2.9.4** | **Atribución explícita de dominio de motor + cortador de cadena de recuperación + sincronización de puertas**: `--engine X` fija ya el dominio y el TTL de caché sigue al dominio, no se generaliza; un motor único sin respaldo ya no reejecuta en vacío. |
|
|
735
|
+
| **v2.9.3** | **Empaquetado completo de posts de X + carril de estado de sesión del navegador + calidad/velocidad de la cadena local**: nuevos `argo tweet` (posts de X con hilos y medios; `--out`), `argo auth` (sesión de navegador persistente por sitio) y `--academic-deep`; despacho en inglés ~3,0s→2,2-2,5s. |
|
|
736
|
+
| **v2.9.2** | **Compatibilidad verificada con DSH 0.2.1-alpha.1 + tanda de correcciones de enrutamiento/guardas + sub-skill js-run**: `argo mcp inject` añade WorkBuddy y cubre 7 hosts; nueva sub-habilidad js-run: JS de páginas web sin navegador, P50 ≈1 ms por ejecución. |
|
|
737
|
+
| **v2.9.1** | **Optimización de calidad de contenido + resistencia a granjas de contenido + adaptación a la última versión**: filtra mejor el contenido de baja calidad generado en masa; la búsqueda local ya no devuelve su propio código fuente como resultado. |
|
|
738
|
+
| **v2.9.0** | **Optimización de fuentes + paridad plugin/CLI + lenguas minoritarias**: fuentes 237→253 (sin clave 198→219): 14 fuentes de noticias minoritarias, CORE y TinEye; rerank 33 ms→1,5 ms; nuevo `argo stats`. Ver [notas de la versión](docs/RELEASE_NOTES_v2.9.0.md) |
|
|
739
|
+
| **v2.8.9** | **Salida más ligera + recuperación más rica y rápida + 5 fuentes internacionales y de verificación**: salida 15,5KB→5,2KB (−66 %, `--envelope` la restaura); consultas repetidas −30 %; cinco fuentes sin clave nuevas (235→237). Ver [notas de la versión](docs/RELEASE_NOTES_v2.8.9.md) |
|
|
740
|
+
| **v2.8.8** | **Correcciones reportadas por usuarios reales (#12 silencio del alias de clave, #13 fetch sin proxy) + aceleración general + fuentes 218 → 235**: proxies por `ARGO_PROXY` y por dominio, con `NO_PROXY` respetado; arranque 2,1s→0,55s; nuevos `argo answer` y `argo watch`; fuentes 218→235. Ver [notas de la versión](docs/RELEASE_NOTES_v2.8.8.md) |
|
|
741
|
+
| **v2.8.7** | **218 fuentes / 89 dominios + tres canales de salida directa del cuerpo + disciplina de disparo de rutas + corrección de cero resultados en macro**: 50 fuentes nuevas (leyes, estándares, seguridad); llms.txt sondeado en el nivel 0 con r.jina.ai de respaldo; `--engine` acepta listas con comas. Ver [notas de la versión](docs/RELEASE_NOTES_v2.8.7.md) |
|
|
742
|
+
| **v2.8.6** | **Carrera hedged + reparto de tres fuentes de Zhihu + despacho declarativo por idioma + puerta de alcanzabilidad + protocolo de búsqueda académica**: carrera con ventana de gracia para el primer motor; despacho por idioma y académico con 17 fuentes académicas; cola geo −56 %. Ver [notas de la versión](docs/RELEASE_NOTES_v2.8.6.md) |
|
|
743
|
+
| **v2.8.5** | **Herramientas nativas del plugin DSH + MCP apagado por defecto + compatibilidad Windows + autocuración de cuotas + deadline de fetch**: `argo_search` y `argo_fetch` ya son herramientas nativas de primera clase; llega el soporte de Windows; deadline de fetch (`ARGO_FETCH_DEADLINE_S`). [Notas](docs/RELEASE_NOTES_v2.8.5.md) |
|
|
744
|
+
| **v2.8.4** | **Fusión de datos locales + inyección MCP multi-cliente + búsqueda estructurada + Keenable**: investigación L1 con datos locales (`file_inputs`, `recompute`); `argo mcp inject` monta MCP en varios clientes; Keenable llega en prueba gratis. Ver [notas de release](docs/RELEASE_NOTES_v2.8.4.md) |
|
|
822
745
|
| **v2.8.3** | **Arreglo de enrutamiento multilingüe + anysearch in-process + RRF ponderado**: ja/ko devuelven el idioma objetivo; DE/FR/ES/IT vía anysearch; downweight weakest-link (paper 2508.01405). Ver [notas de release](docs/RELEASE_NOTES_v2.8.3.md) |
|
|
823
746
|
| **v2.8.2** | **Windows + semántica de evidencia unificada**: se quita el límite npm `os`; UTF-8 contra cuelgues GBK; `dsh.bundle` en el paquete principal; puerta de calidad de `wide_research`. Ver [notas de release](docs/RELEASE_NOTES_v2.8.2.md) |
|
|
824
747
|
| **v2.8.0** | **Bucle de evidencia + empleos v3 + clima dual**: `fetch_required` / `--verify`; `argo job`; wttr.in + Open-Meteo; Parallel / You.com. Ver [notas de release](docs/RELEASE_NOTES_v2.8.0.md) |
|
|
825
748
|
| **v2.7.3** | HttpClient en capa de motor; TF-IDF activa 25 verticales; TTL de 70 dominios; verticales bilingües. Ver [notas de release](docs/RELEASE_NOTES_v2.7.3.md) |
|
|
826
749
|
| **v2.7.2** | Búsqueda profesional con sesión (ego-search, off por defecto); JA/KO ya no mezclan motores chinos. Ver [notas de release](docs/RELEASE_NOTES_v2.7.2.md) |
|
|
827
750
|
| **v2.7.1** | Endurecimiento SSRF + arreglo del estado de salud del routing. Ver [notas de release](docs/RELEASE_NOTES_v2.7.1.md) |
|
|
828
|
-
| **v2.7.0** | **Tarjetas modales verticales estructuradas**: motores nativos `bocha`
|
|
829
|
-
| **v2.6.2** | Fusión de líneas
|
|
751
|
+
| **v2.7.0** | **Tarjetas modales verticales estructuradas**: motores nativos `bocha` y `bocha_ai`; `modal_card` reconoce tarjetas de tren, combustible, metales y calendario en tiempo real. Ver [notas de la versión](docs/RELEASE_NOTES_v2.7.0.md) |
|
|
752
|
+
| **v2.6.2** | Fusión de líneas independientes: entorno de red, RRF ponderado con caché semántica, motores desactivables y enrutado ja-ko completado. Ver [notas de la versión](docs/RELEASE_NOTES_v2.6.2.md) |
|
|
830
753
|
| **v2.6.1** | Versión de corrección de v2.6.0: corrección de daño colateral de enrutamiento (`capital of` ya no se apodera de fact_check); sincronización de versión. Ver [notas de la versión](docs/RELEASE_NOTES_v2.6.1.md) |
|
|
831
|
-
| **v2.6.0** | **Búsqueda multilingüe** (
|
|
754
|
+
| **v2.6.0** | **Búsqueda multilingüe** (detección de idioma / params de motor / respaldo cross-lang); verticales de cine, deportes, geo, org y media; ~120+ fuentes. Ver [notas de release](docs/RELEASE_NOTES_v2.6.0.md) |
|
|
832
755
|
| **v2.5.1** | Fuentes de respuesta finanzas/macro/química más densas; tiers de motor + presupuesto combo; [notas v2.5.1](docs/RELEASE_NOTES_v2.5.1.md) |
|
|
833
756
|
| **v2.5.0** | Script de instalación + npx; rewrite desacoplado del routing; caché hot-path; MCP compacto |
|
|
834
757
|
| **v2.4.0** | Fallback de ruta de baja puntuación + filtros de mal-enrutado social; caché depth / soft hits; breakers y caché negativa; `engine_outcomes` |
|