Skip to content

Commit 69e3480

Browse files
committed
fix: tune automatic recall defaults
1 parent 91fe228 commit 69e3480

3 files changed

Lines changed: 19 additions & 16 deletions

File tree

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ Settings can be added to the plugin entry in `opencode.json`. Every setting show
7777
"meem-ai",
7878
{
7979
"storagePath": "/path/to/memory.lancedb",
80-
"autoRecallLimit": 4,
81-
"autoPreviousUserMessageLimit": 5,
80+
"autoRecallLimit": 2,
81+
"autoPreviousUserMessageLimit": 0,
8282
"searchRecallLimit": 8,
8383
"shortTermRetentionDays": 30,
8484
"longTermRetentionDays": 365,
@@ -116,10 +116,10 @@ Recall gates and tier promotion are configurable too. The defaults are balanced
116116
```json
117117
{
118118
"searchSimilarityThreshold": 0.42,
119-
"autoLifetimeSimilarityThreshold": 0.6,
120-
"autoLongSimilarityThreshold": 0.7,
121-
"autoShortSimilarityThreshold": 0.8,
122-
"tierSimilarityBoost": 0,
119+
"autoLifetimeSimilarityThreshold": 0.8275,
120+
"autoLongSimilarityThreshold": 0.83,
121+
"autoShortSimilarityThreshold": 0.8325,
122+
"tierSimilarityBoost": 0.005,
123123
"deduplicationSimilarityThreshold": 0.965,
124124
"shortTermPromotionScore": 3,
125125
"longTermPromotionScore": 8,

src/index.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,17 @@ export const DEFAULT_EMBEDDING_CONTEXT_SIZE = 8192
5656
export const DEFAULT_EMBEDDING_CHUNK_SIZE = 1536
5757
export const TOKEN_CHARACTER_ESTIMATE = 4
5858
export const CONTEXT_TOKEN_RESERVE = 32
59-
export const DEFAULT_AUTO_RECALL_LIMIT = 4
60-
export const DEFAULT_AUTO_PREVIOUS_USER_MESSAGE_LIMIT = 5
59+
export const DEFAULT_AUTO_RECALL_LIMIT = 2
60+
export const DEFAULT_AUTO_PREVIOUS_USER_MESSAGE_LIMIT = 0
6161
export const DEFAULT_SHORT_TERM_RETENTION_DAYS = 1
6262
export const DEFAULT_LONG_TERM_RETENTION_DAYS = 7
6363
export const DAY_MILLISECONDS = 86_400_000
6464
export const DEFAULT_SEARCH_LIMIT = 8
6565
export const MIN_SEARCH_SIMILARITY = 0.42
66-
export const MIN_AUTO_LIFETIME_SIMILARITY = 0.6
67-
export const MIN_AUTO_LONG_SIMILARITY = 0.7
68-
export const MIN_AUTO_SHORT_SIMILARITY = 0.8
69-
export const TIER_SIMILARITY_BOOST = 0
66+
export const MIN_AUTO_LIFETIME_SIMILARITY = 0.8275
67+
export const MIN_AUTO_LONG_SIMILARITY = 0.83
68+
export const MIN_AUTO_SHORT_SIMILARITY = 0.8325
69+
export const TIER_SIMILARITY_BOOST = 0.005
7070
export const DEDUPLICATION_SIMILARITY = 0.965
7171
export const SHORT_TERM_PROMOTION_SCORE = 3
7272
export const LONG_TERM_PROMOTION_SCORE = 8

tests/memory.test.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,12 @@ test("default retention is one day for short-term and seven days for long-term",
6969
assert.equal(DEFAULT_LONG_TERM_RETENTION_DAYS, 7)
7070
assert.equal(config.shortTermRetentionDays, 1)
7171
assert.equal(config.longTermRetentionDays, 7)
72-
assert.equal(config.autoRecallLimit, 4)
73-
assert.equal(config.autoPreviousUserMessageLimit, 5)
74-
assert.equal(config.tierSimilarityBoost, 0)
72+
assert.equal(config.autoRecallLimit, 2)
73+
assert.equal(config.autoPreviousUserMessageLimit, 0)
74+
assert.equal(config.autoShortSimilarityThreshold, 0.8325)
75+
assert.equal(config.autoLongSimilarityThreshold, 0.83)
76+
assert.equal(config.autoLifetimeSimilarityThreshold, 0.8275)
77+
assert.equal(config.tierSimilarityBoost, 0.005)
7578
} finally {
7679
if (previousHome === undefined) {
7780
delete process.env.HOME
@@ -236,7 +239,7 @@ test("recall gives higher tiers a slight similarity ranking boost", async () =>
236239
async deleteExpired() {},
237240
queueUpdateMemory() {},
238241
}
239-
const engine = new MemoryEngine(store, new FakeEmbedder(), { tierSimilarityBoost: 0.005 })
242+
const engine = new MemoryEngine(store, new FakeEmbedder())
240243

241244
const results = await engine.recall("query", "automatic", 3)
242245

0 commit comments

Comments
 (0)