diff --git a/CHANGELOG.md b/CHANGELOG.md index 996fd65d6..e506bac0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Docs: https://docs.clawd.bot ### Changes - Memory: add OpenAI Batch API indexing for embeddings when configured. +- Memory: enable OpenAI batch indexing by default for OpenAI embeddings. ### Fixes - Memory: retry transient 5xx errors (Cloudflare) during embedding indexing. diff --git a/docs/concepts/memory.md b/docs/concepts/memory.md index 7cf32c468..68c0a53b1 100644 --- a/docs/concepts/memory.md +++ b/docs/concepts/memory.md @@ -109,7 +109,7 @@ If you don't want to set an API key, use `memorySearch.provider = "local"` or se `memorySearch.fallback = "none"`. Batch indexing (OpenAI only): -- Set `agents.defaults.memorySearch.remote.batch.enabled = true` to submit embeddings via the OpenAI Batch API. +- Enabled by default for OpenAI embeddings. Set `agents.defaults.memorySearch.remote.batch.enabled = false` to disable. - Default behavior waits for batch completion; tune `remote.batch.wait`, `remote.batch.pollIntervalMs`, and `remote.batch.timeoutMinutes` if needed. - Batch mode currently applies only when `memorySearch.provider = "openai"` and uses your OpenAI API key. @@ -123,7 +123,7 @@ agents: { model: "text-embedding-3-small", fallback: "openai", remote: { - batch: { enabled: true } + batch: { enabled: false } }, sync: { watch: true } } diff --git a/src/agents/memory-search.test.ts b/src/agents/memory-search.test.ts index 2e4a1d77b..47a0c11d3 100644 --- a/src/agents/memory-search.test.ts +++ b/src/agents/memory-search.test.ts @@ -98,7 +98,7 @@ describe("memory search config", () => { apiKey: "default-key", headers: { "X-Default": "on" }, batch: { - enabled: false, + enabled: true, wait: true, pollIntervalMs: 5000, timeoutMinutes: 60, diff --git a/src/agents/memory-search.ts b/src/agents/memory-search.ts index 3e1682873..54fd41798 100644 --- a/src/agents/memory-search.ts +++ b/src/agents/memory-search.ts @@ -96,7 +96,7 @@ function mergeConfig( const provider = overrides?.provider ?? defaults?.provider ?? "openai"; const hasRemote = Boolean(defaults?.remote || overrides?.remote); const batch = { - enabled: overrides?.remote?.batch?.enabled ?? defaults?.remote?.batch?.enabled ?? false, + enabled: overrides?.remote?.batch?.enabled ?? defaults?.remote?.batch?.enabled ?? true, wait: overrides?.remote?.batch?.wait ?? defaults?.remote?.batch?.wait ?? true, pollIntervalMs: overrides?.remote?.batch?.pollIntervalMs ?? diff --git a/src/config/schema.ts b/src/config/schema.ts index ddd86a87b..3cee0b177 100644 --- a/src/config/schema.ts +++ b/src/config/schema.ts @@ -367,7 +367,7 @@ const FIELD_HELP: Record = { "agents.defaults.memorySearch.remote.headers": "Extra headers for remote embeddings (merged; remote overrides OpenAI headers).", "agents.defaults.memorySearch.remote.batch.enabled": - "Enable OpenAI Batch API for memory embeddings (default: false).", + "Enable OpenAI Batch API for memory embeddings (default: true).", "agents.defaults.memorySearch.remote.batch.wait": "Wait for OpenAI batch completion when indexing (default: true).", "agents.defaults.memorySearch.remote.batch.pollIntervalMs": diff --git a/src/config/types.tools.ts b/src/config/types.tools.ts index 3938ba918..0879a2a1f 100644 --- a/src/config/types.tools.ts +++ b/src/config/types.tools.ts @@ -159,7 +159,7 @@ export type MemorySearchConfig = { apiKey?: string; headers?: Record; batch?: { - /** Enable OpenAI Batch API for embedding indexing (default: false). */ + /** Enable OpenAI Batch API for embedding indexing (default: true). */ enabled?: boolean; /** Wait for batch completion (default: true). */ wait?: boolean;