feat(1.17.0): 查詢一律從最強查法開始(語意→關鍵字→grep)

leo:「它一定是用最好的搜尋,如果沒有才 fallback,但那不是你要指定的。」

事故:查 CF git 託管只用 grep→零命中→結論「沒查過/申請表沒送」=指控 leo
沒做他早就做過的事。同一問題跑語意搜尋第一筆就命中(0.858),
帶出三元組「Artifacts >> 若提供 git 倉庫則可取代 >> Gitea」,leo 15 天前就記了。

根因不是關鍵字選錯,是用了三種查詢裡最弱的那種。
grep 要求先猜對詞;語意搜尋不需要。

- subagent 注入改分級查法(語意/關鍵字/grep)
- wiki-first-search:grep 零命中不再靜默退出(那正是最該用語意的時刻);
  有命中也明說「最弱查法、搜尋詞是猜的,請補語意搜尋」

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-21 11:59:21 +08:00
parent 3eeded0432
commit 27c207c3e9
5 changed files with 77 additions and 5 deletions
+24
View File
@@ -10,6 +10,30 @@
---
## 1.17.0 — 查詢一律從最強的查法開始(語意 → 關鍵字 → grep)
**leo 2026-07-21**:「它一定是用最好的搜尋,如果沒有才 fallback,
**但那不是你要指定的**——對搜尋者來說,我就是要去搜尋,如果你沒這個機制才降。」
**事故**:查「CF 上的 git 託管」時只用 grep,搜 Gitea/freeze 等字面詞 → 零命中,
結論寫成「這件事沒查過、申請表沒送」=指控負責人沒做他早就做過的事。
事後用**同一個問題**跑語意搜尋,**第一筆就命中**(score 0.858):
「Cloudflare Artifacts:假設內建 git 倉庫機制的 CF 功能,成立則可全 CF 化」,
還帶出三元組「Artifacts >> 若提供 git 倉庫則可取代 >> Gitea」——負責人 15 天前就記了。
**根因不是「關鍵字選錯」,是「用了三種查詢裡最弱的那種」**——
grep 只認字面,**要求你先猜對那個詞**;語意搜尋不需要你猜對。
修正:
- `subagent-wiki-guard`:注入的指示改為**分級查法**——
①語意搜尋(`kbdb_search mode=semantic`,用自然語言問句)②關鍵字 ③grep(最後手段)
- `wiki-first-search`:① **grep 零命中不再靜默退出**(那正是最該改用語意搜尋的時刻,
查不到 ≠ 沒記載,只代表沒猜中用詞)② 有命中時明說「這是最弱的查法、
搜尋詞是猜的,重要判斷請補語意搜尋」
- 兩處都附真實案例,讓讀到的人知道代價
---
## 1.16.1 — 補破口:wiki-first-search 漏掉 Bash(隔天就被自己繞過)
**1.16.0 上線隔天即實證失效**hook 只掛 `Grep|Glob|Read`,但「用 curl/wrangler