zhuyongxin
f035538531
feat(rag): dense+BM25 hybrid on MilvusClientV2, drop SDK path
...
Replace legacy MilvusServiceClient knowledge search/write with a single
MilvusClientV2 hybrid store (BM25 function + dense ANN + RRFRanker).
Use collection biz_hybrid and require knowledge reindex.
2026-07-27 18:49:20 +08:00
aruo
d0452184ee
feat(harness): add information gain stop and audit
2026-07-27 01:03:34 +08:00
zhuyongxin
e20249c5d9
feat(harness): improve trace fallback and reasoning audit
2026-07-23 17:52:01 +08:00
zhuyongxin
8ee7cc0b70
refactor(harness): remove legacy agent architecture
2026-07-22 18:02:01 +08:00
zhuyongxin
bc36248cd8
feat(chat): cut over to single SSE endpoint
2026-07-22 10:01:12 +08:00
zhuyongxin
f8809cb7dd
feat(harness): add chat application use case
2026-07-22 00:57:39 +08:00
zhuyongxin
ee0949d464
feat(harness): add evidence and semantic guards
2026-07-21 23:50:51 +08:00
zhuyongxin
2362665519
feat(harness): add single diagnosis react agent
2026-07-21 22:29:49 +08:00
zhuyongxin
85029d96a7
feat(harness): add readonly mysql tool
2026-07-21 21:24:42 +08:00
zhuyongxin
6b74990f86
feat(harness): add run context and retry core
2026-07-21 18:36:19 +08:00
zhuyongxin
58c39107c5
refactor(harness): freeze single-agent contracts
2026-07-21 17:33:25 +08:00
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