带有mcp streamlit用户界面的langchain代理
一个由Azure OpenAI驱动的Streamlit应用程序,带有可选的MCP代理工具。它支持:
- 与LLM(Azure OpenAI)聊天
- 使用MCP支持的代理调用中定义的工具
mcp.json - 查看和验证MCP服务器配置和运行状况
- 详细的使用记录和简单的成本跟踪
需求
- Python 3.10+
- Azure OpenAI访问和部署
- MCP HTTP服务器(可选,用于代理工具)
安装Python依赖项:
pip install -r requirements.txt配置
该应用程序从以下位置读取环境变量 config.env (或 .env, config.txt)如果存在。
Azure OpenAI所需:
AZURE_OPENAI_API_KEYAZURE_OPENAI_ENDPOINT
可选:
LOG_LEVEL(默认值:INFO)ENABLE_CONVERSATION_LOG(默认值:true)ENABLE_DETAILED_LOGGING(默认值:true)STREAMING_DELAY(默认值:0.02秒)MCP_CONFIG_PATH(路径到mcp.json;默认为steamlit-app/mcp.json或回购根)SYSTEM_PROMPT_PATH(系统提示文件的路径;默认为steamlit-app/system_prompt.md)
MCP配置(工具)
该应用程序仅从以下位置加载MCP服务器 mcp.json。对于可流式传输的HTTP MCP服务器,请使用 transport: "streamable_http".
示例 mcp.json:
{
"mcpServers": {
"aws-news": {
"url": "http://127.0.0.1:8000/mcp",
"transport": "streamable_http"
}
}
}笔记:
- MCP服务器必须单独启动。
- 显示以下项目的本地健康检查 `http://127.0.0.1:
/health` URL。 alt text
有关支持的传输和示例,请参阅LangChain MCP适配器文档: langchain mcp适配器.
系统提示
代理的系统提示从以下位置加载 system_prompt.md (或 SYSTEM_PROMPT_PATH).
默认文件: steamlit-app/system_prompt.md.
运行应用程序
从该目录(或repo根目录)运行:
streamlit run app.py使用应用程序
- 在浏览器中打开应用程序(Streamlit将打印URL)。
- 在聊天选项卡中,使用切换“使用MCP代理”在以下选项之间切换:
- LLM直接响应(无工具) - MCP代理响应(从加载的工具 mcp.json,带有外部系统提示)
- 在MCP选项卡中:
- 检查负载 mcp.json 以及每台服务器的详细信息 - 查看生成的客户端配置 - 点击“列出MCP工具(所有服务器)”或“列出每台服务器的工具”以验证工具发现
故障排除
- 不支持的传输:http
- 确保您的 mcp.json 用途 "transport": "streamable_http" 对于HTTP MCP服务器。 - 这是适配器对流式HTTP所期望的传输。
- 未配置MCP服务器
- 提供有效的 mcp.json (套 MCP_CONFIG_PATH 如果不与主机代管 app.py).
- 代理中没有可用的工具
- 确保MCP服务器正在运行,并且可以从运行应用程序的计算机访问。 - 确认工具端点已由服务器装饰和公开。
- Azure OpenAI错误
- 验证 AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT,以及中的部署名称 model_configs.json.
日志和使用情况
- 应用程序日志:
ai_agent.log - 对话日志(如果启用):
conversation_log.json
体系结构概述
- UI:流光显示(
app.py) - 法学硕士:Azure OpenAI通过
langchain-openai - 代理(可选):朗链
create_agent,工具通过加载langchain-mcp-adapters从mcp.json - MCP:可流式HTTP MCP服务器(如FastMCP)单独启动
