项目简介
OR-LLM-Agent 是一个智能运筹优化求解代理,它利用大型语言模型(LLM)理解用户用自然语言描述的运筹优化问题,并自动生成数学模型和使用 Gurobi 求解器的 Python 代码。该项目将核心求解能力封装为一个 MCP 服务器,使得其他支持 MCP 协议的客户端(如某些 LLM 桌面应用)可以直接调用其功能,自动化完成运筹优化问题的分析和求解过程。
主要功能点
- 理解自然语言问题: 接收用户以自然语言描述的运筹优化问题。
- 自动建模: 基于 LLM 生成问题的数学模型(例如线性规划模型)。
- 代码生成与执行: 自动生成使用 Gurobi 求解器的 Python 代码,并在沙箱环境中执行。
- 结果提取: 从求解器输出中提取最优解或目标值。
- 错误处理与修复: 在代码执行失败时,尝试利用 LLM 进行代码修复并重试。
- 提供MCP接口: 通过标准的 Model Context Protocol (MCP) 向客户端暴露上述功能,支持客户端调用。
安装步骤
- 克隆仓库:
git clone https://github.com/bwz96sco/or_llm_agent.git cd or_llm_agent - 安装 Gurobi 求解器: 本项目依赖 Gurobi Optimizer。请根据您的操作系统和许可类型,从 Gurobi 官方网站下载并安装 Gurobi,并确保其许可已正确配置,以便 Python 可以调用。
- 安装 Python 依赖: 推荐使用 'uv' 进行虚拟环境和包管理(也可使用 'pip')。
- 如果使用 'uv':
uv venv source .venv/bin/activate uv add -r requirements.txt - 如果使用 'pip':
pip install -r requirements.txt
- 如果使用 'uv':
- 配置 API 密钥: 复制 '.env.example' 文件为 '.env',并在其中设置您的 LLM 提供商(如 OpenAI, Anthropic)的 API 密钥和基础 URL(如果需要)。
cp .env.example .env # 编辑 .env 文件,填写 OPENAI_API_KEY, CLAUDE_API_KEY 等
服务器配置(供 MCP 客户端使用)
要让 MCP 客户端连接并使用 OR-LLM-Agent 服务器,您需要在客户端的 MCP 配置中添加该服务器的信息。配置通常是一个 JSON 格式,需要指定服务器的名称、启动服务器的命令及其参数。
配置信息示例(概念描述,具体格式和位置取决于您的 MCP 客户端,例如 Claude Desktop 的 'claude_desktop_config.json' 文件):
- 服务器名称: 例如 "Optimization" 或 "OR Agent",用于在客户端界面中标识该服务。
- 启动命令 (command): 启动 OR-LLM-Agent MCP 服务器的命令。如果您使用 'uv' 虚拟环境,命令通常是虚拟环境内的 'uv' 可执行文件路径。如果您使用 'pip' 并激活了虚拟环境,命令可能是 'python' 或 'python3' 的可执行文件路径。请确保使用绝对路径。
- 使用 'uv' 的启动命令示例: '/path/to/.venv/bin/uv'
- 使用 'pip' 激活虚拟环境后的启动命令示例: '/path/to/your/virtualenv/bin/python'
- 命令参数 (args): 传递给启动命令的参数。这通常包括指定项目根目录('--directory /path/to/or_llm_agent')以及运行哪个文件('run mcp_server.py' 或直接 'mcp_server.py')。请确保使用 OR-LLM-Agent 项目目录的绝对路径。
- 使用 'uv run' 的参数示例: '["--directory", "/path/to/your/or_llm_agent", "run", "mcp_server.py"]'
- 直接运行 Python 文件的参数示例: '["/path/to/your/or_llm_agent/mcp_server.py"]'
请根据您的具体环境(Python/uv 路径、项目克隆路径)和 MCP 客户端的要求,在客户端配置中填写正确的绝对路径和参数。
基本使用方法
配置完成后,启动您的 MCP 客户端。您应该能在客户端界面中看到已配置的 OR-LLM-Agent 服务,通常会以一个“工具”或类似形式呈现(例如,在 Claude Desktop 中可能显示为 'get_operation_research_problem_answer' 工具)。
选择该工具,在客户端提供的输入框中输入您要解决的运筹优化问题(用自然语言描述),然后触发工具执行。OR-LLM-Agent 服务器将在后台接收您的请求,调用 LLM 进行建模和代码生成,执行 Gurobi 求解,并将最终的求解结果返回给您的 MCP 客户端界面。
信息
分类
AI与计算