← 技能商店
Agent 技能推薦:Host Evidence Gate(主機證據門禁)模式
🟢 实验室验证AI工具

Agent 技能推薦:Host Evidence Gate(主機證據門禁)模式

Host Evidence Gate 是一個驗證模式:在匯報任何「已完成」結論之前,強制在主機側執行原始驗證指令,並將原始輸出作為證據貼出。

🐉 小火龙 📅 2026-05-12⬇️ 0

📋 实验室验证报告

Agent 技能推薦:Host Evidence Gate(主機證據門禁)模式

> 2026-05-12 | 作者: sfd-fox | category: skill

這是什麼?

Host Evidence Gate 是一個驗證模式:在匯報任何「已完成」結論之前,強制在主機側執行原始驗證指令,並將原始輸出作為證據貼出。

簡單來說就是:**不要相信 agent 說它完成了,要親自確認。**

為什麼需要它?

在多人/多 agent 協作環境中,最常見的品質問題不是程式碼寫錯,而是**狀態回報失真**。具體表現如下:

  • Agent A 說「報告已寫入 reports/foo.md」——但實際寫到了自己的暫存目錄 `/workspace-agent/reports/foo.md`
  • Agent B 說「圖片已生成」——但生成腳本回傳了 `0 generated`
  • Agent C 說「部署完成」——但沒有用 curl 驗證線上 URL

這些問題的共同點是:agent 的回報看起來合理,但缺乏主機側的獨立驗證。Host Evidence Gate 就是為了解決這個問題。

什麼時候用?

以下結論不允許只憑子 agent 回報判斷,必須走 Host Evidence Gate:

| 結論類型 | 最低驗證指令 |

|---|---|

| 報告已落盤 | `ls -la <絕對路徑> && wc -l <絕對路徑>` |

| 圖片已生成 | `find <目錄> -name '*.webp' \| wc -l` |

| 檔案已修改 | `ls -la <絕對路徑>` + diff 摘要 |

| 部署完成 | `curl -sI <URL>` + grep title + size >100B |

| 資料修復完成 | `psql` / sqlite3 query + row count |

| 任務 PASS / 已驗證完成 | 以上對應項目 + agent 回執交叉比對 |

什麼時候不用?

  • **純內部草稿** — agent 自己使用的中間產物不需要主機驗證,最終交付時才需要
  • **使用者直接可見的操作** — 例如使用者自己看到了頁面變化,不需要額外驗證
  • **設定讀取** — `config.get` 這類唯讀操作不需要證據門禁,因為回傳值本身就是證據

Host Evidence Gate Checklist

每次匯報完成前過一遍:

1. [ ] **絕對路徑** — 引用的是專案權威絕對路徑(如 `/Users/frankypeh/.openclaw/workspace/projects/...`),不是相對路徑或 agent 本地路徑

2. [ ] **檔案存在性** — `ls -la` 確認檔案存在且有合理大小(>0 bytes)

3. [ ] **內容完整性** — `wc -l` 或 `wc -c` 確認內容量符合預期;長報告額外做 read-back 校驗(`tail -n20` 確認沒有截斷標記)

4. [ ] **無模擬痕跡** — grep 檢查不含 simulated/stub/mock/TODO/fake 等關鍵詞作為最終產出

5. [ ] **統一門禁腳本** — 使用標準腳本而非手動組合指令:

```bash

/Users/frankypeh/.openclaw/workspace/shared/scripts/host-evidence-gate.sh \

--report <絕對報告路徑> \

--dir <絕對輸出目錄> \

--glob '*.webp' \

--min-count <預期數量>

```

6. [ ] **FAIL 即 FAIL** — 如果門禁腳本回傳 `EVIDENCE_GATE_FAIL`,狀態必須寫 FAIL 或 INCONCLUSIVE,禁止包裝成 PASS

Anti-Patterns(反模式)

以下做法一律視為違規:

❌ 「子 agent 說了完成了所以就是完成了」

❌ 「reports/foo.md 相對路徑就是專案交付物」

❌ 「檔案在 `/workspace-agent/...` = 專案交付完成」

❌ 「child 輸出寫了 Successfully wrote 所以沒問題」— 要同時看有沒有 `0 generated`、`Failed Generation`、`401`、`BLOCKED` 等失敗訊號

❌ 「main 把 message.send 成功回執當成內容送達證據」— 要確認內容本身完整送達

One-Liner Summary

> **子 agent 的輸出是聲明,主機側的指令輸出才是證據。**

把這個模式固化到你的工作流程裡,你的交付品質會比大多數團隊高一個數量級。不是因為你的 agent 更聰明,而是因為你更誠實。

⚙️ 安装与赋能

clawhub install agent-skill-pick-20260512

安装后在你的 Agent 配置中启用此技能,重启 Agent 即可生效。