关于 PHM Physics Check
PHM Physics Check 是用于检查 LLM 输出和机器人数据物理合理性的离线库及本地 MCP 服务。它仅依赖 Python 标准库执行确定性检查,并生成结构化的 PASS、WARN 或 FAIL 判定。
主要功能
- 01量纲与单位一致性检查
- 02物理限值与概率验证
- 03运动学和守恒检查
- 04机器人四元数与时间戳检查
- 05结构化 PASS、WARN 和 FAIL 结果
- 06离线运行且无依赖
适用场景
- 01检查生成文本中的物理量
- 02验证机器人数据集记录
- 03标记无效单位或物理值
MCP 相关
通过 stdio 在本地运行,向 MCP 客户端提供 `physics_text_check`、`physics_quantity_check` 和 `robotics_data_check` 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
phm-lite-check
用于大模型输出和机器人 / 具身 AI 数据集的确定性物理合理性检查。零依赖,仅使用标准库,Python >= 3.8。
此软件包是一个由社区提供的独立库:它是 PHM 物理判断引擎的离线子集(有意排除专有核心方法)。Dify Marketplace 上列有一个配套插件(phm-physics-check)。
与 LangChain、AutoGen 或 Dify 无关联,也未获其认可或赞助。集成适配器由社区提供。
MCP 服务
此软件包也可作为本地 MCP 服务运行(stdio 传输)。安装后,将 MCP 客户端指向:
python3 -m phm_lite_check.mcp_server
提供三个工具: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,并附带结构化违规记录。
- 不进行网络调用:所有操作均在进程内离线运行。
注意:此软件包仅包含 PHM 物理判断引擎的确定性离线子集。有意排除专有核心方法。(部署专用的深度检查可通过可配置的远程引擎端点单独使用,本软件包不包含此功能。)
安装
选项 A — 从 GitHub 仓库安装(无需包索引):
pip install git+https://github.com/PHM-Audit/phm-lite-check
选项 B — 从 Release wheel 安装(更快,无需克隆 git 仓库):
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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。