LangChain ReAct Agent

基于 LangChain/LangGraph 的 ReAct Agent ,结合 RAG、工具调用与 Streamlit 界面,面向智能客服与报告生成场景。

LLM Mart
0 views 8k listing impressions

基于 LangChain / LangGraph 的 ReAct Agent 智能客服系统

Python LangChain LangGraph Streamlit License

中文 | English


项目简介

基于 LangChain 实现的 ReAct(Reasoning + Acting)Agent,集成 RAG 检索增强、多工具调用与动态提示词切换。系统根据用户意图自动判断任务类型(知识问答 / 报告生成),调用合适的工具与知识库完成推理,并通过 Streamlit 流式界面实时展示 Agent 的思考与执行过程。

效果展示

RAG Q&A
图 1 · 普通问答 — RAG 检索知识库回复



Tool calling
图 2 · Agent 工具调用 — 实时展示推理与工具执行链路



Tool call details
图 3 · 工具调用详情 — 多步推理与中间结果可视化

技术架构

                    用户输入 (Streamlit)
                            │
                            ▼
        ┌───────────────────────────────────────────┐
        │               ReAct Agent                 │
        │                                            │
        │   ┌──────────┐     ┌──────────────────┐   │
        │   │ Thought  │────▶│     Action       │   │
        │   │  (推理)   │     │ (工具调用 / RAG)  │   │
        │   └────┬─────┘     └────────┬─────────┘   │
        │        ▲                    │             │
        │        └──── Observation ◀──┘             │
        │                                            │
        │   Middleware: 工具监控 · 动态提示词切换      │
        └───────────────────────────────────────────┘
             │                  │                  │
             ▼                  ▼                  ▼
      ┌────────────┐    ┌──────────────┐    ┌──────────────┐
      │    RAG     │    │    Tools     │    │    Prompt    │
      │   Chroma   │    │ 天气 / 用户    │    │  动态切换      │
      │  向量检索   │    │ 数据 / 报告   │    │  模板管理      │
      └────────────┘    └──────────────┘    └──────────────┘

核心特性

特性 说明
ReAct 范式 Thought → Action → Observation 循环,Agent 自主推理并决定调用哪个工具
RAG 检索增强 Chroma 向量库 + DashScope Embedding,MD5 文件去重,支持 txt/pdf 混合加载
多工具调用 天气查询 / 用户定位 / 外部数据检索 / 报告上下文填充,Agent 按需自动选择
动态提示词切换 Middleware 根据运行时上下文自动切换「普通问答」与「报告生成」两套 System Prompt
流式对话界面 Streamlit 构建,支持流式逐字输出、历史消息留存、Agent 推理过程可见
模块化结构 Agent / RAG / Model / Tools / Middleware 独立模块,YAML 配置驱动

技术栈

层级 技术
LLM 通义千问(DashScope / ChatTongyi)
Agent 框架 LangChain + LangGraph
向量数据库 Chroma
文档处理 PyPDF + RecursiveCharacterTextSplitter
前端 Streamlit
配置 YAML 驱动(Agent / RAG / Chroma / Prompts)

快速开始

环境要求

1. 克隆仓库

git clone https://github.com/lhh737/LangChain-ReAct-Agent.git
cd LangChain-ReAct-Agent

2. 安装依赖

pip install -r requirements.txt

3. 配置 API Key

# Linux / macOS
export DASHSCOPE_API_KEY="your-api-key"

# Windows (CMD)
set DASHSCOPE_API_KEY=your-api-key

4. 初始化知识库(首次运行)

python -c "from rag.vector_store import VectorStoreService; VectorStoreService().load_document()"

5. 启动应用

streamlit run app.py

浏览器自动打开 http://localhost:8501

6. 验证运行

启动后可在聊天框输入以下测试问题:

测试问题 触发能力
扫地机器人有哪些主要功能? RAG 知识库问答
如果机器人无法正常回充,该如何处理? 知识库故障排查
请根据用户数据生成一份个性化使用报告 报告生成 + 工具调用

项目结构

From the project's README.

Comments (0)

Sign in to join the conversation.

No comments yet.