知识库
旗鱼的知识库让你可以导入文档建立私有知识库,AI 能够检索其中的内容来回答问题。同时 AI 有多级记忆系统,能记住你教给它的信息。
导入文档
支持的格式
| 格式 | 扩展名 | 说明 |
|---|---|---|
| Markdown | .md | 最佳格式,保留结构信息 |
| 纯文本 | .txt | 适合日志、笔记等 |
.pdf | 自动提取文本内容 | |
| Word | .docx | 自动提取文本和表格 |
导入方式
- 点击左侧边栏的 知识库图标
- 点击「导入文档」
- 选择要导入的文件(可多选)
- 等待处理完成
处理过程包括:
- 文档分段:将长文档切分成语义完整的小段落
- 向量嵌入:为每个段落生成向量表示(使用本地嵌入模型)
- 建立索引:构建向量索引 + BM25 关键词索引,支持语义搜索和关键词搜索双通道检索
全部本地处理
文档的处理完全在本地进行,使用内置的嵌入模型(Transformers.js),不会上传到任何外部服务。你的数据始终留在自己的电脑上。
导入建议
- 选择有价值的文档:项目文档、运维手册、团队规范等高频查阅的内容
- 保持文档更新:文档内容变化后,删除旧版重新导入
- Markdown 效果最好:标题层级清晰的 Markdown 文档,分段质量最高
- 避免过大文件:单个文件建议不超过 10MB,过大文件处理时间较长
使用知识库
导入文档后,AI 在执行任务时会自动检索知识库中的相关内容来辅助回答。你也可以主动让 AI 查询:
根据知识库中的内容,我们的部署流程是什么?
知识库里有没有关于数据库备份的文档?
查一下我们的 API 文档中关于用户认证的部分
检索原理
当 AI 需要查找信息时,会同时使用两种检索方式:
- 语义搜索:理解问题的含义,找到语义相近的内容(即使用词不同也能找到)
- 关键词搜索(BM25):精确匹配关键词,适合查找特定名称、配置项等
两种结果会融合排序,取最相关的内容注入到 AI 的上下文中。
三级记忆系统
旗鱼的 AI 有三级记忆,模拟人类记忆的工作方式:
L1 — 任务记忆(短期记忆)
最近几次任务的完整对话记录,直接保留在上下文中。就像刚做完的事,你还记得每句话。
- 自动管理,不需要手动操作
- 越近期的任务记录越完整,越早期的越精简
- 5 级渐进式压缩:从完整对话到一句话摘要,在 token 预算内最大化信息保留
L2 — 知识文档(长期事实记忆)
你主动教给 AI 的信息,或 AI 自己总结的重要事实。每次对话时自动加载到上下文中。
比如你告诉 AI:
记住:我们的生产数据库地址是 10.0.1.50:3306,用户名是 app_user
以后在任何对话中,AI 都会自动知道这个信息。
组织方式:
- 按上下文维度组织——每台服务器有独立的「主机画像」,记录该服务器的系统信息、安装的软件、网络配置等
- 无终端模式下按用户维度组织,记录你的个人偏好和工作习惯
- 只保留高频复用的核心事实,每条信息都值得花 token 自动注入
什么适合存入 L2:
| 适合 | 不适合 |
|---|---|
| 服务器 IP、端口、密码 | 一次性的排查过程 |
| 项目部署流程 | 临时的测试数据 |
| 团队编码规范 | 完整的日志内容 |
| 常用命令别名 | 具体某次操作的细节 |
L3 — 对话记录(情景记忆)
完整的历史对话记录永久保存。AI 可以通过搜索工具主动检索。就像需要”想一想”才能回忆的完整经历。
你: 上次我们修复 nginx 502 错误是怎么做的?
AI: [搜索历史对话记录,找到相关记录并汇总]
L2 和 L3 的区别:
- L2 提供事实(「nginx 监听 8080 端口」),每次自动加载
- L3 提供经验(「上次怎么排查的」),按需搜索加载
- 有了 L3 兜底,L2 不需要记录所有细节,只保留核心事实即可
知识库管理
在知识库面板中可以:
- 查看已导入的文档列表和状态
- 搜索知识库中的内容,验证检索效果
- 删除不需要的文档(释放存储空间)
CLI 操作
也可以通过命令行管理知识库:
npm run sft -- knowledge:list # 查看已导入文档
npm run sft -- knowledge:search "关键词" # 搜索知识库