本篇目錄
測試會動到線上環境,問題通常不在 Prompt
在開發機上測試 Hermes Agent 時,最棘手的故障往往不是程式啟動失敗,而是終端機看似順利跑完,實際上卻悄悄沿用了正式環境的 Session 快取、本機路徑或外部工具授權。只要擴充工具依然連向真實 API、工作目錄依然共用,Agent 就可能替你送出真正的通知、改動正式資料庫,甚至在清理暫存時誤刪生產目錄內容。
許多團隊遇到這類意外時,第一反應常以為是「模型偶發不聽話」或「Prompt 寫得不夠清楚」:為什麼同一句提示詞有時正常,有時卻讓正式環境冒出奇怪的狀態?其實修復的核心並不是提醒大家測試時要多加小心,而是必須在系統架構層面把路徑切斷——讓測試流程在結構上完全拿不到正式資源,再透過固定案例去驗證隔離是否真正生效。
先劃定測試邊界,再建立獨立的環境設定
想防止測試污染,第一步是盤點 Hermes 執行時會接觸的所有邊界:包括系統執行帳號、工作目錄、Session 儲存路徑、LLM 模型與擴充工具設定、網路端點、暫存目錄,以及測試資料庫。每一項都必須清楚標示為「測試專用」或「嚴禁接觸」。
很多團隊習慣直接將正式環境的設定檔複製一份來改,但只要漏看一組 Webhook 網址或連線字串,正式環境就等於暴露在風險中。建議採取以下原則建立專屬的測試設定:
- 獨立工作區與 Session:設定單獨的 Workspace 與 Session Namespace,暫存目錄也要指到專屬路徑,避免快取資料互相穿透。
- 端點全數導向 Mock 或 Sandbox:外部 API 應全面改連本機 Mock Server 或專用的沙盒服務;測試帳號更應落實最低權限原則,嚴禁掛載任何正式環境的寫入權限。
- 找不到安全端點就預設停用:如果某個工具目前沒有安全的測試替代端點,預設做法就是直接停用它,切忌抱持僥倖心態以正式 URL 跑一次「小心測試」。
此外,敏感憑證千萬不要直接複製到 Fixture。Fixture 裡只需保留模擬流程所需的最小欄位(例如固定的假事件、假客戶編號與預期回傳值);正式的 API Key、Cookie、私鑰和客戶名單都不應出現在測試資料夾內。設定載入時也應加入檢查機制,一旦偵測到未遮罩的正式端點或真實金鑰,便立刻強制中斷測試。

用 Fixture 固定輸入與工具回傳
隔離環境搭好後,接著要為日常的高頻任務準備可重複使用的 Fixture。每個 Fixture 應明確定義輸入 Prompt、允許呼叫的工具白名單、工具模擬回傳值以及預期結果,避免讓 Agent 在測試中動態連網取得資料。只有把外部變數完全鎖定,未來當輸出不如預期時,才能精準分辨是 Hermes 自身的推理邏輯改變,還是外部服務回傳了不同的內容結構。
建議至少為 Hermes Agent 準備三類典型案例:
- 純文字推理任務:不需調用任何工具的基礎對話與摘要任務。
- 單次精準工具呼叫:需要 Agent 正確判斷並調用一次特定工具、且帶入正確參數格式的任務。
- 錯誤重試機制:刻意讓 Mock 工具拋出錯誤,檢驗 Agent 是否會在預期次數內優雅停手或進行降級處理。
若任務流程會產出檔案,Fixture 應將輸出強制導向獨立的測試目錄,並比對實際產生的檔名與副檔名;若流程牽涉到訊息推播,則以捕捉請求的 Mock Endpoint 取代真正的通知服務,確保封包不會打向外部網路。
最小回歸任務是每次改版的安全守門員
每次升級 Hermes 核心版本、調整 Prompt 模板或變更工具設定後,在隔離環境中執行同一組最小回歸任務是必備的把關流程。驗證的重點並非要求生成文字字字相同,而是聚焦於 Agent 的行為是否可控:Agent 是否只動用了白名單內的工具?傳入工具的參數是否符合規範?遇到異常時是否在限制次數內停止重試?所有輸出檔案是否都落在測試工作區內?
除了正向檢查,更要同時檢驗兩項反向條件:
- 正式目錄零變更:測試前後比對正式工作區的檔案雜湊值,確認未被任何程序觸碰或修改。
- 正式端點零請求:檢查網路連線與防火牆紀錄,確認整個測試過程中沒有任何封包打向正式網域名稱或通知端點。
只要其中任一項反向條件未通過,即便終端機顯示測試成功,在架構上也應直接判定為隔離失敗,必須立即停下排查原因。

發現環境被污染時的標準修復流程
若在排查過程中察覺測試已動到了正式環境,切勿慌亂清空本地紀錄。請依循以下步驟依序止血:
- 暫停排程並保留現場:立刻停止所有測試排程與執行中的 Agent Session,完整封存當下的環境設定、連線 Log 與受影響的檔案清單,確保後續追蹤有跡可循。
- 撤銷測試程序憑證:立即撤銷測試程序所持有的所有存取憑證與金鑰,避免背景殘留的程序持續發送非預期請求。
- 清點並復原正式資源:比對備份或版本庫紀錄,確認正式資源是否受到修改,並將狀態還原至受影響前的乾淨節點。
- 重建隔離環境並重新驗證:在全新且乾淨的目錄重新部署測試設定,再次跑完整套最小回歸任務。唯有在「工具白名單吻合」、「反向條件全數過關」且「確認沒有正式端點請求」三項條件皆成立時,才可重新恢復測試流程。
常見問答 FAQ
A1:依然需要。唯讀 Token 雖無法改動資料,但仍可能讀出正式環境的敏感個資或商業機密,並將其帶入本機快取、除錯 Log 或模型記憶體中。隔離著重的是完整的資料邊界,而不僅僅是寫入限制。
A2:不需要。Fixture 僅需包含足以觸發關鍵邏輯分支的最小欄位與數值即可。使用合成假資料取代真實商業機密,不僅大幅降低資安外洩風險,測試情境也更容易在不同開發機上精準重現。
A3:當最小回歸任務全數順利通過、Agent 調用的工具與端點皆符合白名單設定,且比對測試前後正式目錄無異動、外部端點無任何連線請求時,才是安全的恢復時機。
