name: external-knowledge description: 管理外部知识库(教科书、讲义笔记、背景材料)并进行检索以支持研究。当用户想要上传参考资料或查询基础知识时使用。 tools:
- create_knowledge_collection
- list_knowledge_collections
- delete_knowledge_collection
- upload_external_knowledge
- search_external_knowledge
外部知识管理
管理外部参考资料库,如教科书、讲义笔记、教程和背景文档。这些资料用基础知识补充您的研究论文库。
什么是外部知识?
外部知识是支持您研究但非研究论文的任何参考资料:
- 教科书(强化学习教科书、统计学书籍、机器学习理论)
- 讲义笔记和课程材料
- 技术文档
- 教程文章和博客帖子
- 方法和理论的背景阅读材料
这些材料按主题组织成知识库,便于查找相关背景信息。
可用工具
| 工具 | 用途 |
|---|---|
create_knowledge_collection |
创建新知识库以组织文档 |
list_knowledge_collections |
显示所有知识库及其文档数量 |
delete_knowledge_collection |
删除知识库(可选择保留文档) |
upload_external_knowledge |
上传单个文件到知识库 |
search_external_knowledge |
在外部知识中搜索(全部或特定知识库) |
支持的文件格式
系统自动将这些格式转换为markdown:
- PDF (.pdf) - 通过Mistral OCR
- Markdown (.md) - 直接传递
- 纯文本 (.txt) - 用标题包装
- HTML (.html, .htm) - 通过markdownify转换
- EPUB (.epub) - 提取章节并转换
- DOCX (.docx) - 通过mammoth转换
创建知识库
按主题组织外部知识:
create_knowledge_collection(
name="强化学习教科书",
description="核心RL教科书,包括Sutton & Barto、Silver讲义"
)
create_knowledge_collection(
name="统计方法",
description="统计学和假设检验背景"
)
知识库命名技巧:
- 使用清晰、描述性的名称
- 按学科领域或课程分组
- 保持简单(避免深层嵌套层次结构)
上传文档
从用户保险库上传文件:
upload_external_knowledge(
file_path="/path/to/vault/references/sutton_barto_rl_book.pdf",
collection_name="强化学习教科书",
title="强化学习:导论"
)
重要:文件路径必须可从保险库访问。如果用户提到文档,请询问完整路径。
对于批量上传,推荐使用CLI:
thoth knowledge upload /path/to/folder --collection "知识库名称" --recursive
搜索外部知识
在所有外部知识或特定知识库中搜索:
# 搜索所有外部知识
search_external_knowledge(
query="策略梯度方法",
max_results=5
)
# 搜索特定知识库
search_external_knowledge(
query="假设检验程序",
collection_name="统计方法",
max_results=5
)
何时搜索外部知识:
- 用户询问论文中未包含的基础概念
- 在分析论文前需要背景理解
- 用户参考教科书或课程材料
- 问题需要理论基础
与研究问答集成
标准问答工具现在支持范围限定:
# 搜索所有内容(论文+外部知识)
answer_research_question(
question="什么是策略梯度方法?",
scope="all"
)
# 仅搜索研究论文
answer_research_question(
question="策略梯度的最新进展",
scope="papers_only"
)
# 仅搜索外部知识
answer_research_question(
question="策略梯度的基本定义",
scope="external"
)
# 搜索特定知识库
answer_research_question(
question="策略梯度章节内容",
scope="collection:强化学习教科书"
)
工作流程示例
示例1:用户上传教科书
用户:“我有Sutton & Barto的RL教科书。你能把它添加到Thoth吗?”
1. list_knowledge_collections()
→ 检查"RL教科书"知识库是否存在
2. 如果不存在:create_knowledge_collection(
name="RL教科书",
description="核心强化学习教科书"
)
3. 询问用户:"请提供您保险库中教科书PDF的完整路径"
4. upload_external_knowledge(
file_path="[用户路径]",
collection_name="RL教科书",
title="强化学习:导论"
)
5. 确认:"我已添加Sutton & Barto教科书。您现在可以问我
关于RL理论的问题,我将参考教科书和
您的研究论文。"
示例2:背景研究
用户:“什么是演员-评论家方法?”
1. search_external_knowledge(
query="演员-评论家方法定义",
max_results=3
)
→ 获取教科书解释
2. answer_research_question(
question="演员-评论家方法应用",
scope="papers_only",
max_sources=5
)
→ 获取最新研究应用
3. 综合:
"演员-评论家方法将策略梯度与价值函数相结合
[来自教科书摘录]。最近的应用包括[论文发现]..."
示例3:深度学习与背景
用户:“详细解释论文’PPO算法’”
1. read_full_article(
article_identifier="PPO算法",
agent_id="your_id"
)
→ 加载研究论文
2. search_external_knowledge(
query="近端策略优化背景信任区域",
collection_name="RL教科书"
)
→ 获取基础背景
3. 使用两个来源综合解释:
- 论文的新颖贡献
- 教科书的基础概念
- 论文如何建立在理论上
管理知识库
列出知识库
list_knowledge_collections()
显示所有知识库及其文档数量。使用此功能:
- 查看可用的外部知识
- 检查上传的知识库名称
- 在搜索前查找知识库
删除知识库
# 保留文档但删除知识库
delete_knowledge_collection(
collection_name="旧知识库"
)
# 删除知识库及所有文档
delete_knowledge_collection(
collection_name="过时材料",
delete_documents=true
)
警告:删除文档也会从RAG索引中移除。这是永久性的。
最佳实践
- 按主题组织:为不同的学科领域创建知识库
- 先搜索后阅读:使用搜索查找相关部分,然后根据需要阅读全文
- 结合来源:在答案中引用外部知识和研究论文
- 询问路径:用户需要提供其保险库中的文件路径
- 适当限定范围:使用范围参数搜索正确的知识源
常见模式
模式:基础优先
当用户询问高级研究主题时:
- 搜索外部知识获取基础概念
- 搜索研究论文获取前沿发现
- 解释从基础到最新技术的进展
模式:填补空白
当研究论文缺乏背景时:
- 识别缺失的基础知识
- 搜索外部知识库获取该背景
- 提供包含两个来源的全面答案
模式:验证
当不确定基本概念时:
- 搜索外部知识以验证理解
- 使用已验证的理解解释研究论文
- 确保解释准确
包含外部知识的响应模板
## 答案:[问题]
[直接答案,包含来自论文和外部来源的内联引用]
**来自研究论文**:
- [作者等,年份]:[论文中的发现]
**来自参考资料**:
- [教科书/来源名称]:[背景概念或定义]
**它们如何连接**:
[解释基础知识如何与研究结果相关]
**想要更多?**
- 我可以搜索更多背景材料
- 我可以查找关于此主题的更多论文
- 我可以更深入地解释特定概念