# agent-rag **Repository Path**: w_lin.oschina/agent-rag ## Basic Information - **Project Name**: agent-rag - **Description**: Agent RAG学习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-16 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Phase 2:RAG 文档问答 让 Agent 根据**你自己的文档**回答问题,而不是只靠模型记忆。 ## 架构 ``` 用户提问 → retrieve 节点(向量检索 Top-K 片段) → generate 节点(LLM 基于资料生成回答 + 引用来源) → 输出 ``` 与 Phase 1 的区别: | Phase 1 工具 Agent | Phase 2 RAG | |-------------------|-------------| | 调外部 API 做事 | 从知识库检索资料 | | get_weather / calculator | 向量相似度搜索 | | 实时数据 | 私有文档数据 | ## 快速开始 ### 1. 安装依赖 ```powershell cd agent-rag .\run.ps1 -Mode ingest # 首次会自动创建 venv、入库 ``` 或手动: ```powershell python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt # 复制 API Key(与 FirstAgent 共用) copy ..\FirstAgent\.env .env # 或 copy .env.example .env 后手动填写 ``` ### 2. 文档入库 ```powershell python ingest.py --rebuild ``` 会把 `data/` 目录下的 `.md` / `.txt` / `.pdf` 切分、向量化,存入 `chroma_db/`。 ### 3. 开始问答 ```powershell python agent.py # 或 .\run.ps1 ``` ### 4. 测试问题 | 问题 | 预期 | |------|------| | `入职满1年的员工有多少天年假?` | 15 天,引用 company_handbook.md | | `报销最晚多少天内提交?` | 30 日 | | `公司上市代码是多少?` | 知识库中没有(防幻觉) | ## 项目结构 ``` agent-rag/ ├── ingest.py # 文档入库流水线 ├── retriever.py # 向量检索 + 格式化上下文 ├── agent.py # RAG 问答(retrieve → generate) ├── config.py ├── trace.py ├── data/ # 放你的文档(已含样例手册) ├── chroma_db/ # 向量库(自动生成) └── run.ps1 ``` ## 学习检查清单 - [ ] 能解释 RAG 四步:加载 → 切分 → 向量化 → 检索生成 - [ ] 能看懂 Trace 里 `[检索]` 日志 - [ ] 能往 `data/` 加自己的 PDF 并重新 `ingest` - [ ] 能解释为什么检索不到时 Agent 应该说「不知道」 - [ ] 理解 Chunk 大小对召回的影响 ## 调优提示 - 检索不准:调 `config.py` 里的 `CHUNK_SIZE` / `TOP_K` - 回答幻觉:加强 Prompt 约束,降低 `temperature` - 中文文档:已用 `text-embedding-v3`,效果较好 ## 下一步(Phase 2.5) 把 RAG 检索封装成 `search_knowledge_base` 工具,接回 Phase 1 的工具 Agent,实现: ``` 天气/计算 走工具 | 制度/文档 走 RAG | 同一个 Agent 统一调度 ```