第十四節 工具權限政策

[!ref] 詳解見使用者手冊「工具權限與簽核」節。

14.1 三態語義

狀態 圖示 行為
啟用 直接放行,不彈窗
詢問 每次呼叫前彈窗簽核(接入實際確認流程,批准前呼叫暫停)
停用 直接拒絕,記錄到錯誤抽屜

三態對子代理同樣生效:「停用」在主代理與子代理兩側一並生效(子代理側 fail-closed,工具直接不可見);解除安裝外掛 / 移除 MCP 後端時自動清理殘留的工具配置鍵,盤上配置與實際可用工具保持一致。

14.2 決策聚合與多端應答

Hook 決策聚合:同一次評估中多個 Hook 傳回的權限決策按下列優先級合併(前者勝):

deny  >  defer  >  ask  >  allow

多端應答:簽核彈窗與遠端通道(微信等)同時收到同一請求時,首個應答生效;其餘端的後續回覆會被提示已應答。

14.3 白名單匹配粒度

粒度 覆蓋範圍 適用場景
僅本次 單次呼叫 謹慎評估
同工具同參數 一組完全相同的入參 推薦預設
同工具任何參數 該工具任意呼叫 內部指令碼
整工作區放行 該工作區所有工具 僅限隔離環境

14.4 遠端簽核回寫

命令 等價桌面操作
/approve <簽核號> 允許(僅本次)
/always <簽核號> 始終允許
/deny <簽核號> 拒絕
不回復 30 秒倒數結束即超時拒絕

14.4.1 無限制模式(進階)

輸入區模式滑塊右側盾牌開關;按工作階段獨立、純記憶體、重新啟動即清。啟用前有 5 秒冷靜期。

解除 啟用後行為
工具批准 跳過批准彈窗,直接執行
命令白名單 fs.exec 不限命令
網路過濾 web.fetch / web.bing 不過濾內網 / 環回 / 鏈路本機

始終保留的硬底線(不受開關影響):

硬底線 說明
samples/ 沙箱 不可解除
rm -rf 參數校驗 仍校驗
危險注入黑名單 fork 炸彈 / 寫 /etc / curl|sh / eval
協議白名單 http(s) 放行

訊息標記:模式期間產生的連續訊息以淺色邊框整體圈出(起止界標),關閉後當場收口;模式未結束不打「結束」界標。子代理可按需遞歸繼承該模式,繼承產生的訊息同樣帶標記。

14.5 簽核請求欄位與留痕

簽核彈窗(hook:ask 事件)攜帶的欄位:

欄位 說明
request_id 簽核號
event 觸發的 Hook 事件名
fingerprint 授權指紋,「始終允許」按它匹配
handler_type / handler_label 處理器類型與顯示名
matcher / match_target 命中的匹配器與匹配目標
source_scope / source_id 來源作用域(plugin / user / workspace)及其 ID
session_id 工作階段 ID
timeout_sec 倒數秒數(30)

決策取值:deny(拒絕)/ allow_once(僅本次允許)/ always_allow(始終允許)。

留痕:僅「始終允許」會持久化 — 寫入工作區級授權檔案 hook-approvals.yaml(記錄授權指紋與決策時間),可在 設置 → Hooks 檢視與撤銷;「僅本次允許」「拒絕」與超時只作用於當次呼叫,不落盤。