跳至主要內容

Harness 概覽

Harness 讓 Agent 能夠處理長時間運行的複雜目標,同時確保其工作可持續保存、清晰可見並可受引導。它可在重試及中斷期間保留進度,亦讓使用者和其他系統能夠檢視進度、加入情境資訊、批准操作、重新引導 Agent 或將其停止。

在 Mastra 中,harness 是指一組用於管理 Agent 的功能,讓 Agent 不受單次不間斷運行所限。你可以個別採用這些功能,亦可按需要組合使用。

AgentController 是專為互動式 Agent 應用程式而設的 harness。它在基礎 Agent 迴圈之上,為每位使用者或每項任務提供獨立工作階段、持久保存的對話串與狀態、可切換的模式與模型、Tool 權限與審批、子 Agent 編排,以及事件與顯示狀態串流。

只要工作需要持續一段時間,Agent harness 都能派上用場。常見例子包括讓變更經歷 CI 及審查整個流程的編程助手、並行協調多項任務的軟件工廠、隨事故發展而調整應對方式的 SRE Agent,以及隨着帳戶、訊號和對話變化而作出回應的市場拓展 Agent。

何時使用 harness
何時使用 harness 的直接連結

根據 Agent 的需要選擇起點。你可以使用一項或多項功能。

如果你想……從這裏開始原因
在用戶端連線中斷或伺服器重新啟動後,仍可繼續使用某次運行持久 Agent保存運行狀態,並讓用戶端重新連接其串流。
在不造成阻塞的情況下運行耗時的 Tool、Workflow 或子 Agent背景任務以非同步方式完成工作,並將結果傳回 Agent。
讓 Agent 持續工作,直至達成目標目標評估對話串範圍內的目標,直至目標完成或用盡運行預算。
在週期性時間自動開始工作排程按 cron 排程開始獨立運行,或將提示傳送至現有對話串。
加入情境資訊、重新引導進行中的工作,或喚醒閒置的對話串訊號立即傳送輸入,或保留至下一輪再傳送。
回應 GitHub、Slack、持續整合或其他外部系統的變更訊號 Provider追蹤訂閱,並將相符事件轉送至 Agent 對話串。
建立具備工作階段、模式、狀態、審批和事件的互動式產品AgentController在共用的 Agent runtime 上託管獨立工作階段。
讓使用者引導運行、將後續工作加入佇列,或停止互動式運行AgentController透過每個工作階段提供運行控制。