Mozaik
Jigjoy · コーディング
MozaikはTypeScriptで書かれたオープンソースのエージェントランタイムだ。互いをブロックせず同時に動くAIエージェントを構築する。単一のチャットボットループを組み上げる代わりに、エージェント、人間、その他の参加者がイベントをやり取りし、状況が一致したときに反応する共通ランタイムが手に入る。対象は単発のアシスタントではなく、マルチエージェント連携を求める開発者だ。パッケージはnpmで`@mozaik-ai/core`として配布される。

Mozaik について
Mozaikとは何か
Mozaikはランタイムであって、チャットアプリではない。JigjoyがオープンソースのMozaikリポジトリで開発・保守するTypeScriptのエージェントフレームワークだ。npmパッケージ@mozaik-ai/coreとしてインストールする。TypeScriptプロジェクトの中で使い、自分のランタイムを定義し、そのうえで登録したいエージェントとハンドラを登録する。
これが解決するのは調整の問題だ。ほとんどのエージェントフレームワークは、モデルを呼び出して答えを返す単一のループしか与えない。2つのエージェントが同じタスクに取りかかる必要が出た瞬間、それは扱いにくくなる。では、2番目のエージェントが動こうとしたらどうなるのか。Mozaikはランタイムを、参加者がイベントを発行し、状況ハンドラが何をするか決める共通空間として扱う。エージェントは並行して作業し、共有状態を読み、状況が変われば適応できる。並行AIエージェントを必要とするチームは、直列の単一ループではなく、ここで並列性を得る。
最大の制約は、これが完成品ではなく開発者向けライブラリだという点だ。ホスト型のダッシュボードもビジュアルビルダーもない。Node.js 18+、プロバイダのAPIキー、そしてクラスとジェネリクスに慣れるだけのTypeScript力が要る。ノーコードのエージェントビルダーを求めてきたなら、これはそうではない。
はじめかた
npm install @mozaik-ai/coreでコアパッケージをインストールする。ツールチェーンがそれならyarn addやpnpm addでもよい。- プロジェクト直下に
.envファイルを置き、使う予定のプロバイダのAPIキーを入れる。たとえばOPENAI_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEYだ。 defineRuntimeを呼んでセッションAPIを作り、誰かを参加させる前に状態オブジェクトを渡してinitializeRuntimeを一度実行する。createAgentとcreateHumanで参加者を作り、必要な状況ハンドラを付けて、joinでランタイムに参加させる。sendMessageでイベントを発行するか、runLoopでエージェントのターンを開始すれば、あとは一致するハンドラが引き受ける。
AIツール情報
Mozaikの料金、対応プラットフォーム、性能を簡単に確認できます。
こんな人におすすめ
このツールが最も力を発揮するユーザー、タスク、シーン。
ユーザー
- TypeScript開発者
- バックエンド/プラットフォームエンジニア
- AI研究者と趣味の開発者
タスク
- 1つのタスクで並行エージェントを動かす
- 人間参加型の承認
- エージェント出力の傍受と修正
- ツールとMCPの統合
シーン
- マルチエージェントのシミュレーション
- 状態を共有する顧客向けアシスタント
- コンソールやUIへのストリーミング応答
- 本番前にエージェント構成を試作
主な機能
互いをブロックしない並行エージェント
中心となる考え方は、エージェントが交代ではなく独立して働くことだ。誰も行列に並ばない。あるエージェントが推論で詰まっても、別のエージェントがランタイム内のイベントを処理し続けられる。マルチエージェントのワークフローを回すチームにとって、スループットは直列の単一ループではなく並列性から生まれる。
共通のイベント駆動ランタイム
参加者は1つのランタイムで出会い、そこでイベントが発行され、エージェントが反応する。defineRuntimeでランタイムを定義し、自分の状態クラスを渡して一度だけ初期化する。人間からエージェントまで、それ以外のすべてが同じ空間に参加するので、全員が同じ動きを見る。
状況ハンドラ
エージェントがいつ動くべきかを決め打ちする代わりに、関心のある状況を記述する。SituationSpecificationが各イベントを調べ、一致したハンドラがプロセッサを実行する。それだけだ。クイックスタートのWhenOthersSendAMessageの例は、エージェント以外の誰かがメッセージを送ったときだけ反応するので、ロジックはすっきり読みやすく保たれる。
共有環境の認識
エージェントは他の参加者と、周囲のランタイム状態を理解する。この認識があるから、盲目的に動くのではなく適応できる。共有状態の例は、固定の上限がある共通アカウントからエージェントが答える様子を示す。制約は各エージェントのプロンプトではなく環境にある。1つのアカウント、1つの上限、多数のエージェント。
傍受を備えたエージェントループ
runLoopはエージェントのターンを1つ開始する。コンテキストを更新し、推論を回し、ツールを呼び、答えを出す。傍受機能はこのループにフックを差し込めるので、プランナーが危険な案を出したときストリームの途中で止め、より安全な選択へ向け直せる。
複数プロバイダのモデル対応
Mozaikは渡したモデル名からプロバイダを選ぶ。周囲のコードに触れずにOpenAI、Anthropic、Geminiのモデルを入れ替えられる。DeepSeekのモデルはOpenAI互換のエンドポイントを通るため、OpenAI形式のキーとベースURLをDeepSeekに向けて使う。
ツールとMCP探索
エージェントはツールを持ち歩き、ターン中に呼び出せる。MCPの例は、ローカルのMCPサーバーからツールを見つけて株価の質問に答えるエージェントを示す。すでにMCPに投資している開発者にとって、既存のツールサーバーが同じエージェントループに差し込めるということだ。
ストリーミングと構造化出力
エージェントはリアルタイムのインターフェース向けに結果をトークン単位で流せる。ユーザーが画面の前で待つとき、これは効く。あるいは、機械可読な結果が要るときに厳密なJSONスキーマに沿った出力を返せる。構造化出力の例は固定スキーマに合わせた投資ブリーフを返し、下流のコードが答えを解析しなければならないときに役立つ。
メリットとデメリット
メリット
- オープンソースで無料でインストールでき、ライセンス料も有料プランもない。
- 並行処理向けに作られており、複数のエージェントが1つのループの後ろに並ばず同時に動く。
- 状況ハンドラがトリガーのロジックを明示し、読みやすくする。
- ストリーミング、ツール、MCP、人間参加型の承認を扱う自己完結した例が付属する。
- OpenAI、Anthropic、Gemini、そしてDeepSeekのようなOpenAI互換プロバイダで動く。
デメリット
- 開発者向けライブラリだ。コードを書かない人向けのビジュアルビルダーやホスト型ダッシュボードはない。
- 何かを動かす前にNode.js 18+、プロバイダのAPIキー、堅実なTypeScript力が要る。インストーラも近道もない。
- ドキュメントは今もGitHubリポジトリに頼っており、本番でのバージョン固定は自分の責任になる。
- APIは`gpt-5.5`のようなモデル名に言及するため、機能は選んだプロバイダが実際に何を公開するかに左右される。
よくある質問
MozaikはTypeScriptでAIエージェントを作るためのランタイムで、とりわけ並行して動き互いに反応する必要のあるエージェントチーム向けだ。Node.jsプロジェクトの中で使い、参加者を定義し、イベントを発行し、状況が起きたら処理する。
関連コンテンツ
Mozaikに関連するツール、スキル、記事を探す。
Mozaikの代替ツール
Base Code
Base44 (Wix) · コーディング · 生産性向上Base CodeはBase44の共有クラウド開発環境だ。既存のGitHubリポジトリに対する変更をチャットで伝え、プレビューで確認し、プルリクエストとして返せる。
Google EmbeddingGemma 2
Google DeepMind · ライティング · 画像 · コーディングGoogle EmbeddingGemma 2 は 7 億 4000 万パラメータのオープンなモデルで、テキスト、コード、画像、音声、動画フレームを同じ 768 次元空間のベクトルに変え、スマートフォンやノート PC 上で動く。
GitGlow
GitGlow · コーディング · 生産性向上GitGlow は自分のコードと AI エージェントの変更を一つのレビューにまとめるデスクトップ Git クライアントだ。出荷前に、マシンから何が出ていくのかを確かめられる。
