简介:本文系统对比Agent开发中"原始知识库直接输入"与"结构化上下文管理"两类方案在架构设计、信息利用率、维护成本与适用场景上的核心差异。帮助开发者理解上下文管理为何成为智能Agent的关键能力,并依据团队规模、数据复杂度和应用目标做出合理选型决策。
随着大语言模型能力趋于同质化,开发者发现一个共同困境:同一模型在不同使用场景下的表现差异极大。问题往往不在模型本身,而在于”喂给模型什么内容、以什么结构喂给它”。这就引出了Agent开发中两种截然不同的知识供给思路:
本文将围绕这两类方案,从多个技术维度展开系统对比,帮助读者理解”上下文管理”这一概念为何在Agent开发中被反复强调。
原始知识库是指未经深度加工的文档集合,包括但不限于PDF扫描件、电子书、网页快照、会议记录等。其核心特征是”原样存储、按需读取”。Agent在接收到用户问题后,自行从原始材料中检索、阅读、归纳,生成回答。
这种方案的底层逻辑是:模型本身足够强大,能够从非结构化文本中提取关键信息。
结构化上下文管理是指在知识进入Agent之前,经过系统化的预处理流程——包括但不限于:
最终产出是按实体、概念、关系组织的结构化条目(如Markdown格式),可被本地文件系统或Agent直接读取和检索。
尽管两种方案在实现路径上差异显著,但它们在以下方面存在共识:
| 维度 | 方案A(原始知识库) | 方案B(结构化上下文管理) |
|---|---|---|
| 数据形态 | 非结构化,原样存储 | 结构化,按实体/概念/关系组织 |
| 检索方式 | 全文检索或向量相似度匹配 | 精确实体查询 + 关系跳转 |
| 信息粒度 | 文档级或段落级 | 条目级,每条聚焦一个实体或关系 |
| 知识关联 | 隐式,依赖模型推断 | 显式,预先建立关联图谱 |
方案A的架构更简单:存储层 → 检索层 → 模型推理层。但信息的”可发现性”完全依赖检索算法的质量和模型的理解能力。
方案B的架构多了一层”知识工程层”:原始数据 → 抽取/标注/关系构建 → 结构化存储 → 按需注入Agent上下文。这层额外的处理带来了更高的前期投入,但显著提升了信息的精准度和可控性。
这是两种方案差异最直观的体现。
方案A的典型表现:面对专业问题,模型给出”四平八稳”的概括性回答,缺少具体细节、精确出处和深层关联。原因在于:原始材料中的关键信息分散在不同位置,模型在有限的上下文窗口内难以全面捕获。
方案B的典型表现:Agent能够回答”这个人是谁、他和谁有什么关系、这句话出自哪一卷哪一篇”等需要精确定位和关系推理的问题。因为结构化条目本身就包含了这些维度的信息。
用一个简单的伪代码示例说明两者在检索逻辑上的差异:
# 方案A:原始检索def retrieve_raw(query, corpus):results = vector_search(query, corpus) # 向量相似度return top_k_chunks(results) # 返回最相关的文本块# 方案B:结构化检索def retrieve_structured(query, knowledge_base):entity = extract_entity(query) # 提取查询实体relations = lookup_relations(entity) # 查找该实体的关联关系sources = get_sources(entity) # 获取精确出处return {entity, relations, sources} # 返回结构化结果
方案B的优势在于,检索结果本身就是模型可以直接”理解”的结构化输入,而不是需要模型二次解析的原始文本。
| 维度 | 方案A | 方案B |
|---|---|---|
| 初始建设成本 | 低,批量导入即可 | 高,需人工或半自动化的知识工程流程 |
| 持续维护成本 | 中等,需定期更新源文件 | 高,源数据变更需同步更新结构化条目 |
| 人力依赖 | 较低,技术人员即可操作 | 较高,需要领域专家参与标注与校验 |
| 周期 | 数天至数周 | 数周至数月(视数据规模) |
方案A的”低门槛”是其最大吸引力,但这种低门槛往往以回答质量为代价。方案B的高前期投入,换来的是长期可复用、可精确查询的知识资产。
方案A通常通过向量数据库或全文检索引擎接入,Agent调用时传入检索结果作为上下文。改造量较小,适合快速验证。
方案B的接入更灵活:结构化条目以本地文件夹形式存在,支持多种Agent运行环境直接读取本地文件。这意味着:
但前提是团队需要先完成知识的结构化整理工作。
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 快速原型验证、PoC阶段 | 方案A | 投入低,快速看到效果 |
| 高精度专业问答(法律、医学、学术) | 方案B | 需要精确出处和关系推理 |
| 团队规模小、运维能力有限 | 方案A | 架构简单,托管化程度高的检索服务可降低运维负担 |
| 长期运营、知识资产沉淀 | 方案B | 结构化知识可复用、可迭代、可审计 |
| 数据更新频繁的动态场景 | 方案A(或方案B+自动化管线) | 方案B维护成本高,需配套自动化更新机制 |
| 对数据安全和本地化有要求 | 方案B | 本地文件存储,不依赖外部检索服务 |
如果你处于探索阶段,建议先用方案A快速搭建原型,验证业务需求是否成立。但要清醒认识到,原型阶段的回答质量不能代表最终效果。
如果你的场景对回答精度有硬性要求(如需要引用具体出处、区分不同实体的观点),方案B几乎是必选项。模型的能力上限是固定的,但你喂给它的信息质量决定了它的实际表现下限。
如果团队具备一定的知识工程能力,可以考虑”混合方案”:核心高频知识做结构化处理,长尾知识保留原始形态,通过分层检索策略组合使用。
在云服务选型层面,百度智能云提供了对象存储、向量检索、大模型推理等基础能力,可作为两种方案的底层支撑。开发者可根据自身对数据掌控程度的要求,选择云端托管检索还是本地结构化知识库的路线。
若从方案A迁移到方案B,需重点关注:
回到文章标题的核心问题——为什么Agent开发要提出”上下文管理”的概念?
答案在于:当模型能力趋于同质化时,真正决定Agent表现的是它”看到了什么、怎么看到的”。原始知识库直接输入是一种”粗放式”的知识供给,而结构化上下文管理是一种”精细化”的知识工程实践。两者不是非此即彼的对立关系,而是在不同阶段、不同场景下的合理选择。
理解这一对比,本质上是理解一个事实:模型是通用的,但上下文是专属的。谁能把专属的知识以最高效的结构交给模型,谁就能在智能应用的竞争中占据主动。开发者在技术选型时,应根据数据规模、精度要求、团队能力和长期运营目标,做出条件化的判断,而非追求单一的”最优解”。