@lacneu/openclaw-knowledge 3.2.5 → 3.2.7
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/CHANGELOG.md +62 -32
- package/README.md +87 -1
- package/dist/config.js +90 -7
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.js +82 -11
- package/dist/index.js.map +1 -1
- package/dist/router/labels.js +1 -1
- package/dist/router/labels.js.map +1 -1
- package/dist/tracing/events.d.ts +13 -0
- package/dist/tracing/events.js.map +1 -1
- package/dist/types.d.ts +82 -2
- package/openclaw.plugin.json +62 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.2.7] - 2026-06-18
|
|
11
|
+
|
|
12
|
+
### Added — TEST mode (mocked sources, opt-in)
|
|
13
|
+
|
|
14
|
+
New `testMode` config block lets the plugin run in an **isolated test
|
|
15
|
+
environment with no live LightRAG server and no PostgreSQL/pgvector
|
|
16
|
+
backend**. When `testMode.enabled` is `true`, BOTH sources return canned
|
|
17
|
+
data instead of querying anything:
|
|
18
|
+
|
|
19
|
+
- **LightRAG** → `testMode.lightragMockResponse` (a realistic synthetic
|
|
20
|
+
knowledge-graph context by default; the `{{query}}` token is substituted
|
|
21
|
+
with the user's query at runtime so you can confirm it reaches the source).
|
|
22
|
+
- **pgvector** → `testMode.pgvectorMockResults` (a small realistic
|
|
23
|
+
synthetic hit set by default; each entry is normalized to a full result
|
|
24
|
+
row and sorted by descending score).
|
|
25
|
+
|
|
26
|
+
The mocked context is **genuinely injected** into the agent's system prompt
|
|
27
|
+
via the unchanged `before_prompt_build` → `appendSystemContext` path, so the
|
|
28
|
+
plugin's real impact on the agent's answers is observable downstream — e.g.
|
|
29
|
+
the agent's LLM call (traced via LiteLLM → Langfuse) reflects the injected
|
|
30
|
+
context. The plugin makes **zero** outbound calls in test mode (no Gemini
|
|
31
|
+
embedding, no LightRAG query) and **no pg pool is created**.
|
|
32
|
+
|
|
33
|
+
Safety: off by default; a loud `⚠️ TEST MODE ACTIVE` warning is logged at
|
|
34
|
+
registration; the ready line and the `lightrag`/`pgvector` tracing events are
|
|
35
|
+
flagged so synthetic traffic is distinguishable (`mock:true`, only present in
|
|
36
|
+
test mode — production event lines are byte-for-byte unchanged). A source
|
|
37
|
+
counts as "enabled" under the mock even without its URL/credentials, but an
|
|
38
|
+
explicit `pgvectorEnabled`/`lightragEnabled: false` still wins, so a single
|
|
39
|
+
source can be mocked in isolation. **Never enable `testMode` in production.**
|
|
40
|
+
|
|
10
41
|
### Added — provenance reporting (provenance/v1, opt-in)
|
|
11
42
|
|
|
12
43
|
New `provenanceReport` config (`"off"` default | `"metadata"` | `"full"`).
|
|
@@ -86,12 +117,12 @@ Invalid `injectedChars` values (`NaN`, negative numbers) fall back to
|
|
|
86
117
|
|
|
87
118
|
### Added — payload-size guards for the pgvector reranker
|
|
88
119
|
|
|
89
|
-
Production observation
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
120
|
+
Production observation: rerank calls were averaging far over the
|
|
121
|
+
model's 8 K context window (**~66 600 tokens** each). Almost all of
|
|
122
|
+
that came from LightRAG-side reranker chunking, but the plugin-side
|
|
123
|
+
reranker would face the same risk once a shared collection is
|
|
124
|
+
alimented. v3.2.4 ships two preventive knobs to keep the plugin-side
|
|
125
|
+
spend bounded:
|
|
95
126
|
|
|
96
127
|
- **`jina.pgvectorReranker.candidatePoolMax`** (default `20`). Caps the
|
|
97
128
|
number of cosine-ranked candidates sent to Jina /v1/rerank. Pgvector
|
|
@@ -162,28 +193,28 @@ to recommend:
|
|
|
162
193
|
the `.env.template` block for the full operating-point comparison
|
|
163
194
|
(chunking-ON vs TOP_K=5 vs jina-reranker-v3).
|
|
164
195
|
|
|
165
|
-
Apply on the
|
|
196
|
+
Apply on the host:
|
|
166
197
|
|
|
167
198
|
```bash
|
|
168
|
-
sudo vi /
|
|
199
|
+
sudo vi /volume1/openclaw/lightrag/.env.agent
|
|
169
200
|
# Change: RERANK_MAX_TOKENS_PER_DOC=600
|
|
170
201
|
# Change: MIN_RERANK_SCORE=0.05
|
|
171
|
-
sudo docker restart openclaw-lightrag-
|
|
202
|
+
sudo docker restart openclaw-lightrag-agent
|
|
172
203
|
```
|
|
173
204
|
|
|
174
|
-
Expected saving
|
|
205
|
+
Expected saving at the observed rate: ~8.4 M → ~5.6 M tokens
|
|
175
206
|
per 7 days (-33%), no quality regression.
|
|
176
207
|
|
|
177
208
|
### Migration
|
|
178
209
|
|
|
179
210
|
Drop-in plugin patch. Defaults preserve the v3.2.3 behavior on
|
|
180
|
-
runtimes that don't set the new fields. To activate the new caps
|
|
181
|
-
|
|
211
|
+
runtimes that don't set the new fields. To activate the new caps,
|
|
212
|
+
run on each configured instance:
|
|
182
213
|
|
|
183
214
|
```bash
|
|
184
|
-
|
|
185
|
-
sudo docker exec openclaw-
|
|
186
|
-
sudo docker restart openclaw-
|
|
215
|
+
# run on each configured instance
|
|
216
|
+
sudo docker exec openclaw-agent openclaw plugins update @lacneu/openclaw-knowledge
|
|
217
|
+
sudo docker restart openclaw-agent
|
|
187
218
|
```
|
|
188
219
|
|
|
189
220
|
Verify post-restart:
|
|
@@ -290,9 +321,8 @@ metadata after every assistant turn:
|
|
|
290
321
|
|
|
291
322
|
These are not user questions and have no business hitting the
|
|
292
323
|
knowledge base. Previously the heuristic let them through, the
|
|
293
|
-
Jina classifier was billed, and
|
|
294
|
-
→ `classifier_low_confidence` → ALL → wasted LightRAG call
|
|
295
|
-
2026-05-23 19:42:05 case in the issue).
|
|
324
|
+
Jina classifier was billed, and in production they typically scored
|
|
325
|
+
~0.27 → `classifier_low_confidence` → ALL → wasted LightRAG call.
|
|
296
326
|
|
|
297
327
|
The new META_PATTERN catches them at the start of the prompt:
|
|
298
328
|
|
|
@@ -309,9 +339,9 @@ who quotes the template inside a real question keeps their content.
|
|
|
309
339
|
Drop-in patch. No config change required.
|
|
310
340
|
|
|
311
341
|
```bash
|
|
312
|
-
|
|
313
|
-
sudo docker exec openclaw-
|
|
314
|
-
sudo docker restart openclaw-
|
|
342
|
+
# run on each configured instance
|
|
343
|
+
sudo docker exec openclaw-agent openclaw plugins update @lacneu/openclaw-knowledge
|
|
344
|
+
sudo docker restart openclaw-agent
|
|
315
345
|
```
|
|
316
346
|
|
|
317
347
|
After restart, expect:
|
|
@@ -415,7 +445,7 @@ only** — no SQL params, no query content — to keep PHI out of logs.
|
|
|
415
445
|
|
|
416
446
|
### Fixed — Jina classifier silently blocked retrieval on low-confidence scores
|
|
417
447
|
|
|
418
|
-
After v3.2.1 fixed query extraction,
|
|
448
|
+
After v3.2.1 fixed query extraction, production traces showed
|
|
419
449
|
that 6 out of 8 user turns ended up with `route=NONE` from
|
|
420
450
|
`reason=classifier_hit` with scores tightly clustered around **0.25**:
|
|
421
451
|
|
|
@@ -433,7 +463,7 @@ retrieval on legitimate questions.
|
|
|
433
463
|
Confirmed regression scenario, from a real chat-export on 2026-05-23:
|
|
434
464
|
|
|
435
465
|
> Query: `"Quel est l'arbitrage principal de la réunion hebdomadaire
|
|
436
|
-
>
|
|
466
|
+
> Acme du 19 mai 2026 ?"`
|
|
437
467
|
> Classifier: `NONE @ 0.25` → router blocked the RAG.
|
|
438
468
|
> The agent then recovered via the `gworkspace-search` skill, but the
|
|
439
469
|
> RAG never contributed and the turn took 43 s + 5 tool calls instead
|
|
@@ -478,9 +508,9 @@ explicitly (e.g. for an evaluation A/B), set
|
|
|
478
508
|
`jina.router.minConfidence: 0` via `openclaw config set`.
|
|
479
509
|
|
|
480
510
|
```bash
|
|
481
|
-
|
|
482
|
-
sudo docker exec openclaw-
|
|
483
|
-
sudo docker restart openclaw-
|
|
511
|
+
# run on each configured instance
|
|
512
|
+
sudo docker exec openclaw-agent openclaw plugins update @lacneu/openclaw-knowledge
|
|
513
|
+
sudo docker restart openclaw-agent
|
|
484
514
|
```
|
|
485
515
|
|
|
486
516
|
After restart, watch the `[knowledge.event]` router lines: previously
|
|
@@ -506,7 +536,7 @@ clear the floor, defeating the guard.
|
|
|
506
536
|
### Test coverage
|
|
507
537
|
|
|
508
538
|
- Total: 232 tests, all green (was 223 in 3.2.1; +9 new).
|
|
509
|
-
- 7 new tests in `test/router/router.test.ts` covering the
|
|
539
|
+
- 7 new tests in `test/router/router.test.ts` covering the Acme
|
|
510
540
|
regression scenario, the exact boundary (`score === minConfidence`
|
|
511
541
|
passes), a clear-match scenario above threshold, the few-shot path,
|
|
512
542
|
the `minConfidence=0` escape hatch, the public-API safety case
|
|
@@ -552,9 +582,9 @@ Drop-in patch — no config change required. `update` the plugin and
|
|
|
552
582
|
restart the gateway:
|
|
553
583
|
|
|
554
584
|
```bash
|
|
555
|
-
|
|
556
|
-
sudo docker exec openclaw-
|
|
557
|
-
sudo docker restart openclaw-
|
|
585
|
+
# run on each configured instance
|
|
586
|
+
sudo docker exec openclaw-agent openclaw plugins update @lacneu/openclaw-knowledge
|
|
587
|
+
sudo docker restart openclaw-agent
|
|
558
588
|
```
|
|
559
589
|
|
|
560
590
|
After the restart, `[knowledge.event]` logs should show `queryLength`
|
|
@@ -788,7 +818,7 @@ passes (2026-05-23):
|
|
|
788
818
|
|
|
789
819
|
- **Privacy: query preview removed from debug logs.** The original
|
|
790
820
|
`emitQueryPreview` logged the first 80 chars of every user query when
|
|
791
|
-
`logger.debug` was active. In
|
|
821
|
+
`logger.debug` was active. In production deployments those queries
|
|
792
822
|
routinely carry PHI / client content / occasionally secrets, so even a
|
|
793
823
|
truncated preview was a leak vector. Replaced by `emitQueryFingerprint`
|
|
794
824
|
which logs a non-reversible SHA-256 prefix (`fp=<12 hex chars>`) and
|
|
@@ -974,7 +1004,7 @@ For instance owners on `@lacneu/openclaw-knowledge@3.1.0` or `3.1.1`:
|
|
|
974
1004
|
format (`### Document Search Results` + `### Knowledge Graph Context`), same
|
|
975
1005
|
parallel execution via `Promise.allSettled`, same cooldown (3 errors → 5 min),
|
|
976
1006
|
same Gemini native `embedContent` endpoint, same `halfvec(3072)` SQL cast.
|
|
977
|
-
-
|
|
1007
|
+
- Existing plugin configurations continue to work
|
|
978
1008
|
without any changes — all config keys and defaults are preserved. The breaking
|
|
979
1009
|
changes below are limited to internal types and legacy input shapes that were
|
|
980
1010
|
defensive cruft, not fields used by active deployments.
|
package/README.md
CHANGED
|
@@ -191,6 +191,10 @@ openclaw gateway restart
|
|
|
191
191
|
| `jina.pgvectorReranker.enabled` | boolean | `false` | Cross-encoder re-ordering of pgvector results |
|
|
192
192
|
| `jina.pgvectorReranker.model` | string | `"jina-reranker-v2-base-multilingual"` | Reranker model |
|
|
193
193
|
| `jina.pgvectorReranker.topN` | number | `5` | Max results returned after rerank |
|
|
194
|
+
| **TEST mode (optional, v3.2.7+)** | | | |
|
|
195
|
+
| `testMode.enabled` | boolean | `false` | Mock BOTH sources — no LightRAG/Postgres connection. **Never enable in production.** |
|
|
196
|
+
| `testMode.lightragMockResponse` | string | synthetic context | Canned LightRAG context; `{{query}}` is substituted at runtime |
|
|
197
|
+
| `testMode.pgvectorMockResults` | object[] | synthetic hits | Canned pgvector hits (`file_name`, `text`, `score`, `collection`) |
|
|
194
198
|
|
|
195
199
|
### LightRAG query modes
|
|
196
200
|
|
|
@@ -201,6 +205,88 @@ openclaw gateway restart
|
|
|
201
205
|
| `global` | Community summaries | Broad, overview questions |
|
|
202
206
|
| `hybrid` | Combines local + global | **Recommended for most cases** |
|
|
203
207
|
|
|
208
|
+
### TEST mode — run without LightRAG or Postgres (v3.2.7+)
|
|
209
|
+
|
|
210
|
+
TEST mode lets you deploy the plugin into an **isolated test environment**
|
|
211
|
+
that has **no live LightRAG server and no PostgreSQL/pgvector backend**, while
|
|
212
|
+
still observing the plugin's real impact on the agent's answers. Both sources
|
|
213
|
+
return canned data, but that data is **genuinely injected** into the agent's
|
|
214
|
+
system prompt through the normal `before_prompt_build` → `appendSystemContext`
|
|
215
|
+
path — so the agent reasons over it exactly as it would over real retrieval,
|
|
216
|
+
and any downstream LLM trace (e.g. the agent's call routed through LiteLLM to
|
|
217
|
+
Langfuse) reflects the injected context.
|
|
218
|
+
|
|
219
|
+
The plugin makes **zero outbound calls** in test mode: no Gemini embedding,
|
|
220
|
+
no LightRAG query, and **no pg pool is created**.
|
|
221
|
+
|
|
222
|
+
```json
|
|
223
|
+
{
|
|
224
|
+
"plugins": {
|
|
225
|
+
"entries": {
|
|
226
|
+
"openclaw-knowledge": {
|
|
227
|
+
"enabled": true,
|
|
228
|
+
"config": {
|
|
229
|
+
"collections": ["knowledge_test"],
|
|
230
|
+
"testMode": {
|
|
231
|
+
"enabled": true,
|
|
232
|
+
"lightragMockResponse": "Knowledge-graph context for \"{{query}}\": Projet Hélios, reference HX-2026-0042, owned by équipe Plateforme.",
|
|
233
|
+
"pgvectorMockResults": [
|
|
234
|
+
{ "file_name": "guide-helios.md", "text": "Hélios rollout: prep, switch, validation. Ref HX-2026-0042.", "score": 0.87 },
|
|
235
|
+
{ "file_name": "faq-helios.md", "text": "Hélios is piloted by équipe Plateforme since 2026-02-14.", "score": 0.72 }
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Notes:
|
|
246
|
+
|
|
247
|
+
- **No credentials needed.** Under the mock, each source counts as "enabled"
|
|
248
|
+
even without `geminiApiKey` / `lightragUrl`. To mock a **single** source,
|
|
249
|
+
set the other's explicit toggle off (`"pgvectorEnabled": false` or
|
|
250
|
+
`"lightragEnabled": false`) — the explicit disable always wins.
|
|
251
|
+
- **Defaults are realistic.** Omit `lightragMockResponse` /
|
|
252
|
+
`pgvectorMockResults` and the plugin injects a synthetic "Projet Hélios"
|
|
253
|
+
knowledge set (with a citable `HX-2026-0042` reference) so you can confirm
|
|
254
|
+
injection worked straight from the agent's reply.
|
|
255
|
+
- **`{{query}}`** in `lightragMockResponse` is replaced with the user's query
|
|
256
|
+
at runtime, proving the query travels through the source.
|
|
257
|
+
- **Mock fidelity divergences** (intentional — the mock path has no DB/Jina):
|
|
258
|
+
- Mock pgvector results **always inject regardless of `scoreThreshold`**
|
|
259
|
+
(the real path filters `score >= scoreThreshold`).
|
|
260
|
+
- The **Jina reranker is bypassed** in test mode (it needs a live endpoint);
|
|
261
|
+
ordering is controlled entirely by the mock `score` values.
|
|
262
|
+
- **Router still applies.** The adaptive router (if enabled) runs normally. In
|
|
263
|
+
the default `heuristic` mode it works fully offline; in `jina-classifier`
|
|
264
|
+
mode it would call Jina and fail open to "retrieve" if Jina is unreachable.
|
|
265
|
+
For a fully offline test env, keep the router off or in `heuristic` mode.
|
|
266
|
+
- **Safety.** A loud `⚠️ TEST MODE ACTIVE` warning is logged at registration,
|
|
267
|
+
the ready line marks each source `[MOCK]`, and the `lightrag`/`pgvector`
|
|
268
|
+
tracing events carry `mock:true`. **Never enable `testMode` in production** —
|
|
269
|
+
it feeds the agent canned facts it will treat as real.
|
|
270
|
+
|
|
271
|
+
#### Verifying the impact (Langfuse)
|
|
272
|
+
|
|
273
|
+
The mock context is genuinely injected, so it reaches the agent's LLM call.
|
|
274
|
+
Whether it shows up in **Langfuse** depends on how your test agent is wired:
|
|
275
|
+
Langfuse traces calls that go **through LiteLLM** (and the LightRAG server).
|
|
276
|
+
A typical production OpenClaw agent routes its chat/reasoning calls **straight
|
|
277
|
+
to the model provider** (e.g. `openai-codex`), which Langfuse does **not**
|
|
278
|
+
trace — so for Langfuse visibility, the test agent must route its LLM calls
|
|
279
|
+
through LiteLLM. The plugin injects correctly either way; this only affects
|
|
280
|
+
observability.
|
|
281
|
+
|
|
282
|
+
End-to-end check that the plugin really influences answers:
|
|
283
|
+
|
|
284
|
+
1. Deploy with `testMode.enabled: true`.
|
|
285
|
+
2. Ask the agent a question answerable **only** from the mock, e.g.
|
|
286
|
+
*"What is the Hélios reference id?"*
|
|
287
|
+
3. Confirm the agent answers `HX-2026-0042` (the default mock's citable fact).
|
|
288
|
+
If it does, the injection path works end-to-end.
|
|
289
|
+
|
|
204
290
|
---
|
|
205
291
|
|
|
206
292
|
## Jina integration (v3.2.0+)
|
|
@@ -280,7 +366,7 @@ a structured event line:
|
|
|
280
366
|
|
|
281
367
|
```
|
|
282
368
|
[knowledge.event] {"type":"router","route":"PGVECTOR_ONLY","reason":"heuristic_keyword","score":null,"queryLength":42,"trigger":"user"}
|
|
283
|
-
[knowledge.event] {"type":"pgvector","collections":["
|
|
369
|
+
[knowledge.event] {"type":"pgvector","collections":["knowledge_default"],"rawCount":5,"rerankedCount":5,"topScore":0.78,"durationMs":124}
|
|
284
370
|
[knowledge.event] {"type":"cooldown","scope":"router","consecutiveErrors":3}
|
|
285
371
|
```
|
|
286
372
|
|
package/dist/config.js
CHANGED
|
@@ -40,19 +40,56 @@ const DEFAULT_ROUTER_MODE = "heuristic";
|
|
|
40
40
|
// (`DEFAULT_MIN_CONFIDENCE`). Re-export of a local alias would create
|
|
41
41
|
// two sources of truth — we import the single constant instead.
|
|
42
42
|
//
|
|
43
|
-
// Empirical observation
|
|
43
|
+
// Empirical observation in production traces (v3.2.1 deployment): Jina v3
|
|
44
44
|
// zero-shot scores cluster at 0.25-0.27 when no label actually matches
|
|
45
45
|
// the query, then resolve to a noisy `NONE` decision that wrongly
|
|
46
46
|
// blocks retrieval. A floor of 0.35 catches that noise band while
|
|
47
47
|
// staying below typical hit scores (≈ 0.40-0.65).
|
|
48
48
|
const DEFAULT_RERANKER_MODEL = "jina-reranker-v2-base-multilingual";
|
|
49
49
|
const DEFAULT_RERANKER_TOP_N = 5;
|
|
50
|
-
// 3.2.4 — payload-trimming defaults. Empirically calibrated
|
|
51
|
-
// Jina dashboard
|
|
50
|
+
// 3.2.4 — payload-trimming defaults. Empirically calibrated from the
|
|
51
|
+
// production Jina dashboard: 20 candidates × 2000 chars
|
|
52
52
|
// fits in ~10K tokens (well below jina-reranker-v2's 8K context window
|
|
53
53
|
// once the query is added) while preserving the top-precision band.
|
|
54
54
|
const DEFAULT_RERANKER_CANDIDATE_POOL_MAX = 20;
|
|
55
55
|
const DEFAULT_RERANKER_MAX_CHARS_PER_DOC = 2000;
|
|
56
|
+
// 3.2.7 — TEST mode defaults. The canned LightRAG context is deliberately
|
|
57
|
+
// > 200 chars so it is not flagged `sparse`, and embeds a distinctive,
|
|
58
|
+
// citable fact (`HX-2026-0042`) so an operator can confirm — from the
|
|
59
|
+
// agent's answer alone — that the injected context actually reached the
|
|
60
|
+
// LLM. `{{query}}` is substituted per-turn (see renderMockResponse) to make
|
|
61
|
+
// it obvious the query travels through the source.
|
|
62
|
+
const DEFAULT_LIGHTRAG_MOCK_RESPONSE = [
|
|
63
|
+
"[Mock LightRAG context — TEST MODE]",
|
|
64
|
+
'Knowledge-graph context assembled for the query "{{query}}":',
|
|
65
|
+
"",
|
|
66
|
+
"Entity: Projet Hélios — pilot knowledge-base integration project.",
|
|
67
|
+
'Relation: Projet Hélios → owned_by → "équipe Plateforme".',
|
|
68
|
+
'Relation: Projet Hélios → status → "active since 2026-02-14".',
|
|
69
|
+
'Entity: Document "guide-deploiement-helios.md" — describes the rollout plan.',
|
|
70
|
+
"Fact: The Hélios reference identifier is HX-2026-0042.",
|
|
71
|
+
"",
|
|
72
|
+
"This is synthetic data injected by the plugin's TEST mode to validate",
|
|
73
|
+
"context injection without a live LightRAG server.",
|
|
74
|
+
].join("\n");
|
|
75
|
+
// Mirrors the shape pgvector would return for the same synthetic project,
|
|
76
|
+
// so the injected `Document Search Results` block looks production-realistic.
|
|
77
|
+
const DEFAULT_PGVECTOR_MOCK_RESULTS = [
|
|
78
|
+
{
|
|
79
|
+
file_name: "guide-deploiement-helios.md",
|
|
80
|
+
score: 0.87,
|
|
81
|
+
text: "Le déploiement du Projet Hélios suit trois phases : préparation, " +
|
|
82
|
+
"bascule, validation. Identifiant de référence : HX-2026-0042.",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
file_name: "faq-helios.md",
|
|
86
|
+
score: 0.72,
|
|
87
|
+
text: "Q : Qui pilote le Projet Hélios ? R : l'équipe Plateforme, active " +
|
|
88
|
+
"depuis le 2026-02-14.",
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
const DEFAULT_MOCK_SCORE = 0.8;
|
|
92
|
+
const DEFAULT_MOCK_COLLECTION = "knowledge_test";
|
|
56
93
|
/**
|
|
57
94
|
* Apply defaults and env substitution to the raw plugin config. A source is
|
|
58
95
|
* enabled when its credentials are present, unless the user explicitly toggles
|
|
@@ -72,20 +109,28 @@ export function resolveConfig(cfg = {}) {
|
|
|
72
109
|
const reranker = (jina.pgvectorReranker ?? {});
|
|
73
110
|
const jinaApiKey = resolveEnv(jina.apiKey ?? "");
|
|
74
111
|
const routerClassifierId = resolveEnv(router.classifierId ?? "");
|
|
112
|
+
const collections = cfg.collections ?? DEFAULT_COLLECTIONS;
|
|
113
|
+
// TEST mode — mocked sources for infra-less environments. When active, a
|
|
114
|
+
// source is "enabled" even without its credentials/URL so the hook still
|
|
115
|
+
// registers; the explicit `pgvectorEnabled`/`lightragEnabled: false`
|
|
116
|
+
// toggles still win (first conjunct) so an operator can mock a single
|
|
117
|
+
// source in isolation.
|
|
118
|
+
const test = (cfg.testMode ?? {});
|
|
119
|
+
const testModeEnabled = test.enabled === true;
|
|
75
120
|
return {
|
|
76
121
|
enabled: cfg.enabled !== false,
|
|
77
122
|
geminiApiKey,
|
|
78
123
|
postgresUrl,
|
|
79
|
-
collections
|
|
124
|
+
collections,
|
|
80
125
|
topK: cfg.topK ?? DEFAULT_TOP_K,
|
|
81
126
|
scoreThreshold: cfg.scoreThreshold ?? DEFAULT_SCORE_THRESHOLD,
|
|
82
127
|
maxInjectChars: cfg.maxInjectChars ?? DEFAULT_MAX_INJECT_CHARS,
|
|
83
|
-
pgvectorEnabled: cfg.pgvectorEnabled !== false && Boolean(geminiApiKey),
|
|
128
|
+
pgvectorEnabled: cfg.pgvectorEnabled !== false && (Boolean(geminiApiKey) || testModeEnabled),
|
|
84
129
|
lightragUrl,
|
|
85
130
|
lightragApiKey,
|
|
86
131
|
lightragQueryMode: cfg.lightragQueryMode ?? DEFAULT_LIGHTRAG_MODE,
|
|
87
132
|
lightragMaxChars: cfg.lightragMaxChars ?? DEFAULT_LIGHTRAG_MAX_CHARS,
|
|
88
|
-
lightragEnabled: cfg.lightragEnabled !== false && Boolean(lightragUrl),
|
|
133
|
+
lightragEnabled: cfg.lightragEnabled !== false && (Boolean(lightragUrl) || testModeEnabled),
|
|
89
134
|
// Jina shared key (used by router and/or reranker)
|
|
90
135
|
jinaApiKey,
|
|
91
136
|
// 3.2.4 — soft RPM budget. 0 disables the monitor entirely.
|
|
@@ -110,12 +155,50 @@ export function resolveConfig(cfg = {}) {
|
|
|
110
155
|
// the corresponding cap (legacy v3.2.3 behavior).
|
|
111
156
|
pgvectorRerankerCandidatePoolMax: clampNonNegInt(reranker.candidatePoolMax ?? DEFAULT_RERANKER_CANDIDATE_POOL_MAX),
|
|
112
157
|
pgvectorRerankerMaxCharsPerDoc: clampNonNegInt(reranker.maxCharsPerDoc ?? DEFAULT_RERANKER_MAX_CHARS_PER_DOC),
|
|
113
|
-
// 3.
|
|
158
|
+
// 3.2.7 — provenance reporting toward chat frontends. Off-list values
|
|
114
159
|
// (typos, future levels) normalize to "off": a misconfiguration must
|
|
115
160
|
// never silently leak content.
|
|
116
161
|
provenanceReport: resolveProvenanceLevel(cfg.provenanceReport),
|
|
162
|
+
// 3.2.7 — TEST mode. Mocks resolve unconditionally (cheap) so the
|
|
163
|
+
// handler can read them without re-deriving defaults; they are only
|
|
164
|
+
// consumed when `testModeEnabled` is true.
|
|
165
|
+
testModeEnabled,
|
|
166
|
+
lightragMockResponse: typeof test.lightragMockResponse === "string"
|
|
167
|
+
? test.lightragMockResponse
|
|
168
|
+
: DEFAULT_LIGHTRAG_MOCK_RESPONSE,
|
|
169
|
+
pgvectorMockResults: toPgvectorMockResults(test.pgvectorMockResults ?? DEFAULT_PGVECTOR_MOCK_RESULTS, collections[0] ?? DEFAULT_MOCK_COLLECTION),
|
|
117
170
|
};
|
|
118
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Normalize the operator's ergonomic mock shape into full
|
|
174
|
+
* {@link PgvectorResult} rows: missing fields become `null`, a missing
|
|
175
|
+
* collection falls back to `defaultCollection`, a missing/invalid score
|
|
176
|
+
* clamps to `[0, 1]` (default `0.8`). The list is sorted by descending
|
|
177
|
+
* score so it mirrors the cosine-ranked order the real pgvector path
|
|
178
|
+
* produces in `runPgvectorSource`.
|
|
179
|
+
*/
|
|
180
|
+
function toPgvectorMockResults(mocks, defaultCollection) {
|
|
181
|
+
if (!Array.isArray(mocks))
|
|
182
|
+
return [];
|
|
183
|
+
return mocks
|
|
184
|
+
.map((m) => ({
|
|
185
|
+
collection: typeof m.collection === "string" && m.collection.length > 0
|
|
186
|
+
? m.collection
|
|
187
|
+
: defaultCollection,
|
|
188
|
+
score: clamp01(typeof m.score === "number" ? m.score : DEFAULT_MOCK_SCORE),
|
|
189
|
+
file_name: m.file_name ?? null,
|
|
190
|
+
mime_type: null,
|
|
191
|
+
text: m.text ?? null,
|
|
192
|
+
file_id: null,
|
|
193
|
+
source: null,
|
|
194
|
+
owner: null,
|
|
195
|
+
chunk_index: null,
|
|
196
|
+
total_chunks: null,
|
|
197
|
+
timestamp_start: null,
|
|
198
|
+
timestamp_end: null,
|
|
199
|
+
}))
|
|
200
|
+
.sort((a, b) => b.score - a.score);
|
|
201
|
+
}
|
|
119
202
|
/** Clamp a value to a non-negative integer. Bad input collapses to `0`. */
|
|
120
203
|
function clampNonNegInt(value) {
|
|
121
204
|
if (!Number.isFinite(value))
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,EAAE;AACF,2EAA2E;AAC3E,6DAA6D;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { embedQuery } from "./embeddings.js";
|
|
|
8
8
|
export { searchCollection, formatPgvectorResults, rerankPgvectorResults, } from "./pgvector.js";
|
|
9
9
|
export { queryLightRAG, truncateLightRAG, formatLightRAGResults } from "./lightrag.js";
|
|
10
10
|
export { decideRoute } from "./router/index.js";
|
|
11
|
-
export type { BeforePromptBuildEvent, BeforePromptBuildResult, JinaPluginConfig, KnowledgePluginConfig, LightRAGQueryMode, PgPoolLike, PgvectorResult, PgvectorRerankerPluginConfig, PgvectorRow, PluginHookAgentContext, PromptContentPart, PromptMessage, ResolvedKnowledgeConfig, RouterPluginConfig, } from "./types.js";
|
|
11
|
+
export type { BeforePromptBuildEvent, BeforePromptBuildResult, JinaPluginConfig, KnowledgePluginConfig, LightRAGQueryMode, PgPoolLike, PgvectorMockResult, PgvectorResult, PgvectorRerankerPluginConfig, PgvectorRow, PluginHookAgentContext, PromptContentPart, PromptMessage, ResolvedKnowledgeConfig, RouterPluginConfig, TestModePluginConfig, } from "./types.js";
|
|
12
12
|
interface HookHandlerDeps {
|
|
13
13
|
config: ResolvedKnowledgeConfig;
|
|
14
14
|
pool: PgPoolLike | null;
|
|
@@ -81,6 +81,15 @@ export declare function extractUserQuery(event: BeforePromptBuildEvent): string;
|
|
|
81
81
|
* @internal exported for unit testing and backward compatibility
|
|
82
82
|
*/
|
|
83
83
|
export declare function extractQueryFromMessages(messages: PromptMessage[] | undefined): string;
|
|
84
|
+
/**
|
|
85
|
+
* Substitute the `{{query}}` token (whitespace-tolerant) in a mock template.
|
|
86
|
+
*
|
|
87
|
+
* The replacement is passed as a CALLBACK, not a string, so the query is
|
|
88
|
+
* inserted VERBATIM. A string replacement argument would interpret `$&`,
|
|
89
|
+
* `` $` ``, `$'`, `$$` and `$1`-style sequences — common in code/shell
|
|
90
|
+
* questions — and corrupt the very query this feature is meant to reflect.
|
|
91
|
+
*/
|
|
92
|
+
export declare function renderMockResponse(template: string, query: string): string;
|
|
84
93
|
export declare function registerKnowledgePlugin(api: OpenClawPluginApi): void;
|
|
85
94
|
declare const knowledgePluginEntry: OpenClawPluginDefinition;
|
|
86
95
|
export default knowledgePluginEntry;
|
package/dist/index.js
CHANGED
|
@@ -118,13 +118,23 @@ export function createBeforePromptBuildHandler(deps) {
|
|
|
118
118
|
// -----------------------------------------------------------------
|
|
119
119
|
try {
|
|
120
120
|
const tasks = [];
|
|
121
|
-
if (shouldUsePgvector(effectiveRoute) &&
|
|
122
|
-
config.
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
if (shouldUsePgvector(effectiveRoute) && config.pgvectorEnabled) {
|
|
122
|
+
if (config.testModeEnabled) {
|
|
123
|
+
// TEST mode: canned hits, no embedding call, no pg pool.
|
|
124
|
+
tasks.push(runPgvectorMock(config));
|
|
125
|
+
}
|
|
126
|
+
else if (pool) {
|
|
127
|
+
tasks.push(runPgvectorSource(pool, query, config, cooldowns.pgvector_reranker, logger, rpmMonitor));
|
|
128
|
+
}
|
|
125
129
|
}
|
|
126
130
|
if (shouldUseLightRAG(effectiveRoute) && config.lightragEnabled) {
|
|
127
|
-
|
|
131
|
+
if (config.testModeEnabled) {
|
|
132
|
+
// TEST mode: canned context, no LightRAG server call.
|
|
133
|
+
tasks.push(runLightRAGMock(query, config));
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
tasks.push(runLightRAGSource(query, config));
|
|
137
|
+
}
|
|
128
138
|
}
|
|
129
139
|
if (tasks.length === 0)
|
|
130
140
|
return undefined;
|
|
@@ -581,6 +591,52 @@ async function runLightRAGSource(query, config) {
|
|
|
581
591
|
const context = await queryLightRAG(config.lightragUrl, config.lightragApiKey, query, config.lightragQueryMode);
|
|
582
592
|
return { source: "lightrag", data: context, durationMs: Date.now() - startedAt };
|
|
583
593
|
}
|
|
594
|
+
// ---------------------------------------------------------------------------
|
|
595
|
+
// TEST mode — mocked sources (no network, no DB).
|
|
596
|
+
//
|
|
597
|
+
// These mirror the real `run*Source` functions EXACTLY: same return shape,
|
|
598
|
+
// same downstream path (renderSection → events → provenance →
|
|
599
|
+
// appendSystemContext). The only difference is the data origin. This is the
|
|
600
|
+
// whole point: the agent receives genuinely-injected context, so a downstream
|
|
601
|
+
// LLM trace (e.g. LiteLLM → Langfuse) reflects the real impact, while the
|
|
602
|
+
// plugin makes ZERO calls to a LightRAG server or PostgreSQL.
|
|
603
|
+
// ---------------------------------------------------------------------------
|
|
604
|
+
/**
|
|
605
|
+
* Substitute the `{{query}}` token (whitespace-tolerant) in a mock template.
|
|
606
|
+
*
|
|
607
|
+
* The replacement is passed as a CALLBACK, not a string, so the query is
|
|
608
|
+
* inserted VERBATIM. A string replacement argument would interpret `$&`,
|
|
609
|
+
* `` $` ``, `$'`, `$$` and `$1`-style sequences — common in code/shell
|
|
610
|
+
* questions — and corrupt the very query this feature is meant to reflect.
|
|
611
|
+
*/
|
|
612
|
+
export function renderMockResponse(template, query) {
|
|
613
|
+
return template.replace(/\{\{\s*query\s*\}\}/g, () => query);
|
|
614
|
+
}
|
|
615
|
+
async function runLightRAGMock(query, config) {
|
|
616
|
+
const startedAt = Date.now();
|
|
617
|
+
const data = renderMockResponse(config.lightragMockResponse, query);
|
|
618
|
+
return {
|
|
619
|
+
source: "lightrag",
|
|
620
|
+
data,
|
|
621
|
+
durationMs: Date.now() - startedAt,
|
|
622
|
+
mock: true,
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
async function runPgvectorMock(config) {
|
|
626
|
+
const startedAt = Date.now();
|
|
627
|
+
// `pgvectorMockResults` is already normalized and score-sorted by
|
|
628
|
+
// resolveConfig, so it needs no embedding pass and no pool.
|
|
629
|
+
const data = config.pgvectorMockResults;
|
|
630
|
+
return {
|
|
631
|
+
source: "pgvector",
|
|
632
|
+
data,
|
|
633
|
+
rawCount: data.length,
|
|
634
|
+
reranked: false,
|
|
635
|
+
durationMs: Date.now() - startedAt,
|
|
636
|
+
errored: false,
|
|
637
|
+
mock: true,
|
|
638
|
+
};
|
|
639
|
+
}
|
|
584
640
|
function renderSection(result, config, logger) {
|
|
585
641
|
if (result.source === "pgvector") {
|
|
586
642
|
const formatted = formatPgvectorResultsDetailed(result.data, config.maxInjectChars);
|
|
@@ -609,6 +665,8 @@ function renderSection(result, config, logger) {
|
|
|
609
665
|
topScore: result.data[0]?.score ?? null,
|
|
610
666
|
durationMs: result.durationMs,
|
|
611
667
|
errored: result.errored,
|
|
668
|
+
// Only present in TEST mode — production event lines are unchanged.
|
|
669
|
+
...(result.mock ? { mock: true } : {}),
|
|
612
670
|
});
|
|
613
671
|
if (!formatted) {
|
|
614
672
|
logger.info(`openclaw-knowledge: pgvector — no result above threshold (rawCount=${result.rawCount})`);
|
|
@@ -642,6 +700,8 @@ function renderSection(result, config, logger) {
|
|
|
642
700
|
truncatedChars: truncatedLen,
|
|
643
701
|
durationMs: result.durationMs,
|
|
644
702
|
sparse: truncatedLen < LIGHTRAG_SPARSE_THRESHOLD_CHARS,
|
|
703
|
+
// Only present in TEST mode — production event lines are unchanged.
|
|
704
|
+
...(result.mock ? { mock: true } : {}),
|
|
645
705
|
});
|
|
646
706
|
if (!formatted) {
|
|
647
707
|
logger.info(`openclaw-knowledge: LightRAG — empty response (${originalLen} chars)`);
|
|
@@ -718,11 +778,21 @@ export function registerKnowledgePlugin(api) {
|
|
|
718
778
|
`Recommended: topK ≥ ${config.pgvectorRerankerTopN * 2} for the ` +
|
|
719
779
|
`reranker to meaningfully change ordering.`);
|
|
720
780
|
}
|
|
721
|
-
//
|
|
722
|
-
//
|
|
723
|
-
|
|
781
|
+
// TEST mode safety: loud, unmissable warning. A mis-set flag feeds an agent
|
|
782
|
+
// canned facts it will treat as real, so this must never go unnoticed.
|
|
783
|
+
if (config.testModeEnabled) {
|
|
784
|
+
api.logger.warn("openclaw-knowledge: ⚠️ TEST MODE ACTIVE — sources are MOCKED. " +
|
|
785
|
+
"LightRAG returns canned context and pgvector returns canned results; " +
|
|
786
|
+
"NO connection is made to a LightRAG server or PostgreSQL. The mocked " +
|
|
787
|
+
"context IS injected into the agent prompt (so its impact is real and " +
|
|
788
|
+
"observable downstream). NEVER enable testMode in production.");
|
|
789
|
+
}
|
|
790
|
+
// Only instantiate the pg pool when pgvector is actually in play AND we are
|
|
791
|
+
// not in test mode (mocks need no DB). Booting a pool with no valid
|
|
792
|
+
// connection string would keep the plugin disabled anyway and leak sockets
|
|
793
|
+
// on hot-reload.
|
|
724
794
|
let pool = null;
|
|
725
|
-
if (config.pgvectorEnabled) {
|
|
795
|
+
if (config.pgvectorEnabled && !config.testModeEnabled) {
|
|
726
796
|
const realPool = new pg.Pool({
|
|
727
797
|
connectionString: config.postgresUrl,
|
|
728
798
|
max: 3,
|
|
@@ -733,15 +803,16 @@ export function registerKnowledgePlugin(api) {
|
|
|
733
803
|
});
|
|
734
804
|
pool = realPool;
|
|
735
805
|
}
|
|
806
|
+
const mockNote = config.testModeEnabled ? " [MOCK]" : "";
|
|
736
807
|
const sources = [];
|
|
737
808
|
if (config.pgvectorEnabled) {
|
|
738
809
|
const rerankNote = config.pgvectorRerankerEnabled
|
|
739
810
|
? ` + reranker(${config.pgvectorRerankerModel})`
|
|
740
811
|
: "";
|
|
741
|
-
sources.push(`pgvector (${config.collections.join(", ")})${rerankNote}`);
|
|
812
|
+
sources.push(`pgvector (${config.collections.join(", ")})${rerankNote}${mockNote}`);
|
|
742
813
|
}
|
|
743
814
|
if (config.lightragEnabled) {
|
|
744
|
-
sources.push(`LightRAG (${config.lightragQueryMode})`);
|
|
815
|
+
sources.push(`LightRAG (${config.lightragQueryMode})${mockNote}`);
|
|
745
816
|
}
|
|
746
817
|
const routerNote = config.routerEnabled
|
|
747
818
|
? ` | router=${config.routerMode}${config.routerClassifierId ? "/few-shot" : "/zero-shot"}`
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/router/labels.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Default zero-shot labels for the Jina Classifier.
|
|
2
2
|
//
|
|
3
3
|
// The labels are intentionally bilingual: most prompts in the observed
|
|
4
|
-
// traces are French (
|
|
4
|
+
// traces are French (the deployment is French-speaking) but the
|
|
5
5
|
// system prompts and agent meta-questions are often English. Jina
|
|
6
6
|
// `jina-embeddings-v3` handles both languages natively.
|
|
7
7
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/router/labels.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,uEAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/router/labels.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,uEAAuE;AACvE,gEAAgE;AAChE,kEAAkE;AAClE,wDAAwD;AACxD,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,qEAAqE;AACrE,mEAAmE;AACnE,8DAA8D;AAC9D,qFAAqF;AAErF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,2CAA2C;IAC3C,GAAG,UAAU,oKAAoK;IAEjL,iDAAiD;IACjD,GAAG,mBAAmB,2IAA2I;IAEjK,4CAA4C;IAC5C,GAAG,mBAAmB,uJAAuJ;IAE7K,uCAAuC;IACvC,GAAG,SAAS,oKAAoK;CACjL,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,UAAU;IACV,mBAAmB;IACnB,mBAAmB;IACnB,SAAS;CACV,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC"}
|
package/dist/tracing/events.d.ts
CHANGED
|
@@ -42,6 +42,14 @@ export interface PgvectorEvent {
|
|
|
42
42
|
* @since 3.2.3
|
|
43
43
|
*/
|
|
44
44
|
errored: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* `true` when these results came from TEST mode (canned data, no DB).
|
|
47
|
+
* Omitted entirely in normal operation so production event lines are
|
|
48
|
+
* byte-for-byte unchanged. Lets dashboards exclude synthetic traffic.
|
|
49
|
+
*
|
|
50
|
+
* @since 3.2.7
|
|
51
|
+
*/
|
|
52
|
+
mock?: boolean;
|
|
45
53
|
}
|
|
46
54
|
export interface LightRAGEvent {
|
|
47
55
|
type: "lightrag";
|
|
@@ -58,6 +66,11 @@ export interface LightRAGEvent {
|
|
|
58
66
|
* @since 3.2.3
|
|
59
67
|
*/
|
|
60
68
|
sparse: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* `true` when this context came from TEST mode (canned data, no live
|
|
71
|
+
* LightRAG server). Omitted in normal operation. @since 3.2.7
|
|
72
|
+
*/
|
|
73
|
+
mock?: boolean;
|
|
61
74
|
}
|
|
62
75
|
/**
|
|
63
76
|
* Threshold under which a LightRAG response is flagged `sparse`. Picked
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tracing/events.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,yDAAyD;AACzD,EAAE;AACF,wEAAwE;AACxE,+DAA+D;AAC/D,wEAAwE;AACxE,+BAA+B;AAC/B,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,gEAAgE;AAChE,wEAAwE;AACxE,iCAAiC;AACjC,EAAE;AACF,oEAAoE;AACpE,uEAAuE;AACvE,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,8DAA8D;AAC9D,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,mBAAmB;AAcnB;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tracing/events.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,yDAAyD;AACzD,EAAE;AACF,wEAAwE;AACxE,+DAA+D;AAC/D,wEAAwE;AACxE,+BAA+B;AAC/B,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,gEAAgE;AAChE,wEAAwE;AACxE,iCAAiC;AACjC,EAAE;AACF,oEAAoE;AACpE,uEAAuE;AACvE,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,8DAA8D;AAC9D,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,mBAAmB;AAcnB;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAmEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAqCnD,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,MAAqB,EAAE,KAAqB;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,KAAyB,EACzB,WAAmB;IAEnB,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAC1B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,wBAAwB,EAAE,SAAS,WAAW,EAAE,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -45,9 +45,68 @@ export interface KnowledgePluginConfig {
|
|
|
45
45
|
* "metadata" (file names/collections/scores, no content), "full"
|
|
46
46
|
* (plus the exact injected excerpts).
|
|
47
47
|
*
|
|
48
|
-
* @since 3.
|
|
48
|
+
* @since 3.2.7
|
|
49
49
|
*/
|
|
50
50
|
provenanceReport?: string;
|
|
51
|
+
/**
|
|
52
|
+
* TEST mode — mock both knowledge sources so the plugin can run in an
|
|
53
|
+
* isolated test environment with NO live LightRAG server and NO
|
|
54
|
+
* PostgreSQL/pgvector backend. The goal is to observe the plugin's real
|
|
55
|
+
* impact on the agent's answers (the mocked context is genuinely
|
|
56
|
+
* injected into the system prompt, so any downstream LLM trace —
|
|
57
|
+
* e.g. LiteLLM → Langfuse — reflects it). Off by default; see the loud
|
|
58
|
+
* registration warning. NEVER enable in production.
|
|
59
|
+
*
|
|
60
|
+
* @since 3.2.7
|
|
61
|
+
*/
|
|
62
|
+
testMode?: TestModePluginConfig;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Raw TEST-mode configuration block (from
|
|
66
|
+
* `plugins.entries.openclaw-knowledge.config.testMode`).
|
|
67
|
+
*
|
|
68
|
+
* @since 3.2.7
|
|
69
|
+
*/
|
|
70
|
+
export interface TestModePluginConfig {
|
|
71
|
+
/**
|
|
72
|
+
* Master switch. When `true`, BOTH sources are mocked: LightRAG returns
|
|
73
|
+
* {@link lightragMockResponse} and pgvector returns
|
|
74
|
+
* {@link pgvectorMockResults} — no network call, no DB pool. When the
|
|
75
|
+
* mock is active a source counts as "enabled" even without its
|
|
76
|
+
* credentials/URL, so the plugin still registers its hook. Default `false`.
|
|
77
|
+
*/
|
|
78
|
+
enabled?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Canned LightRAG context returned in test mode. The literal token
|
|
81
|
+
* `{{query}}` (whitespace-tolerant) is substituted with the user's query
|
|
82
|
+
* at runtime so operators can confirm the query reaches the source.
|
|
83
|
+
* Defaults to a realistic synthetic knowledge-graph context (> 200 chars
|
|
84
|
+
* so it is not flagged `sparse`).
|
|
85
|
+
*/
|
|
86
|
+
lightragMockResponse?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Canned pgvector hits returned in test mode. Each entry is normalized to
|
|
89
|
+
* a full {@link PgvectorResult} (missing fields default to `null`, missing
|
|
90
|
+
* `collection` to the first configured collection, missing `score` to
|
|
91
|
+
* `0.8`) and the list is sorted by descending score to mirror the real
|
|
92
|
+
* cosine-ranked path. Defaults to a small realistic synthetic set.
|
|
93
|
+
*/
|
|
94
|
+
pgvectorMockResults?: PgvectorMockResult[];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Ergonomic, partial shape an operator writes for a single mocked pgvector
|
|
98
|
+
* hit. Only the fields worth asserting on are exposed; everything else is
|
|
99
|
+
* filled with `null` by the resolver.
|
|
100
|
+
*
|
|
101
|
+
* @since 3.2.7
|
|
102
|
+
*/
|
|
103
|
+
export interface PgvectorMockResult {
|
|
104
|
+
file_name?: string;
|
|
105
|
+
text?: string;
|
|
106
|
+
/** Cosine-like score in `[0, 1]`. Default `0.8`. */
|
|
107
|
+
score?: number;
|
|
108
|
+
/** Collection label. Defaults to the first configured collection. */
|
|
109
|
+
collection?: string;
|
|
51
110
|
}
|
|
52
111
|
export interface JinaPluginConfig {
|
|
53
112
|
/** Jina API key. Required for `router.mode=jina-classifier` or `pgvectorReranker.enabled`. Supports `${ENV_VAR}` substitution. */
|
|
@@ -167,9 +226,30 @@ export interface ResolvedKnowledgeConfig {
|
|
|
167
226
|
/**
|
|
168
227
|
* Provenance reporting level (provenance/v1). Default "off".
|
|
169
228
|
*
|
|
170
|
-
* @since 3.
|
|
229
|
+
* @since 3.2.7
|
|
171
230
|
*/
|
|
172
231
|
provenanceReport: "off" | "metadata" | "full";
|
|
232
|
+
/**
|
|
233
|
+
* TEST mode master switch (resolved from `testMode.enabled`). When `true`
|
|
234
|
+
* both sources are mocked and no pg pool / network call is made.
|
|
235
|
+
*
|
|
236
|
+
* @since 3.2.7
|
|
237
|
+
*/
|
|
238
|
+
testModeEnabled: boolean;
|
|
239
|
+
/**
|
|
240
|
+
* Resolved LightRAG canned context for test mode (defaults applied,
|
|
241
|
+
* `{{query}}` still un-substituted — substitution happens per-turn).
|
|
242
|
+
*
|
|
243
|
+
* @since 3.2.7
|
|
244
|
+
*/
|
|
245
|
+
lightragMockResponse: string;
|
|
246
|
+
/**
|
|
247
|
+
* Resolved pgvector canned hits for test mode (normalized to full
|
|
248
|
+
* {@link PgvectorResult} shape and sorted by descending score).
|
|
249
|
+
*
|
|
250
|
+
* @since 3.2.7
|
|
251
|
+
*/
|
|
252
|
+
pgvectorMockResults: PgvectorResult[];
|
|
173
253
|
}
|
|
174
254
|
/**
|
|
175
255
|
* One search hit from the PostgreSQL `knowledge_vectors` table, after score
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "openclaw-knowledge",
|
|
3
3
|
"name": "Knowledge Base",
|
|
4
4
|
"description": "Multi-source knowledge search (pgvector + LightRAG) with optional Jina-powered router & reranker — injects relevant documents and knowledge graph context before each turn via the before_prompt_build hook",
|
|
5
|
-
"version": "3.2.
|
|
5
|
+
"version": "3.2.7",
|
|
6
6
|
"activation": {
|
|
7
7
|
"onStartup": true
|
|
8
8
|
},
|
|
@@ -183,6 +183,51 @@
|
|
|
183
183
|
],
|
|
184
184
|
"default": "off",
|
|
185
185
|
"description": "Provenance reporting toward chat frontends (provenance/v1): off = no emission; metadata = file names/collections/scores; full = plus the exact injected excerpts. Reports ride the gateway agent-event bus and land under the chat's own ACL — never in logs."
|
|
186
|
+
},
|
|
187
|
+
"testMode": {
|
|
188
|
+
"type": "object",
|
|
189
|
+
"additionalProperties": false,
|
|
190
|
+
"description": "TEST mode — mock BOTH sources so the plugin runs in an isolated test environment with no live LightRAG server and no PostgreSQL/pgvector backend. The mocked context is genuinely injected into the agent prompt, so its impact is real and observable downstream (e.g. the agent's LLM call traced via LiteLLM → Langfuse reflects it). Off by default. NEVER enable in production.",
|
|
191
|
+
"properties": {
|
|
192
|
+
"enabled": {
|
|
193
|
+
"type": "boolean",
|
|
194
|
+
"default": false,
|
|
195
|
+
"description": "Master switch. When true, LightRAG and pgvector return canned data instead of querying a server/DB — and each source counts as enabled even without its URL/credentials. The explicit pgvectorEnabled/lightragEnabled:false toggles still win, so you can mock a single source in isolation. A loud warning is logged at registration."
|
|
196
|
+
},
|
|
197
|
+
"lightragMockResponse": {
|
|
198
|
+
"type": "string",
|
|
199
|
+
"description": "Canned LightRAG context returned in test mode. The token {{query}} (whitespace-tolerant) is replaced with the user's query at runtime. Defaults to a realistic synthetic knowledge-graph context (>200 chars, with a citable reference id) so injection is easy to confirm from the agent's answer."
|
|
200
|
+
},
|
|
201
|
+
"pgvectorMockResults": {
|
|
202
|
+
"type": "array",
|
|
203
|
+
"description": "Canned pgvector hits returned in test mode. Each entry is normalized to a full result row (missing fields → null, missing collection → first configured collection, missing score → 0.8) and sorted by descending score. Defaults to a small realistic synthetic set.",
|
|
204
|
+
"items": {
|
|
205
|
+
"type": "object",
|
|
206
|
+
"additionalProperties": false,
|
|
207
|
+
"properties": {
|
|
208
|
+
"file_name": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"description": "Source document name shown in the injected block."
|
|
211
|
+
},
|
|
212
|
+
"text": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"description": "Chunk content injected into the prompt."
|
|
215
|
+
},
|
|
216
|
+
"score": {
|
|
217
|
+
"type": "number",
|
|
218
|
+
"minimum": 0,
|
|
219
|
+
"maximum": 1,
|
|
220
|
+
"default": 0.8,
|
|
221
|
+
"description": "Cosine-like similarity score (0–1)."
|
|
222
|
+
},
|
|
223
|
+
"collection": {
|
|
224
|
+
"type": "string",
|
|
225
|
+
"description": "Collection label. Defaults to the first configured collection."
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
186
231
|
}
|
|
187
232
|
},
|
|
188
233
|
"required": []
|
|
@@ -207,7 +252,7 @@
|
|
|
207
252
|
"collections": {
|
|
208
253
|
"label": "Collections to search",
|
|
209
254
|
"placeholder": "knowledge_default",
|
|
210
|
-
"help": "Collection names in the knowledge_vectors table (e.g.
|
|
255
|
+
"help": "Collection names in the knowledge_vectors table (e.g. knowledge_default, knowledge_shared)"
|
|
211
256
|
},
|
|
212
257
|
"topK": {
|
|
213
258
|
"label": "Top-K per collection",
|
|
@@ -310,6 +355,21 @@
|
|
|
310
355
|
"label": "Jina RPM budget (soft)",
|
|
311
356
|
"advanced": true,
|
|
312
357
|
"help": "Soft alert threshold on outbound Jina calls per minute. Default 60. Never blocks — only logs and emits jina_rpm_exceeded events. Set to 0 to disable."
|
|
358
|
+
},
|
|
359
|
+
"testMode.enabled": {
|
|
360
|
+
"label": "TEST mode (mock sources)",
|
|
361
|
+
"advanced": true,
|
|
362
|
+
"help": "Mock LightRAG + pgvector for infra-less test environments. The mocked context is really injected so its impact is observable. NEVER enable in production."
|
|
363
|
+
},
|
|
364
|
+
"testMode.lightragMockResponse": {
|
|
365
|
+
"label": "Mock LightRAG context",
|
|
366
|
+
"advanced": true,
|
|
367
|
+
"help": "Canned LightRAG context for test mode. Use {{query}} to echo the user's query. Defaults to a realistic synthetic graph context."
|
|
368
|
+
},
|
|
369
|
+
"testMode.pgvectorMockResults": {
|
|
370
|
+
"label": "Mock pgvector results",
|
|
371
|
+
"advanced": true,
|
|
372
|
+
"help": "Canned pgvector hits for test mode (file_name/text/score/collection). Defaults to a small realistic synthetic set."
|
|
313
373
|
}
|
|
314
374
|
}
|
|
315
375
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lacneu/openclaw-knowledge",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-source knowledge plugin for OpenClaw — pgvector + LightRAG injection with optional Jina-powered router & reranker, via before_prompt_build hook",
|
|
6
6
|
"license": "MIT",
|