事件管理系统

一个基于LLM和A2A技术的多代理事件管理系统,通过硬件、软件和主机代理与MCP服务器协同处理用户工单。

  • by vkarteek
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 vkarteek/usecase-icm

使用说明

Eli Lily POC使用A2A和MCP

此README文档描述了您需要了解的有关此项目的所有信息-事件管理系统 下面是从1到6的流程:

流动

  1. 此应用程序包含3个LLM驱动的AI代理(主机、硬件、软件)、一个MCP服务器和一个客户端
  2. 客户端(最终用户)将用户票证路由到主机代理(通过A2A),然后从主机代理将票证路由到硬件或软件代理(再次通过A2A
  3. 硬件和软件代理服务器充当MCP客户端,并连接到MCP服务器以处理工单:向MCP服务器建议正确的工单工具
  4. MCP服务器使用建议的工具处理票证,并向硬件/软件代理返回响应
  5. 硬件/软件代理向Host Agent返回响应
  6. Host Agent向客户端(最终用户)返回响应

图-上面的流程可以用下面的架构来表示

┌──────────────┐ → ┌────────────────────────┐ → ┌────────────────┐ → → ┌──────────────┐ │ 终端用户│ │ 主机代理服务器│ │ 硬件代理│ │ MCP服务器│ │ (客户端.py)│ │ (9000)[编排员]│ │ (9999) │ │ (3000) │ └──────────────┘ └────────────────────────┘ └────────────────┘ └──────────────┘ → ┌────────────────┐ → → ┌──────────────┐ │ 软件代理│ │ MCP服务器│
│ (9998) │ │ (3000) │ └────────────────┘ └──────────────┘

技术栈

法学硕士-OpenAI 人工智能代理-Python+a2a-sdk MCP服务器-Node.js+Express 工具-MockAPI.io

设置和部署

先决条件

在本地运行应用程序之前,请确保已安装以下内容:

  1. 紫外线: 本项目中使用的Python包管理工具。遵循安装指南: https://docs.astral.sh/uv/getting-started/installation/
  2. python 3.13 运行a2a-sdk需要Python 3.13

按照以下步骤运行应用程序~

在a2a_simple中运行步骤1、2和4

在a2a_simple之外运行步骤3

1.安装依赖项

这将在 .venv 目录并安装所需的软件包。

uv venv
source .venv/bin/activate

在host_agent_executor和mcp_llm_runner中提供OPENAI API密钥

2.运行代理

为以下3个AI代理中的每一个打开一个终端,并在相应的终端中运行服务器给定的命令

使用以下命令运行硬件代理

uv运行hardware_server.py

代理将在上运行 http://localhost:9999.

使用以下命令运行软件代理

uv运行软件server.py

代理将在上运行 http://localhost:9998.

使用以下命令运行host agent

uv运行host_server.py

代理将在上运行 http://localhost:9000.

3.运行MCP服务器

创建.env文件并粘贴以下env值。提供OPENAI API密钥

端口=4000 MCP_SERVER_URL=http://localhost:3000 OPENAI_API_KEY=“” 软件_ TICKET_API=https://69411fe3686bc3ca8165b797.mockapi.io/incidents 硬件_ TICKET_API=https://69411fe3686bc3ca8165b797.mockapi.io/incidentsP

导航到服务器所在的路径并在下面运行-

npm 安装 node-server.js

4.运行客户端

打开一个新终端并运行测试客户端:

uv run --active client.py

您将在终端输出中看到客户端与host agent交互。 关注您的个人终端,了解每个服务器如何与其他服务器交互