项目简介
'AAS_extend' 项目旨在结合 Agents-SDK、AAS-BaSyx-Python 库以及 Model Context Protocol (MCP),构建一套能够为大型语言模型 (LLM) agent 提供上下文信息和工具能力的后端服务。它实现了对 Asset Administration Shell (AAS) 数据和多种外部数据源(HTTP, MySQL, 文件)的访问、处理和融合,使 LLM agent 能够理解和操作复杂的工业数据。
主要功能点
- AAS 数据交互: 通过 MCP 接口,允许 LLM agent 自然语言查询 AAS 模板,创建、更新、删除子模型及其属性。
- 外部数据集成: 提供对 HTTP API、MySQL 数据库、Excel 和 TXT 等本地文件的访问和处理能力,将外部实时或存档数据引入 agent 工作流程。
- 数据融合与处理: 支持数据的格式转换、算术逻辑运算,以及将处理后的数据准备用于构建新的 AAS 子模型。
- Prompt 优化: 利用模板嵌入等技术,优化 LLM 在处理 AAS 数据时的 token 使用效率。
- 模块化 MCP 服务: 将不同的功能封装为基于 MCP 的工具和资源,方便 agent 调用。
安装步骤
- 克隆仓库:
git clone https://github.com/vivial-noo/AAS_extend.git cd AAS_extend - 安装依赖: 确保安装了 Python 环境。项目依赖可能包括 'basyx-python-sdk'、'fastapi'、'uvicorn'、'mcp'、'openai'、'pydantic'、'openpyxl' 等。建议使用 pip 安装:
pip install -r requirements.txt # 如果存在 requirements.txt 文件 # 或者手动安装主要依赖 pip install basyx-python-sdk fastapi uvicorn mcp openai pydantic openpyxl python-dotenv - 配置环境: 根据需要配置 '.env' 文件,例如设置 OpenAI API 密钥和数据库连接信息。
服务器配置 (供 MCP 客户端使用)
本仓库包含多个 MCP 服务器实现示例,通常以 Python 脚本形式提供,并通过标准输入输出 (Stdio) 或 HTTP 协议运行。MCP 客户端连接这些服务时,需要配置服务的启动命令和参数。
对于 Stdio 传输 的 MCP 服务器(例如 'Agents_SDK/tmp_1/AGENT_AAS/mcp_server_AAS_1.py' 或 'Agents_SDK/tmp_1/AGENT_EXTRA/mcp_server_extra_data.py'),客户端配置通常如下:
// 这不是实际的 JSON 配置代码,而是描述配置结构 { "name": "你的服务名称", // 例如 "AAS Query Server" 或 "Extra Data Server" "command": "python", // 启动服务的命令 "args": [ "path/to/your/server_script.py" // 启动脚本的相对或绝对路径 ] }
- 'path/to/your/server_script.py' 应替换为实际的服务器脚本文件路径,例如 '"Agents_SDK/tmp_1/AGENT_AAS/mcp_server_AAS_1.py"' 或 '"Agents_SDK/tmp_1/AGENT_EXTRA/mcp_server_extra_data.py"'。
对于 HTTP/SSE 传输 的 MCP 服务器(例如 'Agents_SDK/tmp_1/AGENT_AAS/server.py' 启动的 HTTP 服务),客户端配置通常如下:
// 这不是实际的 JSON 配置代码,而是描述配置结构 { "name": "你的服务名称", // 例如 "AAS HTTP Server" "url": "http://localhost:8000", // MCP 服务器监听的 URL "transport": "http" // 或 "sse" }
- 具体的配置信息需要参考 MCP 客户端框架的要求。
基本使用方法
启动相应的 MCP 服务器脚本(例如,在终端运行 'python Agents_SDK/tmp_1/AGENT_AAS/mcp_server_AAS_1.py')。然后在 MCP 客户端或基于 Agents-SDK 的 agent 应用中,通过配置指向该服务的连接信息,即可调用服务器暴露的工具(如 'query_value', 'list_properties')或访问资源(如 'aas://{filename}/{id_short}')。LLM agent 可以通过自然语言或结构化输入,利用这些工具完成对 AAS 或外部数据的操作。
例如,一个 agent 可以通过调用 'query_value' 工具,向 MCP 服务器发送请求来获取特定 AAS 文件的属性值。
信息
分类
AI与计算