agent-native について
agent-nativeは、呼び出し元が選んだエージェントセッションを役割ごとに起動し、観察するスキルです。パケット単位の実行を調整してランタイムの事実を報告し、検証やライフサイクルの判断は別の担当に委ねます。
主な機能
- 01起動前のバッチ検証
- 02選択したランタイム役割の起動
- 03セッションの活動と状態の観察
- 04パケット結果と不足の追跡
- 05書き込み範囲の分離
- 06ランタイム証拠の報告
活用シーン
- 01選択したエージェントへの範囲限定タスクの割り当て
- 02並行ワーカーセッションの観察
- 03パケット単位の実行証拠の返却
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ boshu2/ agentops --skill agent-nativeインストール後、Claude Code で/agent-nativeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/bulk-reader.tomlcode-writer.tomlreferences/context-budget-delegation.mdjudgment-receipts.mdlaunch-and-isolation.mdmodel-dispatch.mdRAW_SOURCE_READS.mdsession-associations.mdscripts/fake_model_runner.py詳細
エージェントネイティブ
呼び出し元が選択したエージェントセッションを明示的な役割として起動・監視し、パケットごとに実行時の事実を返します。実行では出力を検証せず、実行時環境がAgentOpsのライフサイクルを決定する権限を持つこともありません。アダプターはAgentOpsの意味論を選択したり、拘束力のある判定を下したり、ファクトリーの完了を配信や検証の証拠に変えたりできません。Orchestrateが何をいつディスパッチするかを決定し、このスキルは起動と監視を行います。
起動前と実行中
- バッチ全体を先に検証します。 各パケットには、選択した実行者、パケットの識別情報、推移的な影響のすべて、実行してはならない操作(プッシュ、マージ、履歴の書き換え、トラッカーや外部への書き込みなど)、および個別に隔離された正規のワークスペース相対の書き込み範囲が必要です。無効なパケットが1つでもあれば、何も起動しません。有効なものを起動して残りを後から修正するのは、部分的な起動です。
- 正規化した範囲を比較します。 シンボリックリンクを解決し、パスを正規化して、大文字と小文字を区別せずに比較することで、エイリアスによる競合の隠蔽を防ぎます。字句的なチェックだけでは、シンボリックリンクや実行時の隔離を証明できません。ファイルが重複していなくても、独立しているとは限りません。読み取りだけを行うワーカーも含め、一方のワーカーが書き込み、インストール、または排他的に保持するリソース(バインドされたポート、書き込み先のデータベース、変更を加えるパッケージインストール、ロックされたブラウザープロファイルなど)を共有する場合は、各ワーカーに独自のインスタンスを割り当てるか、その処理だけを直列化します。共有モデルプロバイダーの制限はバックプレッシャーであり、波状に起動します。直列化しません(共有ランタイム)。
- 配信はエンゲージメントではありません。 プロンプトの配信や確認応答が証明するのは、トランスポートだけです。それをワーカーの作業開始とみなすのは、プロンプト送信の楽観視です。セッションの出力、ツールのアクティビティ、変更されたファイルなど、観測可能な状態からエンゲージメントを証明します。
- 再起動前に記録します。 ワーカーへの促し、置き換え、再起動の前に、観測可能な状態を記録します。再起動すると停止した理由を示す証拠が失われ、再実行より救済のほうが通常は低コストです。沈黙や焦りだけでは再起動の正当な理由になりません。置き換えを行う場合も、権限と残りの制限の範囲内にとどめます。
- ディスパッチは1回だけ行います。 各パケットの識別情報を結果と結び付けて保持します。実行者のエラーは結果であり、再試行のきっかけではありません。修正や追加対応の権限は呼び出し元にあります。ランタイムが拒否したためワーカーが起動しないローンチ呼び出しは、起動には当たりません。不正な呼び出しは一度修正します。同時実行数や容量の制限はバックプレッシャーとして扱い、空き枠ができるまでランタイムの仕組みで待機し、その制限の範囲内で検証済みのバッチを波状に起動します。空いた枠で最初に何を実行するかは、呼び出し元が決定します(Orchestrate)。パケットをインラインまたは別の場所で実行するかどうかは、呼び出し元が開示して選択します(拒否された起動)。
- すべての入力を突き合わせます。 パケットに複数の項目(ファイル、レコード、課題など)が含まれる場合は、起動前に各項目へ安定したIDを付け、返された結果を元のリストと照合します。結果がない項目は未完了であり、完了ではありません。対応する入力がない出力は説明できていないものです。両方をIDで報告します。結果を集計、並べ替え、重複排除、比較する場合は、各戻り値のフィールド名と許容値をパケットに明記します。解析した文章では件数がずれやすいためです。
- 削除前に統合を証明します。 完了したワーカーのワークスペース、ブランチ、またはスタッシュを、呼び出し元の許可に基づいて削除する前に、統合ステータスやマージされたコミットとの一致ではなく、パッチまたはファイル差分によって、ワーカーの内容を現時点の統合先と比較します。スカッシュやリベースでは系譜が隠れるためです。未コミット、一意、または未統合の内容は、まずアーカイブ参照やバンドルなど、復元可能な形式で保存します。保持したもの、削除したもの、それぞれの根拠を報告します。
役割
- オーケストレーター: 意図、範囲、証拠への参照を明確に伝え、統合/最終レビューの担当者を指名し、実行時の事実を報告します。重大な不確実性がある場合に限り、追加の履歴を取得します。新しいコンテキストが必ずしも小さいとは限りません。新しい目標を設定しても、履歴が消去されたり、消費済みの上限が回復したりすることはありません。
- 実装者: 自分の作業パケットで宣言された対象のみを変更できます。
- バリデーター: 正確な候補コンテンツを、新しい読み取り専用コンテキストで受け取ります。Validate に判定を提示できますが、
verdict.v2に書き込めるのは Validate のみです。 - 記録係: 合否を判断せず、実行時の証拠を記録します。
Reader と Writer は権限を持つ役割ではなく、範囲を限定した低コストの委任です。Reader は、呼び出し元が一度も読み込まないファイルについて、最大 350 行ずつの範囲で、行番号を参照した箇条書きを返します。Writer は、仕様と必須の参照ファイルに基づいて、パターンに沿ったファイルを 1 つ反映し、呼び出し元が読み返さない受領報告を返します。いずれも呼び出しごとに呼び出し元が選択し、実行時の事実のみを返します。受領報告は検証ではありません。Codex では、ソース管理された bulk-reader と code-writer のネイティブロールを使用してください。使用モデルとサンドボックスは、agents/bulk-reader.toml と agents/code-writer.toml で固定されています。コンテキスト予算の委任では、インストール、ネイティブでの呼び出し、オプトイン方式の拒否フック、ロール指示の制限について説明しています。
起動と監視
- ワーカーを起動する前に、呼び出し元の意図、役割、ワークスペース、開始コミット、許可されたソース/出力の範囲、証拠の保存先を確認します。実行が失敗する前に、呼び出し元が所有するネイティブチャネルにディスパッチの関連付けを記録します。要求された ID は観測された ID ではありません。ランタイムから報告されるまで、ワーカーの ID は不明のままです。
- 起動時に、実質的な作業を始める前に、観測されたランタイム、セッション、コンテキストの ID を取得し、そのチャネルを通じて返します。最初の編集の前に、ワーカーは HEAD が開始コミットであることを確認します。一致しない場合は起動失敗であり、リセットで修正してはなりません。起動の失敗、記録の欠落、不明な情報を報告し、決して補完してはなりません。サンドボックス化された起動で認証エラーのようなエラーが発生しても、アカウントがログアウトしている証拠にはなりません (起動と分離)。 セッションの関連付けでは、親子関係と再開リンク、複数の作業範囲、固定されたソース境界を管理します。
- 同時に書き込む作業は、互いに重複しないよう分離します。選択したランタイムに固有の分離機能がある場合はそれを使用し、セッション自体の内部にワークツリーをネストしてはなりません (ワークスペースの分離)。 ランタイムの調整は、AgentOps における要求、リース、キュー、完了状態を意味するものではありません。
- ネイティブの待機機能またはステータス通知を通じて監視します。監視には時間とコンテキストが必要です。状態に変化がない場合、分析、レビュー、振り返りをさらに行う理由にはなりません。一方、既知のブロッキング障害には、ほかのジョブが実行中でも対処する必要があります。終端ステータスに達するか、呼び出し元の時間枠が終わった時点で停止します。
- ヘッドレスワーカーは質問できません。パケットで未確定のまま残された選択肢について、推測に基づいて取り消し不能な操作や範囲外の手順を実行せず、選択肢を
gapsの下に返します (未確定の選択肢)。 ワーカーの完了後に新たに許可された作業を行う場合は、意図を確定させる回答によって得られた作業も含め、ターンを開始するランタイムの文書化されたフォローアップまたは再開操作を使用します。メッセージ操作は実行中のワーカーにテキストをキュー登録するだけです。キューに登録された修正依頼は、試行の再開ではありません。 - プロバイダーの状態、トランスクリプトへの参照、成果物、終端ステータスを記録します。プロバイダーの再試行、再接続、アイドル状態、失敗は常にランタイムの事実であり、Plan、Candidate、判定の状態ではありません。観測されたツールの動作から除外対象の操作が確認された結果は、チェック結果にかかわらず権限外であり、候補ではありません。
バッチ契約のリファレンス実装である scripts/swarm/dispatch_once.py は AgentOps のソースチェックアウトを必要とし、インストール済みスキルには含まれません。インストール済みの環境では、選択したネイティブランタイムを通じてディスパッチします。証明が除外事項に対応できないため、空でない write_scope.exclude は拒否されます。バッチモードでは、バックログから作業を選択せず、キューを作成せず、変更を統合しません。
アダプターと判断
NTM、ネイティブプロセス、Agent Mail、Gas City、および一度限りのヘッドレスランナー (codex-exec、claude-exec、 agy-native)は、交換可能なアダプターです。呼び出し側がその実行形態を選択した場合にのみ使用してください。単一のローカルエージェントであれば、ファクトリーとの調整コストはかかりません。
判断には、原則として作成者と同じモデルファミリーの新しいコンテキストを使用します。クロスモデルの Validate、複数モデルによる Council、モデル間の対決形式の視点は、呼び出し側が明示的に選択するものです。モデルディスパッチは、各段階のホスト認可、分離、入力と出力の上限、タイムアウト、クリーンアップを担います。作業セッションがコントローラーとなり、ファクトリーは不要です。また、Agent Mail が判断経路になることはありません。役割のリクエストで権限を宣言しますが、その権限を実際に強制するのは、ネイティブランタイム/OSのファイルシステムおよび外部通信の制御のみです。 ネイティブ判断レシートでは、レシートの参照と、呼び出し側が要求するモデルの多様性に関するチェックを定義しています。ネイティブなIDが欠けている場合、その段階を満たしたことにはなりません。ネイティブソースの正確な範囲を確認するには、範囲を限定した生ソースの読み取りと、そのアクセスおよび出力の上限に従ってください。
パケットごとの結果
packet_id: the caller's packet id
executor: selected runtime; requested model; observed model if reported
observed_session: session/context id the runtime reported, else unknown
engagement: observable evidence the worker started, else unobserved
last_activity: time and kind of the last observed tool call, output or file change, else unobserved
terminal_status: exit or terminal state | running | launch failed | not launched
result: candidate <ref> | evidence <ref> | out of authority <action> | error <verbatim>
gaps: recording failures and unknowns