Token导航 LogoToken导航TokenDH.com
Agentic Rag (agenticrag) logo
搜索检索stdio官方级别未说明来源级核验

Agentic Rag (agenticrag)

MCP Server

AgenticRAG是一个结合LangGraph、FAISS向量存储和MCP集成的问答系统,用于智能网络搜索和文档检索。

工具数

2

提示词数

0

GitHub Stars

2

资源数

0
Jupyter Notebook浏览器自动化Python搜索文档检索

安装说明

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

作者 / 组织

priyanshudutta04

提供方

priyanshudutta04

最后核验

2026/5/17 20:21

运行时

Python

快速接入

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

命令预览

python -m venv venv

详细介绍

AgenticRAG(注:此词为特定技术或概念的名称,直接翻译可能无具体含义,故保持原样)

代理检索增强生成(RAG) 系统与 模型上下文协议(MCP) 智能网页搜索与文档检索的集成。此仅为测试和教育用途。

🎯 概述

AgenticRAG是一个集以下功能于一体的问答系统:

  • LangGraph 用于协调自主工作流
  • FAISS(快速应用索引库) 用于语义文档检索的向量存储
  • MCP(模型上下文协议) 用于外部工具集成
  • DuckDuckGo 搜索 通过MCP进行实时网页查询
  • 剧作家MCP 用于浏览器自动化
  • Groq LLM(大语言模型) (Llama 3.1) 用于快速推理

该系统能够智能地决定是仅从其知识库中检索答案,还是在互联网上进行搜索,或者结合这两种方法来回答问题。

🏗️ 建筑学

核心组件

  1. 代理工作流(LangGraph)

- decide分析查询以确定是否需要检索 - retrieve从FAISS向量存储中检索相关文档 - generate使用检索到的上下文通过大型语言模型(LLM)生成答案

  1. 向量存储

- 来自网络来源的预索引文档 - 嵌入(或表示): sentence-transformers/all-MiniLM-L6-v2 - 存储:FAISS(Facebook AI 相似性搜索)

  1. MCP 集成

- DuckDuckGo搜索实时信息 - 用于浏览器自动化的Playwright - 可通过以下方式配置 browser_mcp.json

数据流

User Question
     |
     v
  [Decide] ----needs_retrieval?----> [Retrieve from FAISS]
     |                                        |
     v                                        v
  [Generate Answer]  [DuckDuckGo Search via MCP] --merge--> [Re-generate]
     |
     v
  Final Answer

📦 安装

先决条件

  • Python 3.8或更高版本
  • Node.js(用于MCP服务器)
  • Groq API密钥

设置

  1. 克隆仓库
   git clone 
   cd AgenticRAG
  1. 创建并激活虚拟环境

Windows(PowerShell):

   python -m venv venv
   .\venv\Scripts\Activate.ps1

Windows(命令提示符):

   python -m venv venv
   venv\Scripts\activate.bat

Linux/macOS:

   python3 -m venv venv
   source venv/bin/activate
  1. 安装Python依赖项
   pip install -r requirements.txt
  1. 安装MCP服务器
   npm install -g @playwright/mcp
   npm install -g duckduckgo-mcp-server
  1. 配置环境变量

创建一个 .env 文件:

   GROQ_API_KEY=your_groq_api_key_here

🚀 使用方法

运行Flask API

python app.py

服务器在(某个时间或条件下)启动 http://localhost:5000

API 端点

POST(邮政服务/帖子/邮寄) /ask

向RAG系统提出一个问题。

请求体:

{
  "question": "What is LangChain?",
  "use_ddg": false
}

参数:

  • question (字符串,必填):您的问题
  • use_ddg (布尔值,可选):通过MCP启用DuckDuckGo搜索(默认:false)

回答:

{
  "answer": "LangChain is a framework for developing applications powered by language models..."
}

使用 cURL 的示例:

curl -X POST http://localhost:5000/ask \
  -H "Content-Type: application/json" \
  -d '{"question": "What is LLM poisoning?", "use_ddg": true}'

输出

WhatsApp Image 2025-10-23 at 11 55 49_98492449

独立MCP示例

基本的MCP浏览器自动化

python basic_mcp.py

使用Playwright MCP演示浏览器自动化以搜索谷歌。

MCP连接测试

python mcp_test.py

测试MCP客户端初始化和会话创建。

🔧 配置

MCP 服务器(browser_mcp.json)

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    },
    "duckduckgo-search": {
      "command": "npx",
      "args": ["-y", "duckduckgo-mcp-server"]
    }
  }
}

默认索引源

系统对这些URL进行了预索引:

  • LangChain 表达式语言文档
  • LangGraph 文档
  • IBM 人工智能主题
  • 人类学研究论文

你可以修改 urls 列在 app.py 添加你自己的资源。

📁 项目结构

AgenticRAG/
├── app.py                 # Main Flask application with LangGraph workflow
├── basic_mcp.py          # Example MCP browser automation
├── mcp_test.py           # MCP connection testing
├── browser_mcp.json      # MCP server configuration
├── requirements.txt      # Python dependencies
├── .env                  # Environment variables (create this)
└── README.md            # This file

🔑 主要特点

1. 智能检索决策

该系统通过关键词匹配分析查询,以确定是否需要检索文档:

  • 检索触发词:“什么”,“如何”,“解释”,“告诉我”,“描述”
  • 简单查询的直接答案

2. 混合搜索

联合

  • 当地知识带有预索引文档的FAISS向量存储
  • 实时数据通过MCP使用DuckDuckGo进行搜索时 use_ddg=true

3. MCP工具集成

利用模型上下文协议用于:

  • 网络搜索(DuckDuckGo)
  • 浏览器自动化(Playwright)
  • 可扩展至其他MCP兼容工具

4. 异步处理

针对MCP操作和并行处理的高效异步/等待模式。

🧪 测试

测试API

基本查询(仅限向量存储):

curl -X POST http://localhost:5000/ask \
  -H "Content-Type: application/json" \
  -d '{"question": "Explain LangGraph"}'

使用网页搜索进行查询:

curl -X POST http://localhost:5000/ask \
  -H "Content-Type: application/json" \
  -d '{"question": "Latest AI news", "use_ddg": true}'

测试MCP组件

# Test MCP client
python mcp_test.py

# Test browser automation
python basic_mcp.py

🛠️ 技术栈

  • 框架Flask(API)、LangGraph(工作流编排)
  • LLMGroq(Llama 3.1 8B Instant)
  • 嵌入表示(或嵌入)HuggingFace sentence-transformers/all-MiniLM-L6-v2
  • 向量存储FAISS(高效相似性搜索和大规模图像识别库)
  • MCP 工具剧作家,DuckDuckGo搜索
  • 文档处理LangChain,BeautifulSoup

🔄 工作流程详情

状态管理

class AgentState(TypedDict):
    question: str              # User's question
    documents: List[Document]  # Retrieved documents
    answer: str               # Generated answer
    needs_retrieval: bool     # Retrieval flag

图节点

  1. 决定确定检索的必要性
  2. 检索;取回查询FAISS向量存储
  3. 生成使用大型语言模型(LLM)+上下文生成答案

条件路由

  • 如果需要检索→ retrievegenerate
  • 如果无需检索 → 直接到 generate

📝 环境变量

变量是否必需描述
GROQ_API_KEY 是的,您的Groq API密钥用于访问大型语言模型(LLM)

🚦 故障排除

MCP连接问题

  • 确保已安装 Node.js: node --version
  • 验证MCP软件包: npx @playwright/mcp@latest --version

FAISS 安装(Windows)

如果你遇到问题 faiss-cpu,尝试:

pip install faiss-cpu --no-cache-dir

缺失的依赖项

pip install --upgrade -r requirements.txt

致谢

  • 该存储库的内容灵感来源于 克里希·奈克 MCP与AgenticRag课程。如需深入了解这些主题,请参阅相关资料

目录标签

目录标签

Jupyter Notebook浏览器自动化Python搜索文档检索本地部署智能问答网络搜索语言模型

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP