LangChain代理模板

一个基于LangChain和FastMCP的代理构建模板,提供CLI和Web UI交互方式,支持流式响应和工具追踪。

  • by AlexMercedCoder
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AlexMercedCoder/langchain-mcp-agent-template

使用说明

MCP代理模板仓库

这个仓库提供了一个即开即用的模板,用于构建和运行代理(或智能体) LangChain(朗链,但通常直接音译为“朗链”或保持原英文名,根据上下文确定具体译法) 和 FastMCP(可译为“快速多重共定位”或根据具体上下文可能译为其他更贴切的名称,但此处保持原英文缩写形式以体现专业术语)。
它包括:

  • 用于配置和运行MCP服务器的框架。
  • 用于代理交互的命令行界面(CLI)客户端。
  • 一个基于Flask的Web用户界面,支持流式响应和工具追踪。
  • 提供样板文件和环境变量配置,便于快速设置。

目录

  1. 文件夹结构
  2. 环境设置
  3. 配置MCP服务器
  4. 使用命令行界面(CLI)
  5. 使用网页界面

文件夹结构

repo-root/
│
├── mcp/ # MCP servers and configuration
│ ├── mcp.config.json # Master config listing servers
│ ├── weather_server.py # Example server (OpenWeatherMap API)
│ ├── github_server.py # Example server (GitHub API)
│ ├── template.py # Boilerplate server template
│ └── init.py
│
├── cli-client/ # Command-line client
│ ├── cli.py # LangChain agent CLI
│ └── init.py
│
├── web-ui/ # Flask web client
│ ├── webui.py # Flask app with SSE streaming
│ ├── templates/
│ │ └── index.html # Chat UI
│ └── static/
│ ├── style.css # Styles
│ └── app.js # Front-end logic
│
├── requirements.txt # Python dependencies
├── template.env # Environment variable template
├── .gitignore
└── README.md # Project documentation

环境设置

  1. 复制提供的模板:
    cp template.env .env
    

打开 .env 文件并设置您的环境变量值。

必填变量与可选变量

要求:

  • OPENAI_API_KEY (或者 ANTHROPIC_API_KEY (如果使用Anthropic模型)

  • FLASK_SECRET_KEY (任意随机字符串,用于会话加密)

推荐:

  • WEATHER_API_KEY 用于天气服务器演示

  • GITHUB_TOKEN 用于GitHub服务器演示(提高了速率限制)

可选/高级:

  • 内存设置(CLI_MEMORY, WEB_MEMORY等

  • 系统提示设置(CLI_SYSTEM_PROMPT, WEB_SYSTEM_PROMPT)

  • 自定义模型选择(OPENAI_MODEL, ANTHROPIC_MODEL)

参考 template.env 以获取变量的完整列表及其用途。

配置MCP服务器

MCP服务器在……中定义 mcp/mcp.config.json。 每个条目都指定了如何启动服务器:

{
  "servers": {
    "weather": {
      "transport": "stdio",
      "command": "python",
      "args": ["mcp/weather_server.py"],
      "meta": {
        "summary": "Weather tools via OpenWeatherMap",
        "category": "demo"
      }
    }
  }
}
  • 交通;运输通信方法(本地推荐使用stdio)。

  • 命令可执行以运行。

  • 参数参数(通常是服务器的.py文件)。

  • **元(或目标、宗旨,具体含义需结合上下文)**用于描述目的的元数据。

添加新服务器:

  • 在mcp/目录下创建一个.py文件(你可以复制template.py作为模板)。

  • 在mcp/mcp.config.json中注册它。

  • 在 .env 文件中更新任何新增的必要变量。

使用命令行界面 (CLI)

CLI 客户端允许您在终端中与代理进行交互。

# Activate your environment
pip install -r requirements.txt

# Run the CLI
python cli-client/cli.py
  • 输入您的查询内容,然后按回车键。

  • 代理决定何时调用MCP工具。

  • 输入 exit 或 quit 以退出。

定制化:

更换为以下模型: OPENAI_MODEL(可译为“OpenAI模型”或根据上下文简化为“OpenAI模型名”,但通常直接保留为“OPENAI_MODEL”以指代特定模型名称) 或者 人类模型(或“类人模型”,具体翻译可能根据上下文有所调整) 在 .env 文件中。

启用或禁用内存 CLI_MEMORY 可以翻译为“命令行接口内存”或根据上下文简化为“CLI内存”.

使用 CLI系统提示符 设置系统指令。

使用网页界面

网页用户界面(Web UI)在您的浏览器中提供了一个聊天界面,支持流式传输和工具追踪功能。

# Activate your environment
pip install -r requirements.txt

# Run the web server
python web-ui/webui.py

访问 http://127.0.0.1:5000。

特点:

  • 流媒体: 启用后,可逐标记查看输出。

  • 工具痕迹: 检查工具被调用的时间和方式。

  • 重置内存: 一键清除对话状态。

  • 系统提示: 通过 .env 文件配置以实现自定义行为。