Manifest

Affordable Personal AI — mnfst/manifest の技術整理

1 — 概要

Manifest は、OpenClaw や Hermes などのパーソナル AI エージェントと LLM プロバイダの間に置くスマートモデルルーター。各リクエストをスコアリングし、扱える範囲で最も安いモデルへ振り分ける。単純な質問は高速・低コスト、難しい推論は上位ティアへ。失敗時は自動フォールバック、予算上限の設定も可能。ライセンスは MIT、ソースは公開されている。

23スコア次元(<2ms)
70%コスト削減の目安(公式 README)
/v1OpenAI 互換 API
Docker公式配布形態
クラウドとセルフホスト: app.manifest.build でそのまま利用できる。自前運用は Docker イメージがサポート対象。レガシーの manifest npm パッケージは非推奨。
2 — モノレポ構成

ビルドは Turborepo と npm workspaces。ローカル開発は sql.js(WASM SQLite)をバックエンドに、クラウドは PostgreSQL と認可ガードが分岐する、という説明が CONTRIBUTING にある。

パッケージ役割
packages/shared共有型・定数(エージェント種別など)
packages/backendNestJS 11・TypeORM・プロキシ・ルーティング・分析
packages/frontendSolidJS・Vite・uPlot のダッシュボード
packages/manifestDocker 向けバージョン番号の正(コード本体は backend / frontend)
packages/openclaw-pluginsOpenClaw 連携用のプラグイン置き場
3 — ルーティングの考え方

manifest/auto へのリクエストは、README の説明では 23 次元のスコアアルゴリズムで評価され、ティア(simple / standard / complex / reasoning など)を決めてから、接続済みプロバイダの中から最適なモデルへ送る。トークン・コスト・モデル名・所要時間は記録され、ダッシュボードで可視化される。

flowchart TD
  A["AI Agent"] --> B["Manifest /v1"]
  B --> C["23-dim score"]
  C --> D["Tier selection"]
  D --> E["Provider + model"]
  E --> F["Metrics to dashboard"]
4 — クイックスタート(Docker)

公式 README のワンライナー。compose を取得しシークレットを生成してスタックを起動する。初回アカウントが管理者になる。

bash <(curl -sSL https://raw.githubusercontent.com/mnfst/manifest/main/docker/install.sh)

起動後は http://localhost:3001(README 記載)でサインアップ。詳細はリポジトリ内 docker/DOCKER_README.md。

5 — OpenRouter との違い(README 要約)
観点ManifestOpenRouter
想定ユースケースパーソナル AI エージェントとコンシューマ向けアプリエンタープライズ API トラフィック
アーキテクチャローカル。自分のリクエストとプロバイダクラウドプロキシ。トラフィックが相手サーバを経由
コスト無料(セルフホスト)API コールごとに 5% 手数料
ソースMIT・完全オープン非公開
データクラウドはメタデータのみ、または完全ローカルプロンプトと応答が第三者を通過
透明性スコア理由を確認可能ルーティング判断の可視性なし
制御ティアごとにモデルと最大 5 段フォールバックを定義可能フラットなフォールバック一覧か不透明な自動ルーティング
6 — 対応プロバイダ(抜粋)

300+ モデルに対応し、API キーまたは既存の定額サブスクリプション経由で接続できる旨が README にある。以下は表の一部。

プロバイダAPI キーサブスク
OpenAIありChatGPT Plus / Pro / Team
AnthropicありClaude Max / Pro
Google Geminiあり—
OpenRouterあり—
OllamaローカルOllama Cloud
Custom(OpenAI 互換)あり—

解説元: ローカル repos/manifest(README / CONTRIBUTING / package.json)