ollama-intern-mcp 2.2.0 → 2.4.0
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.es.md +91 -0
- package/README.fr.md +91 -0
- package/README.hi.md +91 -0
- package/README.it.md +91 -0
- package/README.ja.md +91 -0
- package/README.md +91 -0
- package/README.pt-BR.md +91 -0
- package/README.zh.md +182 -91
- package/dist/envelope.d.ts +34 -0
- package/dist/envelope.d.ts.map +1 -1
- package/dist/envelope.js +4 -0
- package/dist/envelope.js.map +1 -1
- package/dist/ollama.d.ts +10 -0
- package/dist/ollama.d.ts.map +1 -1
- package/dist/ollama.js.map +1 -1
- package/dist/prewarm.d.ts.map +1 -1
- package/dist/prewarm.js +11 -2
- package/dist/prewarm.js.map +1 -1
- package/dist/profiles.d.ts.map +1 -1
- package/dist/profiles.js +26 -0
- package/dist/profiles.js.map +1 -1
- package/dist/tiers.d.ts +36 -0
- package/dist/tiers.d.ts.map +1 -1
- package/dist/tiers.js +10 -0
- package/dist/tiers.js.map +1 -1
- package/dist/tools/batch.d.ts +7 -0
- package/dist/tools/batch.d.ts.map +1 -1
- package/dist/tools/batch.js +27 -4
- package/dist/tools/batch.js.map +1 -1
- package/dist/tools/chat.d.ts +1 -0
- package/dist/tools/chat.d.ts.map +1 -1
- package/dist/tools/chat.js +28 -3
- package/dist/tools/chat.js.map +1 -1
- package/dist/tools/classify.d.ts +1 -0
- package/dist/tools/classify.d.ts.map +1 -1
- package/dist/tools/classify.js +13 -0
- package/dist/tools/classify.js.map +1 -1
- package/dist/tools/codeCitation.d.ts +1 -0
- package/dist/tools/codeCitation.d.ts.map +1 -1
- package/dist/tools/codeCitation.js +12 -0
- package/dist/tools/codeCitation.js.map +1 -1
- package/dist/tools/corpusAnswer.d.ts +1 -0
- package/dist/tools/corpusAnswer.d.ts.map +1 -1
- package/dist/tools/corpusAnswer.js +18 -0
- package/dist/tools/corpusAnswer.js.map +1 -1
- package/dist/tools/corpusSearch.d.ts.map +1 -1
- package/dist/tools/corpusSearch.js +6 -1
- package/dist/tools/corpusSearch.js.map +1 -1
- package/dist/tools/extract.d.ts +1 -0
- package/dist/tools/extract.d.ts.map +1 -1
- package/dist/tools/extract.js +13 -0
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/research.d.ts +1 -0
- package/dist/tools/research.d.ts.map +1 -1
- package/dist/tools/research.js +12 -0
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/runner.d.ts +10 -0
- package/dist/tools/runner.d.ts.map +1 -1
- package/dist/tools/runner.js +31 -3
- package/dist/tools/runner.js.map +1 -1
- package/dist/tools/summarizeDeep.d.ts +1 -0
- package/dist/tools/summarizeDeep.d.ts.map +1 -1
- package/dist/tools/summarizeDeep.js +12 -0
- package/dist/tools/summarizeDeep.js.map +1 -1
- package/dist/tools/summarizeFast.d.ts +1 -0
- package/dist/tools/summarizeFast.d.ts.map +1 -1
- package/dist/tools/summarizeFast.js +12 -0
- package/dist/tools/summarizeFast.js.map +1 -1
- package/dist/version.d.ts +11 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +12 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/README.es.md
CHANGED
|
@@ -29,6 +29,97 @@ Sin nube. Sin telemetría. Nada de "autonomía". Cada llamada muestra su trabajo
|
|
|
29
29
|
|
|
30
30
|
## Novedades en v2.2.0
|
|
31
31
|
|
|
32
|
+
Control individual `num_ctx` (tamaño de la ventana de contexto) por nivel en el sistema de perfiles. Pequeña mejora adicional: los usuarios de la versión v2.3.0 no se ven afectados. Detalles en [CHANGELOG.md](./CHANGELOG.md) y [docs/release-notes/v2.4.0.md](./docs/release-notes/v2.4.0.md).
|
|
33
|
+
|
|
34
|
+
- **Mapa `TierConfig.num_ctx` (nuevo)**: Opcional `{ instant?, workhorse?, deep?, embed? }` en el perfil. Cuando se establece para un nivel, el servidor MCP coloca `options.num_ctx = <valor>` en cada solicitud de generación/chat de Ollama dirigida a ese nivel (inicial + alternativa). Si no se establece, la solicitud omite completamente `num_ctx`, por lo que Ollama utiliza su valor predeterminado cargado con el modelo; se conserva exactamente el comportamiento de la versión v2.3.0.
|
|
35
|
+
- **Nuevo campo de la envolvente `num_ctx_used?: number`**: Solo está presente cuando el servidor MCP realmente envió `num_ctx`. No está presente cuando la solicitud permitió que Ollama eligiera. No se debe inferir un valor predeterminado: el servidor MCP no consulta a Ollama para obtener el valor efectivo.
|
|
36
|
+
- **Valores predeterminados del perfil**: `dev-rtx5080` / `dev-rtx5080-qwen3` se entregan con `instant: 4096`, `workhorse: 8192`, `deep`/`embed` SIN ESTABLECER. Se dimensionaron para mantener `hermes3:8b` en la memoria VRAM de 16 GB de la RTX 5080 para herramientas rápidas. `m5-max` deja todos los niveles SIN ESTABLECER: la memoria unificada de 128 GB no tiene problemas de desbordamiento.
|
|
37
|
+
- **Cierra la fase 1 de diagnóstico de la versión v0.8.0**: `hermes3:8b` con el contexto predeterminado de 32K en la RTX 5080 se volcaba a la CPU y comenzaba a provocar tiempos de espera en las llamadas `ollama_extract` de "workhorse". La versión v2.4.0 evita esto a nivel de perfil.
|
|
38
|
+
|
|
39
|
+
### Control individual de `num_ctx` (nuevo en v2.4.0)
|
|
40
|
+
|
|
41
|
+
Perfil (fragmento de `src/profiles.ts`):
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
"dev-rtx5080": {
|
|
45
|
+
tiers: {
|
|
46
|
+
instant: "hermes3:8b",
|
|
47
|
+
workhorse: "hermes3:8b",
|
|
48
|
+
deep: "hermes3:8b",
|
|
49
|
+
embed: "nomic-embed-text",
|
|
50
|
+
num_ctx: {
|
|
51
|
+
instant: 4096, // fast classify/summarize
|
|
52
|
+
workhorse: 8192, // schema-bound extract / batch
|
|
53
|
+
// deep: UNSET — long-context briefs keep current behavior
|
|
54
|
+
// embed: UNSET — no context-window pressure on embed
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
// ... timeouts, prewarm
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Envolvente en una llamada de nivel "workhorse" (por ejemplo, `ollama_extract`):
|
|
62
|
+
|
|
63
|
+
```jsonc
|
|
64
|
+
{
|
|
65
|
+
"result": { /* extracted data */ },
|
|
66
|
+
"tier_used": "workhorse",
|
|
67
|
+
"model": "hermes3:8b",
|
|
68
|
+
"num_ctx_used": 8192, // present because the profile set workhorse=8192
|
|
69
|
+
// ... rest of envelope unchanged
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
En `m5-max` (o cualquier perfil que deje un nivel sin establecer), `num_ctx_used` no está presente en la envolvente y la solicitud enviada a Ollama no incluye el campo `num_ctx`: Ollama utiliza su valor predeterminado cargado con el modelo.
|
|
74
|
+
|
|
75
|
+
Los operadores configuran ajustando o editando el perfil; no hay una entrada de `num_ctx` por llamada en los esquemas de las herramientas. Si una llamada futura revela la necesidad, el patrón sigue la sobreescritura de `model` de la versión v2.3.0.
|
|
76
|
+
|
|
77
|
+
### Histórico — entregables de v2.1.0
|
|
78
|
+
|
|
79
|
+
Consulte [CHANGELOG.md](./CHANGELOG.md) y [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md) para la entrada completa de la versión v2.3.0 (sobreescritura de modelo por llamada).
|
|
80
|
+
|
|
81
|
+
## Novedades en v2.2.0
|
|
82
|
+
|
|
83
|
+
Sobreescritura de modelo por llamada en herramientas basadas en LLM. Pequeña mejora adicional: los usuarios de la versión v2.2.0 no se ven afectados. Detalles en [CHANGELOG.md](./CHANGELOG.md) y [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md).
|
|
84
|
+
|
|
85
|
+
- **Entrada opcional `model: string` en 8 herramientas**: `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep`, `ollama_research`, `ollama_corpus_answer`, `ollama_chat`, `ollama_code_citation`. El primer intento en el nivel de la herramienta se ejecuta con el modelo especificado por el llamador; en caso de tiempo de espera, la cascada `TIER_FALLBACK` existente resuelve el modelo propio del nivel más económico (NO la sobreescritura del llamador). Las herramientas compuestas/resumidas/empaquetadas NO aceptan deliberadamente `model`: los átomos tienen control por llamada, las herramientas compuestas utilizan los valores predeterminados del nivel.
|
|
86
|
+
- **Nuevo campo de la envolvente `model_requested?: string`**: Solo está presente cuando se proporcionó la sobreescritura. Los llamadores conscientes de la calibración comparan `model_requested` con `model` para detectar la sustitución de la alternativa: `if (env.model_requested && env.model !== env.model_requested) { /* sustitución */ }`. Las entradas vacías o solo con espacios en blanco generan un error `ZodError` durante el análisis del esquema, no una omisión silenciosa.
|
|
87
|
+
- **Corrección de errores: deriva en `src/version.ts`**. La constante de tiempo de ejecución `VERSION` ahora se lee de `package.json` al cargar el módulo; las versiones v2.1.0 y v2.2.0 enviaron información incorrecta con la cadena de identidad "2.0.0". Se agregó una nueva prueba `tests/version.test.ts` que verifica que `VERSION === pkg.version`.
|
|
88
|
+
|
|
89
|
+
### Sobreescritura de modelo por llamada (nuevo en v2.3.0)
|
|
90
|
+
|
|
91
|
+
```jsonc
|
|
92
|
+
{
|
|
93
|
+
"tool": "ollama_classify",
|
|
94
|
+
"arguments": {
|
|
95
|
+
"text": "patch null pointer in auth",
|
|
96
|
+
"labels": ["feat", "fix", "chore"],
|
|
97
|
+
"frame": "what is the change kind?",
|
|
98
|
+
"model": "hermes3:8b"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Envolvente:
|
|
104
|
+
|
|
105
|
+
```jsonc
|
|
106
|
+
{
|
|
107
|
+
"result": { "label": "fix", "confidence": 0.9, "off_topic": false, ... },
|
|
108
|
+
"tier_used": "instant",
|
|
109
|
+
"model": "hermes3:8b",
|
|
110
|
+
"model_requested": "hermes3:8b", // present because override was supplied
|
|
111
|
+
// ... rest of envelope unchanged
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Si el servidor principal o la capa de procesamiento intensivo hubiera alcanzado su límite de tiempo y la solicitud se hubiera redirigido a la capa de respuesta rápida, `env.model` sería el modelo asignado por la capa de respuesta rápida, y `env.fallback_from` sería "workhorse" (servidor principal). `env.model_requested` seguiría siendo "hermes3:8b", y la condición `env.model !== env.model_requested` indica que se ha realizado una sustitución. Esta sustitución se realiza deliberadamente y no se aplica a la capa de menor costo, ya que el modelo elegido podría no ser adecuado para el rol de esa capa.
|
|
116
|
+
|
|
117
|
+
### Histórico — entregables de v2.1.0
|
|
118
|
+
|
|
119
|
+
Consulte [CHANGELOG.md](./CHANGELOG.md) y [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md) para ver la entrada completa de la versión 2.2.0 (relevancia temática contextual + abstención estructurada).
|
|
120
|
+
|
|
121
|
+
## Novedades en v2.2.0
|
|
122
|
+
|
|
32
123
|
Contrato de rol de agente local de procesamiento de evidencia: relevancia temática y abstención estructurada. Pequeña adición — las llamadas de la versión v2.1.0 no han cambiado. Consulta las entradas detalladas en [CHANGELOG.md](./CHANGELOG.md) y [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md).
|
|
33
124
|
|
|
34
125
|
- **Extracción basada en el contexto** en `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep` — entrada opcional `frame: string` + salidas estructuradas `frame_alignment` / `on_topic` / `frame_addressed`. Las fuentes que no son relevantes se marcan en lugar de parafrasearse en el esquema.
|
package/README.fr.md
CHANGED
|
@@ -29,6 +29,97 @@ Pas de cloud. Pas de télémétrie. Rien d' "autonome". Chaque appel montre son
|
|
|
29
29
|
|
|
30
30
|
## Nouveau dans la version 2.2.0
|
|
31
31
|
|
|
32
|
+
Contrôle de `num_ctx` (fenêtre de contexte) par niveau dans le système de profil. Amélioration mineure additive — les appels inchangés en v2.3.0. Détails dans [CHANGELOG.md](./CHANGELOG.md) et [docs/release-notes/v2.4.0.md](./docs/release-notes/v2.4.0.md).
|
|
33
|
+
|
|
34
|
+
- **Carte `TierConfig.num_ctx` (nouvelle)** — optionnel `{ instant?, workhorse?, deep?, embed? }` dans le profil. Lorsqu'elle est définie pour un niveau, le serveur MCP ajoute `options.num_ctx = <valeur>` à chaque requête de génération/chat Ollama dirigée vers ce niveau (initiale + solution de repli). Lorsqu'elle n'est pas définie, la requête omet complètement `num_ctx`, ce qui permet à Ollama d'utiliser sa valeur par défaut chargée avec le modèle — le comportement de v2.3.0 est conservé exactement.
|
|
35
|
+
- **Nouveau champ d'enveloppe `num_ctx_used?: number`** — présent uniquement lorsque le serveur MCP a réellement envoyé `num_ctx`. Absent lorsque la requête a permis à Ollama de choisir. Ne pas déduire de valeur par défaut — le serveur MCP ne demande pas à Ollama la valeur effective.
|
|
36
|
+
- **Valeurs par défaut du profil**: `dev-rtx5080` / `dev-rtx5080-qwen3` sont livrés avec `instant: 4096`, `workhorse: 8192`, `deep`/`embed` non définis. Les tailles sont choisies pour maintenir `hermes3:8b` dans la mémoire VRAM de 16 Go de la RTX 5080, ce qui permet d'utiliser rapidement des outils. `m5-max` laisse tous les niveaux non définis — la mémoire unifiée de 128 Go n'a aucun problème de débordement.
|
|
37
|
+
- **Résout le diagnostic de la phase 1 de v0.8.0** — `hermes3:8b` avec le contexte par défaut de 32 Ko sur la RTX 5080 débordait vers le CPU et commençait à provoquer des délais d'attente pour les appels `ollama_extract` du type "workhorse". La version 2.4.0 empêche cela au niveau du profil.
|
|
38
|
+
|
|
39
|
+
### Contrôle de `num_ctx` par niveau (nouveau dans v2.4.0)
|
|
40
|
+
|
|
41
|
+
Profil (extrait de `src/profiles.ts`) :
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
"dev-rtx5080": {
|
|
45
|
+
tiers: {
|
|
46
|
+
instant: "hermes3:8b",
|
|
47
|
+
workhorse: "hermes3:8b",
|
|
48
|
+
deep: "hermes3:8b",
|
|
49
|
+
embed: "nomic-embed-text",
|
|
50
|
+
num_ctx: {
|
|
51
|
+
instant: 4096, // fast classify/summarize
|
|
52
|
+
workhorse: 8192, // schema-bound extract / batch
|
|
53
|
+
// deep: UNSET — long-context briefs keep current behavior
|
|
54
|
+
// embed: UNSET — no context-window pressure on embed
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
// ... timeouts, prewarm
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Enveloppe pour un appel de niveau "workhorse" (par exemple, `ollama_extract`) :
|
|
62
|
+
|
|
63
|
+
```jsonc
|
|
64
|
+
{
|
|
65
|
+
"result": { /* extracted data */ },
|
|
66
|
+
"tier_used": "workhorse",
|
|
67
|
+
"model": "hermes3:8b",
|
|
68
|
+
"num_ctx_used": 8192, // present because the profile set workhorse=8192
|
|
69
|
+
// ... rest of envelope unchanged
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Sur `m5-max` (ou tout profil qui laisse un niveau non défini), `num_ctx_used` est absent de l'enveloppe et la requête envoyée à Ollama ne comprend pas le champ `num_ctx` — Ollama utilise sa valeur par défaut chargée avec le modèle.
|
|
74
|
+
|
|
75
|
+
Les opérateurs configurent les paramètres en sélectionnant/modifiant le profil ; il n'y a pas de saisie `num_ctx` par appel dans les schémas des outils. Si un appel futur révèle un besoin, le modèle suit le mécanisme de remplacement du modèle de v2.3.0.
|
|
76
|
+
|
|
77
|
+
### Historique — livrables de la version 2.1.0
|
|
78
|
+
|
|
79
|
+
Consultez [CHANGELOG.md](./CHANGELOG.md) et [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md) pour l'intégralité de l'entrée v2.3.0 (remplacement du modèle par appel).
|
|
80
|
+
|
|
81
|
+
## Nouveau dans la version 2.2.0
|
|
82
|
+
|
|
83
|
+
Modification du modèle par appel pour les outils atomiques basés sur les LLM. Amélioration mineure additive — les appelants de la version v2.2.0 restent inchangés. Détails dans [CHANGELOG.md](./CHANGELOG.md) et [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md).
|
|
84
|
+
|
|
85
|
+
- **Entrée optionnelle `model: string` pour 8 outils atomiques** — `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep`, `ollama_research`, `ollama_corpus_answer`, `ollama_chat`, `ollama_code_citation`. La première tentative sur le niveau de l'outil utilise le modèle spécifié par l'appelant ; en cas de dépassement de délai, la cascade `TIER_FALLBACK` existante utilise le modèle du niveau le moins coûteux (et non le modèle spécifié par l'appelant). Les outils composites/résumés/groupés n'acceptent *délibérément* pas l'argument `model` ; les atomes permettent un contrôle par appel, tandis que les composites utilisent les paramètres par défaut du niveau.
|
|
86
|
+
- **Nouveau champ de l'enveloppe `model_requested?: string`** — présent uniquement lorsque le modèle a été spécifié. Les appelants sensibles à la calibration comparent `model_requested` à `model` pour détecter le remplacement par défaut : `if (env.model_requested && env.model !== env.model_requested) { /* remplacement */ }`. Les entrées vides ou contenant uniquement des espaces déclenchent une erreur `ZodError` lors de l'analyse du schéma, et non un comportement silencieux.
|
|
87
|
+
- **Correction de bug — dérive dans `src/version.ts`.** La constante `VERSION` est maintenant lue à partir de `package.json` lors du chargement du module ; les versions v2.1.0 et v2.2.0 contenaient une chaîne d'identification obsolète `"2.0.0"`. Un nouveau fichier `tests/version.test.ts` vérifie que `VERSION === pkg.version`.
|
|
88
|
+
|
|
89
|
+
### Modification du modèle par appel (nouvelle fonctionnalité dans la version v2.3.0)
|
|
90
|
+
|
|
91
|
+
```jsonc
|
|
92
|
+
{
|
|
93
|
+
"tool": "ollama_classify",
|
|
94
|
+
"arguments": {
|
|
95
|
+
"text": "patch null pointer in auth",
|
|
96
|
+
"labels": ["feat", "fix", "chore"],
|
|
97
|
+
"frame": "what is the change kind?",
|
|
98
|
+
"model": "hermes3:8b"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Enveloppe :
|
|
104
|
+
|
|
105
|
+
```jsonc
|
|
106
|
+
{
|
|
107
|
+
"result": { "label": "fix", "confidence": 0.9, "off_topic": false, ... },
|
|
108
|
+
"tier_used": "instant",
|
|
109
|
+
"model": "hermes3:8b",
|
|
110
|
+
"model_requested": "hermes3:8b", // present because override was supplied
|
|
111
|
+
// ... rest of envelope unchanged
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Si le niveau "workhorse/deep" a expiré et que l'appel a été redirigé vers le niveau "instant", `env.model` serait le modèle utilisé par le niveau "instant" et `env.fallback_from` serait `"workhorse"` — `env.model_requested` serait toujours `"hermes3:8b"`, et `env.model !== env.model_requested` indique le remplacement. Le modèle spécifié par l'appelant n'est *délibérément* pas transmis au niveau le moins coûteux ; le modèle choisi peut ne pas correspondre à la fonction de ce niveau.
|
|
116
|
+
|
|
117
|
+
### Historique — livrables de la version 2.1.0
|
|
118
|
+
|
|
119
|
+
Consultez [CHANGELOG.md](./CHANGELOG.md) et [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md) pour l'intégralité de l'entrée de la version v2.2.0 (pertinence contextuelle et abstention structurée).
|
|
120
|
+
|
|
121
|
+
## Nouveau dans la version 2.2.0
|
|
122
|
+
|
|
32
123
|
Contrat du rôle d'agent de collecte de preuves local : pertinence thématique et abstention structurée. Amélioration mineure — les appels de la version 2.1.0 restent inchangés. Détails dans [CHANGELOG.md](./CHANGELOG.md) et [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md).
|
|
33
124
|
|
|
34
125
|
- **Extraction contextuelle** sur `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep` — entrée optionnelle `frame: string` + sorties structurées `frame_alignment` / `on_topic` / `frame_addressed`. Les sources hors sujet sont signalées au lieu d'être paraphrasées dans le schéma.
|
package/README.hi.md
CHANGED
|
@@ -29,6 +29,97 @@
|
|
|
29
29
|
|
|
30
30
|
## v2.2.0 में नया
|
|
31
31
|
|
|
32
|
+
प्रत्येक स्तर के लिए `num_ctx` (संदर्भ विंडो) नियंत्रण, प्रोफाइल सिस्टम में। मामूली सुधार, v2.3.0 में बदलाव नहीं। विस्तृत जानकारी [CHANGELOG.md](./CHANGELOG.md) और [docs/release-notes/v2.4.0.md](./docs/release-notes/v2.4.0.md) में उपलब्ध है।
|
|
33
|
+
|
|
34
|
+
- **`TierConfig.num_ctx` मैप (नया)** — प्रोफाइल पर वैकल्पिक `{ instant?, workhorse?, deep?, embed? }` विकल्प। जब किसी स्तर के लिए यह सेट किया जाता है, तो MCP सर्वर प्रत्येक Ollama जनरेट/चैट अनुरोध पर `options.num_ctx = <value>` सेट करता है, जो उस स्तर पर रूट किया जाता है (प्रारंभिक + बैकअप)। यदि यह सेट नहीं है, तो अनुरोध में `num_ctx` पूरी तरह से छोड़ दिया जाता है, इसलिए Ollama अपने मॉडल-लोड किए गए डिफ़ॉल्ट का उपयोग करता है — v2.3.0 का व्यवहार बिल्कुल वैसा ही है।
|
|
35
|
+
- **नया फ़ील्ड `num_ctx_used?: number`** — यह केवल तभी मौजूद होता है जब MCP सर्वर वास्तव में `num_ctx` भेजता है। यदि अनुरोध में Ollama को `num_ctx` चुनने दिया जाता है, तो यह अनुपस्थित होता है। डिफ़ॉल्ट मान का अनुमान न लगाएं — MCP सर्वर प्रभावी मान के लिए Ollama से पूछताछ नहीं करता है।
|
|
36
|
+
- **प्रोफाइल डिफ़ॉल्ट:** `dev-rtx5080` / `dev-rtx5080-qwen3` में `instant: 4096`, `workhorse: 8192`, `deep`/`embed` अनसेट हैं। इन्हें इस तरह से डिज़ाइन किया गया है कि `hermes3:8b` को RTX 5080 की 16GB VRAM मेमोरी में रखा जा सके, ताकि तेज़ टूल का उपयोग किया जा सके। `m5-max` में सभी स्तर अनसेट हैं — 128GB की एकीकृत मेमोरी में कोई मेमोरी ओवरफ्लो समस्या नहीं होती है।
|
|
37
|
+
- **v0.8.0 के चरण 1 का निदान समाप्त** — `hermes3:8b` को RTX 5080 पर डिफ़ॉल्ट 32K संदर्भ पर चलाने पर, यह CPU पर चला जाता था और `ollama_extract` कॉल में समय समाप्त होने लगता था। v2.4.0 इस समस्या को प्रोफाइल स्तर पर रोकता है।
|
|
38
|
+
|
|
39
|
+
### प्रत्येक स्तर के लिए `num_ctx` नियंत्रण (v2.4.0 में नया)।
|
|
40
|
+
|
|
41
|
+
प्रोफाइल ( `src/profiles.ts` से अंश):
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
"dev-rtx5080": {
|
|
45
|
+
tiers: {
|
|
46
|
+
instant: "hermes3:8b",
|
|
47
|
+
workhorse: "hermes3:8b",
|
|
48
|
+
deep: "hermes3:8b",
|
|
49
|
+
embed: "nomic-embed-text",
|
|
50
|
+
num_ctx: {
|
|
51
|
+
instant: 4096, // fast classify/summarize
|
|
52
|
+
workhorse: 8192, // schema-bound extract / batch
|
|
53
|
+
// deep: UNSET — long-context briefs keep current behavior
|
|
54
|
+
// embed: UNSET — no context-window pressure on embed
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
// ... timeouts, prewarm
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
वर्कहॉर्स-स्तर कॉल के लिए एनवेलप (उदाहरण के लिए, `ollama_extract`):
|
|
62
|
+
|
|
63
|
+
```jsonc
|
|
64
|
+
{
|
|
65
|
+
"result": { /* extracted data */ },
|
|
66
|
+
"tier_used": "workhorse",
|
|
67
|
+
"model": "hermes3:8b",
|
|
68
|
+
"num_ctx_used": 8192, // present because the profile set workhorse=8192
|
|
69
|
+
// ... rest of envelope unchanged
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
`m5-max` (या किसी भी प्रोफाइल में जहां कोई स्तर अनसेट है) पर, `num_ctx_used` एनवेलप में अनुपस्थित होता है और Ollama को भेजे गए अनुरोध में `num_ctx` फ़ील्ड शामिल नहीं होता है — Ollama अपने मॉडल-लोड किए गए डिफ़ॉल्ट का उपयोग करता है।
|
|
74
|
+
|
|
75
|
+
ऑपरेटर प्रोफाइल का चयन/संपादित करके ट्यूनिंग करते हैं; टूल स्कीमा में प्रति-कॉल `num_ctx` इनपुट नहीं होता है। यदि भविष्य में किसी कॉल में इसकी आवश्यकता होती है, तो यह v2.3.0 के `model` ओवरराइड पैटर्न का अनुसरण करेगा।
|
|
76
|
+
|
|
77
|
+
### ऐतिहासिक - v2.1.0 डिलीवरी
|
|
78
|
+
|
|
79
|
+
v2.3.0 के पूर्ण विवरण (प्रति-कॉल मॉडल ओवरराइड) के लिए, [CHANGELOG.md](./CHANGELOG.md) और [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md) देखें।
|
|
80
|
+
|
|
81
|
+
## v2.2.0 में नया
|
|
82
|
+
|
|
83
|
+
प्रत्येक कॉल के लिए मॉडल को बदलने की सुविधा, जो LLM-आधारित एटम टूल में उपलब्ध है। मामूली बदलाव किए गए हैं, v2.2.0 में कॉल करने वालों में कोई बदलाव नहीं हुआ। विस्तृत जानकारी [CHANGELOG.md](./CHANGELOG.md) और [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md) में उपलब्ध है।
|
|
84
|
+
|
|
85
|
+
- **8 एटम टूल में वैकल्पिक `model: string` इनपुट:** `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep`, `ollama_research`, `ollama_corpus_answer`, `ollama_chat`, `ollama_code_citation`. टूल के पहले प्रयास में, कॉल करने वाले द्वारा निर्दिष्ट मॉडल का उपयोग किया जाता है; यदि समय समाप्त हो जाता है, तो मौजूदा `TIER_FALLBACK` प्रणाली, कम खर्चीले स्तर के अपने मॉडल का उपयोग करती है (कॉल करने वाले द्वारा किए गए बदलाव का नहीं)। कंपोजिट/संक्षिप्त/पैकेज टूल जानबूझकर `model` को स्वीकार नहीं करते हैं - एटम में प्रति-कॉल नियंत्रण होता है, जबकि कंपोजिट डिफ़ॉल्ट स्तर का उपयोग करते हैं।
|
|
86
|
+
- **नया एनवेलप फ़ील्ड `model_requested?: string`:** यह केवल तभी मौजूद होता है जब मॉडल को बदला गया हो। कैलिब्रेशन-सक्षम कॉल करने वाले `model_requested` की तुलना `model` से करते हैं ताकि यह पता चल सके कि क्या कोई बदलाव किया गया है: `if (env.model_requested && env.model !== env.model_requested) { /* बदलाव */ }`. खाली या केवल रिक्त स्थान वाले इनपुट `ZodError` उत्पन्न करते हैं, स्कीमा पार्सिंग के दौरान, और यह चुपचाप नहीं होता है।
|
|
87
|
+
- **बग ठीक किया गया — `src/version.ts` में त्रुटि।** रनटाइम `VERSION` स्थिरांक अब मॉड्यूल लोड होने पर `package.json` से पढ़ा जाता है; v2.1.0 और v2.2.0 में पुरानी `"2.0.0"` पहचान स्ट्रिंग रिपोर्ट की गई थी। नया `tests/version.test.ts` `VERSION === pkg.version` को सुनिश्चित करता है।
|
|
88
|
+
|
|
89
|
+
### प्रत्येक कॉल के लिए मॉडल को बदलने की सुविधा (v2.3.0 में नई)।
|
|
90
|
+
|
|
91
|
+
```jsonc
|
|
92
|
+
{
|
|
93
|
+
"tool": "ollama_classify",
|
|
94
|
+
"arguments": {
|
|
95
|
+
"text": "patch null pointer in auth",
|
|
96
|
+
"labels": ["feat", "fix", "chore"],
|
|
97
|
+
"frame": "what is the change kind?",
|
|
98
|
+
"model": "hermes3:8b"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
एनवेलप:
|
|
104
|
+
|
|
105
|
+
```jsonc
|
|
106
|
+
{
|
|
107
|
+
"result": { "label": "fix", "confidence": 0.9, "off_topic": false, ... },
|
|
108
|
+
"tier_used": "instant",
|
|
109
|
+
"model": "hermes3:8b",
|
|
110
|
+
"model_requested": "hermes3:8b", // present because override was supplied
|
|
111
|
+
// ... rest of envelope unchanged
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
यदि 'वर्कहॉर्स/डीप' स्तर में समय समाप्त हो गया था और कॉल 'इंस्टेंट' स्तर पर चला गया था, तो `env.model` 'इंस्टेंट' स्तर के चुने हुए मॉडल को दर्शाता है, और `env.fallback_from` `"workhorse"` होगा - `env.model_requested` अभी भी `"hermes3:8b"` होगा, और `env.model !== env.model_requested` बदलाव का संकेत है। जानबूझकर, मॉडल को कम खर्चीले स्तर में नहीं ले जाया जाता है; चुना गया मॉडल उस स्तर की भूमिका के लिए उपयुक्त नहीं हो सकता है।
|
|
116
|
+
|
|
117
|
+
### ऐतिहासिक - v2.1.0 डिलीवरी
|
|
118
|
+
|
|
119
|
+
v2.2.0 के पूर्ण विवरण (विषय-आधारित और संरचित अस्वीकृति) के लिए [CHANGELOG.md](./CHANGELOG.md) और [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md) देखें।
|
|
120
|
+
|
|
121
|
+
## v2.2.0 में नया
|
|
122
|
+
|
|
32
123
|
स्थानीय प्रमाण-कार्यकर्ता भूमिका अनुबंध: फ्रेम-बाउंड प्रासंगिकता और संरचित अस्वीकृति। मामूली अतिरिक्त - v2.1.0 कॉलर्स अपरिवर्तित। [CHANGELOG.md](./CHANGELOG.md) और [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md) में विस्तृत प्रविष्टियाँ।
|
|
33
124
|
|
|
34
125
|
- `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep` पर **फ्रेम-बाउंड निष्कर्षण** - वैकल्पिक `frame: string` इनपुट + संरचित `frame_alignment` / `on_topic` / `frame_addressed` आउटपुट। अप्रासंगिक स्रोतों को स्कीमा में पुन: वाक्यांश करने के बजाय चिह्नित किया जाता है।
|
package/README.it.md
CHANGED
|
@@ -29,6 +29,97 @@ Nessun cloud. Nessuna telemetria. Niente di "autonomo". Ogni chiamata mostra il
|
|
|
29
29
|
|
|
30
30
|
## Novità nella versione 2.2.0
|
|
31
31
|
|
|
32
|
+
Controllo di `num_ctx` a livello di tier (nuovo in v2.4.0).
|
|
33
|
+
|
|
34
|
+
- **`TierConfig.num_ctx` map (nuovo)**: un campo opzionale `{ instant?, workhorse?, deep?, embed? }` nel profilo. Quando impostato per un tier, il server MCP inserisce `options.num_ctx = <valore>` in ogni richiesta di generazione/chat di Ollama indirizzata a quel tier (iniziale + fallback). Se non impostato, la richiesta omette completamente `num_ctx`, quindi Ollama utilizza il valore predefinito del modello caricato; questo comportamento è esattamente quello della versione v2.3.0.
|
|
35
|
+
- **Nuovo campo dell'inviluppo `num_ctx_used?: number`**: presente solo quando il server MCP ha effettivamente inviato `num_ctx`. Assente quando la richiesta ha permesso a Ollama di scegliere. Non si deve dedurre un valore predefinito: il server MCP non interroga Ollama per ottenere il valore effettivo.
|
|
36
|
+
- **Valori predefiniti del profilo**: i profili `dev-rtx5080` e `dev-rtx5080-qwen3` hanno `instant: 4096`, `workhorse: 8192`, `deep`/`embed` non impostati. Le dimensioni sono state scelte per mantenere `hermes3:8b` nella memoria VRAM da 16 GB della RTX 5080, per un funzionamento più rapido. Per `m5-max`, tutti i tier non sono impostati: la memoria unificata da 128 GB non presenta problemi di overflow.
|
|
37
|
+
- **Risolve la diagnostica di Fase 1 della versione v0.8.0**: in `hermes3:8b` con il contesto predefinito di 32K sulla RTX 5080, i dati venivano trasferiti alla CPU e le chiamate `ollama_extract` del tier `workhorse` iniziavano a scadere. La versione v2.4.0 previene questo problema a livello di profilo.
|
|
38
|
+
|
|
39
|
+
### Controllo di `num_ctx` a livello di tier (nuovo in v2.4.0)
|
|
40
|
+
|
|
41
|
+
Profilo (estratto da `src/profiles.ts`):
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
"dev-rtx5080": {
|
|
45
|
+
tiers: {
|
|
46
|
+
instant: "hermes3:8b",
|
|
47
|
+
workhorse: "hermes3:8b",
|
|
48
|
+
deep: "hermes3:8b",
|
|
49
|
+
embed: "nomic-embed-text",
|
|
50
|
+
num_ctx: {
|
|
51
|
+
instant: 4096, // fast classify/summarize
|
|
52
|
+
workhorse: 8192, // schema-bound extract / batch
|
|
53
|
+
// deep: UNSET — long-context briefs keep current behavior
|
|
54
|
+
// embed: UNSET — no context-window pressure on embed
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
// ... timeouts, prewarm
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Invio dati (envelope) per una chiamata al tier `workhorse` (ad esempio, `ollama_extract`):
|
|
62
|
+
|
|
63
|
+
```jsonc
|
|
64
|
+
{
|
|
65
|
+
"result": { /* extracted data */ },
|
|
66
|
+
"tier_used": "workhorse",
|
|
67
|
+
"model": "hermes3:8b",
|
|
68
|
+
"num_ctx_used": 8192, // present because the profile set workhorse=8192
|
|
69
|
+
// ... rest of envelope unchanged
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Su `m5-max` (o qualsiasi profilo in cui un tier non è impostato), `num_ctx_used` è assente dall'inviluppo e la richiesta inviata a Ollama non include il campo `num_ctx`; Ollama utilizza il valore predefinito del modello caricato.
|
|
74
|
+
|
|
75
|
+
Gli operatori configurano selezionando o modificando il profilo; non esiste un input `num_ctx` a livello di chiamata negli schemi degli strumenti. Se una chiamata futura dovesse richiedere questa funzionalità, il comportamento seguirà l'override del `model` della versione v2.3.0.
|
|
76
|
+
|
|
77
|
+
### Storico — funzionalità della versione 2.1.0
|
|
78
|
+
|
|
79
|
+
Consultare [CHANGELOG.md](./CHANGELOG.md) e [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md) per l'elenco completo delle modifiche della versione v2.3.0 (override del modello a livello di chiamata).
|
|
80
|
+
|
|
81
|
+
## Novità nella versione 2.2.0
|
|
82
|
+
|
|
83
|
+
Override del modello a livello di chiamata (nuovo in v2.2.0). Modifiche minori — le chiamate della versione v2.2.0 non sono state modificate. Elenco dettagliato delle modifiche in [CHANGELOG.md](./CHANGELOG.md) e [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md).
|
|
84
|
+
|
|
85
|
+
- **Input opzionale `model: string` per 8 strumenti atomici**: `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep`, `ollama_research`, `ollama_corpus_answer`, `ollama_chat`, `ollama_code_citation`. Il primo tentativo sul tier dello strumento viene eseguito utilizzando il modello specificato dal chiamante; in caso di timeout, la cascata `TIER_FALLBACK` esistente risolve il modello del tier più economico (NON l'override del chiamante). Gli strumenti compositi/sintetici/raggruppati NON accettano deliberatamente il parametro `model`; gli strumenti atomici hanno il controllo a livello di chiamata, mentre gli strumenti compositi utilizzano i valori predefiniti del tier.
|
|
86
|
+
- **Nuovo campo dell'inviluppo `model_requested?: string`**: presente solo quando è stato fornito un override. I chiamanti consapevoli della calibrazione confrontano `model_requested` con `model` per rilevare la sostituzione tramite fallback: `if (env.model_requested && env.model !== env.model_requested) { /* sostituzione */ }`. Gli input vuoti o contenenti solo spazi generano un errore `ZodError` durante l'analisi dello schema, anziché un comportamento silenzioso.
|
|
87
|
+
- **Correzione di bug — deriva di `src/version.ts`**. La costante runtime `VERSION` viene ora letta dal file `package.json` al caricamento del modulo; le versioni v2.1.0 e v2.2.0 riportavano erroneamente la stringa di identificazione obsoleta `"2.0.0"`. Il nuovo file `tests/version.test.ts` verifica che `VERSION === pkg.version`.
|
|
88
|
+
|
|
89
|
+
### Override del modello a livello di chiamata (nuovo in v2.3.0)
|
|
90
|
+
|
|
91
|
+
```jsonc
|
|
92
|
+
{
|
|
93
|
+
"tool": "ollama_classify",
|
|
94
|
+
"arguments": {
|
|
95
|
+
"text": "patch null pointer in auth",
|
|
96
|
+
"labels": ["feat", "fix", "chore"],
|
|
97
|
+
"frame": "what is the change kind?",
|
|
98
|
+
"model": "hermes3:8b"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Invio dati (envelope):
|
|
104
|
+
|
|
105
|
+
```jsonc
|
|
106
|
+
{
|
|
107
|
+
"result": { "label": "fix", "confidence": 0.9, "off_topic": false, ... },
|
|
108
|
+
"tier_used": "instant",
|
|
109
|
+
"model": "hermes3:8b",
|
|
110
|
+
"model_requested": "hermes3:8b", // present because override was supplied
|
|
111
|
+
// ... rest of envelope unchanged
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Se il livello principale/di base avesse raggiunto il timeout e la richiesta fosse stata reindirizzata al livello istantaneo, `env.model` conterrebbe il modello risolto dal livello istantaneo e `env.fallback_from` sarebbe impostato su `"workhorse"`; `env.model_requested` rimarrebbe comunque `"hermes3:8b"`, e la condizione `env.model !== env.model_requested` indica che è avvenuta una sostituzione. L'override non viene applicato intenzionalmente al livello più economico; il modello scelto potrebbe non essere adatto al ruolo di quel livello.
|
|
116
|
+
|
|
117
|
+
### Storico — funzionalità della versione 2.1.0
|
|
118
|
+
|
|
119
|
+
Consultare [CHANGELOG.md](./CHANGELOG.md) e [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md) per la versione completa delle note di rilascio della versione 2.2.0 (pertinenza contestuale e astensione strutturata).
|
|
120
|
+
|
|
121
|
+
## Novità nella versione 2.2.0
|
|
122
|
+
|
|
32
123
|
Contratto del ruolo di "lavoratore" di evidenze: pertinenza contestuale e astensione strutturata. Modifiche minori additive — le chiamate nella versione 2.1.0 rimangono invariate. Dettagli nelle sezioni [CHANGELOG.md](./CHANGELOG.md) e [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md).
|
|
33
124
|
|
|
34
125
|
- **Estrazione contestuale** su `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep` — input opzionale `frame: string` e output strutturati `frame_alignment` / `on_topic` / `frame_addressed`. Le fonti non pertinenti vengono contrassegnate invece di essere riformulate nello schema.
|
package/README.ja.md
CHANGED
|
@@ -29,6 +29,97 @@ Claude Codeに、ルール、階層、デスク、そして書類整理棚を備
|
|
|
29
29
|
|
|
30
30
|
## v2.2.0で追加
|
|
31
31
|
|
|
32
|
+
プロファイルシステムにおいて、各ティアごとに`num_ctx`(コンテキストウィンドウ)を制御できるようになりました。マイナーアップデートであり、既存の呼び出し元への影響はありません。詳細については、[CHANGELOG.md](./CHANGELOG.md) および [docs/release-notes/v2.4.0.md](./docs/release-notes/v2.4.0.md) を参照してください。
|
|
33
|
+
|
|
34
|
+
- **`TierConfig.num_ctx` マップ (新規)** — プロファイルにおけるオプションの `{ instant?, workhorse?, deep?, embed? }`。特定のティアに設定すると、MCPサーバーは、そのティアにルーティングされるすべてのOllamaのgenerate/chatリクエストに対して、`options.num_ctx = <value>` を設定します(初期設定とフォールバック)。設定されていない場合、リクエストから`num_ctx`が完全に省略され、Ollamaはモデルにロードされているデフォルト値を使用します。v2.3.0の動作はそのまま維持されます。
|
|
35
|
+
- **新しいエンベロープフィールド `num_ctx_used?: number`** — MCPサーバーが実際に`num_ctx`を送信した場合にのみ存在します。リクエストでOllamaに`num_ctx`の選択を許可した場合、このフィールドは存在しません。デフォルト値を推測しないでください。MCPサーバーは、Ollamaに対して有効な値を問い合わせません。
|
|
36
|
+
- **プロファイルデフォルト値**: `dev-rtx5080` / `dev-rtx5080-qwen3`では、`instant: 4096`, `workhorse: 8192`, `deep`/`embed` は未設定です。`hermes3:8b`をRTX 5080の16GBのVRAM内に常駐させ、高速なツールを実現するためにサイズが調整されています。`m5-max`では、すべてのティアが未設定です。128GBの統合メモリでは、メモリ不足の問題が発生しません。
|
|
37
|
+
- **v0.8.0 Phase 1 の診断を解消** — デフォルトの32Kコンテキストで`hermes3:8b`がRTX 5080でCPUにオーバーフローし、`ollama_extract`のワークホース呼び出しがタイムアウトする問題を、v2.4.0ではプロファイルレイヤーで解消しました。
|
|
38
|
+
|
|
39
|
+
### 各ティアごとの`num_ctx`制御(v2.4.0で新規追加)
|
|
40
|
+
|
|
41
|
+
プロファイル(`src/profiles.ts`からの抜粋):
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
"dev-rtx5080": {
|
|
45
|
+
tiers: {
|
|
46
|
+
instant: "hermes3:8b",
|
|
47
|
+
workhorse: "hermes3:8b",
|
|
48
|
+
deep: "hermes3:8b",
|
|
49
|
+
embed: "nomic-embed-text",
|
|
50
|
+
num_ctx: {
|
|
51
|
+
instant: 4096, // fast classify/summarize
|
|
52
|
+
workhorse: 8192, // schema-bound extract / batch
|
|
53
|
+
// deep: UNSET — long-context briefs keep current behavior
|
|
54
|
+
// embed: UNSET — no context-window pressure on embed
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
// ... timeouts, prewarm
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
ワークホースティアの呼び出しにおけるエンベロープ:
|
|
62
|
+
|
|
63
|
+
```jsonc
|
|
64
|
+
{
|
|
65
|
+
"result": { /* extracted data */ },
|
|
66
|
+
"tier_used": "workhorse",
|
|
67
|
+
"model": "hermes3:8b",
|
|
68
|
+
"num_ctx_used": 8192, // present because the profile set workhorse=8192
|
|
69
|
+
// ... rest of envelope unchanged
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
`m5-max`(またはティアが未設定のプロファイル)の場合、エンベロープには`num_ctx_used`が含まれておらず、Ollamaへのワイヤリクエストには`num_ctx`フィールドが含まれていません。Ollamaは、モデルにロードされているデフォルト値を使用します。
|
|
74
|
+
|
|
75
|
+
オペレーターは、プロファイルを選択または編集することで調整を行います。ツールスキーマに、呼び出しごとの`num_ctx`の入力はありません。将来、その必要性が生じた場合は、v2.3.0の`model`のオーバーライドと同様のパターンが採用されます。
|
|
76
|
+
|
|
77
|
+
### 過去のバージョン - v2.1.0の機能
|
|
78
|
+
|
|
79
|
+
v2.3.0の詳細については、[CHANGELOG.md](./CHANGELOG.md) および [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md) を参照してください(呼び出しごとのモデルオーバーライド)。
|
|
80
|
+
|
|
81
|
+
## v2.2.0で追加
|
|
82
|
+
|
|
83
|
+
LLMベースのAtomツールにおける呼び出しごとのモデルオーバーライド。マイナーアップデートであり、既存の呼び出し元への影響はありません。詳細については、[CHANGELOG.md](./CHANGELOG.md) および [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md) を参照してください。
|
|
84
|
+
|
|
85
|
+
- **8つのAtomツールにおけるオプションの `model: string` 入力** — `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep`, `ollama_research`, `ollama_corpus_answer`, `ollama_chat`, `ollama_code_citation`. ツールティアで最初に試行される処理は、呼び出し元が指定したモデルを使用して実行されます。タイムアウトした場合、既存の`TIER_FALLBACK`メカニズムによって、より安価なティアのモデルが使用されます(呼び出し元のオーバーライドではありません)。複合ツール/概要ツール/パックツールは、意図的に`model`を受け付けません。Atomツールは呼び出しごとに制御でき、複合ツールはティアのデフォルトを使用します。
|
|
86
|
+
- **新しいエンベロープフィールド `model_requested?: string`** — オーバーライドが提供された場合にのみ存在します。キャリブレーション対応の呼び出し元は、`model_requested`と`model`を比較して、フォールバックによる置換を検出します。`if (env.model_requested && env.model !== env.model_requested) { /* substitution */ }`。空または空白のみの入力は、スキーマの解析時に`ZodError`が発生し、サイレントなフォールスルーは発生しません。
|
|
87
|
+
- **バグ修正 — `src/version.ts` のずれ**。ランタイムの`VERSION`定数は、モジュールロード時に`package.json`から読み込まれるようになりました。v2.1.0およびv2.2.0では、古い`"2.0.0"`という文字列が報告されていました。新しい`tests/version.test.ts`では、`VERSION === pkg.version`が検証されます。
|
|
88
|
+
|
|
89
|
+
### 呼び出しごとのモデルオーバーライド(v2.3.0で新規追加)
|
|
90
|
+
|
|
91
|
+
```jsonc
|
|
92
|
+
{
|
|
93
|
+
"tool": "ollama_classify",
|
|
94
|
+
"arguments": {
|
|
95
|
+
"text": "patch null pointer in auth",
|
|
96
|
+
"labels": ["feat", "fix", "chore"],
|
|
97
|
+
"frame": "what is the change kind?",
|
|
98
|
+
"model": "hermes3:8b"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
エンベロープ:
|
|
104
|
+
|
|
105
|
+
```jsonc
|
|
106
|
+
{
|
|
107
|
+
"result": { "label": "fix", "confidence": 0.9, "off_topic": false, ... },
|
|
108
|
+
"tier_used": "instant",
|
|
109
|
+
"model": "hermes3:8b",
|
|
110
|
+
"model_requested": "hermes3:8b", // present because override was supplied
|
|
111
|
+
// ... rest of envelope unchanged
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
もし、メインのサーバーまたは上位層でタイムアウトが発生し、リクエストが即時対応サーバーに転送された場合、`env.model` は即時対応サーバーで解決されたモデルとなり、`env.fallback_from` は `"workhorse"` となります。`env.model_requested` は依然として `"hermes3:8b"` であり、`env.model !== env.model_requested` が置換の合図となります。このオーバーライドは、意図的に低コストのサーバーには適用されません。選択されたモデルが、そのサーバーの役割に全く合わない可能性があるためです。
|
|
116
|
+
|
|
117
|
+
### 過去のバージョン - v2.1.0の機能
|
|
118
|
+
|
|
119
|
+
詳細については、[CHANGELOG.md](./CHANGELOG.md) および [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md) を参照してください(フレームに依存しないトピック性 + 構造化された拒否)。
|
|
120
|
+
|
|
121
|
+
## v2.2.0で追加
|
|
122
|
+
|
|
32
123
|
ローカルの証拠収集機能に関する契約:主題に特化した内容と、構造化された拒否。マイナーな変更であり、v2.1.0からの呼び出し元は変更ありません。詳細は、[CHANGELOG.md](./CHANGELOG.md)と[docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md)を参照してください。
|
|
33
124
|
|
|
34
125
|
- `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep`における**主題に特化した抽出**:オプションで`frame: string`を入力し、構造化された`frame_alignment` / `on_topic` / `frame_addressed`の出力を行います。関連性の低いソースは、スキーマに変換するのではなく、フラグが立てられます。
|
package/README.md
CHANGED
|
@@ -27,6 +27,97 @@ No cloud. No telemetry. No "autonomous" anything. Every call shows its work.
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
+
## New in v2.4.0
|
|
31
|
+
|
|
32
|
+
Per-tier `num_ctx` (context window) control on the profile system. Additive minor — v2.3.0 callers unchanged. Detailed entries in [CHANGELOG.md](./CHANGELOG.md) and [docs/release-notes/v2.4.0.md](./docs/release-notes/v2.4.0.md).
|
|
33
|
+
|
|
34
|
+
- **`TierConfig.num_ctx` map (new)** — optional `{ instant?, workhorse?, deep?, embed? }` on the profile. When set for a tier, the MCP server places `options.num_ctx = <value>` on every Ollama generate/chat request routed to that tier (initial + fallback). When unset, the request omits `num_ctx` entirely so Ollama uses its model-loaded default — v2.3.0 behavior preserved exactly.
|
|
35
|
+
- **New envelope field `num_ctx_used?: number`** — present only when the MCP server actually sent `num_ctx`. Absent when the request let Ollama choose. Do not infer a default — the MCP server does not query Ollama for the effective value.
|
|
36
|
+
- **Profile defaults**: `dev-rtx5080` / `dev-rtx5080-qwen3` ship with `instant: 4096`, `workhorse: 8192`, `deep`/`embed` UNSET. Sized to keep `hermes3:8b` resident in the RTX 5080's 16GB VRAM budget for fast tools. `m5-max` leaves every tier UNSET — 128GB unified memory has no spill problem.
|
|
37
|
+
- **Closes the v0.8.0 Phase 1 diagnostic** — `hermes3:8b` at the default 32K context on RTX 5080 spilled to CPU and started timing out workhorse `ollama_extract` calls. v2.4.0 prevents that at the profile layer.
|
|
38
|
+
|
|
39
|
+
### Per-tier `num_ctx` control (new in v2.4.0)
|
|
40
|
+
|
|
41
|
+
Profile (excerpt from `src/profiles.ts`):
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
"dev-rtx5080": {
|
|
45
|
+
tiers: {
|
|
46
|
+
instant: "hermes3:8b",
|
|
47
|
+
workhorse: "hermes3:8b",
|
|
48
|
+
deep: "hermes3:8b",
|
|
49
|
+
embed: "nomic-embed-text",
|
|
50
|
+
num_ctx: {
|
|
51
|
+
instant: 4096, // fast classify/summarize
|
|
52
|
+
workhorse: 8192, // schema-bound extract / batch
|
|
53
|
+
// deep: UNSET — long-context briefs keep current behavior
|
|
54
|
+
// embed: UNSET — no context-window pressure on embed
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
// ... timeouts, prewarm
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Envelope on a workhorse-tier call (e.g. `ollama_extract`):
|
|
62
|
+
|
|
63
|
+
```jsonc
|
|
64
|
+
{
|
|
65
|
+
"result": { /* extracted data */ },
|
|
66
|
+
"tier_used": "workhorse",
|
|
67
|
+
"model": "hermes3:8b",
|
|
68
|
+
"num_ctx_used": 8192, // present because the profile set workhorse=8192
|
|
69
|
+
// ... rest of envelope unchanged
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
On `m5-max` (or any profile that leaves a tier unset), `num_ctx_used` is absent from the envelope and the wire request to Ollama does not include the `num_ctx` field — Ollama uses its model-loaded default.
|
|
74
|
+
|
|
75
|
+
Operators tune by selecting / editing the profile; there is no per-call `num_ctx` input on tool schemas. If a future call surfaces the need, the pattern follows v2.3.0's `model` override.
|
|
76
|
+
|
|
77
|
+
### Historical — v2.3.0 deliverables
|
|
78
|
+
|
|
79
|
+
See [CHANGELOG.md](./CHANGELOG.md) and [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md) for the full v2.3.0 entry (per-call model override).
|
|
80
|
+
|
|
81
|
+
## New in v2.3.0
|
|
82
|
+
|
|
83
|
+
Per-call model override across LLM-backed atom tools. Additive minor — v2.2.0 callers unchanged. Detailed entries in [CHANGELOG.md](./CHANGELOG.md) and [docs/release-notes/v2.3.0.md](./docs/release-notes/v2.3.0.md).
|
|
84
|
+
|
|
85
|
+
- **Optional `model: string` input on 8 atom tools** — `ollama_extract`, `ollama_classify`, `ollama_summarize_fast`, `ollama_summarize_deep`, `ollama_research`, `ollama_corpus_answer`, `ollama_chat`, `ollama_code_citation`. The first attempt on the tool's tier runs against the caller-specified model; on timeout, the existing `TIER_FALLBACK` cascade resolves the cheaper tier's own model (NOT the caller's override). Composite/brief/pack tools deliberately do NOT accept `model` — atoms get per-call control, composites use tier defaults.
|
|
86
|
+
- **New envelope field `model_requested?: string`** — present only when the override was supplied. Calibration-aware callers compare `model_requested` vs `model` to detect fallback substitution: `if (env.model_requested && env.model !== env.model_requested) { /* substitution */ }`. Empty / whitespace-only inputs throw `ZodError` at schema parse, not silent fallthrough.
|
|
87
|
+
- **Bug fix — `src/version.ts` drift.** The runtime `VERSION` constant is now read from `package.json` at module load; v2.1.0 and v2.2.0 had shipped reporting the stale `"2.0.0"` identity string. New `tests/version.test.ts` locks `VERSION === pkg.version`.
|
|
88
|
+
|
|
89
|
+
### Per-call model override (new in v2.3.0)
|
|
90
|
+
|
|
91
|
+
```jsonc
|
|
92
|
+
{
|
|
93
|
+
"tool": "ollama_classify",
|
|
94
|
+
"arguments": {
|
|
95
|
+
"text": "patch null pointer in auth",
|
|
96
|
+
"labels": ["feat", "fix", "chore"],
|
|
97
|
+
"frame": "what is the change kind?",
|
|
98
|
+
"model": "hermes3:8b"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Envelope:
|
|
104
|
+
|
|
105
|
+
```jsonc
|
|
106
|
+
{
|
|
107
|
+
"result": { "label": "fix", "confidence": 0.9, "off_topic": false, ... },
|
|
108
|
+
"tier_used": "instant",
|
|
109
|
+
"model": "hermes3:8b",
|
|
110
|
+
"model_requested": "hermes3:8b", // present because override was supplied
|
|
111
|
+
// ... rest of envelope unchanged
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
If the workhorse/deep tier had timed out and the call had cascaded to the instant tier, `env.model` would be the instant tier's resolved model and `env.fallback_from` would be `"workhorse"` — `env.model_requested` would still be `"hermes3:8b"`, and `env.model !== env.model_requested` is the substitution signal. The override is deliberately NOT carried into the cheaper tier; the chosen model may not fit that tier's role at all.
|
|
116
|
+
|
|
117
|
+
### Historical — v2.2.0 deliverables
|
|
118
|
+
|
|
119
|
+
See [CHANGELOG.md](./CHANGELOG.md) and [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md) for the full v2.2.0 entry (frame-bound topicality + structured abstention).
|
|
120
|
+
|
|
30
121
|
## New in v2.2.0
|
|
31
122
|
|
|
32
123
|
Local evidence-worker role contract: frame-bound topicality and structured abstention. Additive minor — v2.1.0 callers unchanged. Detailed entries in [CHANGELOG.md](./CHANGELOG.md) and [docs/release-notes/v2.2.0.md](./docs/release-notes/v2.2.0.md).
|