| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- # ════════════════════════════════════════════════════════════
- # qaagent67lambda — LambdaRAG 通用领域问答智能体
- # ════════════════════════════════════════════════════════════
- #
- # 架构: LambdaRAG True Fusion
- # 4 路并行检索 → 加权 RRF 融合 → 丰富上下文 → LLM 生成
- # BM25 (关键词) ∥ Vector (语义) ∥ Graph (关系) ∥ Wiki (编译知识)
- #
- # Lambda:
- # λ = Classify(q) → weights
- # >> Par(BM25(q), Vector(q), GraphExpand(q), WikiRead(q))
- # >> WeightedRRF(results, weights)
- # >> BuildContext(fused, relations, wiki)
- # >> LLM(enriched_context, question)
- #
- # 三层抽象:
- # Layer 1 Skill: bm25_search, vector_search, graph_walk,
- # wiki_read, entity_extract, rrf_merge, time_filter
- # Layer 2 Pattern: keyword | hybrid | fusion | graph | wiki | synthesis
- # Layer 3 Orchestration: Classify → Weighted Route → Feedback
- agentId: qaagent67lambda-v1
- name: lambdarag-agent
- description: >
- LambdaRAG 通用领域问答智能体。基于 True Fusion 架构,
- 4 路并行检索(BM25+向量+图谱+Wiki)加权融合,
- 自适应路由,知识反馈闭环。
- 适用于任何领域的专业知识问答。
- type: react
- # ═══ 模型配置 ═══
- model:
- provider: ollama
- name: qwen2.5:32b
- temperature: 0.3
- maxTokens: 6144
- conversation: true
- maxHistoryTokens: 40000
- # 部署时按需修改:
- # baseUrl: http://127.0.0.1:8000/v1 # vLLM NPU
- # baseUrl: http://127.0.0.1:11434 # Ollama CPU
- # ═══ 系统提示词 (通用) ═══
- systemPrompt: |
- 你是一个专业的领域知识问答助手 (LambdaRAG)。
- ## 工作原则
- - 仅使用检索到的知识库内容回答,不得编造或推测
- - 如存在多个文件信息冲突,以最新文件内容为准
- - 所有回答必须标明信息来源
- - 如果知识库中没有相关信息,明确回答"知识库中暂无相关信息"
- - 回答要完整、准确、简洁
- # ═══ 分类型提示词模板 (通用框架) ═══
- # 领域相关的具体提示词在 instance.yml 中覆盖
- prompts:
- # Step 1: 意图分类 (通用)
- classify: |
- 你是一个意图分类器。请判断用户问题的意图类型:
- - "person": 问某个人(谁负责、找谁、联系方式)
- - "process": 问流程(怎么办、操作步骤、能不能做)
- - "fact": 问具体事实(标准多少、有效期、费率)
- - "compare": 对比类问题
- - "temporal": 时效类问题(最新版本、什么时候)
- 请只输出一个词。
- 用户问题:{question}
- # Step 2a: 找人 — 槽位填充 (通用)
- person_extract: |
- 你是一名知识库信息抽取助手。
- 请基于检索到的知识库内容,提取人员信息。
- 【规则】仅使用知识库信息,不得编造。无信息则返回空字符串。
- 输出 JSON:
- {{"person_name":"", "position":"", "department":"", "phone":"",
- "email":"", "responsibilities":"", "source":""}}
- 知识库内容:{context}
- 用户问题:{question}
- # Step 2b: 找人 — 生成回答 (通用)
- person_answer: |
- 基于以下人员信息,生成面向用户的回答。
- 要求:自然语言、正式礼貌、标明来源、空字段不提及。
- 人员信息:{slot_data}
- 用户问题:{question}
- # Step 3a: 流程 — 槽位填充 (通用)
- process_extract: |
- 你是一名知识库流程信息抽取助手。
- 请基于检索内容,完成流程信息的结构化抽取。
- 【规则】仅使用知识库信息,不得编造。无信息则返回空字符串。
- 输出 JSON:
- {{"process_type":"", "process_name":"", "applicable_conditions":"",
- "steps":"", "departments_involved":"", "roles_or_targets":"",
- "fund_type_constraints":"", "expense_category":"",
- "calculation_factors":"", "policy_basis":"", "source":""}}
- 知识库内容:{context}
- 用户问题:{question}
- # Step 3b: 流程 — 生成回答 (通用)
- process_answer: |
- 基于以下流程信息,生成面向用户的回答。
- 要求:
- - 流程说明类:按条件→步骤→注意事项组织
- - 判断类(能不能):明确结论+依据
- - 金额标准类:说明计算依据,不超出政策推算
- - 标明信息来源,空字段不提及
- 流程信息:{slot_data}
- 用户问题:{question}
- # Step 4: 通用事实回答 (通用)
- fact_answer: |
- 请根据检索到的知识库内容回答用户问题。
- 【要求】
- 1. 以最新文件内容为准
- 2. 回答完整、准确、简洁
- 3. 标明信息来源
- 4. 无相关内容则回答"知识库中暂无相关信息"
- 知识库内容:{context}
- 用户问题:{question}
- # ═══ ReAct 配置 ═══
- react:
- maxSteps: 20
- observationEnabled: true
- toolTimeout: 120
- thinkTimeout: 300
- verbose: true
- # ═══ 记忆 ═══
- memory:
- enabled: true
- strategy: local
- size: 50
- ttl: 14400
- # ═══ 工具 ═══
- mcp:
- localTools:
- - IngestFiles
- - QueryKnowledge
- - ListKnowledge
- - RemoveKnowledge
- - DeepAnalysis
- - ReadFile
- - ListFiles
- - SearchContent
- - Bash
- - terminate
- policy:
- mode: auto
- # ═══ 安全 ═══
- guard:
- dangerousCommandBlock: true
- highRiskConfirmation: false
- maxOutputLength: 50000
- retry: 0
- fallback: last
- # ═══ 人设 ═══
- persona:
- name: lambdarag-agent
- style: helpful-precise
- template: qaagent
- # ═══ 运行时 ═══
- runtime:
- engine: cek
- costBudget: 0.50
- maxSteps: 10000
- # ═══ 知识库配置 ═══
- # 部署时修改 baseDir 指向实际数据目录
- knowledge:
- baseDir: /home/67/knowledge/finance # 知识库根目录
- rawDir: /home/67/knowledge/finance/raw # 原始文件 (PDF/txt/md/pptx/docx)
- processedDir: /home/67/knowledge/finance/processed
- indexFile: /home/67/knowledge/finance/rag_index.json
- keywordFile: /home/67/knowledge/finance/rag_index.keywords.json
- vectorIndex: /home/67/knowledge/finance/rag_vectors_v2.npy
- vectorMeta: /home/67/knowledge/finance/rag_vectors_meta_v2.pkl
- # ═══ RAG 配置 ═══
- rag:
- enabled: true
- collection: default
- chunkSize: 512
- chunkOverlap: 64
- chunkSeparator: "\n\n"
- topK: 5
- # ═══ 检索配置 (LambdaRAG True Fusion) ═══
- retrieval:
- mode: unified
- # Layer 1: Skills
- skills:
- bm25:
- enabled: true
- topK: 10
- embedding:
- enabled: true
- model: bge-m3
- backend: npu
- baseUrl: http://127.0.0.1:11435/api/embed
- batchSize: 32
- dimensions: 1024
- rerank:
- enabled: true
- backend: vllm
- baseUrl: http://127.0.0.1:8000/v1
- graph:
- enabled: true
- relationsFile: /home/67/knowledge/finance/wiki/relations.json
- maxHops: 2
- maxExpand: 20
- wiki:
- enabled: true
- dir: /home/67/knowledge/finance/wiki/
- # Layer 2: Weight Profiles (classifier → weights)
- weights:
- fact: {bm25: 1.0, vector: 0.5, graph: 0.1, wiki: 0.1}
- compare: {bm25: 0.5, vector: 0.8, graph: 0.4, wiki: 0.7}
- relation: {bm25: 0.5, vector: 0.3, graph: 0.7, wiki: 0.8}
- synthesis: {bm25: 0.6, vector: 0.5, graph: 0.5, wiki: 0.6}
- temporal: {bm25: 1.0, vector: 0.2, graph: 0.05, wiki: 0.2}
- default: {bm25: 0.7, vector: 0.5, graph: 0.3, wiki: 0.3}
- # Layer 3: Orchestration
- orchestration:
- classifier:
- fastClassify: true
- llmFallback: true
- rrfK: 60
- pathTimeout: 15
- parallel: true
- # Self-enhancement
- feedback:
- enabled: true
- minSources: 2
- queryLog: /home/67/knowledge/finance/feedback/query_log.jsonl
- routingStats: /home/67/knowledge/finance/feedback/routing_stats.json
- # ═══ Wiki 编译配置 ═══
- wiki:
- dir: /home/67/knowledge/finance/wiki
- relationsFile: /home/67/knowledge/finance/wiki/relations.json
- compileModel: qwen2.5-32b
- temporalNormalization: true
|