iii
スタックをリアルタイムに合成・拡張・観測するランタイム(iii-hq/iii)
iii は、キュー・cron・HTTP・状態・観測・エージェント・サンドボックスなどがそれぞれ別の統合ストーリーを持つ問題を、ひとつのライブなシステム面に畳み込むランタイムだ。公式 README では「compose, extend, and observe every service in your stack in real time」と整理されている。
追加したワーカーはライブカタログに載り、他ワーカーが即座に呼び出せる。カタログは workers.iii.dev で閲覧できる。エージェントも開発者と同じインターフェイスで、不足する能力をワーカー追加 → 関数発見 → 呼び出し → トレース確認、という流れを取れる。
iii worker add queue
iii worker add agent
iii worker add sandbox
iii worker add <anything>
各サービスは内部実装・ライフサイクル・失敗モードがバラバラになりがちで、新規サービス N 本目は既存との組み合わせを増やす。iii はこの「足し算」をワーカー登録と宣言的トリガーに畳み込み、4 本でも 20 本でも同じ操作感でスケールさせる。
プラットフォームチームはワーカーを公開し、アプリチームは関数登録とトリガー宣言を行う。エージェントも同じカタログと同じ関数呼び出しを使う。拡張は iii worker add、合成は関数呼び出し、観測はトレースを開く、という README 上の三操作に集約される。
| 状況 | iii 導入前 | iii 導入後 |
|---|---|---|
| 観測ツール追加 | 数え切れない統合 | iii worker add observability |
| エージェントハーネス | リトライ・トレース・タイムアウトが別系統 | 同じワーカー/関数モデル |
| キュー導入 | ベンダー選定・調達・数週間の統合 | iii worker add queue → システム内でトレース可能・呼び出し可能 |
公式 README のメンタルモデルは次の三つに集約される。
- Worker: エンジンに登録し、トリガーと関数を登録するプロセス。TypeScript API、Python パイプライン、Rust マイクロサービスなど形を問わない。数行でワーカー化でき、実行中に他ワーカーを生成することもできる(エージェントやアプリがランタイム中にシステムを拡張する用途)。
- Trigger: 関数を起動する条件。直接呼び出し、HTTP、
cron、キュー購読、状態変化、ストリームなど。ワーカー側で宣言的に定義し、ルーティング・シリアライズ・配信は iii が扱う。 - Function:
名前空間::識別子形式の安定 ID を持つ処理単位(例:content::classify、orders::validate)。入力を受け、任意で出力を返す。
| ディレクトリ | 役割 |
|---|---|
engine/ | Rust のコアランタイム・プロトコル(エンジン README 参照) |
sdk/ | Node.js / Python / Rust / Go の SDK |
console/ | 開発者・運用向けコンソール(React と Rust) |
skills/ | AI コーディングエージェント用 Skill |
website/ | 公式サイト |
docs/ | Mintlify / MDX のドキュメントサイト |
crates/ | CLI・スキャフォールド・シェル等の Rust クレート群(ルート Cargo.toml の workspace メンバー) |
ライセンスの切り分け
| 範囲 | ライセンス |
|---|---|
engine/ | Elastic License 2.0(ELv2) |
sdk/・console/・docs/・website/ | Apache License 2.0 |
リポジトリ全体の依存関係や CI の詳細は、ルートの STRUCTURE.md が案内役になっている(本ページでは概要のみ)。
curl -fsSL https://install.iii.dev/iii/main/install.sh | sh
iii project init myapp # プロジェクトの足場
cd myapp
iii # エンジン起動
手順の詳細は Quickstart(iii.dev) を正とする。ワーカー追加は iii worker add(例は概要セクション参照)。
公式 SDK(README の表に準拠)
| 言語 | パッケージ名 | インストール例 |
|---|---|---|
| Node.js | iii-sdk | pnpm add iii-sdk または npm install iii-sdk |
| Python | iii-sdk | pip install iii-sdk |
| Rust | iii-sdk(crates.io) | Cargo.toml に依存追加 |
| Go | iii-sdk | go get github.com/iii-hq/iii/sdk/packages/go/iii |
エンジンプリミティブ(HTTP、キュー、cron、状態、ストリーム、カスタムトリガー等)向けの参照資料:
npx skills add iii-hq/iii/skills
iii-hq/workers の各ワーカーも個別 Skill を同梱する。例:
npx skills add iii-hq/workers --list
npx skills add iii-hq/workers --skill database
npx skills add iii-hq/workers --all
エンジン組込みワーカー(iii-queue、iii-state、iii-pubsub、iii-stream、iii-cron、iii-http、iii-observability、iii-bridge、iii-exec、iii-worker-manager)の Skill は本体リポジトリ内に同梱。個別インストール例:
npx skills add iii-hq/iii --full-depth --skill <name>
各ワーカーの README(engine/src/workers/ 配下)に iii worker add と Skill コマンドの正確な例が載っている。