Token导航 LogoToken导航TokenDH.com
Chatbot With Search logo
AI代理stdio官方级别未说明来源级核验

Chatbot With Search

MCP Server

一个基于模型上下文协议(MCP)的自主网络研究代理,通过解耦的微服务架构实现安全的研究任务执行。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

danielecelsa

提供方

danielecelsa

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

解耦自主研究员(MCP)🔌

Python LangGraph MCP FastAPI Streamlit

先进的 代理AI客户端 使用 模型上下文协议(MCP). 该项目展示了一个解耦的微服务架构,其中推理引擎(客户端)通过标准化协议(SSE)与工具(服务器)通信,在不共享凭据的情况下弥合LLM和外部数据之间的差距。

______________________________________________________________________

🚀 主要特点

1.解耦安全模型

与持有所有API密钥的传统代理不同,该系统将关注点分离:

  • 客户(大脑): 掌握LLM上下文和推理逻辑。它有 访问Tavilly API密钥。
  • 服务器(工具): 一个孤立的 FastMCP 执行实际搜索的服务器。

这模拟了AI代理必须在没有直接权限的情况下访问敏感内部工具的企业场景。

2.混合接地策略

为了防止幻觉,该代理采用了双层验证:

  • 合成: 使用搜索引擎提供的高级摘要。
  • 原始源验证: 对照MCP工具返回的原始JSON内容摘录交叉检查事实,以确保来源。

3.实时FinOps监控

实时仪表板,用于操作可见性和跟踪:

  • 令牌使用: 输入与输出令牌的精确计数。
  • 成本估算: 基于Gemini 2.0定价的实时美元计算。
  • 延迟时间: 请求/响应往返时间分析。

4.异步并发

实现自定义背景 asyncio 事件循环,用于在Streamlit的同步运行时内处理非阻塞MCP流,确保UI在长时间运行的研究任务中保持响应。

______________________________________________________________________

🛠️ 建筑

该系统分为两个通过HTTP/SSE通信的解耦微服务:

  1. 客户(大脑): Streamlit应用程序托管 LangGraph重构代理它管理对话历史、推理循环,并通过MCP连接到远程工具服务器。
  2. 服务器(工具): A. FastAPI+FastMCP 服务器托管在Render上。它公开了Tavily Search API作为一个标准化的MCP工具。
graph LR
    subgraph "Client Side (Streamlit)"
        UI[User Interface] --> Agent{LangGraph Agent}
        Agent -- "Request Tool" --> MCP_Client[MCP Client]
    end

    subgraph "Protocol Layer"
        MCP_Client  MCP_Server
    end

    subgraph "Server Side (FastAPI)"
        MCP_Server[MCP Server] --> Tool[Tavily Search Tool]
        Tool --> API((Tavily API))
    end

______________________________________________________________________

🔧 技术栈

  • 协议: 模型上下文协议(MCP)-Python SDK。
  • LLM Google Gemini 2.5 Flash(通过LangChain适配器)。
  • 编排: LangGraph(重动作循环)。
  • 后端: FastAPI、FastMCP、Uvicorn。
  • 前端: 流光灯。
  • 可观察性: Redis(缓冲区)->BetterStack(云日志)。

______________________________________________________________________

⚙️ 工程亮点

MCP握手

该项目的核心是客户端和服务器之间的标准化协商。 这允许代理是“工具无关的”——它根据服务器在运行时公开的任何工具来调整其行为。

分布式测井管道

用于生产调试的强大日志架构:

  1. 当地: JSONL轮换用于即时检查。
  2. 缓冲器: 高通量 Redis 异步日志记录的列表推送。
  3. 云: 后台工作人员将日志刷新到 BetterStack 用于警报和仪表板。

______________________________________________________________________

🧪 测试场景

验证 解耦架构 通过这些查询:

  1. “时事”测试:

> *“SpaceX星舰发射的最新进展是什么?”*

- *验证:* 确保代理呼叫 tavily_search 通过MCP使用该工具,并引用了最新来源(不是培训数据)。

  1. “事实核查”测试:

> *“推特/X的现任首席执行官是谁,他们什么时候接管的?”*

- *验证:* 观察UI中的“推理步骤”,查看发送到服务器的JSON-RPC调用和收到的结构化响应。

______________________________________________________________________

📦 安装和设置

先决条件

  • Python 3.10+
  • 谷歌云API密钥(Gemini)
  • Tavilly API密钥(用于服务器端)

1.克隆存储库

git clone https://github.com/danielecelsa/chatbot-with-search.git
cd chatbot-with-search

2.环境变量

创建 .env 根目录中的文件:

# LLM Configuration (Client)
GOOGLE_API_KEY=your_google_api_key
GENAI_MODEL=gemini-2.5-flash

# MCP Server Configuration
# Use the live demo server or run your own locally
MCP_TAVILY_URL=https://mcp-server.46.224.88.247.nip.io/tav/mcp
MCP_SERVER_NAME=tavily

# Logging (Optional)
REDIS_URL=your_redis_url
LOGTAIL_SOURCE_TOKEN=your_token

3.安装依赖项

pip install -r requirements.txt

4.运行客户端

streamlit run app.py

______________________________________________________________________

Developed by Daniele Celsa

View Portfolio • LinkedIn

目录标签

目录标签

PythonAI代理工作流自动化人工智能代理本地部署网络研究微服务架构MCP协议安全性

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP