{"id":"8f5cc7f9-5524-4e7a-b412-9949a940ca34","slug":"llmesh","kind":"mcp","name":"llmesh","summary":"Security-first local LLM swarm over MCP with signed peer discovery, fail-closed validation, audit trails, and Docker-based PoC nodes.","owner":"furuse-kazufumi","repoUrl":"https://github.com/furuse-kazufumi/llmesh","license":"Apache-2.0","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-05-05T09:56:05.000Z","addedAt":"2026-10-21T06:03:06.654Z","logoUrl":"https://avatars.githubusercontent.com/u/87401938?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra","memory-knowledge"],"tags":["ai-security","audit-log","ed25519","fastapi","llama-cpp","llm-agents","local-llm","ollama"],"runtime":"python","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T07:05:14.319Z","sample":false,"url":"https://conduits.dev/tools/llmesh","language":"Python","transports":["stdio"],"install":{"pypi":"llmesh-mcp"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# LLMesh\n\n> **かみ砕いた説明（中学生レベル）:** llmesh は、いろんな会社の賢いおしゃべりAI（LLM、人間のように文章を作るプログラム）を、自分のパソコンや会社の中だけで安全に使うための「受付係」です。工場のセンサーやカメラの情報も同じ窓口でまとめて受け取り、外に勝手に漏らさないよう見張りながら、AIに渡したり結果を記録したりします。だから個人情報や会社の秘密を外のインターネットに出さずに、AIの便利さだけを使えます。\n>\n> → 用語集: [docs/GLOSSARY.md](docs/GLOSSARY.md)\n\n> **Part of the FullSense ™ family** — **llmesh** (本リポ・secure LLM hub) ・ `llive` (self-evolving memory) ・ `llove` (TUI dashboard) の 3 製品を束ねる FullSense ブランドの中で、MCP 経由のセキュアな LLM ハブを担当します。FullSense Spec v1.1 は `llive` リポジトリの `docs/fullsense_spec_eternal.md` 参照。\n\n**Secure LLM Mesh over MCP** — **v3.1.0**\n\n> **Family / 同系プロジェクト:** バックエンド (本リポ) / TUI ダッシュボード →\n> **[llove](https://github.com/furuse-kazufumi/llove)** / 一括インストール →\n> `pip install llmesh-suite` (準備中)。\n>\n> **不混同 (Disambiguation):** プロトコル横断・産業 IoT・プライバシーパイプライン\n> 主体の本プロジェクトは、GPU を持ち寄り **1 つの LLM を分散推論** する\n> [`mesh-llm`](https://github.com/michaelneale/mesh-llm) とは別物です。\n> 本プロジェクトは「I/O・プロトコル・産業現場」側、`mesh-llm` は「推論並列化」側。\n\n産業 IoT、重要インフラ、先端 AI/量子、RTOS マイコンまでを統一フレームワークで\nカバーする Python 統合プラットフォーム。\n**ローカル LLM**（Ollama / llama.cpp）と**クラウド LLM**（OpenAI / Azure /\nAnthropic / OpenRouter / Groq / Together / Mistral / DeepSeek）を同一 ABC で\n透過運用。117 章 / 500+ 要件項目、Rust 拡張で性能 6×、2300+ テスト全 PASS。\n**全体 OWASP 静的監査クリーン**（`shell=True` / `pickle` / `eval` / SQL 注入 /\n弱暗号 ゼロ、全 HTTP クライアントにレスポンスサイズ上限）、\n**v3.0.0 から SemVer 正式適用**（`docs/API_STABILITY.md` の公開シンボル一覧が契約）。\n\n## Architecture / 全体像\n\n```mermaid\nflowchart LR\n  subgraph Field[\"Field / 現場\"]\n    M[Modbus / OPC-UA / MQTT / Serial / EtherCAT / BACnet]\n    H[HTTP / HTTPS / WebSocket / gRPC]\n    E[Email / SSH / FTP / SNMP / NTP]\n    R[ROS 1 / ROS 2]\n    V[Camera / Mic / VLM]\n  end\n  subgraph Core[\"llmesh core (multi-protocol gateway)\"]\n    PA[Protocol Adapters]\n    PF[PromptFirewall<br/>L0/L1/L1.5/L2/L3/L4]\n    AU[AuditTrail<br/>HMAC chain]\n    RA[RAG<br/>numpy/sqlite/LSH]\n    SP[SPC / MT-method<br/>Hotelling T² / CUSUM]\n  end\n  subgraph LLM[\"LLM backends (ABC)\"]\n    O[Ollama / llama.cpp]\n    C[OpenAI / Anthropic / Azure /<br/>OpenRouter / Groq / Together / Mistral / DeepSeek]\n  end\n  subgraph UI[\"UI / dashboard (separate package)\"]\n    L[💗 llove TUI<br/>llmesh dashboard]\n    HX[HTML export]\n  end\n\n  M & H & E & R & V --> PA --> PF --> RA & SP\n  PF --> O & C\n  PF --> AU\n  SP & AU & RA -. stream .-> L\n  L --> HX\n```\n\n> **責務境界:** llmesh は **I/O・プロトコル・分析・LLM 経路** に専念。可視化と\n> 対局・学習デモは姉妹リポ **[llove](https://github.com/furuse-kazufumi/llove)**\n> に分離し、組み込み Linux / RTOS ターゲットでも `pip install llmesh-mcp` だけで\n> 動くよう依存最小を維持しています。`llmesh dashboard` 1 発で TUI を呼べます。\n\n---\n\n## Quick Start\n\n```bash\n# PyPI からのインストール（配布名は llmesh-mcp、import 名は llmesh）\npip install llmesh-mcp\n# 産業用フル機能\npip install \"llmesh-mcp[industrial,vision,presidio,rag]\"\n# 可視化込み一括（メタパッケージ、準備中）\npip install llmesh-suite\n\n# ローカル開発\ngit clone git@github.com:furuse-kazufumi/llmesh.git\ncd llmesh\npip install -e \".[dev,industrial]\"\npytest\n```\n\n```python\n# import パスは llmesh のまま\nfrom llmesh import PromptFirewall, SensorEvent\nfrom llmesh.rag import Retriever, MockEmbedder, NumpyVectorStore\nfrom llmesh.llm import openai_backend, OllamaBackend\n```\n\n主要 optional extras:\n\n```bash\npip install -e \".[industrial]\"   # MTEngine / SPC / Modbus / OPC-UA / MQTT\npip install -e \".[vision]\"       # ImageFirewall / VLM 経路\npip install -e \".[presidio]\"     # Layer 1.5 PII 検出（v2.13.0+）\npip install -e \".[rag]\"          # RAG（ベクトル検索）（v2.13.0+）\npip install -e \".[email,udp,ssh,ftp,mgmt,can,bacnet]\"\n```\n\n## Screenshots — `llmesh dashboard` (powered by llove)\n\nllmesh のデータは姉妹リポ **[llove](https://github.com/furuse-kazufumi/llove)**\nの TUI から 1 画面で見えます。`pip install llmesh-llove && llmesh dashboard`\nで起動。スクリーンショット原寸は llove リポにあります。\n\n| 画面 | ターゲット |\n|------|------------|\n| ![SCADA](https://raw.githubusercontent.com/furuse-kazufumi/llove/main/docs/snapshots/ja/scada-tui.svg) | 産業 IoT / SCADA |\n| ![PromptFirewall](https://raw.githubusercontent.com/furuse-kazufumi/llove/main/docs/snapshots/ja/firewall-tui.svg) | PromptFirewall / プライバシーパイプライン |\n| ![RAG](https://raw.githubusercontent.com/furuse-kazufumi/llove/main/docs/snapshots/ja/rag-tui.svg) | RAG 検索 |\n| ![AuditTrail](https://raw.githubusercontent.com/furuse-kazufumi/llove/main/docs/snapshots/ja/audit-tui.svg) | HMAC チェーン Audit |\n| ![Backends](https://raw.githubusercontent.com/furuse-kazufumi/llove/main/docs/snapshots/ja/backends-tui.svg) | LLM バックエンド切替 |\n| ![Reliability](https://raw.githubusercontent.com/furuse-kazufumi/llove/main/docs/snapshots/ja/reliability-tui.svg) | Reliability Protocol |\n| ![Multimodal](https://raw.githubusercontent.com/furuse-kazufumi/llove/main/docs/snapshots/ja/multimodal-tui.svg) | 画像 + 音声 + LLM |\n\nllove は単なるダッシュボードに留まらず、shogi (Ed25519 署名つき per-move log) /\nchess / タイピングなどの **対局・学習デモも同じ抽象で起動** できます。詳細は\n[llove README](https://github.com/furuse-kazufumi/llove) を参照。\n\n---\n\n## Components\n\n### Core\n\n| Module | Description |\n|---|---|\n| `llmesh.classifier` | DataLevel (L0–L4) + ClassifiedPayload |\n| `llmesh.privacy.firewall` | 4-layer Prompt Firewall（L0 注入検出 / L1 シークレット / **L1.5 Presidio PII** / L2 構造） |\n| `llmesh.privacy.summarizer` | PrivacySummarizer（L3 要約パイプライン） |\n| `llmesh.privacy.image_firewall` | ImageFirewall（L4 画像 BLOCK / L3 サマリ） |\n| `llmesh.privacy.presidio_detector` | **NEW v2.13** Microsoft Presidio 統合（PII 検出、optional） |\n| `llmesh.identity` | Ed25519 Node ID + `did:llmesh:1:` + Capability Manifest + X25519 ECDH |\n| `llmesh.rendezvous` | 署名付きノード発見サービス（plaintext / AES-256-GCM） |\n| `llmesh.mcp` | MCP tool schemas + OutputValidator |\n| `llmesh.audit` | tamper-evident HMAC chain audit log |\n| `llmesh.fairness` | フリーライダー防止（ServiceReceipt / ContributionLedger / FairnessPolicy） |\n\n### RAG (v2.13.0+)\n\n| Module | Description |\n|---|---|\n| `llmesh.rag.embedder` | Embedder ABC + MockEmbedder（決定論ハッシュ）+ OllamaEmbedder（urllib のみ） |\n| `llmesh.rag.store` | VectorStore ABC + Document / RetrievedDocument |\n| `llmesh.rag.numpy_store` | 純 numpy in-memory ストア（cosine 類似度、`.npz` アトミック永続化） |\n| `llmesh.rag.sqlite_store` | **NEW v2.14** 純 sqlite3 永続ストア（WAL、UPSERT、≤10⁶ 件で実用） |\n| `llmesh.rag.lsh_store` | **NEW v2.15** LSH ANN ベクトルストア（≥10⁶ 件、recall@10 ≥ 0.92） |\n| `llmesh.rag.retriever` | Embedder + VectorStore + Firewall を結合した Retriever |\n\n### Protocols (multi-protocol gateway)\n\n| Module | Description |\n|---|---|\n| `llmesh.protocol.{http,tcp,udp,ssh,sftp,smtp,imap,pop3,ftp,snmp,telnet,ros2,ros1}_adapter` | プロトコルアダプタ群 |\n| `llmesh.protocol.adapter` | ProtocolAdapter ABC + TransportError |\n| `llmesh.protocol.registry` | AdapterRegistry（名前生成・カスタム登録・entry-points） |\n| `llmesh.protocol.message` | UnifiedMessage + MessageType（STREAM_ACK / RETRANSMIT 含む） |\n| `llmesh.protocol.assembler` | MessageAssembler（順序組立 + タイムアウト + ウォッチドッグ） |\n| `llmesh.protocol.chunk_sender` | ChunkSender（送信バッファ + 再送 + ACK + TTL expire） |\n| `llmesh.protocol.watchdog` | WatchdogTimer |\n| `llmesh.security.clock` | NTPクロック同期チェック |\n| `llmesh.discovery.dns_sd` | DNS-SD v2 mDNS アナウンサー |\n\n### Industrial (v1.3.0+)\n\n| Module | Description |\n|---|---|\n| `llmesh.industrial.sensor_event` | SensorEvent 統一モデル |\n| `llmesh.industrial.{modbus,serial,opcua,mqtt,ethercat,can,bacnet,websocket}_adapter` | 産業プロトコル |\n| `llmesh.industrial.mt_engine` | Mahalanobis-Taguchi 法（オフライン訓練 + リアルタイム推論） |\n| `llmesh.industrial.mt_online` | **NEW v2.13** OnlineMTEngine（バッチ Mahalanobis、einsum、メモリ上限制御） |\n| `llmesh.industrial.spc_engine` | XbarRChart / CUSUMChart（Shewhart / 累積和管理図） |\n| `llmesh.industrial.hotelling_t2` | **NEW v2.13** HotellingT2Chart（多変量管理図、Tikhonov 正則化） |\n| `llmesh.industrial.event_density_map` | **NEW v2.13** EventDensityMap（DVS イベント → グリッド特徴） |\n| `llmesh.industrial.multimodal_spc` | **NEW v2.13** UnifiedSPC（センサー × VLM テキスト 2 系統 SPC） |\n| `llmesh.industrial.explainer` | **NEW v2.13** LLMExplainer（SCADA 異常 → Markdown/JSON レポート） |\n| `llmesh.industrial.explained_cusum` | **NEW v2.14** ExplainedCUSUM（自己説明 CUSUM、CUSUMChart + LLMExplainer 統合） |\n| `llmesh.industrial.video_cusum` | **NEW v2.14** VideoCUSUM（動画 + センサー時刻同期 CUSUM、ペア化バッファ） |\n| `llmesh.industrial.vlm_feature_extractor` | **NEW v2.14** VLMFeatureExtractor（画像 → ImageFirewall → caption → 数値ベクトル） |\n| `llmesh.industrial.dnp3_adapter` | **NEW v2.14** DNP3Adapter（v3-N7 / K-1.1、SCADA outstation client、pydnp3 optional） |\n| `llmesh.industrial.goose_adapter` | **NEW v2.14** GOOSEAdapter（IEC 61850 GOOSE subscriber、リプレイ防御付き） |\n| `llmesh.industrial.sensor_3d` | AOI / 深度 / DVS（mcp-3d SDK 互換） |\n| `llmesh.industrial.c_abi` | RTOS C ABI / EdgeProfile（Volume L） |\n| `llmesh.industrial.metrics` / `tracing` / `tenant` | OpenTelemetry / マルチテナント |\n\n## Reliability Protocol\n\nストリーミング通信の信頼性を `MessageAssembler` と `ChunkSender` の\n組み合わせで保証する。\n\n```\n[正常完了]  受信: pop_completed() → STREAM_ACK 送信\n            送信: handle_ack()    → 送信バッファ破棄\n\n[欠落検出]  受信: check_timeouts() → RETRANSMIT 送信（1 回のみ）\n            送信: handle_retransmit() → 欠落チャンクのみ再送\n\n[切断検出]  受信: check_watchdog()  → True で切断シグナル\n            送信: expire_old()      → TTL 超過バッファ自動破棄\n```\n\n## Privacy Pipeline\n\n```\nprompt → PromptFirewall (L0/L1/L1.5/L2) → PrivacySummarizer →\n         LLM Backend (Ollama / LlamaCpp) → OutputValidator → caller\n```\n\n| Layer | 役割 | 出力 |\n|------:|------|------|\n| L0 | プロンプト注入 / jailbreak / Unicode 制御文字 | BLOCK |\n| L1 | シークレット（API キー、JWT、PEM、AWS、GitHub、Anthropic、OpenAI） | BLOCK |\n| **L1.5** | **Presidio PII（CC / SSN / IBAN / 医療免許 / 個人名 / Email / 電話 …）** | **BLOCK or SUMMARIZE** |\n| L2 | 絶対パス / 内部 import / オーバーサイズ payload | SUMMARIZE or BLOCK |\n\n## Security Guardrails\n\n- `shell=True`, `pickle`, `yaml.load(unsafe)`, `eval`, `exec` を一切使わない\n- Firewall は **fail-closed**（例外 → L4/BLOCK）\n- OutputValidator が non-JSON / schema 不一致 / nonce replay を拒否\n- subprocess 呼び出しは list 形式のみ\n- すべての optional 依存は extras（軽量本体）\n\n## Performance\n\n| 操作 | Pure Python | Rust | 倍率 |\n|------|-----------:|-----:|----:|\n| PointCloud encode (1M) | 4.0M pts/s | **24.1M pts/s** | **6.0×** |\n| PointCloud decode (1M) | 3.7M pts/s | 5.9M pts/s | 1.6× |\n| DVS encode (1M) | 3.4M evt/s | 5.5M evt/s | 1.6× |\n| Pipeline + CUSUM | 190K events/s | – | – |\n\n## CLI\n\n```bash\npython -m llmesh.cli.doctor   # 環境健全性チェック\npython -m llmesh.cli.status   # ランタイム状態\npython -m llmesh.cli.sbom     # CycloneDX SBOM 自動生成\n```\n\n## Documentation\n\n### 概要 / 計画\n- `docs/ROADMAP.md` — リリース計画 / バージョン履歴\n- `docs/REQUIREMENTS.md` — 117 章 / 500+ 要件、Volume A〜N\n- `docs/CHANGELOG.md` — 詳細変更履歴\n\n### アーキテクチャ / 仕様\n- `docs/ARCHITECTURE.md` — アーキテクチャ\n- `docs/SPECIFICATION.md` — API 仕様\n- `docs/SECURITY.md` — STRIDE 脅威モデル + セキュリティ不変条件\n- `docs/API_STABILITY.md` — Public/Internal API 境界 + SemVer ポリシー（v2.15+）\n- `docs/PERFORMANCE.md` — モジュール別計算量 + メモリ + 推奨パラメータ（v2.15+）\n\n### 利用ガイド\n- `docs/SETUP.md` / `docs/SETUP_GUIDE.md` — セットアップ\n- `docs/USAGE.md` — 使用例（v2.13/2.14 強化機能セクション含む）\n- `docs/INDUSTRIAL_GUIDE.md` — 産業 IoT 利用ガイド（Phase A〜v3 含む）\n- `docs/PEERING.md` / `docs/PLATFORMS.md` — ピアリング / プラットフォーム\n\n### 運用 / トラブルシューティング（v2.18+）\n- `docs/DEPLOYMENT.md` — Docker / systemd / k8s / シークレット管理\n- `docs/OBSERVABILITY.md` — Prometheus / OTel / AuditTrace / SLO\n- `docs/TROUBLESHOOTING.md` — エラー対処集 + FAQ\n- `docs/MIGRATION.md` — バージョン間移行ガイド\n\n### 開発者向け（v2.18+）\n- [`CONTRIBUTING.md`](CONTRIBUTING.md) — 貢献ガイド（コミット規約 / PR チェックリスト）\n- `docs/DEVELOPMENT.md` — 開発環境 / 内部構造 / 新規モジュール追加手順\n- `docs/TESTING.md` — テスト戦略 / Hypothesis / カバレッジ目標\n- `docs/GLOSSARY.md` — 用語集（LLM / セキュリティ / 産業）\n- `docs/SETUP.md` / `docs/SETUP_GUIDE.md` — セットアップ\n- `docs/USAGE.md` — 使用例\n- `docs/PEERING.md` / `docs/PLATFORMS.md` — ピアリング / プラットフォーム\n- `docs/papers/` — RAD（21 分野コーパス）+ 論文素材\n\n## FullSense Portal hubs (drift 防止)\n\n家族プロダクト横断の install snippet / 推奨モデル / ベンチ運用ルール /\nSpec の **真実ソース** は FullSense portal 配下の hub ページ:\n\n- [Spec hub](https://furuse-kazufumi.github.io/fullsense/spec/) — FullSense Eternal Spec v1.1 + 要件定義 8 本\n- [Benchmark Policy](https://furuse-kazufumi.github.io/fullsense/benchmarks/policy/) — 系列 A/B/C/D + progressive curve + honest disclosure\n- [Recommended models](https://furuse-kazufumi.github.io/fullsense/recommended-models/) — 用途別推奨 on-prem モデル\n- [Comparison](https://furuse-kazufumi.github.io/fullsense/comparison) — vs Claude Code / Perplexity / Codex / Gemini\n"}