跳到內容

Runtime Capability Discovery

已安裝 SKILL 或已註冊 tool 不代表可執行。Host 可能未 exposure、尚未驗證、schema 已變更、policy 禁止使用,或 observation 已過期。

Discovery 合併 filesystem metadata、Plugin handshake、agent observations、cache hints 與 verified host evidence。每個 capability 記錄 source-qualified identity、provenance、compatibility、authentication、freshness、content identity,以及 R0–R3 的 availability。Host evidence 優先於 agent 與 cache;cache 絕不能把 unavailable 能力升格。

路由先依 capability 的 description、domains 與 stages 判斷語意意圖;availability 是另一層 activation gate。能力 unavailable 時仍保留正確的 intended route,但停止啟用並回報 typed fallback,不可靜默改用語意不同的 Skill。

{
"input": {"capability_id": "skill:playwright", "host_exposed": true, "authenticated": true},
"output": {
"availability_by_risk": {"R0": "available", "R1": "available", "R2": "approval-required", "R3": "unavailable"},
"freshness": "fresh",
"provenance": ["plugin-handshake", "verified-host"]
}
}

authoritative availability、schema、trusted content identity 或 freshness identity 改變時,snapshot ID 也會改變。

  • Provider timeout 產生明確 degraded evidence,不會靜默略過。
  • 未知 authoritative field 會 fail closed。
  • Filesystem metadata 不能宣稱 Host authorization。
  • Stale snapshot 不能授權 R2/R3 工作。

Agent 可以回報觀測結果;只有 Host 能證明 exposure、authentication、approval 與 policy authority。Discovery 只有在 bound-content activation path 才讀取 SKILL instruction body;列出 metadata 不等於啟用。

Terminal window
$env:PYTHONPATH = (Resolve-Path "packages/router-core/src").Path
Set-Location packages/router-core
$env:PYTHONPATH = (Resolve-Path src).Path
python -m unittest tests.capabilities.test_runtime_context tests.capabilities.test_merge -v