docs(skill): surface site:/operator search limitations instead of silently reformulating#16
Merged
Conversation
…turns no snippets Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Bug
[matilde-search-snippets] — Matilde
site:queries don't return snippets, and Matilde silently reformulates the query when the backend returns no snippets, rather than surfacing the limitation. For a citations tool, silent degradation is the real bug: a clean-looking answer is built on a query the agent quietly changed.Finding
Matilde owns no web-search code of its own — it delegates web search to the Hermes runtime's tools and only talks to structured scholarly APIs (Crossref, OpenAlex, DataCite). The "silent reformulation" is emergent LLM behavior: when a
site:/operator query returns empty or snippet-less results, the agent drops the operator and re-queries without telling the user, and nothing in its skill instructions forbids it. So the self-contained fix is at the skill/prompt level, not in any search code.Fix
hermes-skill/SKILL.mdgains a Web-search honesty rule, integrated into the file's existing structure and voice:site:,filetype:, exact-phrase, …) returns no results or no usable snippets, report it explicitly (e.g. "could not retrieve snippets forsite:X— the search backend may not support that operator"), and treat any broaden/reformulate as a visible, stated step — never a silent swap.Why it fits
Matilde's whole ethos is "never hide a limitation" — never fabricate, never inflate a verifiability score, never hide a retraction. A silently reformulated query is exactly that class of hidden limitation. This makes the rule explicit so the agent treats a snippet-less operator query as a finding to surface, not a problem to paper over.
Note
The filed bug attributed this to Matilde's search code, but Matilde delegates web search to the runtime; an optional secondary hardening is to annotate empty-snippet / operator-ignored results in hermes-agent-mt's
tools/web_tools.py:784web_search_tool— tracked separately.Autonomous gardener PR — propose-only for review.
🤖 Generated with Claude Code