旅行代理编排系统

一个基于LLM的旅行代理编排系统,通过自然语言处理用户旅行请求,协调酒店和航班代理获取实时数据。

  • by jmatis-kong
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jmatis-kong/API_Summit_2025_Agent_Workshop

使用说明

代理相关:由大型语言模型(LLM)协调的旅行代理

此存储库展示了如何使用密钥认证使 Kong Gateway 成为策略执行点。虽然此示例使用了密钥认证,但 Kong Gateway 还支持许多其他策略执行机制。

先决条件

概述

该项目展示了如何利用MCP(模型上下文协议)和OpenAI函数调用,通过大型语言模型(LLM)来驱动酒店和航班预订代理的协同工作。系统接收自然语言形式的旅行请求,使用大型语言模型提取结构化细节,并将子查询路由到相应的酒店和航班代理。每个代理都与后端的MCP服务器进行交互,以获取实时数据。

它是如何工作的

  1. 用户提示用户提供了自然语言的旅行请求(例如:“我想在2025年12月1日从新泽西州纽瓦克飞往拉斯维加斯,并于2025年12月5日返回。在此期间,我希望在拉斯维加斯入住希尔顿酒店。”)。”)。

  2. 指挥者(或编曲者,根据上下文具体含义可调整):

    • 使用大型语言模型(LLM)从提示中提取结构化字段(如城市、日期、酒店品牌等)。
    • 确定需要联系哪些子代理(酒店、航班或两者都需要)。
    • 验证每个代理是否都提供了所有必需的信息。
    • 编排精确的子提示,并将其发送给相关代理。
  3. 副代理人:

    • 每个代理(酒店或航班)都连接到其各自的MCP服务器。
    • 代理将子提示发送给大型语言模型(LLM),LLM可能会调用MCP工具来获取实时数据。
    • 代理返回结果的摘要。
  4. 结果:

    • 协调器打印出每个代理的结果。
    • 如果缺少所需信息,协调者会告知用户需要什么。

主要特点

  • 自然语言输入与稳健的实体抽取
  • 基于大型语言模型(LLM)的路由和验证
  • 模块化的酒店和航班代理,各自配备有独立的MCP工具集
  • 端点、API密钥和模型的环境变量配置
  • 对所有大型语言模型(LLM)调用进行代币使用审计

设置说明

  1. 设置Kong Konnect:

    • 在 Kong Konnect 中创建一个控制平面,并记下其名称。
  2. 获取您的SerpAPI和OpenAI API密钥:

  3. 获取一个Konnect个人访问令牌:

    • 在Kong Konnect中,进入您的个人资料并生成一个个人访问令牌。
    • 当使用 decK 时,请将您的令牌导出为环境变量(不要存储在 .env):
      export KONNECT_TOKEN="<your-konnect-personal-access-token>"
      
  4. 同步 Kong 配置:

    • 使用 decK 应用提供的配置:
      deck gateway sync deck/kong.yaml --konnect-token $KONNECT_TOKEN --konnect-control-plane-name <KONNECT_CONTROL_PLANE_NAME>
      
  5. 在Konnect Vault中存储您的API密钥:

    • 在Konnect用户界面中,导航到您的控制平面的Vault部分,并查找名为“summit”的vault。
    • 在密钥库中添加你的OpenAI和SerpAPI密钥作为机密。
    • 在您的Deck YAML文件中,使用vault语法引用这些秘密,例如:
      {vault://summit/serpapi_key}
      {vault://summit/openai_token}
      
  6. 配置你的环境变量:

    • 复制 example.env 到 .env 并填写非机密值:
      • HOTEL_MCP_URL, FLIGHT_MCP_URL, HOTEL_AGENT_KEY, FLIGHT_AGENT_KEY, ORCHESTRATOR_AGENT_KEY, OPENAI_BASE_URL, OPENAI_MODEL
    • 不要 将API密钥或令牌放入 .env。

注: 永远不要在(此处)存储或分享你的OpenAI、SerpAPI或Konnect API密钥 .env 文件或源代码。请始终使用Konnect Vault进行秘密管理。

Python环境设置

uv venv .venv
source .venv/bin/activate
uv pip install -e .

使用方法

python3 itinerary_orchestrator.py "Book me a Hilton in Las Vegas and flights from New York for December 1-5, 2025."