需求文档: 基于本地 Hermes 的个人知识库工具
简介
本需求定义了一个结合本地部署的 Hermes Agent 和 Hermes WebUI 构建的个人知识库工具。该系统作为 Hermes 的扩展 Skill 和 MCP 服务器运行,允许用户收集、组织、检索和利用个人知识,借助 Hermes 的语义理解、持久记忆和自学习生成能力,实现智能化的知识管理和问答交互。知识库支持从小规模(几百条)到大规模(数万条)的平滑扩展。
术语表
- Hermes Agent: Nous Research 开发的自治 AI Agent,具备持久记忆、技能自学习、MCP 集成和跨会话搜索能力
- Hermes WebUI: Hermes Agent 的轻量级 Web 界面,提供三面板布局和全功能 parity
- 知识库条目: 用户录入或系统自动抓取的文本片段、网页、笔记等知识单元
- 语义检索: 基于向量相似度(ChromaDB)和语义理解的知识检索方式
- RAG (Retrieval-Augmented Generation): 检索增强生成,结合检索结果和 Hermes 生成回答的技术模式
- MCP Server: Model Context Protocol 服务器,为 Hermes 提供知识库工具接口
- Hermes Skill: 封装在 Hermes 中的可复用程序包,用于知识录入和组织自动化
需求
需求 1: 知识录入与管理
用户故事:AS 个人用户, I want 通过多种方式录入和组织我的知识条目, so that 我可以集中管理我的学习积累和工作笔记
验收标准
- WHEN 用户提供文本内容, 系统 SHALL 创建知识库条目并分配唯一标识和语义向量嵌入
- WHEN 用户提供 URL, 系统 SHALL 抓取网页内容并转换为知识库条目
- WHEN 用户上传文件(PDF/Markdown/TXT), 系统 SHALL 解析文件内容并存储为知识库条目
- WHILE 知识库条目存在, 系统 SHALL 允许用户编辑、删除和打标签
- WHEN 用户创建条目, 系统 SHALL 使用 Hermes 自动生成推荐标签和分类
需求 2: 智能语义检索
用户故事:AS 个人用户, I want 通过自然语言搜索我的知识库, so that 我能快速找到相关的知识内容
验收标准
- WHEN 用户输入搜索查询, 系统 SHALL 使用向量相似度检索返回最相关的知识条目
- WHEN 用户执行搜索, 系统 SHALL 按相关性评分降序排列结果
- WHEN 检索结果超过 10 条, 系统 SHALL 仅返回前 10 条最相关的条目
- IF 搜索查询为空, 系统 SHALL 返回全部知识条目列表
需求 3: AI 问答交互
用户故事:AS 个人用户, I want 通过 Hermes 向知识库提问并获得智能回答, so that 我能快速获得个性化的知识解答
验收标准
- WHEN 用户提出问题, 系统 SHALL 作为 MCP 工具被 Hermes 调用并返回检索结果
- WHEN Hermes 生成回答, 系统 SHALL 在回答中标注引用的知识条目来源
- IF 知识库中没有相关内容, 系统 SHALL 告知用户并使用 Hermes 的通用知识回答
- WHILE 问答会话进行中, 系统 SHALL 支持 Hermes 的多轮对话上下文
需求 4: 知识组织与分类
用户故事:AS 个人用户, I want 对我的知识进行分类和标签管理, so that 我能按主题浏览和组织知识
验收标准
- WHEN 用户创建或编辑条目, 系统 SHALL 允许用户添加自定义标签
- WHEN 用户选择标签, 系统 SHALL 显示该标签下的所有知识条目
- WHEN 用户创建新条目, 系统 SHALL 使用 Hermes 自动生成推荐标签
- WHILE 标签被关联到条目, 系统 SHALL 允许用户重命名和合并标签
需求 5: 本地化与隐私保护
用户故事:AS 个人用户, I want 所有数据和模型运行在本地, so that 我的知识数据不会泄露到云端
验收标准
- WHILE 系统运行, 系统 SHALL 将所有知识库数据存储在本地文件系统或本地数据库
- WHILE 用户与 Hermes 交互, 系统 SHALL 通过本地 API 调用模型,不将数据发送至外部服务
- WHEN 系统启动, 系统 SHALL 验证 Hermes 本地服务可用性,IF Hermes 不可用,系统 SHALL 提示用户启动本地模型服务
需求 6: Hermes Skill 和 MCP 集成
用户故事:AS Hermes 用户, I want 知识库作为 Skill 和 MCP 服务器无缝集成到 Hermes, so that 我可以通过自然语言和工具调用来管理知识
验收标准
- WHEN Hermes 启动, 系统 SHALL 注册知识库 MCP 工具(搜索/添加/更新/删除条目)
- WHEN 用户通过自然语言指令触发知识搜索, 系统 SHALL 自动调用 MCP 搜索工具
- WHEN 用户创建新条目, 系统 SHALL 作为 Hermes Skill 自动推荐标签和分类
- WHILE 用户与 WebUI 交互, 系统 SHALL 在工作区面板中显示知识库条目
需求 7: 数据导入与导出
用户故事:AS 个人用户, I want 批量导入和导出我的知识库数据, so that 我可以迁移数据或进行备份
验收标准
- WHEN 用户提供包含多个文件的目录, 系统 SHALL 批量解析并导入所有支持格式的文件
- WHEN 用户请求导出知识库, 系统 SHALL 生成包含所有条目的 JSON 或 Markdown 文件
- WHEN 导入过程中发生错误, 系统 SHALL 记录错误日志并继续处理剩余文件
- IF 导入的文件格式不支持, 系统 SHALL 跳过该文件并记录警告
需求 8: 知识版本管理
用户故事:AS 个人用户, I want 查看和恢复知识条目的历史版本, so that 我可以追踪知识演变和撤销误操作
验收标准
- WHEN 用户修改知识条目, 系统 SHALL 保存修改前的版本到版本历史
- WHEN 用户请求查看版本历史, 系统 SHALL 显示该条目的所有历史版本及修改时间
- WHILE 版本历史存在, 系统 SHALL 允许用户恢复到任意历史版本
- IF 版本历史超过 50 条, 系统 SHALL 仅保留最近的 50 条版本
需求 9: 非功能需求(性能与容量)
用户故事:AS 个人用户, I want 知识库系统响应迅速且稳定, so that 我可以高效地进行知识管理
验收标准
- WHEN 用户执行搜索操作, 系统 SHALL 在 10,000 条知识下于 500ms 内返回结果(P95)
- WHEN 用户添加知识条目, 系统 SHALL 在 2 秒内完成包括向量嵌入的完整流程(P95)
- WHILE 系统运行, 系统 SHALL 支持同时处理 10 个并发请求
- IF 知识库条目超过 50,000 条, 系统 SHALL 提示用户考虑升级向量数据库