iii

スタックをリアルタイムに合成・拡張・観測するランタイム(iii-hq/iii)

1 — 概要

iii は、キュー・cron・HTTP・状態・観測・エージェント・サンドボックスなどがそれぞれ別の統合ストーリーを持つ問題を、ひとつのライブなシステム面に畳み込むランタイムだ。公式 README では「compose, extend, and observe every service in your stack in real time」と整理されている。

Workerプロセス単位の登録
TriggerHTTP / cron / キュー等
Function安定 ID の処理単位
worker addCLI で能力を追加

追加したワーカーはライブカタログに載り、他ワーカーが即座に呼び出せる。カタログは workers.iii.dev で閲覧できる。エージェントも開発者と同じインターフェイスで、不足する能力をワーカー追加 → 関数発見 → 呼び出し → トレース確認、という流れを取れる。

iii worker add queue
iii worker add agent
iii worker add sandbox
iii worker add <anything>
2 — 問題設定と設計方針

各サービスは内部実装・ライフサイクル・失敗モードがバラバラになりがちで、新規サービス N 本目は既存との組み合わせを増やす。iii はこの「足し算」をワーカー登録と宣言的トリガーに畳み込み、4 本でも 20 本でも同じ操作感でスケールさせる。

プラットフォームチームはワーカーを公開し、アプリチームは関数登録とトリガー宣言を行う。エージェントも同じカタログと同じ関数呼び出しを使う。拡張は iii worker add、合成は関数呼び出し、観測はトレースを開く、という README 上の三操作に集約される。

観測性: すべての能力を Worker / Trigger / Function の三語に写像すると、トレース・キュー・状態・ログを横断して追いやすい、という主張になっている(実装詳細は公式ドキュメント側)。
3 — 導入前後の変化
状況iii 導入前iii 導入後
観測ツール追加数え切れない統合iii worker add observability
エージェントハーネスリトライ・トレース・タイムアウトが別系統同じワーカー/関数モデル
キュー導入ベンダー選定・調達・数週間の統合iii worker add queue → システム内でトレース可能・呼び出し可能
4 — 3 プリミティブ

公式 README のメンタルモデルは次の三つに集約される。

  • Worker: エンジンに登録し、トリガーと関数を登録するプロセス。TypeScript API、Python パイプライン、Rust マイクロサービスなど形を問わない。数行でワーカー化でき、実行中に他ワーカーを生成することもできる(エージェントやアプリがランタイム中にシステムを拡張する用途)。
  • Trigger: 関数を起動する条件。直接呼び出し、HTTP、cron、キュー購読、状態変化、ストリームなど。ワーカー側で宣言的に定義し、ルーティング・シリアライズ・配信は iii が扱う。
  • Function: 名前空間::識別子 形式の安定 ID を持つ処理単位(例: content::classify、orders::validate)。入力を受け、任意で出力を返す。
Worker 登録 → Trigger 宣言 → Function 実行 → 他 Worker とも同一規約
5 — モノレポ構成とライセンス
ディレクトリ役割
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 が案内役になっている(本ページでは概要のみ)。

6 — 導入と SDK
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.jsiii-sdkpnpm add iii-sdk または npm install iii-sdk
Pythoniii-sdkpip install iii-sdk
Rustiii-sdk(crates.io)Cargo.toml に依存追加
Goiii-sdkgo 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 コマンドの正確な例が載っている。