Agentic 知识库:Agent Wiki不是取代向量数据库,而是让 Agent 学会“多模态思考”

前言

最近阿里云在 Agent 开发中提出了一个概念:Agent Wiki / Agentic 知识库。很多同学第一反应是:"这又是一个新的存储引擎?要取代向量数据库了?"

并不是。

它并不是要"杀掉"向量数据库,而是给出了一套让 AI Agent 更聪明地使用多种存储的方法论和实践架构。本文将从传统 RAG 的痛点出发,渐进式地讲解 Agentic 知识库到底是什么、它解决了什么问题,以及它是如何把 MD、向量数据库、图数据库、Wiki 有机融合在一起的。


一、传统 RAG 知识库:临时检索,孤岛严重

我们最熟悉的 RAG(Retrieval-Augmented Generation)知识库,通常长这样:

  • 上传一堆文档(PDF、Word、MD)
  • 切块 → 向量化 → 存入向量数据库
  • 用户提问 → 向量检索 Top-K → 拼接 Prompt → LLM 生成

这种模式存在几个硬伤:

痛点 表现
知识碎片化 每个文本块是孤立的,无法体现概念之间的关联
语义"似而非" 向量检索找的是"意思相近",但可能逻辑矛盾或张冠李戴
无法处理复杂关系 问"A 依赖 B,B 依赖 C,A 依赖谁?"这种多跳问题,向量检索几乎失效
没有知识沉淀 每次问答都是从头检索,不会把交互中的新知识记下来

于是,Agentic 知识库 应运而生。


二、Agentic 知识库的核心思想:多模态存储 + Agent 自主路由

Agentic 知识库不是一个单一的存储系统,而是一个 让 Agent 学会"根据问题类型,动态选择最合适的存储" 的智能架构。

它内部同时维护多种存储,各司其职:

存储类型 扮演角色 适合解决什么问题
Markdown / Wiki 编译后的核心知识库 权威定义、经过验证的知识、Agent 的"长期记忆"
向量数据库 语义搜索引擎 "是什么"、"怎么做"等开放性问题
图数据库 实体关系网络 多跳关系查询(依赖、归属、关联)
文档原文 溯源备份 必要时回溯原文,防止 LLM 幻觉

关键点 :Agent 会像一个聪明的图书管理员,接到问题后先做"任务规划",然后去正确的书架取书,甚至能把不同书架上的信息融合起来。


三、为什么不是"替代"而是"互补"?

因为没有任何一种存储能解决所有问题。

  • 图数据库 擅长精确关系,但不擅长开放语义联想。
  • 向量数据库 擅长模糊匹配,但回答"张三负责哪个模块"这种精确实体问题时,可能召回一堆不相关的结果。
  • Wiki/MD 适合存静态、高质量的知识,但无法实时更新动态依赖关系。

举个例子

用户问:"小李在 xx 项目里负责的前端模块,有没有依赖老张的日志服务?"

  • 只用图数据库 → 能查出"小李 → 模块A"、"模块A → 日志服务"这些关系,但拿不到"日志服务怎么用"的具体文档内容。
  • 只用向量数据库 → 可能搜到其他项目里叫"小李"的人,或者搜到一堆和"日志"相关但与本项目无关的片段。
  • Agentic 方案
    先用图数据库理清实体关系链,再用向量数据库从技术文档中检索"日志服务"的具体配置与用法,最后把两者整合成一段既有逻辑骨架又有丰满细节的回答。

这就是互补------1+1>2。


四、怎么实现?------一个简化的代码例子

下面用伪代码/逻辑示例,展示 Agentic 知识库如何协调三种存储。

4.1 数据摄入阶段

python 复制代码
# 初始化三种存储
wiki_store = MarkdownWikiStore("./core_wiki/")       # 核心编译知识
vector_db = DashVectorCollection("my_kb")            # 向量检索
graph_db = Neo4jGraphDB("bolt://localhost:7687")     # 图谱关系

def ingest_document(file_path):
    chunks = split_document(file_path)
    
    # 1. 写入向量库(语义检索)
    embeddings = embed(chunks)
    vector_db.insert(chunks, embeddings)
    
    # 2. 抽取实体关系,写入图库
    triples = extract_entities_relations(chunks)
    for sub, pred, obj in triples:
        graph_db.create_relationship(sub, pred, obj)
    
    # 3. 编译核心知识,写入 Wiki
    compiled = agent_compile_to_wiki(chunks, vector_db, graph_db)
    wiki_store.save(file_path + ".compiled.md", compiled)

4.2 问答阶段:多路检索 + 融合

python 复制代码
def ask_agent(question):
    # Agent 规划:该用什么存储?
    plan = agent_plan(question)   # 可能同时返回 graph / vector / wiki
    
    contexts = []
    if plan.use_vector:
        contexts += vector_db.search(question, top_k=5)
    if plan.use_graph:
        contexts += graph_db.query_related(question)
    if plan.use_wiki:
        contexts += wiki_store.find_relevant(question)
    
    # 反思:信息够了吗?
    if not enough(contexts, question):
        contexts += agent_retry_optimized(question)
    
    return llm_generate(question, contexts)

注意:agent_plan 可以是一个小型的 LLM 调用,也可以是一个经过微调的路由分类器。

4.3 知识回写:自进化

python 复制代码
# 用户纠正了 Agent
user_correction = "不对,GraphRAG 是向量 + 图索引,不是取代向量库。"

def update_knowledge(correction):
    # 1. 分析修正内容
    # 2. 更新核心 Wiki
    wiki_store.update("concepts/GraphRAG.md", correction)
    # 3. 同步更新图谱
    graph_db.update_entity("GraphRAG", description = "vector + graph index")
    # 4. 重新向量化(可选)
    vector_db.upsert(embed(correction), id="graphrag_def")

这样就形成了一个闭环:摄入 → 检索 → 反思 → 回写 → 进化。


五、阿里云的具体落地

这套思想在阿里云已经有实际产品支撑:

  • AnalyticDB PostgreSQL 版(及AgenticDB):原生支持向量 + 图混合存储,一个库搞定多模态。
  • 百炼平台(Agentic 知识库服务):提供从文档解析到图谱构建再到 Agent 编排的一站式方案。
  • Spring AI Alibaba + DTS RAGFlow:方便 Java 开发者集成。

你不需要自己去搭 Neo4j + Milvus + MinIO,云服务已经把它们整合好了。


六、总结

维度 传统 RAG 知识库 Agentic 知识库
存储 单一向量库 MD + 向量库 + 图库 + Wiki,各司其职
检索 一次性语义检索 多步规划 + 路由 + 融合
推理 不支持多跳 图谱支持多跳,向量提供语义
进化 静态 可回写、自更新
定位 临时"记忆插件" Agent 的"长期知识中枢"

一句话总结 :Agentic 知识库不是要干掉向量数据库,而是让 Agent 学会什么时候用向量、什么时候用图、什么时候翻Wiki 。它是一个多存储协同的认知架构,而非单一的存储引擎。

如果你正在开发企业级 Agent 应用,不妨从"多模态存储 + 自动路由"这个角度重新思考你的知识底座。


本文部分概念受阿里云百炼及 Agentic RAG 相关论文启发,代码为示意性伪代码,实际生产请参考对应云产品 SDK。

希望这篇博客能帮你理清 Agentic 知识库的真实面貌。欢迎评论区讨论交流!

相关推荐
小李子呢02111 小时前
什么是Function Call?
agent
爱码小白1 小时前
MySQL索引与SQL优化
大数据·数据库·python
2303_821287381 小时前
MySQL行锁和表锁如何区分_通过explain查看锁等待机制.txt
jvm·数据库·python
是垚不是土1 小时前
PostgreSQL 运维工程师 “一本通“ :安装、配置、备份与监控
linux·运维·数据库·postgresql·运维开发
i220818 Faiz Ul1 小时前
宠物猫之猫咖管理系统|基于java + vue宠物猫之猫咖管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·宠物猫之猫咖管理系统
OceanBase数据库官方博客2 小时前
OceanBase seekdb-cli:专为 AI Agent 设计的数据库接口
数据库·人工智能·oceanbase
i220818 Faiz Ul2 小时前
二手交易系统|基于springboot + vue二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·二手交易系统
kexnjdcncnxjs2 小时前
如何在Navicat中创建基础数据表_可视化图形界面操作指南
jvm·数据库·python
m0_740796362 小时前
CSS如何兼容新旧方案结合响应式容器查询
jvm·数据库·python