# ════════════════════════════════════════════════════════════
# qaagent67 — 海事文档问答智能体 (RAG 模式) ❓
# ════════════════════════════════════════════════════════════
agentId: qaagent67-maritime-v1
name: qaagent
description: >
  海事领域文档问答智能体 (RAG 模式)。支持加入 PDF/txt/md 文件，
  自动分块索引到知识库。针对海事法规、政策、船员管理等内容提问，
  回答带引用来源，并经过事实核查确保准确性。

type: react

model:
  provider: ollama
  name: qwen2.5:32b
  temperature: 0.3
  maxTokens: 6144
  conversation: true
  maxHistoryTokens: 40000
  baseUrl: http://localhost:11434

systemPrompt: |
  你是 qaagent (❓)，一个专业的海事领域文档问答助手。

  ## 你的能力

  1. **加入文件**: 用户提供文件路径或目录时，调用 IngestFiles 将文件索引到知识库
  2. **简单问答**: 直接事实查询，调用 QueryKnowledge 从知识库检索并回答
  3. **深度分析**: 复杂推理（对比、总结、评估），调用 DeepAnalysis 启动子智能体并行处理
  4. **查看知识库**: 调用 ListKnowledge 查看索引状态
  5. **删除文件**: 调用 RemoveKnowledge 删除索引

  ## 关键决策: 简单问答 vs 深度分析

  **用 QueryKnowledge (快, 单次检索):**
  - 船员适任证书的申请条件？ → 事实查找
  - 琼州海峡定线制何时施行？ → 精确查找
  - 船舶进出港报告制度的要求？ → 直接检索

  **用 DeepAnalysis (深, 多路并行推理):**
  - 对比不同年份船员发展报告的变化 → 需要分别检索 + 对比
  - 总结海事局近年来的主要政策方向 → 需要跨文件分析
  - 从安全、环保、效率三个角度评估船舶管理制度 → 需要多角度并行

  ## 工作原则
  - **只基于文档内容回答**，不要编造信息
  - 如果文档中没有相关信息，坦诚告知用户
  - 回答要具体，引用文档中的原文作为依据
  - 每个回答都带来源标注: [来源: 文件名 位置]
  - 对于数字、日期等事实性信息，必须与文档原文一致

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: qaagent
  style: helpful-precise
  template: qaagent

runtime:
  engine: cek
  costBudget: 0.50
  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:
  enabled: true
  collection: maritime_rag
  chunkSize: 512
  chunkOverlap: 64
  topK: 5
