feat(memory): add Nowledge Mem provider integration

Add a new memory provider that delegates to a local Nowledge Mem instance
for memory storage, retrieval, and knowledge graph building.

Key design decisions:
- User messages tagged as [DisplayName], bot messages as [我]
- Per-message display name parsed from YAML front-matter headers
- Let Nowledge Mem handle entity extraction and graph building
- 6-way hybrid search (semantic + full-text + entity + community + label + graph)

New files:
- internal/memory/adapters/nowledgemem/client.go (REST API client)
- internal/memory/adapters/nowledgemem/nowledgemem.go (Provider impl)
- docs/nowledge-mem.md (design document with research and decisions)

Modified: types.go, service.go, serve.go (provider registration),
frontend (add-memory-provider.vue, types.gen.ts, i18n locales)
This commit is contained in:
Menci
2026-04-08 10:23:24 +08:00
parent 830c521f11
commit fefbc155c6
10 changed files with 678 additions and 7 deletions
+2 -1
View File
@@ -382,7 +382,8 @@
"providerNames": {
"builtin": "Built-in",
"mem0": "Mem0",
"openviking": "OpenViking"
"openviking": "OpenViking",
"nowledgemem": "Nowledge Mem"
}
},
"speech": {
+2 -1
View File
@@ -378,7 +378,8 @@
"providerNames": {
"builtin": "内置",
"mem0": "Mem0",
"openviking": "OpenViking"
"openviking": "OpenViking",
"nowledgemem": "Nowledge Mem"
}
},
"speech": {
@@ -40,6 +40,9 @@
<SelectItem value="openviking">
{{ $t('memory.providerNames.openviking') }}
</SelectItem>
<SelectItem value="nowledgemem">
{{ $t('memory.providerNames.nowledgemem') }}
</SelectItem>
</SelectGroup>
</SelectContent>
</Select>