| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- # ════════════════════════════════════════════════════════════
- # qaagent67lite — 轻量级知识问答智能体 (BM25 + Wiki)
- # ════════════════════════════════════════════════════════════
- #
- # 适用场景: 资料少 (< 500 文档) 的领域,如财务、清洁、行政等
- # 与 qaagent67lambda 的区别:
- # lambda: 4 路并行 (BM25+Vector+Graph+Wiki) → 重量级,需要 embedding 服务
- # lite: 2 路融合 (BM25+Wiki) → 轻量级,纯 CPU,无外部依赖
- #
- # Lambda:
- # λ = Classify(q)
- # >> Par(BM25(q), WikiRead(q))
- # >> SimpleMerge(results)
- # >> LLM(context, question)
- #
- # 用法:
- # python3 -m agentpaas agent create --name lite-qa \
- # --config agentexample/qaagent67lite/agent-config.yml
- # python3 -m agentpaas chat lite-qa
- #
- # 部署:
- # 1. 复制本目录到目标机器
- # 2. 创建 instance.yml 指定 knowledge.baseDir
- # 3. 将原始文件放入 {baseDir}/raw/
- # 4. 运行 python scripts/setup.py (一键: 提取→索引→Wiki编译)
- # 5. agentpaas agent create + chat
- agentId: qaagent67lite-v1
- name: lite-qa
- description: >
- 轻量级知识问答智能体。BM25 关键词检索 + LLM Wiki 编译知识,
- 无需向量数据库或 embedding 服务。适合小规模文档集 (< 500 个文件)。
- type: react
- model:
- provider: claude-code
- name: sonnet
- temperature: 0.3
- maxTokens: 4096
- fallback:
- - anthropic/claude-sonnet-4-20250514
- - ollama/qwen2.5:32b
- - dashscope/qwen-max
- systemPrompt: |
- 你是一个精准的领域知识问答助手 (lite-qa)。
- ## 工作原理
- 你有两种知识来源:
- 1. **BM25 检索** — 从原始文档中按关键词搜索相关片段
- 2. **Wiki 编译知识** — LLM 预先编译的结构化 wiki 页面
- ## 工具
- **文档管理**:
- - IngestFiles: 导入文件到知识库 (提取文本 + 建 BM25 索引)
- - WikiIngest: 将文件编译到 Wiki (LLM 理解 → 写 wiki 页面)
- - ListKnowledge: 列出已索引的文件
- - WikiStatus: 查看 Wiki 统计和健康评分
- **查询**:
- - QueryKnowledge: BM25 关键词检索 + LLM 回答
- - WikiQuery: 从 Wiki 编译知识回答 (更精准)
- **维护**:
- - WikiLint: 检查 Wiki 健康 (矛盾/孤页/过期)
- - WikiGrow: 主动生长 Wiki (发现缺失概念)
- **辅助**:
- - ReadFile, ListFiles, SearchContent, Bash
- ## 工作流程
- - 用户问知识问题 → 先 WikiQuery 查编译知识 → 若不够再 QueryKnowledge 补充
- - 用户要导入文件 → IngestFiles (BM25索引) + WikiIngest (Wiki编译) 都做
- - 用户要维护 → WikiLint + WikiGrow
- ## 回答规则
- 1. 只基于检索到的内容回答,不编造
- 2. 每个要点标注来源
- 3. 存在矛盾时说明
- 4. 无相关信息时明确告知
- react:
- maxSteps: 20
- observationEnabled: true
- toolTimeout: 120
- thinkTimeout: 300
- verbose: true
- memory:
- enabled: true
- strategy: local
- size: 50
- ttl: 14400
- mcp:
- localTools:
- # 文档管理
- - IngestFiles
- - ListKnowledge
- - RemoveKnowledge
- # Wiki 知识编译 (v2)
- - WikiIngest
- - WikiQuery
- - WikiLint
- - WikiSearch
- - WikiStatus
- - WikiGrow
- # BM25 检索
- - QueryKnowledge
- # 辅助
- - ReadFile
- - ListFiles
- - SearchContent
- - Bash
- # 完成
- - terminate
- policy:
- mode: auto
- guard:
- dangerousCommandBlock: true
- highRiskConfirmation: false
- maxOutputLength: 50000
- retry: 0
- fallback: last
- persona:
- name: lite-qa
- style: helpful-precise
- template: qaagent
- runtime:
- engine: cek
- costBudget: 0.30
- maxSteps: 10000
- # ═══ 知识库配置 ═══
- # 部署时用 instance.yml 覆盖这些路径
- knowledge:
- baseDir: ./knowledge
- rawDir: ./knowledge/raw
- processedDir: ./knowledge/processed
- indexFile: ./knowledge/rag_index.json
- keywordFile: ./knowledge/rag_index.keywords.json
- # ═══ RAG 配置 (仅 BM25,无 Vector) ═══
- rag:
- enabled: true
- chunkSize: 512
- chunkOverlap: 64
- chunkSeparator: "\n\n"
- topK: 8
- # ═══ 检索配置 (Lite: BM25 + Wiki only) ═══
- retrieval:
- mode: lite
- skills:
- bm25:
- enabled: true
- topK: 10
- embedding:
- enabled: false # ← 关掉 Vector
- rerank:
- enabled: false # ← 关掉 Rerank
- graph:
- enabled: false # ← 关掉 Graph
- wiki:
- enabled: true
- # 简化的 weight profiles (只有 bm25 和 wiki)
- weights:
- fact: {bm25: 1.0, wiki: 0.3}
- compare: {bm25: 0.5, wiki: 0.9}
- process: {bm25: 0.7, wiki: 0.8}
- person: {bm25: 0.9, wiki: 0.5}
- temporal: {bm25: 1.0, wiki: 0.2}
- default: {bm25: 0.8, wiki: 0.6}
- orchestration:
- classifier:
- fastClassify: true
- llmFallback: false # lite 模式不用 LLM 分类,省 token
- rrfK: 60
- parallel: false # 只有 2 路,不需要并行
- # ═══ Wiki 配置 ═══
- wiki:
- dir: ./wiki
- relationsFile: ./wiki/relations.json
|