知识库问答系统Skill knowledge-base-qa

知识库问答系统是一个基于RAG(检索增强生成)架构的智能研究助手,能够整合用户私有研究论文库和外部知识源(如教科书、讲义),通过混合检索、查询扩展、文档评分和幻觉检查等技术,提供准确、可追溯的研究问题解答。该系统支持快速问答和深度分析两种模式,具备CRAG(纠正性检索增强生成)工作流程,当本地知识覆盖不足时自动建议并整合网络搜索结果,适用于学术研究、文献综述、技术调研等场景。关键词:RAG检索增强生成、知识库问答、研究助手、文献分析、智能检索、CRAG纠正检索、学术研究工具、论文分析、混合搜索、AI研究助理。

RAG应用 32 次安装 419 次浏览 更新于 2/26/2026

name: knowledge-base-qa description: 使用您现有的研究收藏和外部知识回答问题。当用户询问他们拥有的论文、需要摘要或从知识库中寻求见解时使用。 tools:

  • answer_research_question
  • agentic_research_question
  • read_full_article
  • unload_article
  • search_articles
  • get_article_details
  • collection_stats
  • search_external_knowledge
  • list_knowledge_collections

知识库问答

使用您收藏中的文章和外部知识源(教科书、讲义、背景材料)回答研究问题。跨论文综合信息并正确引用。

知识源

您的知识库包括:

  1. 研究论文 - 您已处理和分析的论文
  2. 外部知识 - 按集合组织的教科书、讲义、背景材料

在问答工具中使用 scope 参数来控制搜索哪些源。

使用的工具

对于知识库查询,请使用以下工具:

工具 用途
answer_research_question 快速问答 — 单次混合搜索(支持范围过滤)
agentic_research_question 深度问答 — 多步骤管道,包含查询扩展、文档评分、幻觉检查(支持范围过滤)
read_full_article 阅读完整文章内容以深入理解
unload_article 释放文章内存槽(最多3篇文章)
search_articles 查找特定论文(支持主题过滤)
get_article_details 获取论文元数据和预览
collection_stats 检查收藏中的内容
search_external_knowledge 搜索教科书和背景材料
list_knowledge_collections 显示可用的外部知识集合

范围过滤

两个问答工具现在都支持 scope 参数来控制搜索哪些知识源:

  • scope="all"(默认) - 搜索研究论文和外部知识
  • scope="papers_only" - 仅搜索研究论文
  • scope="external" - 仅搜索外部知识(教科书、笔记)
  • scope="collection:Name" - 搜索特定的外部知识集合

示例

# 从教科书中获取基础理解
answer_research_question(
  question="什么是马尔可夫决策过程?",
  scope="collection:RL教科书"
)

# 获取最新研究发现
answer_research_question(
  question="MDP的最新进展",
  scope="papers_only"
)

# 搜索所有内容以获取全面答案
answer_research_question(
  question="MDP如何用于现代RL?",
  scope="all"
)

在标准问答和智能体问答之间选择

使用 answer_research_question 用于:

  • 事实查找(“论文X使用了什么数据集?”)
  • 具有明显关键词的简单问题
  • 速度重要的快速答案

使用 agentic_research_question 用于:

  • 比较问题(“X与Y相比如何?”)
  • 跨多篇论文的综合(“Z的主要方法是什么?”)
  • 多跳推理(“该领域对X的看法随时间如何变化?”)
  • 快速搜索可能遗漏相关论文的问题

如果在设置中禁用了智能体检索,agentic_research_question 会自动回退到标准RAG — 因此无论哪种方式调用都是安全的。

智能体工具需要更长时间(8-30秒 vs <5秒),因为它运行多轮检索、评分文档并验证答案。用户在UI中看到实时进度更新(“正在扩展搜索词…”、“正在评估相关性…”等),因此他们知道它正在工作。

理解检索评估(CRAG)

当您使用 agentic_research_question 时,该工具返回一个检索评估,告诉您知识库对主题的覆盖程度:

  • 正确(置信度 >= 0.7):强覆盖,按原样使用答案
  • 模糊(置信度 0.4-0.7):部分覆盖,用网络搜索补充
  • 不正确(置信度 < 0.4):弱覆盖,主要依赖网络搜索

当您看到模糊评估时

  1. 该工具将提供一个“所需操作”部分,包含建议的网络搜索查询
  2. 使用该查询(或优化它)调用 web_search
  3. 将本地答案与网络结果综合
  4. 在回答中引用本地源和网络源
  5. 如果在网上找到相关论文,提供使用 download_pdf 下载

当您看到不正确评估时

  1. 该工具将提供一个“所需操作”部分,包含建议的网络搜索查询
  2. 调用 web_search 查找相关源
  3. 主要基于网络结果构建答案
  4. 提及您的知识库没有强覆盖
  5. 提供下载在线找到的任何有用论文以扩展知识库

当您看到正确评估时

  • 直接使用答案 — 无需操作
  • 知识库具有强覆盖

这种纠正性检索增强生成(CRAG)工作流程确保您始终提供最佳答案,无论是来自本地知识、网络搜索还是两者兼有。

文章内存限制

重要:您一次最多只能将3篇文章加载到工作内存中。

  • 使用 read_full_article 加载文章内容(需要您的 agent_id
  • 每次加载消耗一个内存槽(加载后显示)
  • 当内存已满(3/3)时,必须在加载新文章之前使用 unload_article
  • 完成文章后使用 unload_article 释放槽位

为什么有这个限制? 深度文章阅读加载大量内容。3篇文章的限制确保您可以在保持上下文窗口效率的同时处理多篇论文。

工作流程提示:如果需要引用超过3篇论文,请使用 unload_article 根据需要将文章换入换出内存。

阅读完整文章

当您需要的不仅仅是快速答案时,阅读完整文章

read_full_article(
  article_identifier="论文标题或DOI",
  agent_id="您的agent_id"
)

这将返回完整的markdown内容,允许您:

  • 理解方法论细节
  • 查找摘要中未包含的特定信息
  • 深入了解主题
  • 阅读多篇论文以构建全面知识

迭代学习:您可以阅读一篇文章,识别问题,然后阅读更多文章以填补知识空白。继续阅读直到完全理解主题。

内存管理:当您已加载3篇文章并需要阅读另一篇时,请先使用 unload_article

unload_article(
  article_identifier="要卸载的文章的标题或DOI",
  agent_id="您的agent_id"
)

快速答案工作流程

步骤1:确定使用哪个知识源
- 基础概念 → scope="external"
- 最新研究 → scope="papers_only"
- 全面答案 → scope="all"

步骤2:搜索相关信息
answer_research_question(
  question="用户的问题",
  max_sources=10,
  min_relevance=0.7,
  include_citations=true,
  scope="all"  # 或 papers_only/external/collection:Name
)

步骤3:如果需要更多来自外部源的上下文
search_external_knowledge(
  query="特定概念",
  collection_name="相关集合"
)

步骤4:正确综合和引用

深度答案工作流程(智能体)

步骤1:询问智能体管道
agentic_research_question(
  question="用户的复杂问题",
  max_sources=10,
  max_retries=2
)
→ 管道自动扩展查询、评分文档、检查幻觉
→ 返回答案及置信度分数和源列表

步骤2:如果用户想更深入了解特定论文
read_full_article(article_identifier="结果中的论文")

步骤3:综合额外上下文并引用

智能体管道内部处理查询扩展和文档评分,因此您无需手动使用多种措辞搜索。它还返回置信度分数,并标记任何无法根据源验证的声明。

问题类型与方法

事实性问题

“GPT-4论文使用了什么数据集?”

search_articles(query="GPT-4", limit=5)
get_article_details(article_id="[匹配的论文]")
→ 带引用的直接答案

综合问题

“高效注意力的主要方法是什么?”

answer_research_question(
  question="高效注意力机制的主要方法",
  max_sources=15,
  min_relevance=0.75
)
→ 跨多篇论文的综合答案

比较问题

“FlashAttention与标准注意力相比如何?”

search_articles(query="FlashAttention", limit=5)
search_articles(query="标准注意力基准", limit=5)
→ 委托给研究分析师进行深度比较

引用格式

始终在回答中引用源:

根据[作者等,年份],主要发现是...

多项研究表明X [1, 2, 3]:
1. Smith等(2023)-“论文标题”
2. Jones等(2024)-“论文标题”
3. Brown等(2024)-“论文标题”

何时委托给研究分析师

当用户需要时委托:

  • 特定论文的深度阅读
  • 多篇论文比较
  • 质量评估
  • 引用网络分析
  • 文献综述生成

示例

send_message_to_agent(
  agent_name="研究分析师",
  message="比较这3篇关于注意力效率的论文:[IDs]。专注于方法论和结果。"
)

回答质量检查清单

在回答之前,确保:

  • [ ] 问题得到直接回答
  • [ ] 源按作者/年份引用
  • [ ] 如果不确定,标明置信度
  • [ ] 如果综合是高级的,提供深入探讨

处理数据不足

如果收藏中没有相关论文:

“我搜索了您的收藏,但没有找到关于[主题]的论文。

当前收藏统计:[collection_stats输出]

选项:
1. 我可以运行发现搜索以查找关于此主题的论文
2. 您可以手动添加论文
3. 我可以基于一般知识回答(无引用)

您想让我搜索关于[主题]的论文吗?”

工作流程示例

示例1:直接问题

用户:“Mamba架构的计算复杂度是多少?”

1. search_articles(query="Mamba架构复杂度", limit=5)
2. get_article_details(article_id="[最佳匹配]")
3. 从论文中提取复杂度分析
4. 报告:“根据[Gu & Dao, 2023],Mamba实现了
   与标准注意力的O(N²)相比的O(N)复杂度...”

示例2:综合问题

用户:“总结RLHF中的关键挑战”

1. answer_research_question(
     问题="RLHF的关键挑战和限制",
     max_sources=10
   )
2. 如果答案全面 → 返回综合
3. 如果需要更多深度 → 委托给研究分析师

示例3:“我们有什么关于X的内容?”

用户:“我们有哪些关于视觉语言模型的论文?”

1. search_articles(query="视觉语言模型", limit=20)
2. collection_stats()
3. 报告:“您有X篇与视觉语言模型相关的论文:

   最新(2024):[列表]
   关键论文:[按引用次数列出]

   涵盖的主题:[如果可用则聚类]

   您想让我总结这些论文的发现吗?”

回答模板

## 答案:[问题摘要]

[带内联引用的直接答案段落]

**关键源**:
- [作者等,年份]:[本文的关键发现]
- [作者等,年份]:[本文的关键发现]

**置信度**:[高/中/低] - 基于[X]篇相关论文

**想要更多细节?**
- 我可以深入分析特定论文
- 我可以探索引用网络
- 我可以跨论文比较方法论