be24de9ced
Co-authored-by: multica-agent <github@multica.ai>
156 lines
4.4 KiB
Markdown
156 lines
4.4 KiB
Markdown
# 知识查询最佳实践
|
||
|
||
> **版本**: v1.0
|
||
> **任务**: BIZ-19 (BIZ-14-4)
|
||
> **日期**: 2026-06-22
|
||
|
||
---
|
||
|
||
## 一、查询策略
|
||
|
||
### 1.1 渐进式检索原则
|
||
|
||
```
|
||
先宽后窄 → 先模糊后精确 → 先搜索后读取
|
||
```
|
||
|
||
**标准流程**:
|
||
1. `wiki_search(query="关键词")` — 发现有哪些相关内容
|
||
2. `wiki_get(lookup="匹配页面")` — 精确读取具体内容
|
||
3. 如搜索结果过多(>10) → 收窄关键词重新搜索
|
||
4. 如搜索结果与需求不相关 → 调整表述方式重新搜索
|
||
|
||
### 1.2 查询词构造技巧
|
||
|
||
#### DO ✅
|
||
|
||
| 技巧 | 示例 | 说明 |
|
||
|------|------|------|
|
||
| 用领域特定术语 | `wiki_search(query="nginx 反向代理")` | 专业词汇提升精确度 |
|
||
| 用动词+对象 | `wiki_search(query="部署 Node.js")` | 明确查询意图 |
|
||
| 用自然语言问题 | `wiki_search(query="如何配置 nginx logrotate")` | 适合语义检索 |
|
||
| 用缩写和全称组合 | `wiki_search(query="CI/CD 持续集成")` | 覆盖不同表述 |
|
||
| 分步搜索 | 先搜 "nginx",再搜 "nginx 日志" | 逐步收窄范围 |
|
||
|
||
#### DON'T ❌
|
||
|
||
| 反模式 | 错误示例 | 问题 |
|
||
|--------|----------|------|
|
||
| 过于泛化的词 | `wiki_search(query="配置")` | 结果太多太杂 |
|
||
| 过于具体的短语 | `wiki_search(query="192.168.1.99 端口 22 上的 nginx")` | 命中率低 |
|
||
| 跳过搜索直接 guess 路径 | `wiki_get(lookup="随便猜的页面名")` | 大概率找不到 |
|
||
| 一次加载超大页面 | `wiki_get(lookup="巨型文档")` | 超出上下文容量 |
|
||
| 无结果后直接放弃 | 只搜一次就说"知识库没内容" | 可能是查询词不准确 |
|
||
|
||
---
|
||
|
||
## 二、结果处理
|
||
|
||
### 2.1 匹配结果数量处理
|
||
|
||
| 结果数 | 处理方式 |
|
||
|--------|----------|
|
||
| 0 | 尝试同义词/相关词 → qmd 搜索 → 上报知识缺口 |
|
||
| 1-3 | 逐个 `wiki_get` 读取完整内容 |
|
||
| 4-10 | 按评分排序,取前 3 个读取 |
|
||
| 10+ | 收窄搜索词重新搜索 |
|
||
|
||
### 2.2 大页面分页读取
|
||
|
||
```bash
|
||
# 超过 100 行的页面,分页读取
|
||
wiki_get(lookup="长文档标题", fromLine=1, lineCount=50) # 第一部分
|
||
wiki_get(lookup="长文档标题", fromLine=51, lineCount=50) # 第二部分
|
||
```
|
||
|
||
### 2.3 信息来源交叉验证
|
||
|
||
当多个查询返回不同信息时:
|
||
1. 检查页面更新时间(优先信任较新的)
|
||
2. 交叉对比多个来源
|
||
3. 如信息冲突 → 标记为"需确认",汇报给 architect
|
||
|
||
---
|
||
|
||
## 三、知识缺口处理
|
||
|
||
### 3.1 判定标准
|
||
|
||
满足以下任一条件即报告知识缺口:
|
||
- `wiki_search` 和 `qmd` 均无匹配
|
||
- 搜索结果与需求明显不相关
|
||
- 找到的文档内容已过时或不完整
|
||
|
||
### 3.2 上报模板
|
||
|
||
```
|
||
【知识缺口 - YYYY-MM-DD】
|
||
|
||
- 查询 Agent: [Agent 名称]
|
||
- 查询意图: [想了解什么]
|
||
- 已尝试检索: [用过的搜索词, 换行列出]
|
||
- 已使用工具: wiki_search / qmd
|
||
- 期望内容: [知识库中应有什么]
|
||
- 紧急程度: high / normal / low
|
||
- 建议: [谁补充、什么内容]
|
||
```
|
||
|
||
### 3.3 上报路径
|
||
|
||
| 缺口类型 | 上报目标 |
|
||
|----------|----------|
|
||
| 架构/技术 | architect (梁思筑) |
|
||
| 业务/流程 | projectmanager (胡蓉) |
|
||
| 法务/合规 | lawyer (苏慎) |
|
||
| 市场/分析 | marketanalysis (顾析策) |
|
||
| 通用/不确定 | COO (陆怀瑾) — 由 COO 分配 |
|
||
|
||
---
|
||
|
||
## 四、知识库写入准则
|
||
|
||
### 4.1 何时写入
|
||
|
||
- 完成重要决策后(如架构选型、策略调整)
|
||
- 发现可复用的模板/清单
|
||
- 完成深度分析后(市场报告、竞品分析)
|
||
- 知识缺口被填补后
|
||
|
||
### 4.2 写入工具选择
|
||
|
||
| 场景 | 工具 |
|
||
|------|------|
|
||
| 创建新知识页面 | `wiki_apply(op="create_synthesis", ...)` |
|
||
| 更新已有页面元数据 | `wiki_apply(op="update_metadata", ...)` |
|
||
|
||
### 4.3 不写入的内容
|
||
|
||
- 机密信息(密码、密钥、token)
|
||
- 临时信息(当天的具体任务进度)
|
||
- 已过时会被频繁更新的数据
|
||
- 纯个人笔记(放 `memory/` 下)
|
||
|
||
---
|
||
|
||
## 五、定期维护
|
||
|
||
### 5.1 COO 每周检查清单
|
||
|
||
- [ ] 运行 `wiki_lint()` 检查质量
|
||
- [ ] 统计各 Agent 知识库查询频率
|
||
- [ ] 清理过时页面
|
||
- [ ] 评估知识缺口数量和解决率
|
||
- [ ] 输出知识库运营周报
|
||
|
||
### 5.2 Agent 自检清单
|
||
|
||
每次心跳时:
|
||
- [ ] 上次查询的知识缺口是否已上报
|
||
- [ ] 本轮工作中是否有应写入知识库的发现
|
||
|
||
---
|
||
|
||
## 附录
|
||
|
||
- `docs/agent-kb-retrieval-guide.md` — 工具使用完整指南
|
||
- `docs/Agent 知识库集成指南.md` — 集成方案总览 |