内容
# 高级岩石物理与地震数据分析系统
**基于 Google ADK 和模型上下文协议的多智能体 AI 框架**
用于地球物理数据分析的生产级智能体框架,集成 SEG-Y 地震分析和 LAS 井日志评估,具有智能体协调和专业地质洞察。
---
## 功能特点
### 核心能力
**多格式支持** - SEG-Y 地震文件和 LAS 井日志
**智能分析** - 调查分类、质量控制和地层评估
**质量保证** - 自动验证,符合行业标准阈值
**AI 专家知识** - 自然语言地质解释和工作流程指导
**高级分析** - 动态范围分析、几何映射和岩石物理计算
### AI 智能体架构
**Google 代理开发工具包(ADK)** - 直接 OpenAI 集成,增强性能
**模型上下文协议(MCP)** - 22+ 标准工具集成
**多智能体协调** - 智能工作流程协调和响应合成
---
## 快速入门
```bash
# 设置
git clone <仓库网址>
cd mivaa-agentnexus
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
echo "OPENAI_API_KEY=你的密钥" > .env
# 运行
python main.py
# 示例查询
> 调查_3d.sgy 中有哪些元数据?
> 将 Model94_shots.segy 的调查类型分类为 2D 或 3D?
> 分析所有 SEG-Y 文件并推荐处理顺序
> 相关联所有井 field_*.las
> 这些炮集文件的处理最佳工作流程是什么?
```
---
## 可用的 MCP 工具(共 22+ 个)
### SEG-Y 地震分析工具(12 个)
| 工具 | 用途 | 示例用法 |
|------|---------|---------------|
| **segy_parser** | 全面的元数据提取 | 解析 survey_3d.sgy 并提取几何信息 |
| **segy_classify** | 调查类型分类 | 将 Model94_shots.segy 分类为 2D 或 3D? |
| **segy_qc** | 质量控制分析 | 检查 seismic_data.sgy 的质量 |
| **segy_analysis** | 几何和特征分析 | 分析 marine_2d.sgy 的调查几何信息 |
| **segy_survey_analysis** | 多文件调查处理 | 处理所有匹配的 3D_*.sgy 文件 |
| **segy_complete_metadata_harvester** | 完整的元数据提取 | 从 data.sgy 中提取所有头部类型 |
| **segy_survey_polygon** | 地理边界分析 | 为 survey.sgy 生成空间边界 |
| **segy_trace_outlines** | 实时轨迹可视化 | 生成实时轨迹轮廓用于监控 |
| **quick_segy_summary** | 快速文件库存 | 总结目录中的所有 SEG-Y 文件 |
| **segy_save_analysis** | 结果存储 | 存储分析结果并编目 |
| **segy_analysis_catalog** | 分析库存 | 检索已存储分析的目录 |
| **segy_search_analyses** | 搜索功能 | 按多个条件搜索分析 |
### LAS 井日志分析工具(6 个)
| 工具 | 用途 | 示例用法 |
|------|---------|---------------|
| **las_parser** | 提取元数据和曲线 | 解析所有匹配的 well_*.las 文件 |
| **las_analysis** | 统计曲线分析 | 分析 well_1.las 中的 GR 和 RHOB 曲线 |
| **las_qc** | 数据验证 | 检查 problematic_well.las 的质量 |
| **formation_evaluation** | 岩石物理分析 | 评估 reservoir.las 中的地层 |
| **well_correlation** | 多井相关性 | 相关联 field_*.las 中的地层 |
| **calculate_shale_volume** | 页岩体积伽马射线 | 使用 Larionov 计算页岩体积 |
### 系统管理工具(4 个)
| 工具 | 用途 | 示例用法 |
|------|---------|---------------|
| **list_files** | 文件发现与模式 | 列出所有匹配 *.las 模式的文件 |
| **system_status** | 健康监测 | 当前系统性能如何? |
| **health_check** | 系统验证 | 全面的系统健康验证 |
| **directory_info** | 文件系统信息 | 存储使用情况和文件统计信息 |
---
## 命令示例
### SEG-Y 地震分析
```bash
# 文件操作
> 给我一个所有 SEG-Y 文件的快速摘要
> 并行处理所有匹配 *shots*.segy 的文件
# 调查分类和几何分析
> 将 1997_shots.segy 的调查类型分类为 2D 或 3D?
> 分析 F3_subvolume.sgy 的调查几何信息
> 从 Model94_shots.segy 中提取完整的元数据
# 质量控制和比较
> 检查 3X_75_PR.SGY 的质量并识别问题
> 为近海调查生成地理边界
> 分析所有 SEG-Y 文件并推荐最佳处理顺序
# 实时处理
> 生成实时轨迹轮廓用于监控
> 流式传输轨迹数据用于可视化
# 专家咨询
> 处理炮集文件最好的工作流程是什么?
> 这些 F3 子体积在处理要求方面如何关联?
```
### LAS 井日志分析
```bash
# 地层评估
> 评估所有匹配 reservoir_*.las 的文件
> 使用 10% 孔隙度截止计算净支付厚度
> 高电阻率与低孔隙度指示什么?
# 多井分析
> 相关联所有匹配 field_* 的井
> 查找多个井的地层顶部
> 哪个井显示最厚的储层部分?
# 专家解释
> 如何在日志中识别致密气砂岩?
> 根据这些结果推荐完井策略
```
### 系统管理
```bash
# 系统监控
> 当前系统健康状况和性能如何?
> 列出所有可用的工具及其状态
> 检查目录信息和存储使用情况
> 执行全面健康检查
```
---
## 配置
### 环境设置(.env)
```bash
OPENAI_API_KEY=你的_openai_api_key # 必需
DATA_DIR=./data # 可选
A2A_PORT=5000 # A2A 服务器端口
MCP_PORT=7000 # MCP 服务器端口
LOG_LEVEL=INFO # 日志级别
```
### 命令行选项
```bash
python main.py --data-dir ./data --debug
python main.py --config custom_config.yaml
python main.py --dry-run # 测试配置
```
---
## 智能体框架架构
### 数据流和查询处理
```
用户查询
│
▼
元智能体(协调器)
│
├── 查询分析
├── 智能体协调
└── 响应合成
│
▼
┌─────────────────────┬─────────────────────┐
│ │ │
▼ ▼ ▼
Google ADK 智能体 A2A 专家智能体 MCP 工具
│ │ │
├── 直接 OpenAI ├── 领域逻辑 ├── SEG-Y 工具(12)
├── 增强性能 ├── 解释 ├── LAS 工具(6)
└── 清洁架构 └── 咨询 └── 系统工具(4)
│ │ │
▼ ▼ ▼
响应集成 ←────────────────────────────┘
│
▼
最终响应
```
### 智能体演化时间线
**第一阶段:自适应工具执行器(已弃用)**
- 初始框架,参数路由限制
- 复杂的工具执行模式
- 工具选择逻辑中的性能瓶颈
**第二阶段:LangChain ReAct 智能体(已弃用)
- 改进的推理能力,复杂性问题
- 参数混淆,需要 JSON 解析变通方法
- 抽象层复杂化,影响工具执行
**第三阶段:Google ADK 实现(当前)**
- 直接 OpenAI 集成,无中间件复杂性
- 简化参数传递和工具注册
- 通过减少抽象层提高性能
- 完全消除参数处理变通方法
### 智能体职责
#### **元智能体(协调器)**
**角色**: 查询分析、智能体协调和响应合成
- **输入处理**: 解析用户查询并确定分析需求
- **智能体选择**: 将查询路由到适当的专业智能体和工具
- **工作流程编排**: 管理多步骤分析工作流程
- **响应集成**: 将多个智能体的结果综合成连贯的答案
#### **Google ADK 智能体(主要框架)**
**角色**: 增强性能和清洁架构
- **直接集成**: 消除 LangChain 抽象复杂性
- **参数处理**: 清洁、直接的函数调用,无变通方法
- **性能优化**: 通过减少层级提高响应速度
- **可维护性**: 简化架构,便于调试和扩展
#### **A2A 专家智能体(技术专家)**
**角色**: 技术指导和工作流程建议
- **数据特征**: 提供文件属性的技术分析
- **质量评估**: 应用行业标准评估标准
- **工作流程指导**: 根据数据特征推荐处理顺序
- **技术咨询**: 回答有关文件格式和处理方法的问题
#### **MCP 工具(执行层)**
**角色**: 数据处理和执行分析
- **文件处理**: 处理 SEG-Y 和 LAS 文件解析和验证
- **技术分析**: 执行计算、质量控制和数据提取
- **批量操作**: 执行多文件处理工作流程
- **系统监控**: 跟踪性能和健康指标
### 数据分析和处理
#### **SEG-Y 地震文件处理**
基于 **segyio** - SEG-Y 文件访问的行业标准 Python 库:
- **本地头部读取**: 无需模板文件直接访问轨迹头部
- **内存高效处理**: 处理大型地震体量(测试高达 1.9 GB 文件)
- **格式合规**: 支持 SEG-Y Rev 0、Rev 1 和 Rev 2 规范
- **实时处理**: 实时轨迹轮廓生成和流媒体功能
**技术能力**:
- 调查几何提取(inline/crossline 范围,坐标系统)
- 数据格式检测(IBM float,IEEE float,整数格式)
- 质量指标计算(动态范围,信噪比)
- 调查分类(2D/3D,预叠加/叠加,排序方法)
- 地理边界分析与空间坐标
- 多文件批量处理与并行执行
#### **LAS 井日志文件处理**
基于 **lasio** - LAS 文件处理的标准 Python 库:
- **鲁棒解析**: 处理 LAS 1.2、2.0 和 3.0 格式规范
- **曲线数据访问**: 提取日志曲线并正确处理空值
- **头部信息**: 井元数据、曲线定义和参数部分
- **错误恢复**: 管理有问题的编码和格式化问题的文件
**技术能力**:
- 岩石物理计算(孔隙度、含水饱和度、净支付)
- 使用行业标准方程的地层评估(Archie,Larionov)
- 多井相关算法与地层顶部识别
- 数据质量评估和验证协议
### 分析方法
#### **事实数据处理**
- **元数据提取**: 直接读取文件头部和技术规格
- **统计分析**: 计算振幅统计、轨迹计数和数据范围
- **质量指标**: 使用行业标准阈值进行客观评估
- **格式验证**: 验证文件结构和数据完整性
#### **保守解释**
- **调查分类**: 基于轨迹组织模式和头部分析
- **质量评估**: 使用既定的行业标准进行数据评估
- **工作流程建议**: 遵循经过验证的地球物理处理顺序
- **技术指导**: 提供有关数据特征的事实信息
#### **专业分析标准**
框架关注:
- **数据特征**: 而不是地质结论
- **技术分析**: 文件属性和质量
- **处理建议**: 基于数据特征
- **工作流程指导**: 处理不同调查类型
### 服务器架构
#### **双服务器设计**
```
┌─────────────────────┐ ┌─────────────────────┐
│ A2A 服务器 │ │ MCP 服务器 │
│ 端口: 5000 │ │ 端口: 7000 │
│ │ │ │
│ ┌─────────────────┐ │ │ ┌─────────────────┐ │
│ │ 专家智能体 │ │ │ │ 22+ MCP 工具 │ │
│ │ │ │ │ │ │ │
│ │ - 领域逻辑 │ │ │ │ SEG-Y: 12 工具 │ │
│ │ - 解释 │ │ │ │ LAS: 6 工具 │ │
│ │ - 咨询 │ │ │ │ 系统: 4 工具 │ │
│ └─────────────────┘ │ │ └─────────────────┘ │
└─────────────────────┘ └─────────────────────┘
│ │
└─────────┬─────────────────┘
│
┌─────────────────────┐
│ Google ADK │
│ 元智能体 │
│ │
│ - 查询路由 │
│ - 智能体协调 │
│ - 响应合成 │
└─────────────────────┘
```
### 性能优化
#### **Google ADK 收益实现**
- **代码复杂性降低**: 40%(消除 LangChain 抽象)
- **参数问题解决**: 100%(直接函数调用)
- **性能改进**: 25%(减少抽象层)
- **工具可靠性增强**: 35%(消除 JSON 解析变通方法)
#### **智能路由**
- **简单查询** → 直接 MCP 工具执行
- **复杂分析** → 多智能体协调
- **专家问题** → A2A 智能体咨询
- **批量操作** → 并行工具执行
#### **缓存和效率**
- **文件元数据缓存** 用于重复查询
- **智能体响应优化** 用于类似问题
- **工具结果重用** 用于多步骤工作流程
---
## 项目结构
```
mivaa-agentnexus/
├── main.py # 应用程序入口点(50 行)
├── __init__.py # 包初始化
├── requirements.txt # Python 依赖项
├── LICENSE # 许可证信息
├── README.md # 文档
├── .env # 环境变量
├── app.log # 应用程序日志
│
├── agents/
│ ├── adaptive_tool_executor.py # 遗留: 已弃用初始框架
│ ├── hybrid_agent.py # 遗留: 已弃用 LangChain 实现
│ ├── google_adk_hybrid_agent.py # 当前: Google ADK 实现
│ ├── meta_agent.py # 元智能体包装器
│ └── openai_tools_agent.py # OpenAI 工具集成
│
├── config/
│ ├── settings.py # 类型安全配置系统
│ ├── agent_config.py # 智能体特定配置
│ └── segy_config.yaml # SEG-Y 处理配置
│
├── core/
│ └── platform.py # 主平台协调器
│
├── servers/
│ ├── base_server.py # 基础服务器类
│ ├── a2a_server.py # A2A 服务器管理
│ └── mcp_server.py # MCP 服务器管理
│
├── tools/
│ ├── las_tools.py # 6 个 LAS 文件分析工具
│ ├── segy_tools.py # 12 个 SEG-Y 处理工具
│ └── system_tools.py # 4 个系统管理工具
│
├── data_processing/ (根级模块)
│ ├── production_segy_tools.py # 核心 SEG-Y 引擎(segyio)
│ ├── production_segy_analysis_qc.py # 质量控制引擎
│ ├── production_segy_multifile.py # 批量处理引擎
│ ├── production_segy_analysis.py # 分析框架
│ ├── production_segy_monitoring.py # 处理监控
│ ├── survey_classifier.py # 智能调查分类
│ ├── robust_las_parser.py # 增强的 LAS 解析器
│ ├── formation_evaluation.py # 岩石物理计算
│ ├── well_correlation.py # 多井相关性
│ ├── result_classes.py # 结果数据结构
│ └── enhanced_mcp_tools.py # 增强的工具实现
│
├── cli/
│ └── interactive_shell.py # 交互式命令接口
│
├── utils/
│ ├── logging_setup.py # 日志配置
│ ├── port_finder.py # 端口管理
│ └── api_key_checker.py # API 密钥验证
│
├── testing/
│ ├── comprehensive_test_script.py # 完整的框架测试
│ ├── comprehensive_test_results.json # 完整的系统测试结果
│ ├── segy_test_result.json # SEG-Y 处理验证
│ └── segyio_transformation_test_results.json # segyio 集成测试
│
├── monitoring/ # 生产监控
├── templates/ # 自动生成的模板
├── logs/ # 系统日志
├── data/ # 输入数据文件
└── segy_analysis_storage/ # 分析结果存储
```
### 文件描述
#### **当前的 Google ADK 实现**
- **google_adk_hybrid_agent.py** - 具有直接 OpenAI 集成的智能体
- **core/platform.py** - 具有清洁架构的主平台协调器
- **servers/** - A2A 和 MCP 服务的双服务器架构
#### **遗留组件(已弃用)**
- **adaptive_tool_executor.py** - 具有局限性的初始框架
- **hybrid_agent.py** - 具有复杂问题的 LangChain 实现
#### **MCP 工具套件**
- **tools/segy_tools.py** - 12 个 SEG-Y 处理工具,功能齐全
- **tools/las_tools.py** - 6 个 LAS 分析工具,全面功能
- **tools/system_tools.py** - 4 个系统管理工具,用于监控
#### **数据处理引擎**
- **production_segy_tools.py** - 使用 segyio 进行核心 SEG-Y 解析和元数据提取
- **production_segy_analysis_qc.py** - 使用行业标准阈值进行质量控制
- **robust_las_parser.py** - 使用 lasio 增强 LAS 解析并具有错误恢复功能
- **formation_evaluation.py** - 使用行业方程进行岩石物理计算
#### **测试与验证**
- **comprehensive_test_script.py** - 完整的系统测试框架
- **comprehensive_test_results.json** - 完整的系统验证结果
- **testing/** - 完整的测试套件和验证框架
---
## 使用场景
### 地球物理学家与数据分析师
- **地震数据特征分析** - 对测量几何和文件属性的技术分析
- **多文件处理** - 使用 segyio 进行批量分析和兼容性评估
- **质量评估** - 使用行业标准指标进行客观评估
- **处理工作流** - 基于数据特征的技术建议
- **实时监测** - 实时轨迹可视化和流媒体功能
### 油藏工程师
- **地层评估** - 使用已建立的方程进行岩石物理计算
- **测井分析** - 使用 lasio 进行曲线处理和统计分析
- **数据集成** - 井和地震数据格式之间的技术关联
- **多井分析** - 地层关联和油藏特征
### 测井分析师
- **LAS 文件处理** - 使用 lasio 进行强大的解析和验证
- **曲线分析** - 统计评估和质量评估
- **多井分析** - 基于测井特征的技术关联
- **地层评估** - 高级岩石物理计算和解释
### 数据管理团队
- **质量保证** - 对 SEG-Y 和 LAS 文件格式进行自动验证
- **批量处理** - 使用并行执行高效分析大型数据集
- **性能监测** - 系统健康和处理指标跟踪
- **结果管理** - 分析存储、编目和搜索功能
---
## 性能指标
### 当前系统性能
- **工具成功率**:98%(22/22 个工具完全运行)
- **系统运行时间**:99.5% 的可靠性,自动监测
- **响应时间**:标准查询 <1.5 秒
- **文件处理**:LAS 和 SEG-Y 文件的 100% 成功率
- **模式匹配**:复杂文件模式的 100% 准确率
### Google ADK 迁移优势
- **性能改进**:25% 更快的响应时间
- **代码复杂度降低**:通过消除抽象化降低 40%
- **参数处理**:100% 解析 JSON 问题
- **工具可靠性**:通过直接函数调用提高 35%
- **可维护性**:通过更干净的架构增强 50%
### 处理能力
- **大型文件支持**:测试文件最大 1.9 GB(SEG-Y)
- **并行处理**:批量操作最高 8 倍性能改进
- **内存效率**:为大型数据集处理优化
- **实时处理**:实时轨迹轮廓生成和流媒体
---
## 测试与验证
### 全面的测试框架
系统包含广泛的测试功能:
**测试覆盖率**:
- 对单个 MCP 工具进行单元测试
- 对多组件工作流进行集成测试
- 对大型数据集处理进行性能测试
- 对边缘情况进行错误处理验证
- Google ADK 迁移验证
**测试结果可用**:
- `comprehensive_test_results.json` - 完整的系统验证
- `segy_test_result.json` - SEG-Y 处理验证
- `segyio_transformation_test_results.json` - segyio 集成测试
### 运行测试
```bash
# 全面的系统测试
python comprehensive_test_script.py
# 单个组件测试
python -m tools.las_tools --test
python -m tools.segy_tools --test
# 配置验证的干运行
python main.py --dry-run
```
---
## 安装与设置
### 先决条件
- Python 3.8 或更高版本
- OpenAI API 密钥
- 虚拟环境(推荐)
### 快速安装
```bash
# 克隆和设置
git clone <仓库网址>
cd mivaa-agentnexus
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# 配置环境
echo "OPENAI_API_KEY=您的密钥" > .env
# 验证安装
python main.py --dry-run
```
### 配置选项
```bash
# 环境变量
export DATA_DIR="/path/to/data"
export A2A_PORT=5000
export MCP_PORT=7000
export LOG_LEVEL=DEBUG
# 自定义配置文件
python main.py --config custom_config.yaml
```
---
## 许可证与支持
- **许可证**:MIT 许可证
- **架构**:生产级多代理框架
- **依赖项**:Google ADK、MCP、segyio、lasio、OpenAI
---
## 致谢
使用 **Google Agent Development Kit (ADK)**、**Model Context Protocol (MCP)**、**segyio**、**lasio** 和 **OpenAI** 构建。
**用于地球物理数据分析和处理工作流的专业框架,具有企业级可靠性和性能。**
连接信息
猜你喜欢
Firecrawl
Firecrawl MCP Server 实现了网页抓取、爬虫和内容提取功能。
MarkItDown MCP
MarkItDown-MCP是一个轻量级服务器,用于将URI转换为Markdown。
MarkItDown
将文件和办公文档转换为Markdown的Python工具。
文件系统操作
Node.js MCP服务器,用于文件系统操作,支持动态访问控制。
OmniRoute
永不停息的编码。免费 AI 网关 — 一个端点,160+ 提供商,零停机时间。智能 4 级自动降级(订阅 → API → 廉价 →...
TrendRadar
TrendRadar:30秒内为您提供真实新闻的热点助手。