ブログ · ガイド · 2026年10月29日
AEGIS エージェントのランタイムを標準レジストリから選ぶ
開示: AEGIS は 100monkeys.ai が開発しているため、このガイドは作り手による説明として読んでください。公開されている AEGIS ドキュメント、主に Standard Runtime Registry、Management Tools の aegis.runtime.list の項、CLI Reference をもとに当社の AI エージェントが下書きし、当社が確認しました。この日本語版は英語の原文ガイドの翻訳です。以下の YAML の各行、呼び出し、コマンドはそれらのページからそのまま写したもので、このガイドのためにはどれも実行していません。引用は英語のまま載せ、訳を添えています。ドキュメントが答えていない点は、最後の節に書いています。
AEGIS by 100monkeys.ai, in beta は、各エージェントをコンテナの中で実行します。エージェントのマニフェストはイメージの代わりに言語とバージョンを指定でき、イメージはオーケストレーターが選びます。レジストリのページははっきりこう書いています。"Using StandardRuntime means you never specify a Docker image directly."(StandardRuntime を使えば、Docker イメージを直接指定することはない)。このガイドではランタイムを選び、デプロイ前に確かめ、実行時に何が起きるかを示します。
ステップ 1. レジストリが決めることを知る
マニフェストが spec.runtime.language と spec.runtime.version を指定すると、オーケストレーターは "resolves them to a deterministic, pinned Docker image at execution time."(実行時にそれらを決定的で固定された Docker イメージへ解決する)。対応表は runtime-registry.yaml にあり、オーケストレーターのリポジトリにコミットされ、デーモンの起動時に読み込まれます。レビューの観点で大事なのは、同じ組を指定した 2 つのエージェントは同じイメージで動き、誰もマニフェストにイメージのタグを書かないことです。
ステップ 2. レジストリに受け付ける組を尋ねる
ほかのエージェントのマニフェストを書くエージェントや、クライアントを使う人は、組み込みツール aegis.runtime.list を呼べます。引数なしならすべてのランタイムを、言語を渡せばその言語だけを返します。
{}
{ "language": "python" }
答えには各ランタイムの language、version、image、description、deprecated フラグと、custom_runtime_supported が含まれます。レジストリのページはこのツールの理由をこう書いています。"prevents hallucinated language-version combinations from being written into manifests."(でっち上げた言語とバージョンの組がマニフェストに書かれるのを防ぐ)。aegis-system-agent-runtime のセキュリティコンテキストで "with no additional configuration"(追加の設定なしで)使えます。
ステップ 3. サポートされた組を選ぶ
レジストリのページにある現在の対応表です。
| 言語 | バージョン | イメージ |
|---|---|---|
python | 3.11、3.10。3.9 は非推奨 | python:3.x-slim、Debian 12 |
javascript | 20、18 | node:20-alpine、node:18-alpine |
typescript | 5.1 | node:20-alpine |
go | 1.21、1.20 | golang:1.x-alpine |
rust | 1.75、1.74 | rust:1.x-alpine |
bash | 5 | python:3.11-slim(ブートストラップ用に python3 入り) |
非推奨のバージョンを指定したマニフェストは "still execute but emit a warning in the execution log"(引き続き実行されるが、実行ログに警告を出す)。ページは python: "3.9" を非推奨とし、3.10 か 3.11 へ移るよう書いています。削除は "two phases in advance"(2 フェーズ前に)告知され、削除されたバージョンは検証で失敗します。
ステップ 4. マニフェストに書く
spec:
runtime:
language: "python" # Required (StandardRuntime)
version: "3.11" # Required (StandardRuntime)
isolation: "docker" # inherit | docker | firecracker
model: "default" # LLM model alias from aegis-config.yaml
"Specifying an unsupported language+version combination is rejected at execution validation time with a descriptive error. There is no fallback to a default version."(サポートされない language+version の組を指定すると、実行の検証時にわかりやすいエラーで拒否される。既定のバージョンへの切り替えはない)。役に立つのは最後の文です。打ち間違いが黙って別のインタープリターで動くことはありません。
ステップ 5. 検証してからデプロイする
aegis agent deploy ./agent.yaml --validate-only
aegis agent deploy ./agent.yaml
--validate-only はデプロイせずに解析と検証だけを行います。同じ名前とバージョンを 2 度デプロイすると、--force を付けない限り失敗します。
ステップ 6. エージェントに必要なものを入れるか、独自イメージに移る
標準イメージにはそれぞれの言語のパッケージツールが入っています。Python のイメージには pip と apt、Node のイメージには npm と apk、Go には go と apk、Rust には cargo と rustc。TypeScript ではオーケストレーターが TYPESCRIPT_VERSION=5.1 を設定し、ドキュメントはブートストラップで npm install -g typescript ts-node によりツールチェーンを入れるよう書いています。ffmpeg のような OS パッケージ、レジストリにないバージョン、ビルド済みバイナリ、非公開の依存関係が必要なときのページの答えは、毎回の実行で同じものを入れるのではなく、自分のイメージである Custom Runtime です。
ステップ 7. エージェントの起動時に起きることを知る
標準ランタイムでは、オーケストレーターが組をイメージへ解決し、コンテナを生かしておくだけのメインプロセスでコンテナを作り、bootstrap.py がまだなければ /usr/local/bin/aegis-bootstrap にアップロードし、プロンプトを渡して実行します。ブートストラップはオーケストレーターのディスパッチゲートウェイへ接続し直し、反復のループを回します。"generate → execute → validate → refine"(生成、実行、検証、改良)。
ステップ 8. 自分のノードでは、デーモンが探す場所にレジストリファイルを置く
# aegis-config.yaml
spec:
runtime:
runtime_registry_path: "runtime-registry.yaml"
既定のパスはデーモンの作業ディレクトリからの相対パスです。ファイルがないか解析できないと、デーモンは "hard-fails at boot"(起動時にそのまま失敗する)。理由は "a missing registry makes every StandardRuntime agent execution impossible."(レジストリがないと、StandardRuntime のエージェントはどれも実行できない)からです。デーモンを別のディレクトリやコンテナイメージの中から動かすときは、絶対パスを設定してください。
ドキュメントが答えていないこと
- 2 つの回答例が食い違う。 レジストリのページにある
aegis.runtime.listの回答例はpython:3.x-slim上の Python 3.11、3.10、3.9 を挙げ、Management Tools のページの例はghcr.io/100monkeys/runtime-python:3.12上の Python3.12を挙げていますが、後者は対応表にありません。どちらの例も信じず、自分のノードに尋ねてください。 - 誤った組がいつ見つかるか。 レジストリのページは、サポートされない組は "at execution validation time"(実行の検証時に)拒否されると書いています。
aegis agent deploy --validate-onlyの時点で見つかるかどうかは書かれていません。 - 分離の値。 レジストリのページのマニフェストのコメントは
inherit | docker | firecrackerを挙げ、ワークフローとエージェントのリファレンスはprocessも挙げています。 - 日付。 Python 3.9 の削除日は "Phase 2"(フェーズ 2)以上には示されていません。
次に読むもの
ランタイムはエージェントマニフェストの 1 つのフィールドにすぎません。残りについては AEGIS のエージェントマニフェスト: すべてのフィールドと、それが強制することを読んでください。AEGIS は 100monkeys.ai に載っているコマンドでインストールできます。
curl -fsSL https://get.100monkeys.ai | bash