fix(tools): prefer memory_search over search_code for user-provided facts#2490
Merged
fix(tools): prefer memory_search over search_code for user-provided facts#2490
Conversation
…acts (#2475) Two-part fix: update tool descriptions to disambiguate code search from memory recall, and inject a session-level hint into the volatile system prompt block when memory_save was called in the current session. Also fixes pre-existing clippy warnings in zeph-mcp, zeph-llm, and zeph-orchestration (Default::default() trait access, similar binding names, unnecessary map_or, strict float comparison).
aadb97d to
808c8d4
Compare
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.
Summary
search_codetool description to explicitly exclude user-provided facts and preferencesmemory_searchtool description to emphasise recall of user-provided contextmemory_savewas called in the current session, directing the LLM to usememory_searchfor recallzeph-mcp,zeph-llm, andzeph-orchestration(default trait access, similar binding names, unnecessarymap_or, strict float comparison)Root cause
The LLM autonomously chose
search_codeovermemory_searchbecause technical terms in user questions ("runtime", "tokio", "memory management") matchedsearch_code's description and embedding. No signal existed to indicate that those facts were already saved to memory in the current session.Test plan
rebuild_system_prompt_injects_memory_save_hint_when_tool_was_used— hint present whenmemory_saveincompleted_tool_idsrebuild_system_prompt_omits_memory_save_hint_when_tool_not_used— hint absent whencompleted_tool_idsis emptymemory_search_description_mentions_user_provided_facts— description text verifiedsearch_code_description_excludes_user_facts— description text verifiedCloses #2475