Commit Graph
43 Commits
Author SHA1 Message Date
zhuyongxin f9df94377b feat(trace): finish run-aware demo verification 2026-07-10 21:37:43 +08:00
zhuyongxin 52bf0302c6 feat(trace): add session run isolation schema 2026-07-10 17:47:56 +08:00
aruo db0f229285 feat(eval): add evidence pipeline acceptance closure 2026-07-09 00:47:48 +08:00
aruo 9a84b3de34 feat(agent): support no-evidence references 2026-07-08 23:30:00 +08:00
aruo 7b8c75e571 feat(agent): harden verifier evidence references 2026-07-08 16:12:56 +08:00
aruo 6015bcbf6f feat(agent): add composer final answer 2026-07-08 09:51:07 +08:00
aruo 1b31e78be5 feat(agent): add verifier claim checks 2026-07-08 02:33:02 +08:00
aruo c5e496e715 feat(agent): add executor gatekeeper hook 2026-07-08 02:01:49 +08:00
aruo 050cbc8fee feat(agent): add executor evidence v2 contract 2026-07-08 01:37:15 +08:00
zhuyongxin 0ee27eb523 feat(trace): improve session workbench review 2026-07-07 19:06:18 +08:00
zhuyongxin 04eb50e2b4 feat(agent): add executor evidence output contract 2026-07-07 19:02:02 +08:00
aruo aa035b828c feat(trace): add diagnosis trace workbench 2026-07-07 01:24:56 +08:00
aruo b3315ead52 fix(agent): harden live diagnosis skill observability 2026-07-07 00:20:34 +08:00
zhuyongxin ed7efc58b7 feat(rag): close eval pipeline with live snapshots 2026-07-06 21:39:27 +08:00
zhuyongxin cf3333d607 feat(rag): modularize knowledge retrieval pipeline 2026-07-06 17:06:05 +08:00
aruo 6ccfd33ec5 Add diagnosis playbook skills 2026-07-06 08:35:54 +08:00
aruo f2bae0382c fix: align vectorstore live retrieval 2026-07-05 10:53:45 +08:00
aruo 5c71f5fc79 feat: integrate spring ai vectorstore fallback 2026-07-05 10:20:29 +08:00
aruo b9ec07de57 feat: add spring ai retrieval sidecar 2026-07-05 03:22:03 +08:00
aruo 23ee05c7c3 feat: add traceable scoped AIOps diagnosis 2026-07-04 22:57:28 +08:00
zhuyongxin 6919092b83 feat: archive mvp demo trace acceptance 2026-07-03 16:25:00 +08:00
zhuyongxin 9050487307 feat: add chat verifier agent 2026-07-03 10:54:33 +08:00
zhuyongxin e438df4355 feat(knowledge): Executor 行动记忆 + 归一化质量等级解决 ISS-002 重复检索
- RetrievedDocTracker 升级为域级+文档级双层记录(Map<sessionId, Map<domain, Set<filePath>>>)
- LookupKnowledgeTool 新增 Min-Max 归一化层(BGE-M3 L2 距离→[0,1] similarity)
- 三等级 relevanceLevel:PRECISE / HIGHLY_RELEVANT / REFERENCE + completenessHint 兜底信号
- LookupResult 新增 relevanceLevel、completenessHint、retrievedDomainsThisSession
- Executor prompt 重写:4 条检索约束 + 合法出口不查全不追责,重复检索才惩罚
- 入库可观测性:V010 迁移 + retrieval_details JSON 扩展
- 归档 executor-action-memory-relevance change
2026-07-01 18:24:41 +08:00
zhuyongxin 354ffc1947 feat(feedback): 补提交 feedback 相关源码(漏提交的新建文件) 2026-07-01 10:57:49 +08:00
zhuyongxin bb44140901 feat(knowledge): 会话级去重 + 知识域地图注入 Planner 解决 ISS-001 重复检索
- RetrievedDocTracker: sessionId → Set<filePath> 会话级去重,LookupKnowledgeTool Step 5 过滤已检索文档
- KnowledgeDomainService: 域级聚合,LLM 生成 when_to_retrieve,构建 knowledge map YAML
- DocumentFieldEnricher: 上传时 LLM 补全 covers + whenToRetrieve(含同域文档排除上下文)
- KnowledgeDomain entity + V009 迁移: 域级元数据持久化,避免重启重复 LLM 调用
- ChatService: 注入 knowledge map 到 Planner prompt,会话结束时清理去重状态
- KnowledgeIndexService: 手写 JSON 解析替换为 Jackson ObjectMapper,启动时补建缺失域记录
- chat-planner-prompt: 新增知识库检索规则(按域 when_to_retrieve 判断,每域最多一次检索)
- doc-field-enricher-prompt / domain-summary-prompt: 外部化 LLM 提示词
2026-07-01 10:47:46 +08:00
zhuyongxin 2a796da490 feat(feedback): 置信度评分与用户反馈机制 & 归档 confidence-feedback change 2026-06-30 18:01:06 +08:00
zhuyongxin 3ffa5cc366 Merge branch 'emdash/afraid-geese-carry-h5718' into refactor/mvp1.0
# Conflicts:
#	devflow/index.md
2026-06-26 17:36:59 +08:00
zhuyongxin 0d9cce75f9 feat(session): 会话存储体系实现 & Chat多Agent路由
- 新增诊断会话(diagnosis_session/agent_step/tool_invocation)三表
- AgentLoggingHook 持久化 agent_step,记录决策链和耗时
- LookupKnowledgeTool 写入 tool_invocation,记录L0/L1检索质量
- TokenTrackingChatModel 捕获真实token用量
- Chat接口支持意图路由:简单问题单Agent,复杂问题多Agent(Planner+Executor)
- Prompt外置到 src/main/resources/prompts/
- 删除旧 diagnosis_record 表及相关文件
- 新增SessionContextHolder(ThreadLocal传递sessionId)
- QuestionComplexity 复杂度判断工具
- 测试覆盖三张新表的Repository
2026-06-26 16:22:05 +08:00
zhuyongxin 92ab8d27ee feat(doc-management): 添加文档管理前端页面
- 新增 documents.html 文档管理页面
  - 文档列表展示(支持筛选和分页)
  - 文档上传功能(带元信息表单)
  - 文档详情查看(右侧滑出面板)
  - 文档删除功能
  - 状态统计卡片(待处理/处理中/已索引/失败)

- 新增 documents.css 和 documents.js
  - 纯静态页面实现,无需额外框架
  - 与现有 index.html 保持一致的设计风格
  - 修复列表滚动问题(覆盖 body overflow 设置)
  - 修复时间字段显示 NaN 问题(增加 Invalid Date 检查)

- 在 index.html 侧边栏添加文档管理入口

- 归档项目文档到 devflow 和 openspec
  - devflow/projects/2026-06-25-doc-management-ui/
  - openspec/changes/doc-management-ui/
  - 更新 devflow/index.md
2026-06-25 15:05:48 +08:00
zhuyongxin 553d1d1faf refactor(ai-ops): 重构 Executor Prompt - 强化行为准则和证据驱动
## 主要改动

1. 重构为更清晰的三段式结构
   - 角色定位:明确"诊断流程的执行者"
   - 核心行为准则:严格按步执行、必须调用工具、证据综合分析
   - 任务执行规范:每步产出要求、最终报告格式

2. 强化关键约束
   - 永远不要凭记忆回答错误码含义、接口定义、排障步骤
   - 结论必须基于至少两个独立证据源
   - 提供证据链格式示例

3. 简化 lookup_knowledge 说明
   - 修正参数名:query_text → query
   - 简化返回字段说明(保留核心信息)
   - 保留三级使用规则(必须/必须/建议)

## 设计理念

- 从"技术细节"转向"行为准则"
- 从"字段说明"转向"证据驱动"
- 提供具体的输出格式示例,减少 Agent 的不确定性

## 参考

基于 mvp/discuss/Executor_Prompt.md 微调
2026-06-24 18:53:42 +08:00
zhuyongxin c88b287f83 refactor(ai-ops): 优化 lookup_knowledge 工具描述和 Executor Prompt
## 主要改动

1. 优化工具描述(中等版)
   - 保留 L0/L1 两阶段检索机制说明
   - 增加适用场景列举(错误码、接口文档、排障步骤等)
   - 简化为核心信息,减少 token 消耗

2. Executor Prompt 新增详细使用说明
   - 添加 lookup_knowledge 返回结果字段说明
   - 提供 confidence 和 match_type 的使用建议
   - 明确 found=false 的处理方式
   - 结构化组织:工具选择 → 结果处理 → 执行反馈

## 设计思路

- 工具描述:简洁,快速理解核心用途
- Executor Prompt:详细,指导正确使用
- 分层设计:减少重复信息,降低 token 消耗
2026-06-24 18:48:04 +08:00
zhuyongxin 363767d3e7 refactor(ai-ops): 标记 queryInternalDocs 为弃用,统一使用 lookup_knowledge
## 改动说明

1. 标记 InternalDocsTools 为 @Deprecated
   - 添加弃用注解和说明文档
   - 工具描述中明确提示使用 lookup_knowledge 替代

2. 简化 Executor Prompt
   - 移除 queryInternalDocs 相关的工具选择逻辑
   - 统一使用 lookup_knowledge 处理所有知识库查询
   - 精确关键词、模糊概念、故障流程都使用同一个工具

## 理由

lookup_knowledge 已经支持:
- L0 精确匹配(< 10ms,高置信度)
- L1 语义检索(自动兜底)

功能完全覆盖 queryInternalDocs(纯 L1 检索),且性能更优。
保留 queryInternalDocs 会导致:
- 工具功能重叠,Agent 决策困难
- 维护两套相似的代码逻辑

## 迁移路径

- 当前:标记为弃用,但保持可用
- 验证:观察 lookup_knowledge 是否能完全替代
- 未来:确认无问题后,在下个版本中移除
2026-06-24 18:38:39 +08:00
zhuyongxin c4d23c3bd8 feat(ai-ops): Prompt 配置化 & 集成 LookupKnowledgeTool
## 主要改动

1. Prompt 配置化
   - 从硬编码改为独立 Markdown 文件管理
   - 新增 AiOpsPromptProperties 配置类,使用 @PostConstruct 加载
   - 创建 prompts/{planner,executor,supervisor}-prompt.md

2. 集成 LookupKnowledgeTool
   - 在 AiOpsService 中注入 LookupKnowledgeTool
   - 添加到工具数组,只给 Executor Agent 使用
   - 符合 3-Agent 协同分析模式

3. Executor Prompt 增强
   - 添加工具选择指南(精确关键词 vs 模糊概念)
   - 明确降级策略(lookup_knowledge 未找到时降级到 queryInternalDocs)

## 优势

- 易于维护:Prompt 修改不需重新编译
- 格式友好:Markdown 原生支持代码块和表格
- 性能优化:精确关键词查询 < 10ms(L0 匹配)

## 文件变更

- 新增:AiOpsPromptProperties.java
- 新增:prompts/planner-prompt.md
- 新增:prompts/executor-prompt.md
- 新增:prompts/supervisor-prompt.md
- 修改:AiOpsService.java(-136 行硬编码,+5 行配置引用)
2026-06-24 18:29:24 +08:00
zhuyongxin d6229f3385 feat(knowledge): 完成 L0+L1 混合检索集成
核心功能:
- 新增 FrontmatterParser 解析 YAML frontmatter
- 新增 KnowledgeIndexService L0 内存索引
- 新增 LookupKnowledgeTool 混合检索工具
- 增强 DocumentManagementService 文件保存和索引同步

技术实现:
- 数据库迁移 V004: api_document.metadata (TEXT)
- 依赖新增: snakeyaml 2.0
- 配置新增: knowledge.base-path
- 可观测性: requestId 追踪 + 性能日志

质量保证:
- 单元测试: 31/31 通过
- 测试覆盖: FrontmatterParser(11), KnowledgeIndexService(13), LookupKnowledgeTool(7)
- 启动验证: L0 索引正常加载

归档文档:
- OpenSpec: openspec/changes/lookup-knowledge-integration/
- devflow 档案: devflow/projects/2026-06-24-lookup-knowledge-integration/
- handoff: handoff/2026-06-24-lookup-knowledge-integration.md
2026-06-24 16:07:10 +08:00
zhuyongxin df40a6e3f5 fix: 修复 logback 配置中的包名 (org.example → com.superbiz.agent) 2026-06-23 17:25:18 +08:00
zhuyongxin c3a232540a refactor(phase1): 完成包名重构 (org.example → com.superbiz.agent)
Task 4.1: 包名统一重构
- 重命名 41 个 Java 文件的包名
- 更新所有 import 语句
- 恢复枚举类(FaultCategory、DiagnosisStatus、SourceType)
- 更新测试类的 import

重构范围:
- domain/entity: 3 个实体类
- domain/model: 2 个数据类
- domain/enums: 3 个枚举类
- repository: 3 个接口
- service/session: 2 个类(接口 + 实现)
- config: 9 个配置类
- controller: 2 个控制器
- agent/tool: 4 个工具类
- client: 1 个客户端
- Main.java: 主类

验证结果:
- 编译成功,无错误
- 所有测试通过 (27/27)
  - ApiDocumentRepositoryTest: 7/7 ✅
  - CaseLibraryRepositoryTest: 6/6 ✅
  - DiagnosisRecordRepositoryTest: 6/6 ✅
  - RedisSessionManagerTest: 8/8 ✅

Progress: 21/33 tasks completed (64%)
2026-06-23 14:56:04 +08:00
zhuyongxin 1de1e98ef8 feat(phase1): 完成 JPA 实体类和 Repository 层实现
- 创建 3 个 JPA 实体类:DiagnosisRecord、CaseLibrary、ApiDocument
- 创建 3 个 Repository 接口,实现基础 CRUD 和自定义查询方法
- 实现 DiagnosisRecordRepository 单元测试(6 个测试全部通过)
- 修复 Hibernate schema 验证问题(枚举类型使用 VARCHAR)
- 更新 application.yml,添加完整的数据库和 Redis 配置
- 更新 OpenSpec tasks.md,标记已完成任务(12/33)

测试结果:
- DiagnosisRecordRepositoryTest: 6/6 通过
- 编译成功,无错误

Progress: 12/33 tasks completed
2026-06-23 14:30:35 +08:00
zhuyongxin 60be51f4a5 docs: 重构文档结构,分离学习笔记和 MVP 架构设计
**变更概述:**
- 将 MVP 架构设计文档独立到项目根目录 `mvp/`
- 整理 `docs/` 为纯学习和分析文档目录
- 按类型分类:learning(学习)、analysis(分析)、reports(报告)、guides(指南)

**目录结构:**
```
mvp/                          # MVP 架构设计(独立)
├── README.md                 # 数据库设计总览
├── architecture/             # 架构文档
│   ├── agent-architecture-mvp.md
│   ├── implementation-plan.md
│   └── ...
└── tables/                   # 数据表设计

docs/                         # 学习和分析文档
├── learning/                 # 学习笔记(00-08 编号)
├── analysis/                 # 分析笔记 + 重构计划
├── reports/                  # 临时报告
└── guides/                   # 指南文档
```

**详细变更:**
- docs/README.md → mvp/README.md(数据库设计入口)
- docs/architecture/ → mvp/architecture/(架构设计)
- docs/tables/ → mvp/tables/(数据表设计)
- docs/学习笔记-*.md → docs/learning/07-*.md, 08-*.md
- docs/项目学习路径.md → docs/learning/00-*.md
- docs/功能分析报告.md → docs/analysis/
- docs/修复报告-*.md → docs/reports/
- docs/日志配置*.md → docs/guides/ 或 docs/reports/
- docs/design/ → docs/analysis/(问题分析和重构计划)
2026-06-23 14:14:51 +08:00
zhuyongxin caef477cec Merge branch 'emdash/lemon-shrimps-bake-7q6xl' into refactor/rag-chunking-strategy
# Conflicts:
#	AGENTS.md
#	CLAUDE.md
#	src/main/resources/application.yml
2026-06-23 11:06:34 +08:00
zhuyongxin 5ddb7a6d93 feat(phase1): 完成基础设施搭建初步工作
- 添加 JPA/Flyway/Redis 依赖到 pom.xml
- 创建 3 个 Flyway 迁移脚本(diagnosis_record/case_library/api_document)
- 创建枚举类(FaultCategory/DiagnosisStatus/SourceType)
- 配置 MySQL + Redis 连接(application.yml)

状态:数据库表脚本就绪,等待数据库创建后验证
2026-06-23 10:53:24 +08:00
aruo ac08345369 commit 2026-05-31 21:45:14 +08:00
zhuyongxin d4b5015beb commit 2026-05-29 21:38:16 +08:00
zhuyongxin 80eada415d commit 2026-04-30 11:19:46 +08:00