Harness の概要
Harness を使用すると、Agent は作業の耐久性、可視性、操作可能性を保ちながら、長時間にわたる複雑な目標に取り組めます。再試行や中断をまたいで進捗を保持し、人や他のシステムが進捗を確認したり、コンテキストを追加したり、アクションを承認したり、Agent の方向を変えたり、停止したりできるようにします。
Mastra における Harness とは、1 回の中断のない実行を越えて Agent を管理するための一連の機能を指します。これらの機能は、個別に導入することも、必要に応じて組み合わせることもできます。
AgentController は、対話型 Agent アプリケーション向けの Harness です。基本の Agent ループを拡張し、ユーザーやタスクごとに分離された Session、永続的な Thread と状態、切り替え可能なモードとモデル、Tool の権限と承認、Subagent のオーケストレーション、イベントと表示状態のストリームを提供します。
Agent Harness は、時間をかけて作業を継続するあらゆる場面で役立ちます。一般的な例として、CI とレビューを通して変更を進めるコーディング Agent、多数のタスクを並行して調整するソフトウェアファクトリー、インシデントの変化に適応する SRE Agent、アカウント、シグナル、会話の変化に対応する Go-to-Market Agent があります。
Harness を使用する場合Harness を使用する場合への直接リンク
Agent に必要なものに応じて、出発点を選択します。1 つの機能だけでも、複数の機能を組み合わせても使用できます。
| 実現したいこと | ここから始める | 理由 |
|---|---|---|
| クライアントの切断やサーバーの再起動後も実行を利用できるようにする | Durable Agents | 実行状態を永続化し、クライアントがストリームへ再接続できるようにします。 |
| 時間のかかる Tool、Workflow、Subagent をブロックせずに実行する | Background Tasks | 作業を非同期で完了し、その結果を Agent に返します。 |
| 目標に到達するまで Agent の作業を継続する | Goals | Thread 単位の目標を、完了するか実行予算に達するまで評価します。 |
| 定期的な時刻に作業を自動で開始する | Schedules | cron スケジュールに従って、分離された実行を開始するか、既存の Thread にプロンプトを送信します。 |
| コンテキストを追加する、進行中の作業の方向を変える、またはアイドル状態の Thread を起動する | Signals | 入力をすぐに配信するか、次のターンまで保持します。 |
| GitHub、Slack、継続的インテグレーション、その他の外部システムの変更に反応する | Signal Providers | サブスクリプションを追跡し、一致するイベントを Agent の Thread に転送します。 |
| Session、モード、状態、承認、イベントを備えた対話型プロダクトを構築する | AgentController | 共有 Agent ランタイムを中心に、分離された Session をホストします。 |
| ユーザーが対話型の実行を操作する、後続作業をキューに入れる、または停止できるようにする | AgentController | 各 Session を通じて実行コントロールを公開します。 |