PHM(Physics-based Hallucination Mitigation)是一个AI Agent运行时校验层。它不是又一个AI Agent,而是让所有AI Agent不撒谎的基础设施。
基于物理确定性计算,PHM用确定性引擎替代概率性模型输出,在Agent生成响应后逐数字核对,发现编造立即拦截。
核心指标:
- 静态测试3,140次:幻觉率1.0%(95%CI 0.5%-1.8%)
- 动态测试815场景:0次幻觉泄露(95%CI上限0.37%)
- 30种攻击模式(权威诱导/假数学/虚假引用/跨语言等)
- 无PHM幻觉率51.7% → 有PHM 0%泄露
- 计算标准差:1.33×10⁻¹⁵(零方差,确定性)
- 总成本:约61元人民币
- 零GPU、零训练参数、零依赖
PHM采用3-Agent协同闭环,每个Agent有独立职能、独立Skill集,通过JSON上下文链式传递:
┌─────────────────────────────────────────────────────────────────┐
│ PHM Multi-Agent 闭环 │
│ │
│ ┌──────────────┐ JSON ┌──────────────┐ text │
│ │ Agent A1 │ 物理量 │ Agent A2 │ 报告 │
│ │ AnalysisAgent│──────────────→│ Generation │───────────────│
│ │ │ {d_eff,η, │ Agent │ 自然语言 │
│ │ 3 Skills: │ phase,...} │ │ │
│ │ ·network_ │ │ 2 Skills: │ ┌─────────────┐
│ │ analysis │ │ ·report_gen │ │ Agent A3 │
│ │ ·phase_ │ │ ·constrained │ ┌─→│Verification │
│ │ detection │ │ writing │ │ │ Agent │
│ │ ·risk_ident │ └──────────────┘ │ │ │
│ └──────────────┘ verified? │ │ 3 Skills: │
│ ↑ ┌───────┐ │ │ ·number_ │
│ │ ┌──────│通过? │───────┘ │ extraction │
│ │ correction │ no └───────┘ │ ·grounded_ │
│ │ prompt (max 2 retries) │ │ check │
│ └───────────────────────────┘ │ ·correction │
│ │ yes └─────────────┘
│ ↓ │
│ 输出报告 + 校验通过 │
│ │
│ 上下文传递: JSON (A1→A2) → text (A2→A3) → JSON (A3反馈) │
│ 执行证据: execution_log.json (每步含timestamp/elapsed_ms/状态) │
└─────────────────────────────────────────────────────────────────┘
| Agent | 职能 | Skills | 输入 | 输出 | 失败处理 |
|---|---|---|---|---|---|
| A1 AnalysisAgent | 物理引擎计算 | network_analysis, phase_detection, risk_identification | networkx.Graph | JSON {d_eff, η, phase, hidden_risks} | 图为空→降级返回空结果 |
| A2 GenerationAgent | LLM报告生成 | report_generation, constrained_writing | JSON (来自A1) | str (自然语言报告) | API失败→降级simulated模式 |
| A3 VerificationAgent | 逐数字校验 | number_extraction, groundedness_check, correction | str + dict (ground truth) | JSON {verified, violations} | 文本无数值→verified=False |
| Skill | 所属Agent | 输入→输出 | 调用条件 | 失败处理 |
|---|---|---|---|---|
network_analysis |
A1 | Graph → JSON拓扑统计 | 用户请求含网络数据 | 图为空→返回空结果+降级提示 |
phase_detection |
A1 | Graph → {d_eff, η, phase} | network_analysis完成 | d_0=0→η=0+标注 |
risk_identification |
A1 | Graph → 隐蔽风险节点列表 | phase_detection完成 | 图<3节点→返回空列表 |
report_generation |
A2 | JSON → str报告 | A1输出到达 | API失败→降级simulated |
groundedness_check |
A3 | str+dict → {verified,violations} | A2报告生成后 | 无数值→verified=False |
| 维度 | 实现 | 位置 |
|---|---|---|
| Trace | 每次执行生成唯一run_id,每步记录agent_id+timestamp+elapsed_ms |
agents/execution_log.json |
| Log | 全流程日志:Agent调用链+上下文传递keys+校验结果+重试次数 | agents/execution_log.json |
| Metrics | 每Agent耗时(ms)、校验通过率、违规数、重试次数 | execution_log.json → stats字段 |
| Health | GET /health 端点,返回引擎状态+确定性指标 | demo/app.py → /health |
# 查看执行Trace
python3 agents/orchestrator.py --log-only
# 输出示例: [2026-08-18T01:23:45Z] run_1723934567890 → verified上下文通过JSON传递,全流程日志可审计。
phm_upload/
├── README.md ← 本文件
├── CLOSED_SOURCE_LIST.md ← 闭源清单
├── demo.html ← 可视化展示页面
├── preview.png ← 预览图
├── demo/ ← 可交互Demo(FastAPI)
│ ├── app.py ← FastAPI后端(/analyze /verify /health)
│ ├── Dockerfile ← Docker一键部署
│ ├── requirements.txt
│ ├── README.md
│ └── ui/index.html ← 交互式Web前端
├── src/ ← 开源代码
│ ├── runtime_verifier.py ← 运行时校验器(零依赖)
│ ├── demo.py ← 可运行Demo(含迷你物理引擎)
│ └── multidomain_experiment.py ← 5领域横向扩展实验(含replay复现模式)
├── agents/ ← 多Agent框架
│ ├── __init__.py
│ ├── orchestrator.py ← 3-Agent编排器
│ └── execution_log.json ← 执行日志(3个场景)
├── tests/ ← 测试套件
│ └── run_all_tests.py ← 评委一键运行(12/12通过)
├── data/ ← 测试结果数据
│ ├── all_tests_final_815.json ← 动态815场景结果
│ ├── all_tests_combined_report.json
│ ├── test3000_current_report.json
│ ├── r2000_final_report.json
│ ├── test100_results.json
│ ├── sample_test_results.json
│ └── multidomain/ ← 5领域横向扩展实测(2026-08-20)
│ ├── multidomain_results.json ← 总表(5领域合并)
│ ├── {social|power|aviation|bio|brain}_result.json ← 分域结果
│ ├── llm_aviation_report.json ← L3闭环:真实航空网→LLM→校验通过
│ ├── case118.m ← IEEE 118母线数据(MATPOWER官方)
│ ├── routes.dat / airports.dat ← OpenFlights全球航线(公开数据)
│ └── *.json ← 历史对照数据(ABIDE组级验证)
├── examples/ ← 示例输入输出
│ ├── sample_network.json ← 示例网络数据
│ ├── sample_ground_truth.json ← 示例ground truth
│ └── sample_llm_response.txt ← 示例LLM响应
└── docs/ ← 文档
├── PHM_Multidomain_Validation.pdf ← 横向扩展验证报告(5领域实测,2026-08-20)
├── PHM_Technical_Whitepaper.pdf ← 技术白皮书(25页)
├── PHM_Audit_Report.pdf ← 对抗测试审计报告(12页)
├── PHM_Engineering_Doc.pdf ← 工程体系文档(9页)
├── PHM_Biomedical_Case_Study.pdf ← 生物医药案例(11页)
├── PHM_Agent_Architecture.pdf ← 多Agent架构文档
├── PHM_Pitch_Deck.pdf ← Pitch Deck(8页)
├── PHM_Skill_Registry.md ← Skill清单
└── PHM_Industry_Replication.md ← 行业可复制性说明
# 1. 运行测试套件(12个测试,<1秒)
python3 tests/run_all_tests.py
# 1b. 复现5领域横向扩展汇总表(不需要闭源引擎,读已提交结果)
python3 src/multidomain_experiment.py replay
# 2. 运行多Agent编排Demo
python3 agents/orchestrator.py
# 3. 运行对比Demo(裸LLM vs PHM校验)
python3 src/demo.py
# 4. 启动可交互Web Demo(FastAPI)
cd demo && pip install -r requirements.txt
uvicorn app:app --host 0.0.0.0 --port 8000
# 浏览器打开 http://localhost:8000/ui
# 5. Docker一键启动
cd demo && docker build -t phm-demo .
docker run -p 8000:8000 phm-demo
# 6. 浏览器打开静态可视化展示
open demo.html同一套物理引擎(零参数修改),喂5个完全不同领域的真实公开数据:
| 领域 | 真实数据 | 规模 | d_eff | η | 物理相 | 领域对照 |
|---|---|---|---|---|---|---|
| 社交 | Zachary空手道俱乐部(1977真实分裂事件) | 34节点 | 6.65 | 0.43 | 不可纠错 | ✅ 两位分裂领袖全命中 |
| 电力 | IEEE 118母线(MATPOWER官方) | 118节点 | 5.32 | 0.36 | 不可纠错 | ◐ 3/10与最大负荷母线重合 |
| 航空 | OpenFlights全球航线 | 3161节点 | 6.95 | 0.44 | 不可纠错 | ✅ Top10全为真实全球枢纽(AMS/FRA/CDG/ISL/ATL…) |
| 生物 | STRING v12.0人类PPI(≥970高置信) | 8138节点 | 8.45 | 0.51 | 不可纠错 | ✅ Top10=核糖体蛋白(DepMap必需基因核心) |
| 脑 | ABIDE 100人真实fMRI(AAL 116脑区) | 106节点 | 26.29 | 0.89 | 可纠错 | ✅ 3个hub脑区与历史介数分析重合 |
发现的跨域规律:稀疏结构网络(电网/航线/PPI,d_eff 5-8)落在脆弱区——与级联失效文献一致;致密脑功能网络(d_eff 26)落在冗余区——与脑损伤耐受的神经科学一致。一个引擎,两种相,全部与领域已知事实方向吻合。
L3闭环实测(data/multidomain/llm_aviation_report.json):真实全球航空网络 → 物理引擎计算 → LLM生成风险报告 → 运行时校验。结果:18个数字全部有据、0违规;LLM主动拒绝编造引擎未提供的数据("关闭机场的后果无法量化,盘古未提供")——这正是PHM范式的目标行为。
复现方式:python3 src/multidomain_experiment.py replay(不需要闭源引擎)
| 评审维度(25%) | 对应材料 |
|---|---|
| 场景价值与行业可复制性 | data/multidomain/(5领域真实数据实测) + docs/PHM_Industry_Replication.md + docs/PHM_Biomedical_Case_Study.pdf |
| 多Agent协同与自主闭环 | agents/(3-Agent框架+执行日志)+ docs/PHM_Agent_Architecture.pdf |
| Skill工程体系与生态复用 | docs/PHM_Skill_Registry.md(5个Skill)+ src/(开源代码+多领域实验脚本) |
| 工程落地与运行验证 | demo/(FastAPI可交互Demo+Docker)+ tests/(12/12通过)+ docs/PHM_Engineering_Doc.pdf + 8138节点33秒性能实测 |
| 安全审计 | docs/PHM_Audit_Report.pdf(25种攻击模式)+ docs/PHM_Technical_Whitepaper.pdf |
当前AI Agent最大的问题不是"不够聪明",是"看起来很对但实际在编造"。
| 问题 | 现有方案 | 局限 |
|---|---|---|
| LLM编造数字 | RLHF微调 | 仍依赖模型自觉性,不可审计 |
| LLM引用幻觉 | RAG检索 | 检索结果本身可能被误用 |
| Agent执行错误 | Guardrails | 规则模板,无法处理数值正确性 |
PHM换了一个范式:不信任LLM,在输出后用物理引擎逐数字核对。
src/runtime_verifier.py:运行时校验器,纯Python标准库实现,零依赖src/demo.py:可运行Demo,含简化版分析引擎agents/orchestrator.py:多Agent编排框架tests/run_all_tests.py:完整测试套件data/:全部测试结果数据(JSON格式,可复现)examples/:示例输入输出
- 物理引擎核心算法(面积律映射+曲率计算+相变检测)
- 物理约束Prompt(8条规则的精确措辞)
- QEC优化器核心
PHM是Agent基础设施——不与任何Agent竞争,而是让所有Agent更可信。可以接入任何LLM(DeepSeek/GPT/Claude/Gemini),任何Agent框架(LangChain/AutoGPT/CrewAI)。
- 参赛团队:PHM团队(1人)
- 身份:个人开发者
- Python 3.12 + NetworkX + SciPy + NumPy
- DeepSeek V4-Flash API(LLM层,可选)
- STRING v12.0(PPI数据库)
- cBioPortal API(TCGA临床数据)
- 零PyTorch、零GPU、零训练参数
- 确定性输出:std = 1.33×10⁻¹⁵