高级人工智能研究代理
一个由以下组件构建的自主代理系统 LangGraph, 奥拉玛,以及 模型上下文协议(MCP) 服务器。该代理可以计划其操作,检索本地上下文,使用NLP和Web研究的专用工具,并反思自己的答案以获得最大的准确性。
🚀 主要特点
- 自主规划:每个查询首先由战略规划师进行分析,为工作选择最佳工具。
- 多服务器MCP集成:使用三个专用服务器:
- NLP分析器:情感分析、可读性指标和文本摘要。 - Web提取器:谷歌搜索和深度网络抓取。 - 文件加载器:从PDF、DOCX、CSV和TXT文件中提取文本。
- 自我纠正(反思):一个专门的Reflector节点会对答案进行评论,并在答案是通用的或不完整的情况下强制进行改进。
- RAG能力:自动为本地项目文件建立索引,以便立即进行上下文检索。
- 丰富的用户界面:带有彩色面板和Markdown渲染的交互式CLI。
🏗️ 项目架构
该系统遵循有向循环图(DCG)工作流程:
- 规划师:接收用户查询并生成基于工具的执行策略。
- 检索:在本地矢量数据库(FAISS)中搜索相关项目文件。
- 聊天机器人:综合计划、检索到的上下文和工具输出以生成响应。
- 工具(MCP):执行请求的工具调用(Web搜索、NLP分析、文件读取)。
- 反射器:评估响应质量。如果它是一个通用的免责声明或不完整,它会循环回到聊天机器人,并对改进进行批评(最多3个循环)。
🛠️ 安装和设置
先决条件
- Python 3.10+:确保您安装了最新版本的Python。
- Ollama安装:
- 下载并安装Ollama ollama.com. - 按照操作系统(Windows、macOS或Linux)的安装说明进行操作。 - 确保Ollama服务器正在运行(您应该在系统托盘中看到Ollama图标或能够运行 ollama list 在您的终端中)。
- 所需模型:
- 代理人使用 qwen3:1.7b 用于推理和 nomic-embed-text 用于嵌入。 - 打开终端并拔出所需型号:
ollama pull qwen3:1.7b
ollama pull nomic-embed-text- 系统依赖:
- (可选)如果您遇到以下问题 lxml,您可能需要安装用于C编译的系统级开发人员工具,尽管预构建的轮子通常就足够了。
设置步骤
- 克隆存储库:
git clone https://github.com/AdityaJ9801/MCP-Agent-NLP-ANALYSIS.git
cd MCP-Agent-NLP-ANALYSIS- 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate- 安装依赖项:
pip install langchain-ollama langchain-community langchain-mcp-adapters langgraph faiss-cpu beautifulsoup4 requests googlesearch-python rich PyPDF2 python-docx pandas nltk textblob mcp- 初始化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.7bOLLAMA_EMBEDDING_MODEL:默认值为nomic-embed-text
______________________________________________________________________
