Repository navigation
Conversation
Hermes has returned 16 facts per recall since public #365 (LOCOMO: overall 40% -> 47%, multi-hop 18% -> 35%; k=24 was flat). MCP, the OpenClaw plugin, NanoClaw, the TS client and the ZeroClaw crate still defaulted to 8. - MCP: totalreclaw_recall without k resolves env TOTALRECLAW_RECALL_TOP_K > relay features.recall_top_k (from the billing responses it already caches) > 16, in both managed and self-hosted mode. Schema default, tool description and reranker default say 16. - OpenClaw plugin: memory_search without maxResults and the before_agent_start auto-recall use the same order via resolveRecallTopK (billing cache already stores features verbatim). memory_search no longer pins its own default. Cap of 20 unchanged. - NanoClaw beforeAgentStart, @totalreclaw/client recall(), and the ZeroClaw AUTO_RECALL_TOP_K default to 16 (no relay lookup there). - Specs and guides that stated 8 now say 16. CHANGELOG entries per package. An explicit caller k / maxResults still wins. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bd3G1BkVMFSXkcdAQ7nFax
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft: do not merge. Client merges are on hold until the audit sync, and MCP 3.5.1-rc.3 is in human QA, so
mainmust not move under it.Summary
Every client now returns 16 facts per recall by default. Hermes has used 16 since #365: on LOCOMO, going from 8 to 16 raised overall accuracy from 40% to 47% and multi-hop from 18% to 35%. k=24 was tested and was flat against 16. MCP, the OpenClaw plugin, NanoClaw, the TS client and the ZeroClaw crate still used 8.
An explicit caller
k/maxResultsstill wins everywhere.Changes
totalreclaw_recall(managed + self-hosted)k ?? 8k ?? getRecallTopK(): envTOTALRECLAW_RECALL_TOP_K> relayfeatures.recall_top_k> 16rerank()defaultmemory_search(nomaxResults)DEFAULT_MAX_RESULTS = 8, closure?? 8?? getRecallTopK()(same order), cap of 20 unchangedbefore_agent_startauto-recall (subgraph + server mode)8min(getRecallTopK(), 20)rerank()/applyMMR()defaults,skill.json, READMEbeforeAgentStart(maxMemories)@totalreclaw/clientrecall(query, k),applyMMRdefaultAUTO_RECALL_TOP_KHonouring the relay value. MCP and the plugin already cache billing features, so they now read
features.recall_top_kin the same order as Python (env > server > 16):proactiveBillingFetch,totalreclaw_status). The first recall of a process, before any billing response, uses 16.subgraph/chain-config.ts(the startup lookup, recently changed for test(hermes): pin the Hermes 0.22 built-in-memory stance; fix main #689) is not touched.billing-cache.json, which already storesfeaturesas received (resolveRecallTopKinbilling/billing-cache.ts). Env reads stay inconfig.ts, and the scanner sim is clean.Docs:
client-consistency.md(top_k 8 → 16, server-driven + env + explicit-wins), read-path and cross-agent-hooks flow diagrams,proactive-recall-best-practices.md(also removes the wrong "8/16 by tier"),beta-tester-guide-detailed.md,ironclaw-setup.md, NanoClawSKILL.md+mcp/SKILL.md(the MCP-mode example no longer pinsk).env-vars-reference.mdandself-hosted-deployment.mdalready said 16.CHANGELOG entries:
mcp/,skill/plugin/,skill-nanoclaw/,rust/totalreclaw-memory/.client/has no CHANGELOG.Size limits checked
memory_searchsnippets stay capped at 500 chars each, so 16 hits are at most about 8 KB. The auto-recall block (formatRecallContextin core) has no count or char cap.Resolved: staging now serves
recall_top_k = 16Staging served 8 when first queried; its
RECALL_TOP_Koverride was removed and the relay redeployed on 2026-11-04. Staging and production both serve 16, verified with a throwaway account, so every client returns 16 in both environments.Deliberately left at 8
k=8explicitly (reranker-cross-runtime-parityin MCP + plugin): they are fixtures, not defaults.skill/plugin/pocv2-e2e-test.ts: a dev script that is not shipped.top_k=8examples in agent-call snippets inproactive-recall-best-practices.md(lines 44 and 68): these are caller choices, not defaults.CLAUDE.md.TotalReclaw.recall(top_k=8),agent.recall.auto_recall/recall_for_query(top_k=8),operations,reranker): out of scope here. Every Hermes path passesstate.get_recall_top_k()(16), so only direct library callers get 8.Tests
tsc --noEmitclean.npm run build && jest: 50/50 suites, 853 passed, 5 skipped. Newtests/recall-top-k.test.tscovers the default, relay vs default, env vs relay, invalid values and explicitkwinning. Thekdefault assertions inserver/tool-registration/input-validationtests changed 8 → 16.npm testgives 98/99 files pass. The one failure,llm/llm-client.test.ts(2 asserts, "no-sources"), also fails onorigin/mainon this machine because it depends on the environment.npm run typecheckreports 29 errors, the same 29 asorigin/main.check-scanneris OK. New cases inbilling/billing-cache.test.ts(42/42) andmemory/memory-runtime.test.ts.agentEnd/preCompactfailures occur onorigin/main, and none involvebeforeAgentStart.totalreclaw-memory:cargo test --lib --test spec_compliancegives 57 + 24 passed.test_auto_recall_top_k_is_8was renamed to_is_16.🤖 Generated with Claude Code
https://claude.ai/code/session_01Bd3G1BkVMFSXkcdAQ7nFax