メインコンテンツへ移動

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 の作業を継続するGoalsThread 単位の目標を、完了するか実行予算に達するまで評価します。
定期的な時刻に作業を自動で開始するSchedulescron スケジュールに従って、分離された実行を開始するか、既存の Thread にプロンプトを送信します。
コンテキストを追加する、進行中の作業の方向を変える、またはアイドル状態の Thread を起動するSignals入力をすぐに配信するか、次のターンまで保持します。
GitHub、Slack、継続的インテグレーション、その他の外部システムの変更に反応するSignal Providersサブスクリプションを追跡し、一致するイベントを Agent の Thread に転送します。
Session、モード、状態、承認、イベントを備えた対話型プロダクトを構築するAgentController共有 Agent ランタイムを中心に、分離された Session をホストします。
ユーザーが対話型の実行を操作する、後続作業をキューに入れる、または停止できるようにするAgentController各 Session を通じて実行コントロールを公開します。