ブログ · ガイド · 2026年10月28日

AEGIS のエージェントマニフェスト: すべてのフィールドと、それが強制すること

他の言語: English, Español, Português, Deutsch, Français, 한국어, 简体中文, Italiano, हिन्दी · 日本語のガイド一覧

開示: AEGIS は 100monkeys.ai が開発しているため、このガイドは作り手による説明として読んでください。AEGIS の公開ドキュメント、主に Agent Manifest Reference、CLI Reference、Workflow Manifest Reference、Human Approvals をもとに当社の AI エージェントが下書きし、当社がレビューしました。この日本語版は英語の原文ガイドの翻訳です。フィールド名、既定値、拒否メッセージはこれらのページから引用しており、引用は英語のまま示して訳を添えています。

AEGIS by 100monkeys.ai, in beta は、一つの YAML ファイルからエージェントを実行します。ドキュメントはエージェントマニフェストを "the source of truth for an Agent's identity, capabilities, security constraints, and execution requirements."(エージェントの ID、能力、セキュリティ制約、実行要件についての唯一の情報源)と呼んでいます。このガイドではマニフェストをセクションごとにたどり、各フィールドをオーケストレーターがどう扱うかを説明します。

ステップ 1. ヘッダーを書く

apiVersion: 100monkeys.ai/v1
kind: Agent
metadata:
  name: pr-reviewer
  version: "1.0.0"
  description: "Reviews pull request diffs and returns structured feedback."

apiVersion と kind は必ずこの値にします。name は ^[a-z0-9][a-z0-9-]{0,62}$ に一致する必要があり、name と version の組は一意でなければなりません。同じ組をもう一度デプロイすると、--force を付けない限り失敗します。labels と annotations は、検索やメモのための任意のキーと値のマップです。

ステップ 2. ランタイムを選ぶ

spec で必須なのは spec.runtime だけです。language と version(python、javascript、typescript、rust、go で、公式イメージに解決されます)か、完全修飾の image のどちらかを指定し、両方は指定しません。version のない language は無効です。image_pull_policy の既定値は IfNotPresent です。model は aegis-config.yaml のモデルエイリアスを指定し、画像を生成するエイリアスは拒否されます。isolation には inherit、docker、firecracker、process を指定でき、リファレンスは docker を Phase 1、残りの 2 つを Phase 2 としています。

ステップ 3. タスクを与える

task.instruction はエージェントが従う指示で、これを設定すると "auto-enables semantic validation"(セマンティック検証が自動で有効になります)。task.prompt_template は Handlebars テンプレートで、変数は {{intent}}、{{instruction}}、{{input}}、{{iteration_number}}、{{previous_error}}、{{context}} です。spec.input_schema は type: object の JSON Schema で、名前付きの入力を宣言し、エージェントが動く前に検証します。

ステップ 4. 必要なアクセスだけを宣言する

"All permissions are deny-by-default."(すべての権限は既定で拒否です。)spec.security がなければ、エージェントにはネットワークもファイルシステムへのアクセスもありません。network.mode は allow(allowlist だけ)、deny(denylist 以外すべて)、none のいずれかで、none は "attaches no network interface to the container"(コンテナにネットワークインターフェースを付けません)。filesystem.read と filesystem.write にはパスを並べ、glob も使えます。リソースの既定値は cpu: 1000 ミリコア、memory: "512Mi"、disk: "1Gi"、timeout: "1800s" で、上限は 1 時間です。エージェントが 2 回以上試行できる場合、timeout は 2 回分の試行全体、つまり 2 × (iteration_timeout + 判定者の timeout_seconds) + 45 秒を収める必要があり、そうでなければエージェントは "is refused on create and update"(作成時と更新時に拒否されます)。

ステップ 5. ボリュームをマウントする

spec.volumes[] の各エントリには、name、storage_class(ephemeral には ttl_hours、persistent には source.volume_id が必要)、/workspace を起点とする mount_path、access_mode があります。永続ボリュームへの読み書きアクセスは、一度に一つの実行だけが持てます。マウントできないボリュームがあると反復は止まり、エージェントは "never runs without its volume."(ボリュームなしでは決して実行されません。)

ステップ 6. 反復の仕方と完了の条件を決める

execution.mode は iterative(既定)か one-shot です。max_iterations は 1 から 20 で既定は 5、max_retries は同じフィールドです。iteration_timeout の既定は 600s、llm_timeout_seconds は 300 です。各試行の後、validation が順に実行されます。exit_code、json_schema、regex、semantic(判定エージェント。min_score の既定は 0.7)、multi_judge です。失敗は {{previous_error}} としてエージェントに戻ります。tool_validation は各ツール呼び出しを実行前に判定し、そこでは semantic のエントリだけが使われます。outputs は実行が残すべきファイルを指定し、それぞれに任意の min_bytes と magic を付けられます。一つでも欠ければその試行は失敗です。

ステップ 7. ツールを許可する

spec.tools には "mcp:filesystem" のような文字列か、name、server、config を持つオブジェクトを書きます。コマンドを実行するには、必須の subcommand_allowlist(コマンドから許可する最初の引数へのマップ)とともに executor: "builtin:cmd" を宣言します。それ以外の呼び出しは "is rejected with a policy violation"(ポリシー違反として拒否されます)。オーケストレーターは宣言で仕事ができるかを確認します。ファイルを書く必要があるのにツールを宣言していないエージェントや、読み書きできるボリュームなしで fs.write を宣言したエージェントは、理由を述べる一文とともにデプロイ時に拒否されます。

ステップ 8. 設定とシークレットを渡す

spec.env の値は、リテラル、"secret:<name>"(OpenBao から注入され、"never logged"、決して記録されません)、"config:<key>" のいずれかです。spec.security_context はプラットフォーム運用者専用で、利用者アカウントが設定すると 403 Forbidden が返ります。

ステップ 9. 検証してからデプロイする

aegis agent deploy ./agent.yaml --validate-only
aegis agent deploy ./agent.yaml

--validate-only はデプロイせずに解析と検証だけを行います。aegis agent show <AGENT_ID> は保存されたマニフェストを表示します。

人の「はい」はどこに置くか

エージェントマニフェストには承認のフィールドがありません。人の「はい」はワークフローの kind: Human の状態に属します。prompt は必須、timeout の既定は 3600s、default_response は期限が来たときに採られる回答で、これがなければワークフローは失敗します。Human Approvals によれば、ゲートの input_equals_yes 遷移は yes を、input_equals_no は no を受け付け、どの遷移も受け付けない回答は拒否されて再度尋ねられます。

ドキュメントが答えていないこと

次に読む

新しいサーバーでマニフェストを最初から最後まで動かすには、新しい Ubuntu VPS に AEGIS をインストールし、最初の承認付きタスクを実行するをお読みください。AEGIS は 100monkeys.ai に載っているコマンドでインストールします。

curl -fsSL https://get.100monkeys.ai | bash

100monkeys.ai から AEGIS をインストール