惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
量子位
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
Y
Y Combinator Blog
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
Microsoft Security Blog
Microsoft Security Blog
B
Blog
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
博客园 - 聂微东
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
fix(memory): keep llama runtime optional (#71425) · openc...
vincentkoc · 2026-04-25 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -29,6 +29,7 @@ Docs: https://docs.openclaw.ai

2929

- Browser: add viewport coordinate clicks for managed and existing-session automation, plus `openclaw browser click-coords` for CLI use. (#54452) Thanks @dluttz.

3030

- Browser/config: support per-profile `browser.profiles.<name>.headless` overrides for locally launched browser profiles, so one profile can run headless without forcing all browser profiles headless. Thanks @nakamotoliu.

3131

- Plugins/PDF: move local PDF extraction into a bundled `document-extract` plugin so core no longer owns `pdfjs-dist` or PDF image-rendering dependencies. Thanks @vincentkoc.

32+

- Dependencies/memory: stop installing `node-llama-cpp` by default; local embeddings now load it only when operators install the optional runtime package. Thanks @vincentkoc.

3233

- Matrix: require full cross-signing identity trust for self-device verification and add `openclaw matrix verify self` so operators can establish that trust from the CLI. (#70401) Thanks @gumadeiras.

3334

- WebChat/sessions: keep runtime-only prompt context out of visible transcript history and scrub legacy wrappers from session history surfaces. Thanks @91wan.

3435

- Gradium: add a bundled text-to-speech provider with voice-note and telephony output support. (#64958) Thanks @LaurentMazare.

Original file line numberDiff line numberDiff line change

@@ -38,8 +38,9 @@ To set a provider explicitly:

3838
3939

Without an embedding provider, only keyword search is available.

4040
41-

To force the built-in local embedding provider, point `local.modelPath` at a

42-

GGUF file:

41+

To force the built-in local embedding provider, install the optional

42+

`node-llama-cpp` runtime package next to OpenClaw, then point `local.modelPath`

43+

at a GGUF file:

4344
4445

```json5

4546

{

@@ -66,7 +67,7 @@ GGUF file:

6667

| Voyage | `voyage` | Yes | |

6768

| Mistral | `mistral` | Yes | |

6869

| Ollama | `ollama` | No | Local, set explicitly |

69-

| Local | `local` | Yes (first) | GGUF model, ~0.6 GB download |

70+

| Local | `local` | Yes (first) | Optional `node-llama-cpp` runtime |

7071
7172

Auto-detection picks the first provider whose API key can be resolved, in the

7273

order shown. Set `memorySearch.provider` to override.

Original file line numberDiff line numberDiff line change

@@ -15,7 +15,8 @@ binary, and can index content beyond your workspace memory files.

1515

- **Reranking and query expansion** for better recall.

1616

- **Index extra directories** -- project docs, team notes, anything on disk.

1717

- **Index session transcripts** -- recall earlier conversations.

18-

- **Fully local** -- runs via Bun + node-llama-cpp, auto-downloads GGUF models.

18+

- **Fully local** -- runs with the optional node-llama-cpp runtime package and

19+

auto-downloads GGUF models.

1920

- **Automatic fallback** -- if QMD is unavailable, OpenClaw falls back to the

2021

builtin engine seamlessly.

2122
Original file line numberDiff line numberDiff line change

@@ -29,8 +29,8 @@ explicitly:

2929

}

3030

```

3131
32-

For local embeddings with no API key, use `provider: "local"` (requires

33-

node-llama-cpp).

32+

For local embeddings with no API key, install the optional `node-llama-cpp`

33+

runtime package next to OpenClaw and use `provider: "local"`.

3434
3535

## Supported providers

3636
Original file line numberDiff line numberDiff line change

@@ -11,6 +11,10 @@ import { getProviderEnvVars } from "openclaw/plugin-sdk/provider-env-vars";

1111

import { formatErrorMessage } from "../dreaming-shared.js";

1212

import { filterUnregisteredMemoryEmbeddingProviderAdapters } from "./provider-adapter-registration.js";

1313
14+

const NODE_LLAMA_CPP_RUNTIME_PACKAGE = "node-llama-cpp";

15+

const NODE_LLAMA_CPP_RUNTIME_VERSION = "3.18.1";

16+

const NODE_LLAMA_CPP_INSTALL_SPEC = `${NODE_LLAMA_CPP_RUNTIME_PACKAGE}@${NODE_LLAMA_CPP_RUNTIME_VERSION}`;

17+
1418

export type BuiltinMemoryEmbeddingProviderDoctorMetadata = {

1519

providerId: string;

1620

authProviderId: string;

@@ -24,7 +28,7 @@ function isNodeLlamaCppMissing(err: unknown): boolean {

2428

return false;

2529

}

2630

const code = (err as Error & { code?: unknown }).code;

27-

return code === "ERR_MODULE_NOT_FOUND" && err.message.includes("node-llama-cpp");

31+

return code === "ERR_MODULE_NOT_FOUND" && err.message.includes(NODE_LLAMA_CPP_RUNTIME_PACKAGE);

2832

}

2933
3034

function listRemoteEmbeddingSetupHints(): string[] {

@@ -55,9 +59,9 @@ function formatLocalSetupError(err: unknown): string {

5559

"To enable local embeddings:",

5660

"1) Use Node 24 (recommended for installs/updates; Node 22 LTS, currently 22.14+, remains supported)",

5761

missing

58-

? "2) Reinstall OpenClaw (this should install node-llama-cpp): npm i -g openclaw@latest"

62+

? `2) Install optional local embedding runtime next to OpenClaw: npm i -g ${NODE_LLAMA_CPP_INSTALL_SPEC}`

5963

: null,

60-

"3) If you use pnpm: pnpm approve-builds (select node-llama-cpp), then pnpm rebuild node-llama-cpp",

64+

`3) If you use pnpm: pnpm approve-builds (select ${NODE_LLAMA_CPP_RUNTIME_PACKAGE}), then pnpm rebuild ${NODE_LLAMA_CPP_RUNTIME_PACKAGE}`,

6165

...listRemoteEmbeddingSetupHints(),

6266

]

6367

.filter(Boolean)

Original file line numberDiff line numberDiff line change

@@ -1658,14 +1658,6 @@

16581658

"typescript": "^6.0.3",

16591659

"vitest": "^4.1.5"

16601660

},

1661-

"peerDependencies": {

1662-

"node-llama-cpp": "3.18.1"

1663-

},

1664-

"peerDependenciesMeta": {

1665-

"node-llama-cpp": {

1666-

"optional": true

1667-

}

1668-

},

16691661

"overrides": {

16701662

"axios": "1.15.0",

16711663

"follow-redirects": "1.16.0",