一、为什么还要造轮子?

2024~2025 被称为 Agent 元年,LangChain、AutoGPT、CrewAI、Dify、Coze……各种框架层出不穷,教程铺天盖地。但真正动手做一个 RAG 知识库 Agent 时,最难的不是”加什么”,而是”不加什么”。

大多数 RAG 方案在做同一件事:把用户问题切碎,和文档的关键词做匹配。但知识不是关键词的集合,知识是关联、是结构、是上下文

举个例子:一份企业年报写着”A 公司收购了 B 公司”,一份行业研报写着”B 公司的核心技术团队来自 C 实验室”。真正够用的系统,应该能回答”C 实验室的技术最终去了哪里?”——这是一个跨文档推理问题,不是一个关键词匹配问题。

AgentSphere 的核心哲学:不做关键词匹配器,做知识推理器

二、第一个分岔口:OCR 到底要不要?

大多数 RAG 教程教你用 PyPDFLoader / PyMuPDFLoader 直接读取 PDF。如果是数字原生 PDF,当然没问题。但如果是扫描件——合同、发票、老旧档案——这些工具读出来就是乱码,乱码进向量库,检索质量直接崩。

PaddleOCR 很重——几百 MB 的下载量,推理吃显存。

AgentSphere 的做法:先检查 PDF 是否有可提取的文本层——有就直接解析,跳过 OCR;没有才拉起 PaddleOCR。

核心理念:每个重组件都应该有”跳过”的权利

三、GraphRAG:最容易被过度工程化的模块

GraphRAG(Microsoft,2024)用知识图谱增强 RAG——把孤立的数据库点连成关系网络,让 AI “理解”数据之间的关联,而不是仅仅检索单个事实。

但三个问题很明显:

  1. 实体提取很贵——每个 chunk 一次 LLM 调用,1000 个 chunk = 1000 次 API 调用
  2. 图谱质量取决于 LLM 质量——小模型做实体提取,结果一塌糊涂
  3. 大部分查询不需要图谱——“这份合同的甲方是谁?”这类简单问题,关键词搜索就能解决

AgentSphere 的设计:GraphRAG 是可选增强,不是默认管线。用一个 Router Agent 做问题分类——事实类查询走 BM25 + 向量检索,关系推理类(”A 和 B 之间有什么关联?”)才触发图谱多跳推理。

GraphRAG 是锤子,但不是所有问题都是钉子。

四、Reranker:最值的 100ms 延迟

混合检索——BM25 关键词 + BGE 向量——之后,RRF 融合出的 Top-10 排序往往有偏差:BM25 偏向给短文本打高分,向量检索偏向长文本。

BGE-Reranker 是 Cross-Encoder,把 query 和 document 拼在一起编码,计算真正的语义匹配。代价:多 100200ms 延迟。收益:**Top-5 精度通常提升 15%25%**。

如果只选一个优化策略,选 Reranker。

五、Agent 不是越多越好

CrewAI、AutoGen 这些多 Agent 框架给人一种错觉——Agent 越多越智能。

现实是:Agent 的复杂度是指数级的。每多一个 Agent,就多一次 LLM 调用(成本 + 延迟),多一个故障点(A 输出烂 → B 崩 → C 幻觉),调试难度翻倍(到底哪个 Agent 的 prompt 出了问题?)。

AgentSphere 的 5 个 Agent

Agent 职责 是否必须
Router 问题分类 必须(决定走哪条路)
Planner 执行规划 必须(复杂问题分步编排)
Query Rewrite 查询改写 可选(简单问题跳过)
Answer Verify 事实校验 可选(内部测试时开启)
Orchestrator 协调调度 必须(调度以上所有 Agent)

设计准则:每个 Agent 只做一件事,每个 Agent 都可以被跳过

六、Token 消耗:你必须关心的事

一次 QA 流程的 Token 消耗示例:

  • Query Rewrite:500 tokens
  • 实体提取(GraphRAG):2,000 tokens × 10 chunks = 20,000 tokens
  • LLM 生成:3,000 tokens
  • Answer Verify:2,000 tokens
  • 合计:约 25,500 tokens / 次查询

AgentSphere 在代码层面做了 Token 监控——每次 LLM 调用都记入 LLM Monitor,按 Provider 和模型维度分析成本。看不见的成本才是最大的成本。

七、最后的话

AI 肉眼可见地在引领一个新的时代,但创造的本质不是学会调用 API——是形成了一套判断力

  • 什么时候该上 OCR,什么时候不该
  • 什么时候 GraphRAG 值它的成本,什么时候是过度工程
  • 多一个 Agent 带来的价值,值不值它引入的复杂度
  • 每一行代码是在解决问题,还是在制造问题

AgentSphere 是我个人的学习项目,每个模块都保留了当初决策的分岔口——你完全可以选择另一条路

希望 AI 不是一个终点,而是形成自己判断的起点。

项目地址:github.com/Alignm-ent/AgentSphere