PHM Physics Check について
PHM Physics Check は、LLM の出力やロボティクスデータの物理的妥当性を検証するオフラインライブラリ兼ローカル MCP サーバーです。Python 標準ライブラリのみで決定論的に検査し、PASS、WARN、FAIL の構造化判定を返します。
主な機能
- 01次元と単位の整合性検査
- 02物理限界と確率の検証
- 03運動学・保存則の検査
- 04ロボティクスの四元数とタイムスタンプ検査
- 05PASS、WARN、FAIL の構造化結果
- 06依存関係なしのオフライン動作
活用シーン
- 01生成テキスト内の物理量の確認
- 02ロボティクスデータ記録の検証
- 03無効な単位や物理値の検出
MCP 対応
stdio でローカル実行し、`physics_text_check`、`physics_quantity_check`、`robotics_data_check` ツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
phm-lite-check
LLM の出力およびロボティクス/エンボディド AI データセットの物理的妥当性を決定論的にチェックします。依存関係はなく、標準ライブラリのみを使用し、Python >= 3.8 に対応しています。
このパッケージは、コミュニティが提供する独立したライブラリです。PHM 物理判断エンジンのオフラインサブセットであり、独自のコアメソッドは意図的に含めていません。コンパニオンプラグイン
(phm-physics-check)は Dify Marketplace に掲載されています。
LangChain、AutoGen、Dify との提携、推奨、または支援を受けているものではありません。統合アダプターはコミュニティが提供しています。
MCP サーバー
このパッケージは、ローカル MCP サーバー(stdio トランスポート)としても動作します。インストール後、MCP クライアントの接続先に以下を指定してください。
python3 -m phm_lite_check.mcp_server
次の 3 つのツールを公開します。physics_text_check、physics_quantity_check、robotics_data_check。
チェック項目
テキスト/数量(check_text、full_check)
- 次元/単位の整合性(SI 単位および一般的な単位)
- 万有速度の上限(c)
- 絶対温度の下限(0 K)
- 質量/長さ/エネルギーが負でないこと
- 確率の範囲 [0, 1]
- 運動学的関係(自由落下の一連の関係式。許容誤差をチェック)
- 保存則のチェック(エネルギー/運動量。許容誤差をチェック)
ロボティクスレコード(check_robotics_record)
- クォータニオンの正規化(|q| が 1.0 から許容誤差内であること)
- タイムスタンプの妥当性:単調性、重複、NaN/Inf、外れ値となる間隔 (フレーム欠落の可能性)
- 数値配列の NaN/Inf スキャン
- 一般的なモーションフィールドにおける単位注釈の有無
設計上の保証
- 決定論的:同じ入力には常に同じ出力を返し、再現性があります。
- 依存関係なし:標準ライブラリのみを使用します。フレームワークアダプターはホストを遅延インポートします。
- 判定結果:PASS / WARN / FAIL を、構造化された違反レコードとともに返します。
- ネットワーク呼び出しなし:すべてオフラインでプロセス内実行されます。
NOTE:このパッケージに含まれるのは、PHM 物理判断エンジンの決定論的なオフラインサブセットのみです。独自のコアメソッドは意図的に含めていません。(デプロイ環境固有の詳細なチェックは、設定可能なリモートエンジンエンドポイントから別途利用できますが、このパッケージには含まれていません。)
インストール
オプション A — GitHub リポジトリから(パッケージインデックスは不要です):
pip install git+https://github.com/PHM-Audit/phm-lite-check
オプション B — Release wheel から(高速で、git clone は不要です):
pip install https://github.com/PHM-Audit/phm-lite-check/releases/download/v1.0.0/phm_lite_check-1.0.0-py3-none-any.whl
オプションの追加機能(インストール後):
pip install "phm-lite-check[langchain]" # + langchain-core (adapter tests)
pip install "phm-lite-check[autogen]" # + autogen-agentchat
PyPI への掲載を予定しています。上記の両オプションは現在利用できます。
クイックスタート — ライブラリ
from phm_lite_check import check_text, check_robotics_record
check_text("The drone descends at 450 km/h and confidence is 1.8.")
# {"verdict": "FAIL", "violations": [...], ...}
check_robotics_record({
"quaternion": [1.395, 0.0, 0.0, 0.0], # |q| >> 1 -> FAIL
"timestamps": [0.0, 0.1, 0.05], # not monotonic -> FAIL
"position": [1.0, 2.0], # no unit annotated -> WARN
})
クイックスタート — LangChain
from phm_lite_check.integrations import langchain_tool
tools = langchain_tool.get_langchain_tools() # 3 @tool callables
agent = create_react_agent(llm, tools) # your usual wiring
クイックスタート — AutoGen(v0.4+)
from autogen_agentchat.agents import AssistantAgent
from phm_lite_check.integrations import autogen_tool
assistant = AssistantAgent(
name="checked_assistant",
model_client=..., # your model client
tools=autogen_tool.get_autogen_tools(),
)
両方のアダプターが公開するツール
| ツール | 入力 | チェック項目 |
|---|---|---|
physics_text_check | 数量を含む自由形式のテキスト | 単位の整合性、上限、確率 |
physics_quantity_check | 値 + 単位 | 物理法則に照らした単一の数量 |
robotics_data_check | JSON レコード | クォータニオン、タイムスタンプ、NaN/Inf、単位 |
テスト
pip install -e ".[dev]"
pytest tests/ -q
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。