コンテンツへスキップ
Mux

Mux

AIエージェント構築のためのインフラライブラリ。ツール実行、マルチプロバイダーLLMサポート、MCP統合、承認ゲート、マルチエージェントオーケストレーション。

GitHub ← 全プロダクト

Mux は自律型AIエージェントを構築するためのライブラリです。Think-Actループ、ツール実行、LLMプロバイダー抽象化、マルチエージェント調整を担うことで、開発者はステートマシンの配線ではなくツールとビジネスロジックの定義に集中できます。

2つの実装で提供:

どちらも同じアーキテクチャと機能セットを持ちます。スタックに合わせて言語を選んでください。

できること

マルチプロバイダーLLM抽象化。 1つのクライアントインターフェースで Anthropic (Claude)、OpenAI、Google Gemini、OpenRouter、Ollama をカバー。コンストラクタを変えるだけでプロバイダーを切り替えられます。5つすべてがストリーミングとツール呼び出しに対応。

ユニバーサルツールインターフェース。 組み込み関数、MCPサーバーツール、外部サービスを問わず、すべてのケイパビリティが同じツールインターフェースを実装します: 名前、説明、承認要件、実行。スレッドセーフなレジストリにツールを登録すれば、オーケストレーターが残りを処理します。

承認ゲート。 ツールは呼び出しごとに承認が必要かどうかを宣言します。エグゼキューターは機密性の高い操作を実行する前に承認関数を確認します。コンテキスト依存: 書き込みツールは承認を要求しつつ、読み取りツールは自由に実行できます。Rust実装にはallow/denyルール、globパターン、条件関数を持つフルポリシーエンジンが追加されます。

MCPクライアント。 stdioまたはstreamable HTTPで外部MCPサーバーに接続。ツールを一覧取得し、JSON-RPC 2.0で呼び出し、ユニバーサルツールインターフェースに自動的に変換します。

エージェント階層。 親エージェントはツールアクセスを制限した子エージェントを生成します。拒否されたツールはツリーを下って積み重なります。各エージェントは階層的なIDを持ち、生成時と完了時にライフサイクルフックを発火します。

非同期実行と永続化。 ポーリング、有界待機、キャンセルを使ってエージェントを非同期実行。会話履歴をJSONまたはJSONLトランスクリプトとして保存し、復元して中断箇所から再開できます。

仕組み

3つのレイヤー:

  1. LLMクライアント — 異なるAPIを1つのリクエスト/レスポンス形式に正規化するプロバイダークライアント。ストリーミング、トークン追跡、設定可能なデフォルト値を持ちます。
  2. オーケストレーター — Think-Actループ。LLMを呼び出し、レスポンスからツール呼び出しを解析し、エグゼキューター経由でツールを実行し、結果をフィードバックして、モデルがツール呼び出しを止めるまで繰り返します。各ステージでフックを発火します。会話履歴が長くなりすぎるとコンパクト化します。
  3. エージェント — オーケストレーターをエージェントごとのツールフィルタリング、子エージェント管理、非同期実行、トランスクリプト永続化でラップします。事前構築済みプリセット (Explorer、Planner、Researcher、Writer、Reviewer) が一般的なパターンをカバーします。

サポートパッケージ: ツールレジストリとエグゼキューター、MCPプロトコル統合、ルールベースアクセス制御、エージェント間の共有リソースロック、ライフサイクルイベントフック。

Rust 追加機能

Rustワークスペースには追加クレートが含まれます:

  • mux-ffi — Swift (iOS/macOS) および Kotlin (Android) 向け UniFFI バインディング
  • code-agent — リファレンスエージェント実装
  • agent-test-tui — エージェント動作をテストするインタラクティブTUI

必要要件

Go: Go 1.24+ と少なくとも1つのLLM APIキー (ANTHROPIC_API_KEYOPENAI_API_KEY、または GEMINI_API_KEY)

Rust: Rust 2024エディション (1.85+)、tokioランタイム、選択したLLMプロバイダーのAPIキー

GitHub で見る →
31 ページ · hugo 0.148.2 · 1ee4278 · 構築済み Aug 10 22:58
2389 Radio
2389 RADIO ステーションを選択