diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json
index 6009144df..52943852d 100644
--- a/.openclaw-sync/source.json
+++ b/.openclaw-sync/source.json
@@ -1,5 +1,5 @@
{
"repository": "openclaw/openclaw",
- "sha": "a0aedea63d6994977974130fc9050ce00971a6fc",
- "syncedAt": "2026-04-27T10:25:48.709Z"
+ "sha": "775ed36c16c2a03fe137ac9a84960b3426319262",
+ "syncedAt": "2026-04-27T10:26:57.175Z"
}
diff --git a/docs/.generated/config-baseline.sha256 b/docs/.generated/config-baseline.sha256
index 9e00f0b70..c0b20b529 100644
--- a/docs/.generated/config-baseline.sha256
+++ b/docs/.generated/config-baseline.sha256
@@ -1,4 +1,4 @@
-454c34daa3f5f66a97f6a701968756a77a110fe611e013b0245fe6a9ef274997 config-baseline.json
-56edd542252c0ec8b3005dcddcf083a568d5e7700f7675c509c2963e36a4597c config-baseline.core.json
+6bd751bdfd55d644e8a83c575c4db8f67efae00df772c71553b7e7673c5ccc13 config-baseline.json
+2bf9795740688c55b8ac50ecbfe954c3d3b0dce0a17b08e89a9385d56e197bee config-baseline.core.json
07963db49502132f26db396c56b36e018b110e6c55a68b3cb012d3ec96f43901 config-baseline.channel.json
-f14d1d609ce93893f3bbd6c533251d30328f4deed5cf06da7cb2c9208147dc7a config-baseline.plugin.json
+ed65cefbef96f034ce2b73069d9d5bacc341a43489ff9b20a34d40956b877f79 config-baseline.plugin.json
diff --git a/docs/concepts/memory-search.md b/docs/concepts/memory-search.md
index d0f0f8b6d..30a403802 100644
--- a/docs/concepts/memory-search.md
+++ b/docs/concepts/memory-search.md
@@ -32,6 +32,11 @@ explicitly:
For local embeddings with no API key, install the optional `node-llama-cpp`
runtime package next to OpenClaw and use `provider: "local"`.
+Some OpenAI-compatible embedding endpoints require asymmetric labels such as
+`input_type: "query"` for searches and `input_type: "document"` or `"passage"`
+for indexed chunks. Configure those with `memorySearch.queryInputType` and
+`memorySearch.documentInputType`; see the [Memory configuration reference](/reference/memory-config#provider-specific-config).
+
## Supported providers
| Provider | ID | Needs API key | Notes |
diff --git a/docs/providers/openai.md b/docs/providers/openai.md
index 8c2662c70..7bff13088 100644
--- a/docs/providers/openai.md
+++ b/docs/providers/openai.md
@@ -86,6 +86,30 @@ through PI, `openclaw doctor` warns and leaves the route unchanged.
| Realtime voice | Voice Call `realtime.provider: "openai"` / Control UI Talk | Yes |
| Embeddings | memory embedding provider | Yes |
+## Memory embeddings
+
+OpenClaw can use OpenAI, or an OpenAI-compatible embedding endpoint, for
+`memory_search` indexing and query embeddings:
+
+```json5
+{
+ agents: {
+ defaults: {
+ memorySearch: {
+ provider: "openai",
+ model: "text-embedding-3-small",
+ },
+ },
+ },
+}
+```
+
+For OpenAI-compatible endpoints that require asymmetric embedding labels, set
+`queryInputType` and `documentInputType` under `memorySearch`. OpenClaw forwards
+those as provider-specific `input_type` request fields: query embeddings use
+`queryInputType`; indexed memory chunks and batch indexing use
+`documentInputType`. See the [Memory configuration reference](/reference/memory-config#provider-specific-config) for the full example.
+
## Getting started
Choose your preferred auth method and follow the setup steps.
diff --git a/docs/reference/memory-config.md b/docs/reference/memory-config.md
index 65d96f9fd..88ee5f5c0 100644
--- a/docs/reference/memory-config.md
+++ b/docs/reference/memory-config.md
@@ -149,6 +149,37 @@ For custom OpenAI-compatible endpoints or overriding provider defaults:
Changing model or `outputDimensionality` triggers an automatic full reindex.
+
+
+ OpenAI-compatible embedding endpoints can opt into provider-specific `input_type` request fields. This is useful for asymmetric embedding models that require different labels for query and document embeddings.
+
+ | Key | Type | Default | Description |
+ | ------------------- | -------- | ------- | ------------------------------------------------------- |
+ | `inputType` | `string` | unset | Shared `input_type` for query and document embeddings |
+ | `queryInputType` | `string` | unset | Query-time `input_type`; overrides `inputType` |
+ | `documentInputType` | `string` | unset | Index/document `input_type`; overrides `inputType` |
+
+ ```json5
+ {
+ agents: {
+ defaults: {
+ memorySearch: {
+ provider: "openai",
+ remote: {
+ baseUrl: "https://embeddings.example/v1",
+ apiKey: "env:EMBEDDINGS_API_KEY",
+ },
+ model: "asymmetric-embedder",
+ queryInputType: "query",
+ documentInputType: "passage",
+ },
+ },
+ },
+ }
+ ```
+
+ Changing these values affects embedding cache identity for provider batch indexing and should be followed by a memory reindex when the upstream model treats the labels differently.
+
Bedrock uses the AWS SDK default credential chain — no API keys needed. If OpenClaw runs on EC2 with a Bedrock-enabled instance role, just set the provider and model: