假設資料表裡有一筆「整理下一個小步驟」。它有名稱、有說明,也能被程式查到。當使用者說自己不知道該從哪裡開始時,系統是不是就可以把這一筆拿出來?真正麻煩的地方,往往不是找不到方法,而是「找得到」太容易被誤解成「現在適合使用」。
專案早期的小型 registry 很能暴露這個差異:每筆紀錄已經有目標、適用情境、限制、authority level 與版本欄位,但預載內容的 evidence strength 仍是 UNRATED,來源連結也是空的。這些資料可以用來驗證 schema 與序列化,不能證明任何方法對真人有效,也不能授權系統採用它。
目前能進一步驗證的,是一份離線、以合成資料運作的 reference contract。完整的真實來源審查、真人情境適用性、專業審閱與 production 執行仍未完成。本日尚未完成此部分,以下先整理目前設計與下一步。
如果 registry 只是 名稱 → 說明文字 的對照表,它很快就會變成一張難以追責的選單。來源更新了,舊文字是否仍有效?某項限制被修改時,既有紀錄要跟著改,還是建立新版本?一段流程被取回時,又怎麼知道它搭配的是哪一版規則?
目前的離線 foundation 把一個候選項拆成版本化 bundle:intervention 描述它是什麼,protocol 定義步驟與停止條件,eligibility rule 描述最低情境條件,contraindication 與 escalation rule 則保留不能繼續時的出口。這些物件還要綁定精確的來源 ID 與版本;只知道「看過某份資料」不夠。
Registry 的 key 也不是只有名稱,而是 intervention ID 加上版本。相同 identity 不能悄悄換掉內容;要更新必須走明確的 supersede 操作,舊版本仍可供稽核,但會退出 eligible 集合。這個設計增加了版本管理成本,換來的是:日後看到某個候選時,能回答它究竟依據哪一版內容與規則。
這也改變了「編輯一筆資料」的意思。修正錯字也許不影響語意,但只要改動適用條件、停止規則或來源,就不能把它當成無痕更新。否則先前留下的紀錄雖然仍寫著同一個版本,實際指向的內容卻已不同。對需要稽核的系統而言,這種方便會讓歷史失去可解釋性。
flowchart TD
R["Implemented:離線、版本化 registry"] --> G["Implemented:安全、禁忌與來源生命週期 gate"]
G -->|條件完整且通過| O["Implemented:只在 eligible 集合內排序"]
G -->|不適用、衝突或未知| X["Implemented:拒絕、升級或空集合"]
O -.-> P["Planned:真實來源與 production qualification"]
圖中的 Implemented 僅指本地合成測試所覆蓋的 contract 行為。它不是一條已經對真人運作的推薦流程,最後的 production qualification 也沒有因為前面幾格存在就自動完成。
如果先拿向量相似度排序,再檢查安全條件,很容易產生一種危險直覺:分數最高的方案只是「有幾個警告」,仍然值得保留。但 eligibility 不是替排名加權的其中一個 feature,而是排名開始以前的入口。
目前 reference flow 先看 high/crisis safety,再處理明確禁忌;接著確認 bundle 是否仍是 registry 的 current version、生命週期是否有效、範圍是否維持低強度且有界。來源 provenance、使用者確認的目標、population、intent、可觀察條件與 evidence 都必須通過後,相似度才有資格替剩下的項目排序。
這個順序有兩個重要結果。第一,分數再高也不能救回被撤回、來源衝突或已不適用的項目。第二,資訊不足時可以留下 UNKNOWN,不必為了讓對話看起來有進展而硬選一個答案。沒有 eligible 候選時,空集合本身就是合理結果。
我刻意不把這裡的 confidence 稱為臨床機率。它只表示工程資料是否足以通過一個明確 gate;也不代表系統理解了自然語言中的所有風險。測試用的語意分數同樣只負責排序,不能證明適用性、療效或安全性。
Registry 還要處理一個常被低估的時間問題。今天可用的來源,日後可能被更新、取代或撤回。如果系統只把舊資料刪掉,稽核時會失去「當時為什麼出現這個候選」的脈絡;如果完全不管舊版本,歷史內容又可能繼續被使用。
目前的離線設計保留舊版本與 provenance,同時讓 withdrawn 或 superseded 版本退出 eligibility。候選在序列化前還會重新向 registry 與 evidence catalog 核對;先前產生的物件如果已過期、內容被改動,或依據已撤回,就會被拒絕。換句話說,candidate 不是可以永久攜帶的許可證。
我特別保留「撤回」而不是只做刪除,因為兩者回答不同問題。刪除只告訴系統現在看不到;撤回還說明這個版本曾經存在,但不再能通過資格檢查。若未來要追查某次輸出,這段生命週期資訊比一個突然消失的 row 更有用。當然,這裡談的是共享治理資料;真實個人資料的刪除、同意與保存期限是另一套隱私責任,不能被 registry history 混在一起。
這次重新執行的本地合成測試覆蓋了版本不符、撤回、衝突、未知狀態、明確禁忌、安全優先,以及「先過濾、後排序」等行為。它們證明的是固定輸入下的 contract 可重現,不是真實來源已被收錄,也不是對人使用後的效果證據。即使 content hash 一致,也只能說 bytes 沒變,不能證明來源本身可信。
世界衛生組織對健康 AI 的治理指引,把倫理、人權與對受影響個人及社群的問責放在設計、部署與使用的核心。這是一個外部治理方向,不是本專案已符合任何臨床或監管標準的證明。WHO:Ethics and governance of artificial intelligence for health
對我而言,Intervention Registry 的價值也不在於把更多方法塞進資料庫,而是讓每個「為什麼現在可以考慮它」都能被反駁、撤回與重驗。方法名稱再熟悉,都不能跳過來源、適用範圍、版本、安全條件與人的權限。
今天留下的結果因此不是一張可供讀者自選的心理介入清單,而是一條更保守的工程原則:先建立能說「不適用」「不知道」與「停止」的 registry,再談候選排序。下一個問題也隨之浮現——即使某個項目通過了資料 gate,誰有權把「可被考慮」變成「你現在需要」?