ollama-intern-mcp 1.0.2 → 2.0.1
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 +53 -13
- package/README.fr.md +94 -54
- package/README.hi.md +53 -13
- package/README.it.md +93 -53
- package/README.ja.md +53 -13
- package/README.md +72 -24
- package/README.pt-BR.md +53 -13
- package/README.zh.md +123 -83
- package/SECURITY.md +4 -2
- package/dist/corpus/indexer.d.ts +29 -0
- package/dist/corpus/indexer.d.ts.map +1 -1
- package/dist/corpus/indexer.js +65 -6
- package/dist/corpus/indexer.js.map +1 -1
- package/dist/corpus/manifest.d.ts +17 -1
- package/dist/corpus/manifest.d.ts.map +1 -1
- package/dist/corpus/manifest.js +78 -3
- package/dist/corpus/manifest.js.map +1 -1
- package/dist/corpus/refresh.d.ts +12 -0
- package/dist/corpus/refresh.d.ts.map +1 -1
- package/dist/corpus/refresh.js +15 -1
- package/dist/corpus/refresh.js.map +1 -1
- package/dist/corpus/storage.d.ts +35 -0
- package/dist/corpus/storage.d.ts.map +1 -1
- package/dist/corpus/storage.js +148 -3
- package/dist/corpus/storage.js.map +1 -1
- package/dist/guardrails/compileCheck.js +4 -0
- package/dist/guardrails/compileCheck.js.map +1 -1
- package/dist/guardrails/timeouts.d.ts +6 -0
- package/dist/guardrails/timeouts.d.ts.map +1 -1
- package/dist/guardrails/timeouts.js +18 -1
- package/dist/guardrails/timeouts.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -6
- package/dist/index.js.map +1 -1
- package/dist/observability.d.ts +19 -0
- package/dist/observability.d.ts.map +1 -1
- package/dist/observability.js +25 -3
- package/dist/observability.js.map +1 -1
- package/dist/ollama.d.ts +19 -0
- package/dist/ollama.d.ts.map +1 -1
- package/dist/ollama.js +36 -1
- package/dist/ollama.js.map +1 -1
- package/dist/prewarm.d.ts +10 -0
- package/dist/prewarm.d.ts.map +1 -1
- package/dist/prewarm.js +64 -34
- package/dist/prewarm.js.map +1 -1
- package/dist/profiles.d.ts +33 -8
- package/dist/profiles.d.ts.map +1 -1
- package/dist/profiles.js +57 -22
- package/dist/profiles.js.map +1 -1
- package/dist/semaphore.d.ts +21 -0
- package/dist/semaphore.d.ts.map +1 -1
- package/dist/semaphore.js +36 -0
- package/dist/semaphore.js.map +1 -1
- package/dist/tiers.d.ts +56 -7
- package/dist/tiers.d.ts.map +1 -1
- package/dist/tiers.js +56 -7
- package/dist/tiers.js.map +1 -1
- package/dist/tools/artifacts/export.d.ts.map +1 -1
- package/dist/tools/artifacts/export.js +16 -3
- package/dist/tools/artifacts/export.js.map +1 -1
- package/dist/tools/artifacts/scan.d.ts.map +1 -1
- package/dist/tools/artifacts/scan.js +24 -3
- package/dist/tools/artifacts/scan.js.map +1 -1
- package/dist/tools/batch.d.ts +2 -0
- package/dist/tools/batch.d.ts.map +1 -1
- package/dist/tools/batch.js +2 -1
- package/dist/tools/batch.js.map +1 -1
- package/dist/tools/changeBrief.d.ts.map +1 -1
- package/dist/tools/changeBrief.js +2 -2
- package/dist/tools/changeBrief.js.map +1 -1
- package/dist/tools/classify.d.ts.map +1 -1
- package/dist/tools/classify.js +2 -0
- package/dist/tools/classify.js.map +1 -1
- package/dist/tools/corpusAnswer.d.ts.map +1 -1
- package/dist/tools/corpusAnswer.js +9 -2
- package/dist/tools/corpusAnswer.js.map +1 -1
- package/dist/tools/draft.d.ts.map +1 -1
- package/dist/tools/draft.js +1 -0
- package/dist/tools/draft.js.map +1 -1
- package/dist/tools/extract.d.ts.map +1 -1
- package/dist/tools/extract.js +2 -0
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/incidentBrief.d.ts.map +1 -1
- package/dist/tools/incidentBrief.js +2 -2
- package/dist/tools/incidentBrief.js.map +1 -1
- package/dist/tools/packs/changePack.js +1 -1
- package/dist/tools/packs/changePack.js.map +1 -1
- package/dist/tools/packs/incidentPack.js +1 -1
- package/dist/tools/packs/incidentPack.js.map +1 -1
- package/dist/tools/repoBrief.d.ts.map +1 -1
- package/dist/tools/repoBrief.js +1 -0
- package/dist/tools/repoBrief.js.map +1 -1
- package/dist/tools/research.d.ts.map +1 -1
- package/dist/tools/research.js +1 -0
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/runner.d.ts +7 -0
- package/dist/tools/runner.d.ts.map +1 -1
- package/dist/tools/runner.js +2 -1
- package/dist/tools/runner.js.map +1 -1
- package/dist/tools/summarizeDeep.d.ts.map +1 -1
- package/dist/tools/summarizeDeep.js +3 -1
- package/dist/tools/summarizeDeep.js.map +1 -1
- package/dist/tools/summarizeFast.d.ts.map +1 -1
- package/dist/tools/summarizeFast.js +1 -0
- package/dist/tools/summarizeFast.js.map +1 -1
- package/dist/tools/triageLogs.d.ts.map +1 -1
- package/dist/tools/triageLogs.js +22 -0
- package/dist/tools/triageLogs.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -1
package/README.es.md
CHANGED
|
@@ -49,7 +49,7 @@ Devuelve un "sobre" que apunta a un archivo en el disco:
|
|
|
49
49
|
"next_checks": ["residency.evicted across last 24h", "OLLAMA_MAX_LOADED_MODELS vs loaded size"]
|
|
50
50
|
},
|
|
51
51
|
"tier_used": "deep",
|
|
52
|
-
"model": "
|
|
52
|
+
"model": "hermes3:8b",
|
|
53
53
|
"hardware_profile": "dev-rtx5080",
|
|
54
54
|
"tokens_in": 4180, "tokens_out": 612,
|
|
55
55
|
"elapsed_ms": 8410,
|
|
@@ -112,25 +112,65 @@ Requiere [Ollama](https://ollama.com) instalado localmente y los modelos de nive
|
|
|
112
112
|
|
|
113
113
|
El mismo archivo, escrito en `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) o `%APPDATA%\Claude\claude_desktop_config.json` (Windows).
|
|
114
114
|
|
|
115
|
+
### Uso con Hermes
|
|
116
|
+
|
|
117
|
+
Este MCP fue validado de extremo a extremo con el [Agente Hermes](https://github.com/NousResearch/Hermes) contra `hermes3:8b` en Ollama (19 de abril de 2026). Hermes es un agente externo que *llama* a la superficie primitiva de este MCP; él se encarga de la planificación, nosotros realizamos el trabajo.
|
|
118
|
+
|
|
119
|
+
Configuración de referencia ([hermes.config.example.yaml](hermes.config.example.yaml) en este repositorio):
|
|
120
|
+
|
|
121
|
+
```yaml
|
|
122
|
+
model:
|
|
123
|
+
provider: custom
|
|
124
|
+
base_url: http://localhost:11434/v1
|
|
125
|
+
default: hermes3:8b
|
|
126
|
+
context_length: 65536 # Hermes requires 64K floor under model.*
|
|
127
|
+
|
|
128
|
+
providers:
|
|
129
|
+
local-ollama:
|
|
130
|
+
name: local-ollama
|
|
131
|
+
base_url: http://localhost:11434/v1
|
|
132
|
+
api_mode: openai_chat
|
|
133
|
+
api_key: ollama
|
|
134
|
+
model: hermes3:8b
|
|
135
|
+
|
|
136
|
+
mcp_servers:
|
|
137
|
+
ollama-intern:
|
|
138
|
+
command: npx
|
|
139
|
+
args: ["-y", "ollama-intern-mcp"]
|
|
140
|
+
env:
|
|
141
|
+
OLLAMA_HOST: http://localhost:11434
|
|
142
|
+
INTERN_PROFILE: dev-rtx5080
|
|
143
|
+
# hermes3:8b is the default ladder in v2.0.0, so tier overrides are
|
|
144
|
+
# only needed if you're pinning a different local model.
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**La estructura del prompt es importante.** Los prompts de invocación de herramientas imperativos ("Llama a X con los argumentos…") son la prueba de integración; proporcionan a un modelo local de 8B suficiente estructura para generar llamadas de herramientas limpias (`tool_calls`). Los prompts de tareas múltiples en formato de lista ("haz A, luego B, luego C") son puntos de referencia de capacidad para modelos más grandes; no interpretes un fallo en formato de lista en un modelo de 8B como "el sistema está dañado". Consulta [handbook/with-hermes](https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/with-hermes/) para obtener una guía completa de la integración y las limitaciones de transporte conocidas (transmisión de Ollama `/v1` + shim no transmisivo de openai-SDK).
|
|
148
|
+
|
|
115
149
|
### Descarga de modelos
|
|
116
150
|
|
|
117
151
|
**Perfil de desarrollo predeterminado (RTX 5080 16GB y similar):**
|
|
118
152
|
|
|
119
153
|
```bash
|
|
120
|
-
ollama pull
|
|
121
|
-
ollama pull qwen2.5-coder:7b-instruct-q4_K_M
|
|
122
|
-
ollama pull qwen2.5:14b-instruct-q4_K_M
|
|
154
|
+
ollama pull hermes3:8b
|
|
123
155
|
ollama pull nomic-embed-text
|
|
124
|
-
export OLLAMA_MAX_LOADED_MODELS=
|
|
156
|
+
export OLLAMA_MAX_LOADED_MODELS=2
|
|
125
157
|
export OLLAMA_KEEP_ALIVE=-1
|
|
126
158
|
```
|
|
127
159
|
|
|
160
|
+
**Ruta alternativa de Qwen 3 (mismo hardware, para herramientas de Qwen):**
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
ollama pull qwen3:8b
|
|
164
|
+
ollama pull qwen3:14b
|
|
165
|
+
ollama pull nomic-embed-text
|
|
166
|
+
export INTERN_PROFILE=dev-rtx5080-qwen3
|
|
167
|
+
```
|
|
168
|
+
|
|
128
169
|
**Perfil M5 Max (128GB unificados):**
|
|
129
170
|
|
|
130
171
|
```bash
|
|
131
|
-
ollama pull
|
|
132
|
-
ollama pull
|
|
133
|
-
ollama pull llama3.3:70b-instruct-q4_K_M
|
|
172
|
+
ollama pull qwen3:14b
|
|
173
|
+
ollama pull qwen3:32b
|
|
134
174
|
ollama pull nomic-embed-text
|
|
135
175
|
export INTERN_PROFILE=m5-max
|
|
136
176
|
```
|
|
@@ -148,7 +188,7 @@ Cada herramienta devuelve la misma estructura:
|
|
|
148
188
|
result: <tool-specific>,
|
|
149
189
|
tier_used: "instant" | "workhorse" | "deep" | "embed",
|
|
150
190
|
model: string,
|
|
151
|
-
hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-
|
|
191
|
+
hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-qwen3" | "m5-max"
|
|
152
192
|
tokens_in: number,
|
|
153
193
|
tokens_out: number,
|
|
154
194
|
elapsed_ms: number,
|
|
@@ -171,11 +211,11 @@ Cada llamada se registra como una línea en formato NDJSON en `~/.ollama-intern/
|
|
|
171
211
|
|
|
172
212
|
| Perfil | Instantáneo | Potente | Profundo | Incorporado |
|
|
173
213
|
|---|---|---|---|---|
|
|
174
|
-
| **`dev-rtx5080`** (predeterminado) |
|
|
175
|
-
| `dev-rtx5080-
|
|
176
|
-
| `m5-max` |
|
|
214
|
+
| **`dev-rtx5080`** (predeterminado) | hermes3 8B | hermes3 8B | hermes3 8B | nomic-embed-text |
|
|
215
|
+
| `dev-rtx5080-qwen3` | qwen3 8B | qwen3 8B | qwen3 14B | nomic-embed-text |
|
|
216
|
+
| `m5-max` | qwen3 14B | qwen3 14B | qwen3 32B | nomic-embed-text |
|
|
177
217
|
|
|
178
|
-
**
|
|
218
|
+
**Configuración de desarrollo predeterminada** consolida los tres niveles de trabajo en `hermes3:8b`: la ruta de integración del Agente Hermes validada. El uso del mismo modelo de arriba a abajo significa que solo hay un componente que descargar, un costo de alojamiento y un conjunto de comportamientos que comprender. Los usuarios que prefieren Qwen 3 (con su infraestructura `THINK_BY_SHAPE`) pueden optar por `dev-rtx5080-qwen3`. `m5-max` es la versión de Qwen 3 optimizada para memoria unificada.
|
|
179
219
|
|
|
180
220
|
---
|
|
181
221
|
|
package/README.fr.md
CHANGED
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
|
|
16
16
|
> **L'assistant local pour Claude Code.** 28 outils structurés, rapports basés sur des preuves, artefacts durables.
|
|
17
17
|
|
|
18
|
-
Un serveur MCP qui fournit à Claude Code un **assistant local** avec des règles, des niveaux, un bureau et un classeur. Claude choisit l' _outil_ ; l'outil choisit le _niveau_ (Instantané / Polyvalent / Approfondi /
|
|
18
|
+
Un serveur MCP qui fournit à Claude Code un **assistant local** avec des règles, des niveaux, un bureau et un classeur. Claude choisit l' _outil_ ; l'outil choisit le _niveau_ (Instantané / Polyvalent / Approfondi / Intégré) ; le niveau écrit un fichier que vous pourrez ouvrir la semaine prochaine.
|
|
19
19
|
|
|
20
20
|
Pas de cloud. Pas de télémétrie. Rien d'"autonome". Chaque appel montre son travail.
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
-
## Exemple principal
|
|
24
|
+
## Exemple principal : un appel, un artefact
|
|
25
25
|
|
|
26
26
|
```jsonc
|
|
27
27
|
// Claude → ollama-intern-mcp
|
|
@@ -49,7 +49,7 @@ Renvoie une enveloppe pointant vers un fichier sur le disque :
|
|
|
49
49
|
"next_checks": ["residency.evicted across last 24h", "OLLAMA_MAX_LOADED_MODELS vs loaded size"]
|
|
50
50
|
},
|
|
51
51
|
"tier_used": "deep",
|
|
52
|
-
"model": "
|
|
52
|
+
"model": "hermes3:8b",
|
|
53
53
|
"hardware_profile": "dev-rtx5080",
|
|
54
54
|
"tokens_in": 4180, "tokens_out": 612,
|
|
55
55
|
"elapsed_ms": 8410,
|
|
@@ -57,19 +57,19 @@ Renvoie une enveloppe pointant vers un fichier sur le disque :
|
|
|
57
57
|
}
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
Ce fichier Markdown est la sortie du bureau de l'assistant
|
|
60
|
+
Ce fichier Markdown est la sortie du bureau de l'assistant : titres, bloc de preuves avec identifiants cités, instructions d'investigation `next_checks`, bannière `faible : vrai` si les preuves sont limitées. Il est déterministe : le rendu est du code, pas une invite. Ouvrez-le demain, comparez-le la semaine prochaine, exportez-le dans un manuel avec `ollama_artifact_export_to_path`.
|
|
61
61
|
|
|
62
62
|
Chaque concurrent dans cette catégorie commence par "économiser les jetons". Nous commençons par _voici le fichier que l'assistant a écrit_.
|
|
63
63
|
|
|
64
64
|
---
|
|
65
65
|
|
|
66
|
-
## Ce qu'il
|
|
66
|
+
## Ce qu'il contient : quatre niveaux, 28 outils
|
|
67
67
|
|
|
68
|
-
| Niveau | Nombre | Ce qui
|
|
68
|
+
| Niveau | Nombre | Ce qui s'y trouve |
|
|
69
69
|
|---|---|---|
|
|
70
|
-
| **Atoms** | 15 | Primitives structurées. `classifier`, `extraire`, `trier_journaux`, `résumer_rapide` / `approfondi`, `brouillon`, `recherche`, `recherche_corpus` / `répondre` / `indexer` / `actualiser` / `lister`, `recherche_int
|
|
70
|
+
| **Atoms** | 15 | Primitives structurées. `classifier`, `extraire`, `trier_journaux`, `résumer_rapide` / `approfondi`, `brouillon`, `recherche`, `recherche_corpus` / `répondre` / `indexer` / `actualiser` / `lister`, `recherche_intégrée`, `intégrer`, `chat`. Les opérations par lots (`classifier`, `extraire`, `trier_journaux`) acceptent `items: [{id, text}]`. |
|
|
71
71
|
| **Briefs** | 3 | Rapports structurés basés sur des preuves. `rapport_incident`, `rapport_dépôt`, `rapport_modification`. Chaque affirmation cite un identifiant de preuve ; les inconnues sont supprimées côté serveur. Les preuves faibles affichent `faible : vrai` plutôt qu'une narration fausse. |
|
|
72
|
-
| **Packs** | 3 | Tâches composées avec un pipeline fixe qui écrit du Markdown + JSON durables dans `~/.ollama-intern/artifacts/`. `paquet_incident`, `paquet_dépôt`, `paquet_modification`. Rendu déterministe
|
|
72
|
+
| **Packs** | 3 | Tâches composées avec un pipeline fixe qui écrit du Markdown + JSON durables dans `~/.ollama-intern/artifacts/`. `paquet_incident`, `paquet_dépôt`, `paquet_modification`. Rendu déterministe : aucun appel de modèle sur la forme de l'artefact. |
|
|
73
73
|
| **Artifacts** | 7 | Interface de continuité sur les sorties des paquets. `liste_artefacts` / `lire` / `différencier` / `exporter_vers_chemin`, plus trois extraits déterministes : `note_incident`, `section_intégration`, `note_version`. |
|
|
74
74
|
|
|
75
75
|
Total : **18 primitives + 3 paquets + 7 outils d'artefact = 28**.
|
|
@@ -112,30 +112,70 @@ Nécessite [Ollama](https://ollama.com) installé localement et les modèles de
|
|
|
112
112
|
|
|
113
113
|
Le même bloc, écrit dans `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) ou `%APPDATA%\Claude\claude_desktop_config.json` (Windows).
|
|
114
114
|
|
|
115
|
-
###
|
|
115
|
+
### Utilisation avec Hermes
|
|
116
|
+
|
|
117
|
+
Ce MCP a été validé de bout en bout avec [Hermes Agent](https://github.com/NousResearch/Hermes) contre `hermes3:8b` sur Ollama (2026-04-19). Hermes est un agent externe qui *appelle* cette surface de primitives figée du MCP ; il effectue la planification, nous effectuons le travail.
|
|
118
|
+
|
|
119
|
+
Configuration de référence ([hermes.config.example.yaml](hermes.config.example.yaml) dans ce dépôt) :
|
|
120
|
+
|
|
121
|
+
```yaml
|
|
122
|
+
model:
|
|
123
|
+
provider: custom
|
|
124
|
+
base_url: http://localhost:11434/v1
|
|
125
|
+
default: hermes3:8b
|
|
126
|
+
context_length: 65536 # Hermes requires 64K floor under model.*
|
|
127
|
+
|
|
128
|
+
providers:
|
|
129
|
+
local-ollama:
|
|
130
|
+
name: local-ollama
|
|
131
|
+
base_url: http://localhost:11434/v1
|
|
132
|
+
api_mode: openai_chat
|
|
133
|
+
api_key: ollama
|
|
134
|
+
model: hermes3:8b
|
|
135
|
+
|
|
136
|
+
mcp_servers:
|
|
137
|
+
ollama-intern:
|
|
138
|
+
command: npx
|
|
139
|
+
args: ["-y", "ollama-intern-mcp"]
|
|
140
|
+
env:
|
|
141
|
+
OLLAMA_HOST: http://localhost:11434
|
|
142
|
+
INTERN_PROFILE: dev-rtx5080
|
|
143
|
+
# hermes3:8b is the default ladder in v2.0.0, so tier overrides are
|
|
144
|
+
# only needed if you're pinning a different local model.
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**La forme de l'invite est importante.** Les invites d'invocation d'outils impératives ("Appeler X avec les arguments...") sont le test d'intégration ; elles fournissent à un modèle local de 8 Go suffisamment de structure pour générer des `tool_calls` propres. Les invites multi-tâches en forme de liste ("faire A, puis B, puis C") sont des références de performances pour les modèles plus importants ; n'interprétez pas un échec en forme de liste sur un modèle de 8 Go comme "le câblage est cassé". Consultez [handbook/with-hermes](https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/with-hermes/) pour la visite guidée complète de l'intégration et les limitations de transport connues (streaming Ollama `/v1` + shim non-streaming openai-SDK).
|
|
116
148
|
|
|
117
|
-
|
|
149
|
+
### Téléchargements de modèles
|
|
150
|
+
|
|
151
|
+
**Profil de développement par défaut (RTX 5080 16 Go et équivalent) :**
|
|
118
152
|
|
|
119
153
|
```bash
|
|
120
|
-
ollama pull
|
|
121
|
-
ollama pull qwen2.5-coder:7b-instruct-q4_K_M
|
|
122
|
-
ollama pull qwen2.5:14b-instruct-q4_K_M
|
|
154
|
+
ollama pull hermes3:8b
|
|
123
155
|
ollama pull nomic-embed-text
|
|
124
|
-
export OLLAMA_MAX_LOADED_MODELS=
|
|
156
|
+
export OLLAMA_MAX_LOADED_MODELS=2
|
|
125
157
|
export OLLAMA_KEEP_ALIVE=-1
|
|
126
158
|
```
|
|
127
159
|
|
|
160
|
+
**Environnement alternatif Qwen 3 (même matériel, pour les outils Qwen) :**
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
ollama pull qwen3:8b
|
|
164
|
+
ollama pull qwen3:14b
|
|
165
|
+
ollama pull nomic-embed-text
|
|
166
|
+
export INTERN_PROFILE=dev-rtx5080-qwen3
|
|
167
|
+
```
|
|
168
|
+
|
|
128
169
|
**Profil M5 Max (128 Go unifiés) :**
|
|
129
170
|
|
|
130
171
|
```bash
|
|
131
|
-
ollama pull
|
|
132
|
-
ollama pull
|
|
133
|
-
ollama pull llama3.3:70b-instruct-q4_K_M
|
|
172
|
+
ollama pull qwen3:14b
|
|
173
|
+
ollama pull qwen3:32b
|
|
134
174
|
ollama pull nomic-embed-text
|
|
135
175
|
export INTERN_PROFILE=m5-max
|
|
136
176
|
```
|
|
137
177
|
|
|
138
|
-
Les variables d'environnement par niveau (`INTERN_TIER_INSTANT`, `INTERN_TIER_WORKHORSE`, `INTERN_TIER_DEEP`, `INTERN_EMBED_MODEL`)
|
|
178
|
+
Les variables d'environnement par niveau (`INTERN_TIER_INSTANT`, `INTERN_TIER_WORKHORSE`, `INTERN_TIER_DEEP`, `INTERN_EMBED_MODEL`) continuent de remplacer les choix de profil pour les cas ponctuels.
|
|
139
179
|
|
|
140
180
|
---
|
|
141
181
|
|
|
@@ -148,7 +188,7 @@ Chaque outil renvoie la même structure :
|
|
|
148
188
|
result: <tool-specific>,
|
|
149
189
|
tier_used: "instant" | "workhorse" | "deep" | "embed",
|
|
150
190
|
model: string,
|
|
151
|
-
hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-
|
|
191
|
+
hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-qwen3" | "m5-max"
|
|
152
192
|
tokens_in: number,
|
|
153
193
|
tokens_out: number,
|
|
154
194
|
elapsed_ms: number,
|
|
@@ -161,62 +201,62 @@ Chaque outil renvoie la même structure :
|
|
|
161
201
|
}
|
|
162
202
|
```
|
|
163
203
|
|
|
164
|
-
|
|
204
|
+
La "résidence" provient de `/api/ps` d'Ollama. Si `evicted: true` ou `size_vram < size`, le modèle est déchargé sur le disque et la vitesse d'inférence diminue de 5 à 10 fois. Cette information est affichée à l'utilisateur pour qu'il sache de redémarrer Ollama ou de réduire le nombre de modèles chargés.
|
|
165
205
|
|
|
166
|
-
Chaque appel est enregistré sous forme d'une
|
|
206
|
+
Chaque appel est enregistré sous forme d'une ligne NDJSON dans `~/.ollama-intern/log.ndjson`. Filtrez par `hardware_profile` pour éviter que les données de développement ne soient incluses dans les benchmarks publiés.
|
|
167
207
|
|
|
168
208
|
---
|
|
169
209
|
|
|
170
210
|
## Profils matériels
|
|
171
211
|
|
|
172
|
-
| Profil |
|
|
212
|
+
| Profil | Instant | Workhorse | Deep | Embed |
|
|
173
213
|
|---|---|---|---|---|
|
|
174
|
-
| **`dev-rtx5080`** (par défaut) |
|
|
175
|
-
| `dev-rtx5080-
|
|
176
|
-
| `m5-max` |
|
|
214
|
+
| **`dev-rtx5080`** (par défaut) | hermes3 8B | hermes3 8B | hermes3 8B | nomic-embed-text |
|
|
215
|
+
| `dev-rtx5080-qwen3` | qwen3 8B | qwen3 8B | qwen3 14B | nomic-embed-text |
|
|
216
|
+
| `m5-max` | qwen3 14B | qwen3 14B | qwen3 32B | nomic-embed-text |
|
|
177
217
|
|
|
178
|
-
**
|
|
218
|
+
Le profil **"par défaut"** regroupe les trois niveaux de travail sur `hermes3:8b`, qui représente le chemin d'intégration validé de Hermes Agent. L'utilisation du même modèle du début à la fin simplifie la compréhension, réduit le coût de résidence et facilite la gestion. Les utilisateurs qui préfèrent Qwen 3 (avec sa fonctionnalité `THINK_BY_SHAPE`) peuvent choisir le profil `dev-rtx5080-qwen3`. Le profil `m5-max` est une version de Qwen 3 optimisée pour la mémoire unifiée.
|
|
179
219
|
|
|
180
220
|
---
|
|
181
221
|
|
|
182
|
-
##
|
|
222
|
+
## Règles de preuve
|
|
183
223
|
|
|
184
224
|
Ces règles sont appliquées côté serveur, et non dans la requête :
|
|
185
225
|
|
|
186
|
-
- **Citations obligatoires.** Chaque affirmation
|
|
187
|
-
- **
|
|
188
|
-
- **
|
|
189
|
-
- **
|
|
190
|
-
- **Rendu déterministe.** La forme du balisage des artefacts est du code, et non une requête. `draft`
|
|
191
|
-
- **
|
|
226
|
+
- **Citations obligatoires.** Chaque affirmation concise cite un identifiant de preuve.
|
|
227
|
+
- **Les inconnues sont supprimées côté serveur.** Les modèles qui citent des identifiants qui ne figurent pas dans le paquet de preuves voient ces identifiants supprimés, avec un avertissement, avant que le résultat ne soit renvoyé.
|
|
228
|
+
- **Les informations faibles sont considérées comme telles.** Les informations de faible qualité sont marquées `weak: true` avec des notes de couverture et ne sont jamais intégrées dans un récit fallacieux.
|
|
229
|
+
- **Fonctionnalité d'investigation, pas prescriptive.** Seuls les éléments `next_checks` / `read_next` / `likely_breakpoints` sont autorisés. Les requêtes qui demandent "appliquer cette correction" sont interdites.
|
|
230
|
+
- **Rendu déterministe.** La forme du balisage des artefacts est du code, et non une requête. `draft` reste réservé aux textes où le choix des mots du modèle est important.
|
|
231
|
+
- **Différences au sein du même paquet uniquement.** Les comparaisons `artifact_diff` entre différents paquets sont refusées ; les charges utiles restent distinctes.
|
|
192
232
|
|
|
193
233
|
---
|
|
194
234
|
|
|
195
235
|
## Artefacts et continuité
|
|
196
236
|
|
|
197
|
-
Les paquets écrivent dans `~/.ollama-intern/artifacts/{incident,repo,change}/<slug>.(md|json)`.
|
|
237
|
+
Les paquets écrivent dans `~/.ollama-intern/artifacts/{incident,repo,change}/<slug>.(md|json)`. Le niveau des artefacts offre une continuité sans transformer cela en un outil de gestion de fichiers :
|
|
198
238
|
|
|
199
239
|
- `artifact_list` — index contenant uniquement des métadonnées, filtrable par paquet, date, motif de slug
|
|
200
240
|
- `artifact_read` — lecture typée par `{pack, slug}` ou `{json_path}`
|
|
201
|
-
- `artifact_diff` — comparaison structurée au sein du même paquet ; les modifications
|
|
202
|
-
- `artifact_export_to_path` — écrit un artefact existant (avec un en-tête de provenance) dans un
|
|
241
|
+
- `artifact_diff` — comparaison structurée au sein du même paquet ; les modifications faibles sont mises en évidence
|
|
242
|
+
- `artifact_export_to_path` — écrit un artefact existant (avec un en-tête de provenance) dans un emplacement déclaré par l'utilisateur (`allowed_roots`). Refuse les fichiers existants, sauf si `overwrite: true` est spécifié.
|
|
203
243
|
- `artifact_incident_note_snippet` — fragment de note d'incident
|
|
204
|
-
- `artifact_onboarding_section_snippet` — fragment
|
|
244
|
+
- `artifact_onboarding_section_snippet` — fragment du manuel
|
|
205
245
|
- `artifact_release_note_snippet` — fragment de note de version (DRAFT)
|
|
206
246
|
|
|
207
|
-
Aucun appel de modèle dans
|
|
247
|
+
Aucun appel de modèle dans ce niveau. Tout est généré à partir de contenu stocké.
|
|
208
248
|
|
|
209
249
|
---
|
|
210
250
|
|
|
211
251
|
## Modèle de menace et télémétrie
|
|
212
252
|
|
|
213
|
-
**Données traitées :** chemins de fichiers que l'
|
|
253
|
+
**Données traitées :** chemins de fichiers que l'utilisateur fournit explicitement (`ollama_research`, outils de corpus), texte intégré et artefacts que l'utilisateur demande d'être écrits dans `~/.ollama-intern/artifacts/` ou dans un emplacement déclaré par l'utilisateur (`allowed_roots`).
|
|
214
254
|
|
|
215
|
-
**Données
|
|
255
|
+
**Données non modifiées :** tout ce qui se trouve en dehors des chemins `source_paths` / `allowed_roots`. L'utilisation de `..` est bloquée avant la normalisation. La fonction `artifact_export_to_path` refuse d'écrire sur des fichiers existants, sauf si `overwrite: true` est spécifié. Les versions préliminaires ciblant des chemins protégés (`memory/`, `.claude/`, `docs/canon/`, etc.) nécessitent une confirmation explicite `confirm_write: true`, ce qui est appliqué côté serveur.
|
|
216
256
|
|
|
217
|
-
**
|
|
257
|
+
**Communication réseau sortante :** **désactivée par défaut.** Le seul trafic sortant est dirigé vers le point de terminaison HTTP local d'Ollama. Aucune communication avec le cloud, aucun signalement de mises à jour, aucun rapport de crash.
|
|
218
258
|
|
|
219
|
-
**Télémétrie :** **
|
|
259
|
+
**Télémétrie :** **inexistante.** Chaque appel est enregistré sous forme d'une seule ligne NDJSON dans le fichier `~/.ollama-intern/log.ndjson` sur votre machine. Rien ne quitte l'appareil.
|
|
220
260
|
|
|
221
261
|
**Erreurs :** format structuré `{ code, message, hint, retryable }`. Les traces de pile ne sont jamais exposées dans les résultats des outils.
|
|
222
262
|
|
|
@@ -226,24 +266,24 @@ Politique complète : [SECURITY.md](SECURITY.md).
|
|
|
226
266
|
|
|
227
267
|
## Normes
|
|
228
268
|
|
|
229
|
-
|
|
269
|
+
Conforme aux exigences de [Shipcheck](https://github.com/mcp-tool-shop-org/shipcheck). Les tests A à D sont obligatoires ; voir [SHIP_GATE.md](SHIP_GATE.md) et [SCORECARD.md](SCORECARD.md).
|
|
230
270
|
|
|
231
|
-
- **A. Sécurité** — SECURITY.md, modèle de menace,
|
|
232
|
-
- **B. Erreurs** —
|
|
233
|
-
- **C. Documentation** — README à jour, CHANGELOG, LICENSE ; schémas des outils auto-documentés
|
|
234
|
-
- **D.
|
|
271
|
+
- **A. Sécurité** — SECURITY.md, modèle de menace, absence de télémétrie, sécurité des chemins, `confirm_write` sur les chemins protégés.
|
|
272
|
+
- **B. Erreurs** — Format structuré pour tous les résultats des outils ; pas de traces de pile brutes.
|
|
273
|
+
- **C. Documentation** — README à jour, CHANGELOG, LICENSE ; les schémas des outils sont auto-documentés.
|
|
274
|
+
- **D. Qualité** — `npm run verify` (395 tests), CI avec analyse des dépendances, Dependabot, fichier de verrouillage, `engines.node`.
|
|
235
275
|
|
|
236
276
|
---
|
|
237
277
|
|
|
238
|
-
##
|
|
278
|
+
## Feuille de route (renforcement de la sécurité, pas extension des fonctionnalités)
|
|
239
279
|
|
|
240
|
-
- **Phase 1 — Infrastructure de délégation** ✓
|
|
241
|
-
- **Phase 2 — Infrastructure de
|
|
242
|
-
- **Phase 3 — Infrastructure de
|
|
243
|
-
- **Phase 4 — Infrastructure d'adoption (du produit)** —
|
|
244
|
-
- **Phase 5 —
|
|
280
|
+
- **Phase 1 — Infrastructure de délégation** ✓ Implémentée : interface atomique, enveloppe uniforme, routage hiérarchique, protections.
|
|
281
|
+
- **Phase 2 — Infrastructure de vérité** ✓ Implémentée : segmentation de schéma v2, BM25 + RRF, corpus dynamiques, résumés étayés par des preuves, ensemble d'évaluation de la récupération.
|
|
282
|
+
- **Phase 3 — Infrastructure de paquets et d'artefacts** ✓ Implémentée : paquets avec pipelines fixes et artefacts durables + niveau de continuité.
|
|
283
|
+
- **Phase 4 — Infrastructure d'adoption (du produit)** — Observation de l'utilisation réelle sur le RTX 5080, correction des problèmes qui apparaissent.
|
|
284
|
+
- **Phase 5 — Benchmarks M5 Max** — Publication des résultats une fois le matériel disponible (environ le 24 avril 2026).
|
|
245
285
|
|
|
246
|
-
Phase par couche de renforcement de la sécurité. L'interface atomique/
|
|
286
|
+
Phase par couche de renforcement de la sécurité. L'interface atomique/paquet/artefact reste figée.
|
|
247
287
|
|
|
248
288
|
---
|
|
249
289
|
|
package/README.hi.md
CHANGED
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"next_checks": ["residency.evicted across last 24h", "OLLAMA_MAX_LOADED_MODELS vs loaded size"]
|
|
50
50
|
},
|
|
51
51
|
"tier_used": "deep",
|
|
52
|
-
"model": "
|
|
52
|
+
"model": "hermes3:8b",
|
|
53
53
|
"hardware_profile": "dev-rtx5080",
|
|
54
54
|
"tokens_in": 4180, "tokens_out": 612,
|
|
55
55
|
"elapsed_ms": 8410,
|
|
@@ -112,25 +112,65 @@ npm install -g ollama-intern-mcp
|
|
|
112
112
|
|
|
113
113
|
एक ही ब्लॉक, `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) या `%APPDATA%\Claude\claude_desktop_config.json` (Windows) में लिखा गया है।
|
|
114
114
|
|
|
115
|
+
### हर्मेस के साथ उपयोग करें
|
|
116
|
+
|
|
117
|
+
इस एमसीपी (MCP) का परीक्षण 'हर्मेस एजेंट' ([https://github.com/NousResearch/Hermes](https://github.com/NousResearch/Hermes)) के साथ `hermes3:8b` पर ओलामा (Ollama) पर किया गया था (19 अप्रैल, 2026)। हर्मेस एक बाहरी एजेंट है जो इस एमसीपी की 'फ्रीज्ड प्रिमिटिव सरफेस' को *कॉल करता है* — यह योजना बनाता है, और हम काम करते हैं।
|
|
118
|
+
|
|
119
|
+
संदर्भ कॉन्फ़िगरेशन ([hermes.config.example.yaml](hermes.config.example.yaml) इस रिपॉजिटरी में):
|
|
120
|
+
|
|
121
|
+
```yaml
|
|
122
|
+
model:
|
|
123
|
+
provider: custom
|
|
124
|
+
base_url: http://localhost:11434/v1
|
|
125
|
+
default: hermes3:8b
|
|
126
|
+
context_length: 65536 # Hermes requires 64K floor under model.*
|
|
127
|
+
|
|
128
|
+
providers:
|
|
129
|
+
local-ollama:
|
|
130
|
+
name: local-ollama
|
|
131
|
+
base_url: http://localhost:11434/v1
|
|
132
|
+
api_mode: openai_chat
|
|
133
|
+
api_key: ollama
|
|
134
|
+
model: hermes3:8b
|
|
135
|
+
|
|
136
|
+
mcp_servers:
|
|
137
|
+
ollama-intern:
|
|
138
|
+
command: npx
|
|
139
|
+
args: ["-y", "ollama-intern-mcp"]
|
|
140
|
+
env:
|
|
141
|
+
OLLAMA_HOST: http://localhost:11434
|
|
142
|
+
INTERN_PROFILE: dev-rtx5080
|
|
143
|
+
# hermes3:8b is the default ladder in v2.0.0, so tier overrides are
|
|
144
|
+
# only needed if you're pinning a different local model.
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**प्रॉम्प्ट का स्वरूप महत्वपूर्ण है।** अनिवार्य टूल-इनवोकेशन प्रॉम्प्ट ("X को इस तर्क के साथ कॉल करें...") एकीकरण परीक्षण हैं — वे 8B के स्थानीय मॉडल को 'टूल_कॉल' उत्पन्न करने के लिए पर्याप्त ढांचा प्रदान करते हैं। सूची-रूप में दिए गए मल्टी-टास्क प्रॉम्प्ट ("A करें, फिर B करें, फिर C करें") बड़े मॉडलों के लिए क्षमता बेंचमार्क हैं; 8B पर सूची-रूप में दिए गए प्रॉम्प्ट में विफलता को "कनेक्शन टूटा हुआ है" के रूप में न समझें। पूर्ण एकीकरण विवरण और ज्ञात परिवहन संबंधी सीमाओं के लिए [handbook/with-hermes](https://mcp-tool-shop-org.github.io/ollama-intern-mcp/handbook/with-hermes/) देखें (ओलामा `/v1` स्ट्रीमिंग + openai-SDK गैर-स्ट्रीमिंग शिम)।
|
|
148
|
+
|
|
115
149
|
### मॉडल डाउनलोड
|
|
116
150
|
|
|
117
151
|
**डिफ़ॉल्ट देव प्रोफ़ाइल (RTX 5080 16GB और इसी तरह):**
|
|
118
152
|
|
|
119
153
|
```bash
|
|
120
|
-
ollama pull
|
|
121
|
-
ollama pull qwen2.5-coder:7b-instruct-q4_K_M
|
|
122
|
-
ollama pull qwen2.5:14b-instruct-q4_K_M
|
|
154
|
+
ollama pull hermes3:8b
|
|
123
155
|
ollama pull nomic-embed-text
|
|
124
|
-
export OLLAMA_MAX_LOADED_MODELS=
|
|
156
|
+
export OLLAMA_MAX_LOADED_MODELS=2
|
|
125
157
|
export OLLAMA_KEEP_ALIVE=-1
|
|
126
158
|
```
|
|
127
159
|
|
|
160
|
+
**क्वेन 3 का वैकल्पिक विकल्प (समान हार्डवेयर, क्वेन टूलिंग के लिए):**
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
ollama pull qwen3:8b
|
|
164
|
+
ollama pull qwen3:14b
|
|
165
|
+
ollama pull nomic-embed-text
|
|
166
|
+
export INTERN_PROFILE=dev-rtx5080-qwen3
|
|
167
|
+
```
|
|
168
|
+
|
|
128
169
|
**M5 मैक्स प्रोफ़ाइल (128GB एकीकृत):**
|
|
129
170
|
|
|
130
171
|
```bash
|
|
131
|
-
ollama pull
|
|
132
|
-
ollama pull
|
|
133
|
-
ollama pull llama3.3:70b-instruct-q4_K_M
|
|
172
|
+
ollama pull qwen3:14b
|
|
173
|
+
ollama pull qwen3:32b
|
|
134
174
|
ollama pull nomic-embed-text
|
|
135
175
|
export INTERN_PROFILE=m5-max
|
|
136
176
|
```
|
|
@@ -148,7 +188,7 @@ export INTERN_PROFILE=m5-max
|
|
|
148
188
|
result: <tool-specific>,
|
|
149
189
|
tier_used: "instant" | "workhorse" | "deep" | "embed",
|
|
150
190
|
model: string,
|
|
151
|
-
hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-
|
|
191
|
+
hardware_profile: string, // "dev-rtx5080" | "dev-rtx5080-qwen3" | "m5-max"
|
|
152
192
|
tokens_in: number,
|
|
153
193
|
tokens_out: number,
|
|
154
194
|
elapsed_ms: number,
|
|
@@ -171,11 +211,11 @@ export INTERN_PROFILE=m5-max
|
|
|
171
211
|
|
|
172
212
|
| प्रोफ़ाइल | तत्काल | कार्यशील | गहन | एम्बेड |
|
|
173
213
|
|---|---|---|---|---|
|
|
174
|
-
| **`dev-rtx5080`** (डिफ़ॉल्ट) |
|
|
175
|
-
| `dev-rtx5080-
|
|
176
|
-
| `m5-max` |
|
|
214
|
+
| **`dev-rtx5080`** (डिफ़ॉल्ट) | hermes3 8B | hermes3 8B | hermes3 8B | nomic-embed-text |
|
|
215
|
+
| `dev-rtx5080-qwen3` | qwen3 8B | qwen3 8B | qwen3 14B | nomic-embed-text |
|
|
216
|
+
| `m5-max` | qwen3 14B | qwen3 14B | qwen3 32B | nomic-embed-text |
|
|
177
217
|
|
|
178
|
-
|
|
218
|
+
**डिफ़ॉल्ट विकास (डेवलपमेंट) वातावरण** तीनों कार्य स्तरों को `hermes3:8b` पर समेटता है — यह मान्य हर्मेस एजेंट एकीकरण पथ है। समान मॉडल का उपयोग शीर्ष से नीचे तक करने का मतलब है कि केवल एक चीज डाउनलोड करनी है, एक ही निवास लागत है, और समझने के लिए केवल एक व्यवहार है। जो उपयोगकर्ता क्वेन 3 को पसंद करते हैं (इसके `THINK_BY_SHAPE` के साथ), वे `dev-rtx5080-qwen3` का उपयोग कर सकते हैं। `m5-max` क्वेन 3 का वह संस्करण है जो एकीकृत मेमोरी के लिए अनुकूलित है।
|
|
179
219
|
|
|
180
220
|
---
|
|
181
221
|
|