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の代替ツール
Forefront
Forefront · コーディングForefrontはオープンソースAIで構築するためのウェブプラットフォームだ。主要なオープンソース言語モデルを自分のデータで微調整し、性能を評価し、API経由で実行したり、エクスポートして自分でホストしたりできる。クローズドなプラットフォームの手軽さを求めつつ、モデルとデータの所有権にはこだわる開発者が対象だ。
Startkit
StartKit.AI · コーディングStartkitは、AI SaaSとAIラッパー製品を作るためのボイラープレートだ。面倒な部分をあらかじめ配線済みにしたAIスタートアップボイラープレートと考えればいい。認証、StripeとLemon Squeezyの決済、利用制限、トランザクションメール、そしてOpenAI、Anthropic、Groq、Llamaと通信するAI APIスターターキットが含まれる。リポジトリをクローンして価格を設定し、ユーザーが実際にお金を払う部分に取りかかれる。ReactとTailwind上のNext.jsで作られているため、ボイラープレートコードの多くはすでに見慣れたものだ。
Testim
Tricentis · コーディングTestimは、Web・モバイル・Salesforceアプリ向けにエンドツーエンドテストを構築して実行するAIテスト自動化プラットフォームだ。機械学習を頼りに、インターフェースが変わってもテストを安定させ、チームが壊れたセレクターの修正に費やす時間を減らす。今日から使い始められる自動テストツールとしては悪くない。ブラウザで操作を録画してテストを作り、より細かい制御が必要なときはJavaScriptを足す。忙しいQAチームにとって堅実な選択肢である。
