AI研究代理

一个基于LangGraph、Ollama和MCP服务器的自主代理系统,能够规划行动、检索本地上下文、使用NLP和Web研究工具,并通过自我反思提高答案准确性。

  • by AdityaJ9801
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 AdityaJ9801/MCP-Agent-NLP-ANALYSIS

使用说明

高级人工智能研究代理

一个由以下组件构建的自主代理系统 LangGraph, 奥拉玛,以及 模型上下文协议(MCP) 服务器。该代理可以计划其操作,检索本地上下文,使用NLP和Web研究的专用工具,并反思自己的答案以获得最大的准确性。

🚀 主要特点

  • 自主规划:每个查询首先由战略规划师进行分析,为工作选择最佳工具。
  • 多服务器MCP集成:使用三个专用服务器:
    • NLP分析器:情感分析、可读性指标和文本摘要。
    • Web提取器:谷歌搜索和深度网络抓取。
    • 文件加载器:从PDF、DOCX、CSV和TXT文件中提取文本。
  • 自我纠正(反思):一个专门的Reflector节点会对答案进行评论,并在答案是通用的或不完整的情况下强制进行改进。
  • RAG能力:自动为本地项目文件建立索引,以便立即进行上下文检索。
  • 丰富的用户界面:带有彩色面板和Markdown渲染的交互式CLI。

🏗️ 项目架构

该系统遵循有向循环图(DCG)工作流程:

  1. 规划师:接收用户查询并生成基于工具的执行策略。
  2. 检索:在本地矢量数据库(FAISS)中搜索相关项目文件。
  3. 聊天机器人:综合计划、检索到的上下文和工具输出以生成响应。
  4. 工具(MCP):执行请求的工具调用(Web搜索、NLP分析、文件读取)。
  5. 反射器:评估响应质量。如果它是一个通用的免责声明或不完整,它会循环回到聊天机器人,并对改进进行批评(最多3个循环)。

🛠️ 安装和设置

先决条件

  1. Python 3.10+:确保您安装了最新版本的Python。
  2. Ollama安装:
    • 下载并安装Ollama ollama.com.
    • 按照操作系统(Windows、macOS或Linux)的安装说明进行操作。
    • 确保Ollama服务器正在运行(您应该在系统托盘中看到Ollama图标或能够运行 ollama list 在您的终端中)。
  3. 所需模型:
    • 代理人使用 qwen3:1.7b 用于推理和 nomic-embed-text 用于嵌入。
    • 打开终端并拔出所需型号:
      ollama pull qwen3:1.7b
      ollama pull nomic-embed-text
      
  4. 系统依赖:
    • (可选)如果您遇到以下问题 lxml,您可能需要安装用于C编译的系统级开发人员工具,尽管预构建的轮子通常就足够了。

设置步骤

  1. 克隆存储库:

    git clone https://github.com/AdityaJ9801/MCP-Agent-NLP-ANALYSIS.git
    cd MCP-Agent-NLP-ANALYSIS
    
  2. 创建并激活虚拟环境:

    python -m venv .venv
    source .venv/bin/activate  # Windows: .venv\Scripts\activate
    
  3. 安装依赖项:

    pip install langchain-ollama langchain-community langchain-mcp-adapters langgraph faiss-cpu beautifulsoup4 requests googlesearch-python rich PyPDF2 python-docx pandas nltk textblob mcp
    
  4. 初始化NLTK资源: 这 nlp_analyzer.py 将在第一次运行时自动下载所需的NLTK数据。

🏃 运行代理

启动交互式CLI:

python agent.py

💡 示例提示

  • 网络研究: "Search for the latest features in Python 3.13 and summarize the key changes."
  • NLP分析: "Scrape https://en.wikipedia.org/wiki/Artificial_intelligence and give me a full NLP analysis including sentiment and readability."
  • 文件处理: "Load the local file 'report.pdf' and tell me the main findings."
  • 复杂的任务: "Find news about Podman's latest release, then analyze the sentiment of the top 3 articles found."

⚙️ 配置

您可以通过设置环境变量来更改默认模型:

  • OLLAMA_MODEL:默认值为 qwen3:1.7b
  • OLLAMA_EMBEDDING_MODEL:默认值为 nomic-embed-text