MCP法医分析仪
协议驱动人工智能审计的参考实现
🗺️ 主权金库之旅
此存储库是 胶水代码结束 博客系列。它展示了 设计安全 敏感数据在由高推理云模型分析之前在本地处理的架构。
新来的? 从我们的开始 沃克休斯医学博士 查看每篇博客文章如何映射到代码。
🏛️ 设计原则
该项目展示了现代人工智能系统的五种核心模式:
- 当地第一印象: 重视觉处理发生在你的金属上,而不是在云中。
- 标准化工具发现: 代理通过MCP动态发现功能——无需为每个新工具定制“粘合代码”。
- 主权气闸: 一个多层治理门(Redactor+Guardian),控制离开网络的内容。
- 认知预算: 语义路由,为任务使用最具成本效益的模型。
- 可评估情报: 一个“LLM即法官”框架,通过数据而不是“振动”来证明可靠性。
🐍 为什么选择TypeScript+Python?
我们使用a Polyglot建筑 以反映真实的企业环境:
- TypeScript(MCP服务器): 非常适合定义MCP生命周期、严格类型模式(Zod)和高性能服务器端逻辑。
- Python(编排器): 代理框架、数据科学和本地SLM交互的行业标准(Ollama/Presidio)。
⚡ 5分钟演示
通过预配置的审核查看“主权保险库”的运行情况:
# Analyze a sample artifact locally using the quick-start script
python examples/quick_start.py --artifact ./test_images/sample.jpg______________________________________________________________________
建筑
graph TB
subgraph Intelligence_Layer [Orchestration & Reasoning]
A[Agent Supervisor]
B[Auditor Persona]
C[The Judge]
end
subgraph Capability_Layer [MCP Tools & Resources]
D[Librarian: Bibliography Lookup]
E[The Eye: Local Vision]
end
subgraph Governance_Layer [The Airlock]
F[Sovereign Redactor]
G[The Guardian: HITL]
H[Final Forensic Report]
end
A --> D
A --> E
D --> B
E --> F
F --> B
B --> G
G --> H
H --> C
style Intelligence_Layer fill:#e3f2fd,stroke:#1565c0
style Capability_Layer fill:#e8f5e9,stroke:#2e7d32
style Governance_Layer fill:#fce4ec,stroke:#c2185b
style G fill:#f06292,stroke:#880e4f,stroke-width:3px______________________________________________________________________
这 MCP法医分析仪 是一个模型上下文协议(MCP)服务器,旨在促进深入的档案审计和元数据协调。作为建筑的基石 胶码系列结束,它展示了如何从脆弱的API集成转变为标准化的、基于发现的人工智能架构。
珍本书认证是我们的主要案例研究,用于演示通用的AI取证架构。
🏛️ 建筑:“零胶水”堆栈
与传统的集成不同,此服务器允许任何兼容MCP的代理(Claude、Oracle 26ai、本地SLM)动态发现取证工具,而无需自定义代码。
该项目遵循企业AI网格模式,将智能(代理)与能力(MCP服务器)解耦。它旨在从本地“法医洁净室”扩展到使用Oracle 26ai进行不可变审计跟踪和行级安全的企业级治理环境。
⚖️ 可靠性和可观察性
我们通过实施 法学硕士作为法官 框架。
- 黄金数据集: 用于评估代理绩效的一组基本事实法医案例。
- 自动评估: 每一个架构更改都由一个推理能力很强的“判断代理”进行审核,以确保取证准确性的零回归。
- 结构化日志记录: 所有提供者错误和推理链都会被捕获以进行事后分析,从而避免无声的失败。
👁️ 局部多模态视觉(3.1后)
分析仪使用 Llama 3.2-愿景 通过Ollama执行本地OCR和物理工件检查。这确保了敏感文档的高分辨率图像永远不会离开您当地的“洁净室”
- 能力: 手写转录、纸张老化分析和标题页布局验证。
- 延迟注意事项: CPU上的本地视觉是资源密集型的。系统默认为 300秒超时 以适应深度法医扫描。
- 配置: 确保Ollama正在运行
llama3.2-vision(或类似的多模式模型)。
🛡️ 红人(后3.2)
🛡️ Redactor(3.2后——PII清理)
这 主权红演员 实施“云不可知”安全气闸。在云出口之前,它会自动从视觉上下文中清除PERSON、LOCATION和ORGANIZATION实体。
- 默认安全: 任何未明确标记为的提供者
LOCAL(例如,Anthropic、OpenAI)会触发强制编辑。 - 精密屏蔽: 使用A 允许列表 (标题、作者、出版商)在隐藏PII的同时保留取证元数据。
- 容错性: 实现基于哨兵的“安全失败”模式——如果NLP引擎无法加载,系统会警告用户,并继续进行未经编辑的审计,而不是崩溃。
设置:
# Uncomment the PII section in examples/requirements.txt, then:
pip install -r examples/requirements.txt
python -m spacy download en_core_web_lg编排者懒洋洋地加载Redactor;如果缺少依赖项,云运行将继续进行,而无需清理PII。请参阅 examples/redactor.py.
🛡️ 循环中的人类(卫报)
编排器实现 治理 对于高风险的发现:
- 触发: 当分析师发现严重程度较高的差异时,报告不会立即定稿。
- 握手: 系统会提示用户: *你授权这项法医调查结果吗?(是/否)*.
- 治理: 如果 *是*,调查结果最终确定。如果 *不*,它已被标记
DISPUTED_BY_HUMAN并移至“需要进一步调查”。 - 使用
--no-guardian跳过CI或非交互式运行(例如评估器)。
💰 认知预算(会计)
为了管理企业规模,我们实施 语义路由:
- 分层智能: 请求按复杂性分类。简单的任务被路由到本地SLM(Phi-4/Llama 3.2),而复杂的取证任务则升级到Claude 3.5。
- 成本优化: 这种方法将推理成本降低了80%,而不会牺牲重要的高端推理。
建筑师摘要: 该实现解决了企业人工智能的三个“最后一英里”问题:标准化(通过MCP)、可靠性(通过自动化的LLM-as-a-Jegister)和可持续性(通过分层智能路由)。它将人工智能从脆弱、高成本的实验转变为受控、成本优化的基础设施。
🛠️ 特性
- 发现第一: 实现完整的MCP生命周期(握手->清单->执行)。
- 归档工具: 元数据交叉引用和水印验证的专用功能。
- Polyglot就绪: 内置TypeScript,旨在由基于Python的代理框架编排。
⚙️ 配置和提示
代理逻辑与执行引擎解耦。系统指令在中管理 config/prompts.yaml,允许对提示版本进行A/B测试和特定于模型的调优,而无需重新部署代码。
🚀 快速开始
安装
npm install
npm run build🏠 Edge AI:使用SLM在本地运行
此分支演示了“法医洁净室”设置,将推理从云端移动到本地计算机。
先决条件
- 奥拉马: 下载并安装Ollama.
- 型号: 拉取默认模型(或您选择的其他模型):
ollama pull llama3.2编排器默认为 llama3.2;对于其他型号(如phi4),设置 LLM_MODEL (见下文)。
运行本地编排器
要使用本地SLM运行多代理团队,请执行以下操作:
python examples/orchestrator.py --provider ollama要使用其他模型或Ollama主机,请设置环境变量:
LLM_MODEL=phi4 python examples/orchestrator.py --provider ollama
OLLAMA_HOST=http://192.168.1.10:11434 python examples/orchestrator.py --provider ollama环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
OLLAMA_VISION_TIMEOUT_MS | 局部视觉处理超时 | 300000 (5分钟) |
PII_REDACTION_ENABLED | 切换主权Redactor | true |
注意:SLM需要显式的指令调优。编排器包括一个优化的系统提示,以帮助小型模型有效地处理MCP JSON模式。
运行法官
python examples/evaluator.py与会计师一起运行(语义路由器)
按复杂性路由请求以节省预算——简单的查询使用本地SLM,复杂的取证任务使用云模型:
python examples/router.py --query "Look up The Hobbit" --title "The Hobbit" --author "Tolkien"
python examples/orchestrator.py --use-accountant --query "Compare points of issue and binding across editions" --title "The Great Gatsby"通过配置路由 ACCOUNTANT_MODEL (分类模型), ACCOUNTANT_CLASSIFICATION_PROVIDER (默认值:ollama;使用 lm_studio 如果只有LM Studio可用), ACCOUNTANT_LEVEL_1_PROVIDER, ACCOUNTANT_LEVEL_2_PROVIDER.
