kenny67nju a4aa88f697 chore: prep monorepo for first GitHub release 3 bulan lalu
..
agents abd653428d feat: add WebUI, setup wizard, workspace routing fix, and agent examples 3 bulan lalu
scripts cff1c7a61d refactor(lambdagent): migrate to src-layout (mirror GitHub upstream) 3 bulan lalu
skills abd653428d feat: add WebUI, setup wizard, workspace routing fix, and agent examples 3 bulan lalu
LAMBDA_RAG_PLAN.md abd653428d feat: add WebUI, setup wizard, workspace routing fix, and agent examples 3 bulan lalu
RAG_FUSION_PLAN.md abd653428d feat: add WebUI, setup wizard, workspace routing fix, and agent examples 3 bulan lalu
RAG_V2_PLAN.md a4aa88f697 chore: prep monorepo for first GitHub release 3 bulan lalu
README.md 6bb0cca625 docs: document knowledge path config in qaagent67 README 5 bulan lalu
agent-config.yml c5cdb60d07 feat: agent instance mechanism — one template, N domain instances 5 bulan lalu

README.md

qaagent67 — 文档问答智能体 ❓

不断加入文件,然后针对内容提问。回答带引用来源,经过事实核查。

快速使用

# 启动问答智能体
lambdagent run agentexample/qaagent67/agent-config.yml "加入 docs/ 目录下的所有文件"

对话示例

用户: 加入 /path/to/docs 目录下的所有文件

qaagent: ✅ 索引完成
  文件数: 12
  总块数: 184
  知识库: qaagent_default

  文件清单:
    paper.pdf (pdf) → 28 个块
    api.py (py) → 15 个块
    config.md (md) → 8 个块
    ...

用户: 这些文件里提到了哪些性能优化建议?

qaagent: 根据文档,有以下性能优化建议:

  1. 使用数据库连接池 (pool_size=20) 减少连接开销
     [来源: config.md §3, perf.py L42]

  2. 对热点查询使用 Redis 缓存
     [来源: architecture.md §4.2]

  3. API 响应使用 lru_cache 装饰器
     [来源: api.py L120]

  ✓ 以上所有建议均已通过原文验证。

用户: 知识库里现在有哪些文件?

qaagent: 📋 知识库状态 (qaagent_default):
  总文件: 12 个
  总块数: 184 个
  ...

用户: 对比 api.py 和 auth.py 的鉴权方式有什么差异?

qaagent: (判断: 这是对比分析 → 调用 DeepAnalysis)

🔬 深度分析 — 3 路并行检索完成

  1. api.py 的鉴权实现:
     使用 JWT Bearer Token,在中间件层验证 [来源: api.py L15-30]

  2. auth.py 的鉴权实现:
     使用 OAuth2 + PKCE 流程,支持第三方登录 [来源: auth.py L42-80]

  3. 共同点:
     都使用 HTTPS + CORS 白名单 [来源: config.md §security]

  **结论**: api.py 适合内部微服务通信 (JWT 无状态),
  auth.py 适合面向用户的前端应用 (OAuth2 标准流程)。

架构: 混合模式 (工具 + SubAgent)

简单操作 → ReAct + 工具 (快, 零 LLM 成本)
复杂推理 → SubAgent 并行编排 (深, 多路检索+综合)

判断标准: 主 Agent 根据问题类型自动选择

三层架构:
  Layer 1 — Skill (7 个)
    file-reader, chunk-splitter, knowledge-indexer    ← 纯工具,无 LLM
    context-retriever                                 ← 纯工具,向量搜索
    answer-generator, source-citer, fact-checker      ← 需要 LLM

  Layer 2 — Pattern (2 个)
    喂文件: map_reduce (分而治之模式)
    提问:   pipeline + review (流水线 + 审查模式)

  Layer 3 — Orchestration
    agent-config.yml (ReAct 主循环,选择调用哪个工具)

工具

工具 功能 模式 LLM?
IngestFiles 批量喂文件 (文件/目录/glob) map_reduce (工具)
QueryKnowledge 简单事实查询 pipeline (工具) 否 (检索)
DeepAnalysis 复杂对比/总结/评估 fan_out_merge (SubAgent) 是 (并行)
ListKnowledge 查看已索引文件 直接 (工具)
RemoveKnowledge 删除文件索引 直接 (工具)

何时用 QueryKnowledge vs DeepAnalysis

QueryKnowledge (快):
  "API 端口是多少?"       → 精确查找
  "用了什么数据库?"        → 事实检索

DeepAnalysis (深):
  "对比 A 和 B 的差异"     → 多路并行检索 + 对比分析
  "从安全和性能角度评估"    → 多维度并行 + 综合
  "总结所有文件核心观点"    → 逐文件检索 + 合并

支持的文件格式

txt, md, py, js, ts, java, go, rs, c, cpp, css, html, xml, json, yaml, yml, toml, ini, sh, sql, rb, php, swift, kt, pdf, csv, log

配置

# 关键配置项
model:
  provider: ollama                 # 或 dashscope
  name: qwen2.5:32b
  baseUrl: http://localhost:11434

rag:
  collection: maritime_rag         # 知识库名称
  chunkSize: 512                   # 分块大小 (token)
  topK: 5                          # 检索返回数量

runtime:
  engine: cek                      # CEK 引擎: 成本监控 + 循环检测
  costBudget: 0.50                 # 最大成本 $0.50

路径配置(可部署适配)

所有文件路径集中在 agent-config.ymlknowledge 字段,部署时只需修改这里:

knowledge:
  baseDir: /data/knowledge/maritime              # 知识库根目录
  rawDir: /data/knowledge/maritime/raw           # 原始 PDF/文档
  processedDir: /data/knowledge/maritime/processed  # 提取后的文本
  indexFile: /data/knowledge/maritime/rag_index.json
  keywordFile: /data/knowledge/maritime/rag_index.keywords.json

Python 代码通过读取 YAML 获取路径,不硬编码:

# search_engine.py / app.py 都从配置读取
config_path = os.environ.get("AGENT_CONFIG", "agent-config.yml")
with open(config_path) as f:
    config = yaml.safe_load(f)
knowledge_dir = config["knowledge"]["baseDir"]

环境变量 fallback:AGENT_CONFIG 指定配置文件路径,KNOWLEDGE_DIR 指定知识库目录。

Skill 定义

位于 skills/ 目录:

  • answer-generator.yml — 回答生成器 (LLM)
  • source-citer.yml — 来源标注器 (LLM)
  • fact-checker.yml — 事实核查器 (LLM, 审查模式审查者)