@winspan/claude-forge 1.73.0 → 1.76.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/autopilot/ground-truth-rules.d.ts +51 -0
- package/dist/autopilot/ground-truth-rules.d.ts.map +1 -0
- package/dist/autopilot/ground-truth-rules.js +104 -0
- package/dist/autopilot/ground-truth-rules.js.map +1 -0
- package/dist/autopilot/intent-engine.d.ts +10 -2
- package/dist/autopilot/intent-engine.d.ts.map +1 -1
- package/dist/autopilot/intent-engine.js +62 -10
- package/dist/autopilot/intent-engine.js.map +1 -1
- package/dist/autopilot/rule-distiller.d.ts +10 -4
- package/dist/autopilot/rule-distiller.d.ts.map +1 -1
- package/dist/autopilot/rule-distiller.js +49 -37
- package/dist/autopilot/rule-distiller.js.map +1 -1
- package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +1 -1
- package/dist/daemon/handlers/stages/11-intent-analysis.js +1 -1
- package/dist/daemon/handlers/stages/11-intent-analysis.js.map +1 -1
- package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
- package/dist/daemon/handlers/stop-handler.js +25 -0
- package/dist/daemon/handlers/stop-handler.js.map +1 -1
- package/dist/storage/index.d.ts +38 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/sqlite.d.ts +39 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +147 -1
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/web-static/assets/{index-BY8ONBvF.js → index-9J7Muleq.js} +3 -3
- package/dist/web-static/index.html +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Claude Forge 是一个为 Claude Code 设计的智能编排引擎,通过透明
|
|
|
10
10
|
## ✨ 核心特性
|
|
11
11
|
|
|
12
12
|
- 🎯 **智能意图识别** - 自动分析任务复杂度,决定执行策略(支持规则库匹配和 AI 推理) [x] 2025-01-18
|
|
13
|
-
- 🔄 **Pipeline 编排** - 复杂任务自动拆分为多阶段流程(分析→设计→编码→测试→审查),支持纯事件溯源架构和状态机约束,确保状态一致性,daemon 启动时自动迁移历史数据,阶段产物统一输出到 docs/时间戳/ 目录,支持动态节点系统(Convention 定义节点类型,Skill 作为执行策略,NodeTypeRegistry 聚合节点类型,DynamicNodeExecutor 驱动执行,INodeExecutor 接口统一 PhaseManager 和 DynamicNodeExecutor,DynamicAggregator 支持动态节点事件聚合,启发式完成检测增强支持 file_patterns 和 keywords,Web API 支持动态流水线创建和手动推进),管理后台深度审查与修复完成(9个核心页面4750行代码,发现28个问题,修复13个P1/P2问题,新增质量问题上下文查询接口,优化事件展开性能和UX体验),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 迁移脚本已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化到数据库(node_types表),启动时自动恢复到内存注册表,Convention加载时同步节点类型定义,流水线节点产物约束设计与实现完成(ArtifactType定义、ArtifactConstraint约束、ArtifactCollector收集器、ArtifactValidator验证器支持复杂度驱动约束、NodeOutput结构化输出、启发式完成检测集成产物验证、Web前端展示产物列表和验证状态),DynamicPipelineRepository 支持动态流水线和节点的完整 CRUD 操作,Web 管理后台集成动态流水线 API
|
|
13
|
+
- 🔄 **Pipeline 编排** - 复杂任务自动拆分为多阶段流程(分析→设计→编码→测试→审查),支持纯事件溯源架构和状态机约束,确保状态一致性,daemon 启动时自动迁移历史数据,阶段产物统一输出到 docs/时间戳/ 目录,支持动态节点系统(Convention 定义节点类型,Skill 作为执行策略,NodeTypeRegistry 聚合节点类型,DynamicNodeExecutor 驱动执行,INodeExecutor 接口统一 PhaseManager 和 DynamicNodeExecutor,DynamicAggregator 支持动态节点事件聚合,启发式完成检测增强支持 file_patterns 和 keywords,Web API 支持动态流水线创建和手动推进),管理后台深度审查与修复完成(9个核心页面4750行代码,发现28个问题,修复13个P1/P2问题,新增质量问题上下文查询接口,优化事件展开性能和UX体验),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 迁移脚本已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化到数据库(node_types表),启动时自动恢复到内存注册表,Convention加载时同步节点类型定义,流水线节点产物约束设计与实现完成(ArtifactType定义、ArtifactConstraint约束、ArtifactCollector收集器、ArtifactValidator验证器支持复杂度驱动约束、NodeOutput结构化输出、启发式完成检测集成产物验证、Web前端展示产物列表和验证状态),DynamicPipelineRepository 支持动态流水线和节点的完整 CRUD 操作,Web 管理后台集成动态流水线 API 路由和前端展示,产物约束验证支持复杂度驱动(simple/moderate/complex 动态调整约束严格度),git 操作强制归类为 simple 复杂度,Analyzer 集成 Convention 上下文到 pipeline-decompose 提示词,产物验证器支持复杂度驱动约束动态调整 [x] 2026-04-23
|
|
14
14
|
- 🛡️ **质量门禁** - 每个阶段自动 AI 审查,支持需求规格、安全性、代码质量、测试覆盖、性能等多维度检查,问题追踪和解决状态管理,支持上下文查询 [x] 2025-01-18
|
|
15
15
|
- 📊 **Web 管理后台** - 实时监控会话、Pipeline、质量问题(支持上下文查询和批量解决)、知识图谱、项目管理、自定义规范管理、技能管理、CLAUDE.md 管理(支持模块化查看和蒸馏压缩)、项目规范绑定管理、项目元数据管理(标签/备注/归档)、全局规范管理(同步/安装/删除/进化/YAML编辑/使用统计/进化历史)、阶段产物统一管理(docs/时间戳/目录结构+INDEX.md索引)、动态节点类型管理(NodeTypeRegistry 可视化)、TemplateRegistry 支持三种来源(builtin/user/convention)、动态流水线创建和手动推进操作、事件日志管理(查看/搜索/导出/清理)、数据库维护功能(备份/恢复/历史记录/诊断修复)、数据分析页面(会话统计、事件统计、API使用统计、成本分析、趋势图表),深度代码审查完成(9个核心页面28个问题,修复13个P1/P2问题,包括运行时错误、性能优化、竞态条件、UX改进),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 数据迁移支持已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化和恢复机制已实现,DynamicPipelineNodes组件支持产物展示(artifacts列表、验证状态、类型图标、路径链接),知识图谱页面集成完成(搜索/概览/邻居/图谱可视化/CRUD操作),Analytics 页面支持会话统计、事件统计、API使用统计和成本分析,动态流水线 API 路由完整集成(创建/查询/更新/删除/手动推进) [x] 2026-04-23
|
|
16
16
|
- 🧠 **知识积累** - 自动提炼决策日志、时间线、项目规范,支持树索引和语义检索,Web管理后台集成知识图谱页面(搜索/概览/邻居/图谱可视化/CRUD操作) [x] 2026-04-23
|
|
@@ -25,14 +25,14 @@ Claude Forge 是一个为 Claude Code 设计的智能编排引擎,通过透明
|
|
|
25
25
|
| 功能 | 说明 |
|
|
26
26
|
|------|------|
|
|
27
27
|
| 意图识别 | 自动分析任务复杂度(simple/moderate/complex),决定执行策略,支持规则库和 AI 推理 [x] 2025-01-18 |
|
|
28
|
-
| Pipeline 编排 | 复杂任务自动拆分为多阶段流程,支持纯事件溯源、状态机约束、质量门禁、阶段产物生成(统一输出到 docs/时间戳/ 目录+INDEX.md索引)、daemon 启动时自动迁移历史数据、动态节点系统(Convention 定义节点类型,NodeTypeRegistry 聚合,DynamicNodeExecutor 驱动,Skill 作为执行策略,INodeExecutor 接口统一,TemplateRegistry 支持三种来源,启发式完成检测增强,Web API 操作端点),管理后台深度审查与修复完成(修复运行时错误、性能问题、竞态条件、UX体验等13个P1/P2问题),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 迁移脚本已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化到数据库(node_types表+NodeTypeRepository),启动时自动恢复到内存注册表,Convention加载时同步节点类型定义,流水线节点产物约束系统完成(ArtifactCollector追踪Write/Edit工具调用、ArtifactValidator验证产物约束支持复杂度驱动、NodeOutput结构化输出、DynamicPipelineNodes组件展示产物列表和验证状态),DynamicPipelineRepository 支持动态流水线和节点的完整 CRUD 操作,Web 管理后台动态流水线 API
|
|
28
|
+
| Pipeline 编排 | 复杂任务自动拆分为多阶段流程,支持纯事件溯源、状态机约束、质量门禁、阶段产物生成(统一输出到 docs/时间戳/ 目录+INDEX.md索引)、daemon 启动时自动迁移历史数据、动态节点系统(Convention 定义节点类型,NodeTypeRegistry 聚合,DynamicNodeExecutor 驱动,Skill 作为执行策略,INodeExecutor 接口统一,TemplateRegistry 支持三种来源,启发式完成检测增强,Web API 操作端点),管理后台深度审查与修复完成(修复运行时错误、性能问题、竞态条件、UX体验等13个P1/P2问题),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 迁移脚本已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化到数据库(node_types表+NodeTypeRepository),启动时自动恢复到内存注册表,Convention加载时同步节点类型定义,流水线节点产物约束系统完成(ArtifactCollector追踪Write/Edit工具调用、ArtifactValidator验证产物约束支持复杂度驱动、NodeOutput结构化输出、DynamicPipelineNodes组件展示产物列表和验证状态),DynamicPipelineRepository 支持动态流水线和节点的完整 CRUD 操作,Web 管理后台动态流水线 API 路由完整注册,产物约束验证支持复杂度驱动(simple/moderate/complex 动态调整约束严格度),git 操作强制归类为 simple 复杂度,Analyzer 集成 Convention 上下文到 pipeline-decompose 提示词,产物验证器支持复杂度驱动约束动态调整 [x] 2026-04-23 |
|
|
29
29
|
| 质量门禁 | 每个阶段自动 AI 审查(需求规格、安全性、代码质量、测试、性能),不合格则阻止推进 [x] 2025-01-18 |
|
|
30
30
|
| 技能编排 | 根据意图自动匹配并注入最佳实践,支持关键词映射和命中率统计 [x] 2025-01-18 |
|
|
31
31
|
| 知识蒸馏 | 自动提炼决策日志、时间线、项目规范,支持树索引和语义检索,Web管理后台集成知识图谱页面(搜索/概览/邻居/图谱可视化/CRUD操作) [x] 2026-04-23 |
|
|
32
32
|
| 会话续接 | 中断后自动恢复上次工作状态 [x] 2025-01-18 |
|
|
33
33
|
| 用户画像 | 根据行为自适应调整干预深度 [x] 2025-01-18 |
|
|
34
34
|
| 多 AI 提供商 | 支持 Claude、OpenAI、Ollama,统一网关层 [x] 2025-01-18 |
|
|
35
|
-
| Web 管理后台 | 实时监控、项目管理、Pipeline 控制、质量追踪(支持上下文查询和批量解决)、自定义规范管理、技能管理、CLAUDE.md 管理、项目规范绑定管理、项目元数据管理(标签/备注/归档)、全局规范管理(同步/安装/删除/进化/YAML编辑/使用统计/进化历史)、阶段产物索引管理、动态节点类型管理(NodeTypeRegistry 可视化)、TemplateRegistry 可视化、动态流水线创建和手动推进、事件日志管理、数据库维护功能(备份/恢复/历史记录/诊断修复)、数据分析页面(会话统计、事件统计、API使用统计、成本分析、趋势图表),深度代码审查完成(9个核心页面4750行代码,发现28个问题,修复13个P1/P2问题,包括运行时错误修复、性能优化、竞态条件处理、UX体验改进),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 数据迁移支持已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化和恢复机制已实现,DynamicPipelineNodes组件支持产物可视化(类型图标、路径链接、验证状态徽章、复杂度驱动约束验证),知识图谱页面集成完成(搜索/概览/邻居/图谱可视化/CRUD操作),Analytics 页面支持会话统计、事件统计、API使用统计和成本分析,动态流水线 API 路由完整集成(/api/pipelines/dynamic
|
|
35
|
+
| Web 管理后台 | 实时监控、项目管理、Pipeline 控制、质量追踪(支持上下文查询和批量解决)、自定义规范管理、技能管理、CLAUDE.md 管理、项目规范绑定管理、项目元数据管理(标签/备注/归档)、全局规范管理(同步/安装/删除/进化/YAML编辑/使用统计/进化历史)、阶段产物索引管理、动态节点类型管理(NodeTypeRegistry 可视化)、TemplateRegistry 可视化、动态流水线创建和手动推进、事件日志管理、数据库维护功能(备份/恢复/历史记录/诊断修复)、数据分析页面(会话统计、事件统计、API使用统计、成本分析、趋势图表),深度代码审查完成(9个核心页面4750行代码,发现28个问题,修复13个P1/P2问题,包括运行时错误修复、性能优化、竞态条件处理、UX体验改进),节点类型管理页面和动态流水线节点展示组件已实现,NodeTypes 页面和 PipelineDetail 动态节点展示已集成,Legacy Pipeline 数据迁移支持已完成,节点类型 API 路由已注册,动态节点系统全栈集成完成,全栈集成验证通过(NodeTypes页面正常展示节点类型,PipelineDetail页面正常展示动态节点,API路由正常响应),节点类型持久化和恢复机制已实现,DynamicPipelineNodes组件支持产物可视化(类型图标、路径链接、验证状态徽章、复杂度驱动约束验证),知识图谱页面集成完成(搜索/概览/邻居/图谱可视化/CRUD操作),Analytics 页面支持会话统计、事件统计、API使用统计和成本分析,动态流水线 API 路由完整集成(/api/pipelines/dynamic 端点支持创建/查询/更新/删除/手动推进),产物约束验证支持复杂度驱动(simple/moderate/complex 动态调整约束严格度),Knowledge 页面集成知识图谱可视化和 CRUD 操作,产物验证器支持复杂度驱动约束动态调整 [x] 2026-04-23 |
|
|
36
36
|
| 阶段产物 | 每个阶段自动生成结构化文档 [x] 2025-01-18 |
|
|
37
37
|
| 模式学习 | 从历史失败中提炼预防建议,支持 Thompson Sampling 策略选择 [x] 2025-01-18 |
|
|
38
38
|
| 项目规范 | 根据技术栈自动蒸馏项目级规范,支持自动初始化和 AI 自进化 [x] 2025-01-18 |
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ground Truth Rules — 不可变真理规则
|
|
3
|
+
*
|
|
4
|
+
* 这些规则代表"绝对正确"的分类知识,优先级最高,永不被学习规则覆盖。
|
|
5
|
+
* daemon 启动时自动 UPSERT 到 intent_rules 表(priority='ground_truth')。
|
|
6
|
+
*/
|
|
7
|
+
export interface GroundTruthRule {
|
|
8
|
+
id: string;
|
|
9
|
+
description: string;
|
|
10
|
+
pattern: RegExp;
|
|
11
|
+
complexity: 'simple' | 'moderate' | 'complex';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Ground Truth 规则定义
|
|
15
|
+
*
|
|
16
|
+
* 设计原则:
|
|
17
|
+
* 1. Simple: 单一操作,无需多阶段流程(git/版本/单文件修复)
|
|
18
|
+
* 2. Moderate: 需要分析+实现,但范围可控(功能开发/多文件改动)
|
|
19
|
+
* 3. Complex: 大范围重构/架构变更/系统级改造
|
|
20
|
+
*/
|
|
21
|
+
export declare const GROUND_TRUTH_RULES: GroundTruthRule[];
|
|
22
|
+
/**
|
|
23
|
+
* 计算质量加权置信度
|
|
24
|
+
*
|
|
25
|
+
* 公式:confidence = freqScore × 0.3 + accuracy × 0.4 + avgSatisfaction × 0.3
|
|
26
|
+
*
|
|
27
|
+
* @param frequency 规则命中次数
|
|
28
|
+
* @param successCount 成功次数
|
|
29
|
+
* @param failureCount 失败次数
|
|
30
|
+
* @param avgSatisfaction 平均满意度(0-1)
|
|
31
|
+
* @returns 置信度(0-1)
|
|
32
|
+
*/
|
|
33
|
+
export declare function computeConfidence(frequency: number, successCount: number, failureCount: number, avgSatisfaction: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* 检查 prompt 是否与任一 Ground Truth 规则匹配
|
|
36
|
+
*
|
|
37
|
+
* @param prompt 用户输入
|
|
38
|
+
* @returns 匹配的规则,或 null
|
|
39
|
+
*/
|
|
40
|
+
export declare function matchGroundTruth(prompt: string): GroundTruthRule | null;
|
|
41
|
+
/**
|
|
42
|
+
* 检查关键词是否与 Ground Truth 规则冲突
|
|
43
|
+
*
|
|
44
|
+
* 用于规则提炼时过滤:如果学习到的关键词与 Ground Truth 规则匹配,
|
|
45
|
+
* 说明这个关键词应该由 Ground Truth 处理,不应生成学习规则。
|
|
46
|
+
*
|
|
47
|
+
* @param keyword 关键词
|
|
48
|
+
* @returns 是否冲突
|
|
49
|
+
*/
|
|
50
|
+
export declare function conflictsWithGroundTruth(keyword: string): boolean;
|
|
51
|
+
//# sourceMappingURL=ground-truth-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ground-truth-rules.d.ts","sourceRoot":"","sources":["../../src/autopilot/ground-truth-rules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA0C/C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACtB,MAAM,CAYR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAQvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjE"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ground Truth Rules — 不可变真理规则
|
|
3
|
+
*
|
|
4
|
+
* 这些规则代表"绝对正确"的分类知识,优先级最高,永不被学习规则覆盖。
|
|
5
|
+
* daemon 启动时自动 UPSERT 到 intent_rules 表(priority='ground_truth')。
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Ground Truth 规则定义
|
|
9
|
+
*
|
|
10
|
+
* 设计原则:
|
|
11
|
+
* 1. Simple: 单一操作,无需多阶段流程(git/版本/单文件修复)
|
|
12
|
+
* 2. Moderate: 需要分析+实现,但范围可控(功能开发/多文件改动)
|
|
13
|
+
* 3. Complex: 大范围重构/架构变更/系统级改造
|
|
14
|
+
*/
|
|
15
|
+
export const GROUND_TRUTH_RULES = [
|
|
16
|
+
// ── Simple: Git 操作 ──────────────────────────────────────────────────
|
|
17
|
+
{
|
|
18
|
+
id: 'gt_git_commit_push',
|
|
19
|
+
description: 'Git 提交/推送/分支操作',
|
|
20
|
+
pattern: /^(提交|commit|push|推送|升级版本|bump version|version bump|merge|rebase|tag|打标签|发布版本|release)|(git\s+(commit|push|pull|merge|rebase|tag)|提交.*推送|推送.*提交|升级.*版本|版本.*升级)/i,
|
|
21
|
+
complexity: 'simple',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: 'gt_git_status_log',
|
|
25
|
+
description: 'Git 状态查询',
|
|
26
|
+
pattern: /^(git\s+(status|log|diff|show|branch)|查看.*状态|查看.*日志|查看.*分支)/i,
|
|
27
|
+
complexity: 'simple',
|
|
28
|
+
},
|
|
29
|
+
// ── Simple: 单文件修复 ────────────────────────────────────────────────
|
|
30
|
+
{
|
|
31
|
+
id: 'gt_single_file_fix',
|
|
32
|
+
description: '单文件 bug 修复',
|
|
33
|
+
pattern: /^(修复|fix|patch)\s+.{1,30}\s*(bug|问题|error|错误|异常)$/i,
|
|
34
|
+
complexity: 'simple',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: 'gt_config_update',
|
|
38
|
+
description: '配置文件更新',
|
|
39
|
+
pattern: /^(修改|更新|update|change)\s*(config|配置|设置|参数).*单个/i,
|
|
40
|
+
complexity: 'simple',
|
|
41
|
+
},
|
|
42
|
+
// ── Complex: 大范围重构 ───────────────────────────────────────────────
|
|
43
|
+
{
|
|
44
|
+
id: 'gt_large_refactor',
|
|
45
|
+
description: '大范围重构/架构变更',
|
|
46
|
+
pattern: /(重构|refactor|重新设计|redesign|架构.*迁移|migrate.*架构|完整.*系统|全面.*改造|系统级.*重构)/i,
|
|
47
|
+
complexity: 'complex',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: 'gt_new_module',
|
|
51
|
+
description: '新增核心模块',
|
|
52
|
+
pattern: /(新增|添加|add|create).*(模块|module|子系统|subsystem|核心.*功能)/i,
|
|
53
|
+
complexity: 'complex',
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
/**
|
|
57
|
+
* 计算质量加权置信度
|
|
58
|
+
*
|
|
59
|
+
* 公式:confidence = freqScore × 0.3 + accuracy × 0.4 + avgSatisfaction × 0.3
|
|
60
|
+
*
|
|
61
|
+
* @param frequency 规则命中次数
|
|
62
|
+
* @param successCount 成功次数
|
|
63
|
+
* @param failureCount 失败次数
|
|
64
|
+
* @param avgSatisfaction 平均满意度(0-1)
|
|
65
|
+
* @returns 置信度(0-1)
|
|
66
|
+
*/
|
|
67
|
+
export function computeConfidence(frequency, successCount, failureCount, avgSatisfaction) {
|
|
68
|
+
const total = successCount + failureCount;
|
|
69
|
+
if (total === 0) {
|
|
70
|
+
// 无反馈数据:仅基于频率
|
|
71
|
+
return Math.min(0.75, 0.5 + frequency * 0.025);
|
|
72
|
+
}
|
|
73
|
+
const accuracy = successCount / total;
|
|
74
|
+
const freqScore = Math.min(1.0, frequency / 20); // 20次达到满分
|
|
75
|
+
return freqScore * 0.3 + accuracy * 0.4 + avgSatisfaction * 0.3;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 检查 prompt 是否与任一 Ground Truth 规则匹配
|
|
79
|
+
*
|
|
80
|
+
* @param prompt 用户输入
|
|
81
|
+
* @returns 匹配的规则,或 null
|
|
82
|
+
*/
|
|
83
|
+
export function matchGroundTruth(prompt) {
|
|
84
|
+
const trimmed = prompt.trim();
|
|
85
|
+
for (const rule of GROUND_TRUTH_RULES) {
|
|
86
|
+
if (rule.pattern.test(trimmed)) {
|
|
87
|
+
return rule;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* 检查关键词是否与 Ground Truth 规则冲突
|
|
94
|
+
*
|
|
95
|
+
* 用于规则提炼时过滤:如果学习到的关键词与 Ground Truth 规则匹配,
|
|
96
|
+
* 说明这个关键词应该由 Ground Truth 处理,不应生成学习规则。
|
|
97
|
+
*
|
|
98
|
+
* @param keyword 关键词
|
|
99
|
+
* @returns 是否冲突
|
|
100
|
+
*/
|
|
101
|
+
export function conflictsWithGroundTruth(keyword) {
|
|
102
|
+
return GROUND_TRUTH_RULES.some(rule => rule.pattern.test(keyword));
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=ground-truth-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ground-truth-rules.js","sourceRoot":"","sources":["../../src/autopilot/ground-truth-rules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,uEAAuE;IACvE;QACE,EAAE,EAAE,oBAAoB;QACxB,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,gKAAgK;QACzK,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,8DAA8D;QACvE,UAAU,EAAE,QAAQ;KACrB;IAED,oEAAoE;IACpE;QACE,EAAE,EAAE,oBAAoB;QACxB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,oDAAoD;QAC7D,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,iDAAiD;QAC1D,UAAU,EAAE,QAAQ;KACrB;IAED,oEAAoE;IACpE;QACE,EAAE,EAAE,mBAAmB;QACvB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,uEAAuE;QAChF,UAAU,EAAE,SAAS;KACtB;IACD;QACE,EAAE,EAAE,eAAe;QACnB,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,uDAAuD;QAChE,UAAU,EAAE,SAAS;KACtB;CACF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,YAAoB,EACpB,YAAoB,EACpB,eAAuB;IAEvB,MAAM,KAAK,GAAG,YAAY,GAAG,YAAY,CAAC;IAE1C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,cAAc;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,GAAG,KAAK,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU;IAE3D,OAAO,SAAS,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,eAAe,GAAG,GAAG,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -32,6 +32,7 @@ export interface UserContext {
|
|
|
32
32
|
*/
|
|
33
33
|
export declare class IntentEngine {
|
|
34
34
|
private api;
|
|
35
|
+
private storage;
|
|
35
36
|
private ruleDistiller;
|
|
36
37
|
/** 项目结构缓存,TTL=2min,避免每次分析都读文件系统 */
|
|
37
38
|
private structureCache;
|
|
@@ -54,9 +55,16 @@ export declare class IntentEngine {
|
|
|
54
55
|
* 分析用户输入的意图和复杂度
|
|
55
56
|
* @param conversationHistory 会话上下文(最近的用户输入和工具调用摘要)
|
|
56
57
|
* @param activePlan 当前活跃计划摘要(跨 session 的任务续接状态)
|
|
58
|
+
* @param sessionId 当前 session ID(用于决策日志)
|
|
59
|
+
*/
|
|
60
|
+
analyze(userPrompt: string, projectPath: string, techStack?: string, conversationHistory?: string, isForgeManaged?: boolean, activePlan?: ActivePlanSummary, userContext?: UserContext, sessionId?: string): Promise<IntentAnalysis>;
|
|
61
|
+
/** 记录意图分类决策到审计日志(fire-and-forget) */
|
|
62
|
+
private logDecision;
|
|
63
|
+
/** 从 StorageEngine 获取活跃学习规则(is_active=1, priority='learned',带 TTL 缓存) */
|
|
64
|
+
private getActiveLearnedRulesFromStorage;
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated Use getActiveLearnedRulesFromStorage instead
|
|
57
67
|
*/
|
|
58
|
-
analyze(userPrompt: string, projectPath: string, techStack?: string, conversationHistory?: string, isForgeManaged?: boolean, activePlan?: ActivePlanSummary, userContext?: UserContext): Promise<IntentAnalysis>;
|
|
59
|
-
/** 从 StorageEngine 获取规则库(带 TTL 缓存,避免每次 analyze 都查 DB) */
|
|
60
68
|
private getRulesFromStorage;
|
|
61
69
|
/**
|
|
62
70
|
* 快速放行:只过滤明确不涉及代码改动的操作。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-engine.d.ts","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"intent-engine.d.ts","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAOjE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;IACjD,gBAAgB,EAAE,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,aAAa,CAA8B;IACnD,mCAAmC;IACnC,OAAO,CAAC,cAAc,CAA0H;IAChJ,iCAAiC;IACjC,OAAO,CAAC,cAAc,CAA2H;IACjJ,yCAAyC;IACzC,OAAO,CAAC,UAAU,CAAqO;IACvP,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAAqH;gBAE/H,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa;IAQpD;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxD;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAY3C;;;;;OAKG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,cAAc,CAAC,EAAE,OAAO,EACxB,UAAU,CAAC,EAAE,iBAAiB,EAC9B,WAAW,CAAC,EAAE,WAAW,EACzB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC;IAqE1B,qCAAqC;IACrC,OAAO,CAAC,WAAW;IA2BnB,yEAAyE;IACzE,OAAO,CAAC,gCAAgC;IAYxC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAkEnB;;OAEG;YACW,SAAS;IA6DvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiD3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,aAAa;IAwBrB;;;OAGG;YACW,oBAAoB;IA8BlC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD,WAAW,IAAI,UAAU;IAIzB;OACG;IACH,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;CAsB3D"}
|
|
@@ -6,6 +6,7 @@ import { RuleDistiller } from './rule-distiller.js';
|
|
|
6
6
|
import { PromptRegistry } from '../prompts/registry.js';
|
|
7
7
|
import { memoryManager } from '../utils/memory-manager.js';
|
|
8
8
|
import { CACHE, TIME } from '../constants.js';
|
|
9
|
+
import { matchGroundTruth } from './ground-truth-rules.js';
|
|
9
10
|
/**
|
|
10
11
|
* IntentEngine — 意图识别引擎
|
|
11
12
|
*
|
|
@@ -16,6 +17,7 @@ import { CACHE, TIME } from '../constants.js';
|
|
|
16
17
|
*/
|
|
17
18
|
export class IntentEngine {
|
|
18
19
|
api;
|
|
20
|
+
storage = null;
|
|
19
21
|
ruleDistiller = null;
|
|
20
22
|
/** 项目结构缓存,TTL=2min,避免每次分析都读文件系统 */
|
|
21
23
|
structureCache = memoryManager.register('intent:structure', { max: CACHE.INTENT_STRUCTURE_MAX, ttl: TIME.TWO_MINUTES });
|
|
@@ -28,6 +30,7 @@ export class IntentEngine {
|
|
|
28
30
|
constructor(api, storage) {
|
|
29
31
|
this.api = api;
|
|
30
32
|
if (storage) {
|
|
33
|
+
this.storage = storage;
|
|
31
34
|
this.ruleDistiller = new RuleDistiller(storage);
|
|
32
35
|
}
|
|
33
36
|
}
|
|
@@ -62,8 +65,9 @@ export class IntentEngine {
|
|
|
62
65
|
* 分析用户输入的意图和复杂度
|
|
63
66
|
* @param conversationHistory 会话上下文(最近的用户输入和工具调用摘要)
|
|
64
67
|
* @param activePlan 当前活跃计划摘要(跨 session 的任务续接状态)
|
|
68
|
+
* @param sessionId 当前 session ID(用于决策日志)
|
|
65
69
|
*/
|
|
66
|
-
async analyze(userPrompt, projectPath, techStack, conversationHistory, isForgeManaged, activePlan, userContext) {
|
|
70
|
+
async analyze(userPrompt, projectPath, techStack, conversationHistory, isForgeManaged, activePlan, userContext, sessionId) {
|
|
67
71
|
// 快速放行:纯对话和无改动操作
|
|
68
72
|
// 注意:有会话上下文时(多轮对话中),短输入可能是确认回复,不应被快速过滤
|
|
69
73
|
const quickResult = this.quickFilter(userPrompt, !!conversationHistory);
|
|
@@ -71,15 +75,33 @@ export class IntentEngine {
|
|
|
71
75
|
logger.info(`快速判定:${quickResult.complexity} | 理由=${quickResult.reasoning}`);
|
|
72
76
|
return quickResult;
|
|
73
77
|
}
|
|
74
|
-
//
|
|
75
|
-
|
|
78
|
+
// ── Layer 1: Ground Truth(不可变规则,最高优先级)────────────────────────
|
|
79
|
+
const gtMatch = matchGroundTruth(userPrompt);
|
|
80
|
+
if (gtMatch) {
|
|
81
|
+
logger.info(`[意图分析] Ground Truth 命中: ${gtMatch.id} → ${gtMatch.complexity}`);
|
|
82
|
+
const gtResult = {
|
|
83
|
+
complexity: gtMatch.complexity,
|
|
84
|
+
requiresPipeline: gtMatch.complexity === 'complex',
|
|
85
|
+
requirement: userPrompt,
|
|
86
|
+
reasoning: `Ground Truth: ${gtMatch.description}(规则 ${gtMatch.id})`,
|
|
87
|
+
estimatedFiles: gtMatch.complexity === 'simple' ? 0 : gtMatch.complexity === 'moderate' ? 3 : 8,
|
|
88
|
+
suggestedPhases: gtMatch.complexity === 'complex' ? ['analyze', 'code', 'test'] : gtMatch.complexity === 'moderate' ? ['code', 'test'] : [],
|
|
89
|
+
confidence: 1.0,
|
|
90
|
+
};
|
|
91
|
+
// 记录决策日志
|
|
92
|
+
this.logDecision(sessionId, projectPath, userPrompt, gtMatch.complexity, 'ground_truth', gtMatch.id, 1.0);
|
|
93
|
+
return gtResult;
|
|
94
|
+
}
|
|
95
|
+
// ── Layer 2: Quality Learned Rules(质量加权,自动进化)────────────────────
|
|
76
96
|
if (this.ruleDistiller) {
|
|
77
97
|
try {
|
|
78
|
-
const rules = this.
|
|
98
|
+
const rules = this.getActiveLearnedRulesFromStorage(projectPath);
|
|
79
99
|
if (rules.length > 0) {
|
|
80
100
|
const ruleResult = this.ruleDistiller.matchRules(userPrompt, rules);
|
|
81
|
-
|
|
101
|
+
// 提高置信度门槛到 0.7,只有高质量规则才能跳过 AI
|
|
102
|
+
if (ruleResult && (ruleResult.confidence ?? 0) >= 0.7) {
|
|
82
103
|
logger.info(`[规则库命中] complexity=${ruleResult.complexity} | ${ruleResult.reasoning}`);
|
|
104
|
+
this.logDecision(sessionId, projectPath, userPrompt, ruleResult.complexity, 'learned', null, ruleResult.confidence ?? 0);
|
|
83
105
|
return ruleResult;
|
|
84
106
|
}
|
|
85
107
|
}
|
|
@@ -88,12 +110,13 @@ export class IntentEngine {
|
|
|
88
110
|
// 规则库查询失败,继续走 AI 分析
|
|
89
111
|
}
|
|
90
112
|
}
|
|
91
|
-
//
|
|
113
|
+
// ── Layer 3: AI Fallback ──────────────────────────────────────────────────
|
|
92
114
|
try {
|
|
93
115
|
const result = await this.aiAnalyze(userPrompt, projectPath, techStack, conversationHistory, activePlan, userContext);
|
|
94
116
|
// 低置信度主动澄清:confidence < 0.6 且有澄清问题时,强制降级为 simple + 附带澄清问题
|
|
95
117
|
if (result.confidence !== undefined && result.confidence < 0.6 && result.clarifyQuestions && result.clarifyQuestions.length > 0) {
|
|
96
118
|
logger.warn(`[意图引擎] 置信度过低 (${result.confidence.toFixed(2)}),触发主动澄清`);
|
|
119
|
+
this.logDecision(sessionId, projectPath, userPrompt, 'simple', 'ai_fallback', null, result.confidence);
|
|
97
120
|
return {
|
|
98
121
|
...result,
|
|
99
122
|
complexity: 'simple',
|
|
@@ -101,6 +124,7 @@ export class IntentEngine {
|
|
|
101
124
|
reasoning: `${result.reasoning}\n\n⚠️ 置信度过低 (${(result.confidence * 100).toFixed(0)}%),建议先澄清需求`,
|
|
102
125
|
};
|
|
103
126
|
}
|
|
127
|
+
this.logDecision(sessionId, projectPath, userPrompt, result.complexity, 'ai_fallback', null, result.confidence ?? 0.5);
|
|
104
128
|
return result;
|
|
105
129
|
}
|
|
106
130
|
catch (err) {
|
|
@@ -108,16 +132,44 @@ export class IntentEngine {
|
|
|
108
132
|
return this.fallbackAnalyze(userPrompt, isForgeManaged);
|
|
109
133
|
}
|
|
110
134
|
}
|
|
111
|
-
/**
|
|
112
|
-
|
|
135
|
+
/** 记录意图分类决策到审计日志(fire-and-forget) */
|
|
136
|
+
logDecision(sessionId, projectPath, requirement, complexity, layer, matchedRuleId, confidence) {
|
|
137
|
+
if (!sessionId || !this.storage)
|
|
138
|
+
return;
|
|
139
|
+
try {
|
|
140
|
+
const id = `dec_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`;
|
|
141
|
+
this.storage.logIntentDecision({
|
|
142
|
+
id,
|
|
143
|
+
session_id: sessionId,
|
|
144
|
+
project_path: projectPath,
|
|
145
|
+
requirement,
|
|
146
|
+
predicted_complexity: complexity,
|
|
147
|
+
matched_rule_id: matchedRuleId,
|
|
148
|
+
matched_layer: layer,
|
|
149
|
+
confidence,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
logger.debug(`[意图引擎] 决策日志写入失败(非致命):${err}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/** 从 StorageEngine 获取活跃学习规则(is_active=1, priority='learned',带 TTL 缓存) */
|
|
157
|
+
getActiveLearnedRulesFromStorage(projectPath) {
|
|
113
158
|
const cached = this.rulesCache.get(projectPath);
|
|
114
159
|
if (cached)
|
|
115
160
|
return cached;
|
|
116
|
-
//
|
|
117
|
-
const data = this.
|
|
161
|
+
// 优先使用 getActiveLearnedRules(v20 新方法),降级到 getIntentRules
|
|
162
|
+
const data = this.storage?.getActiveLearnedRules?.() ??
|
|
163
|
+
this.ruleDistiller?.storage?.getIntentRules() ?? [];
|
|
118
164
|
this.rulesCache.set(projectPath, data);
|
|
119
165
|
return data;
|
|
120
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* @deprecated Use getActiveLearnedRulesFromStorage instead
|
|
169
|
+
*/
|
|
170
|
+
getRulesFromStorage(projectPath) {
|
|
171
|
+
return this.getActiveLearnedRulesFromStorage(projectPath);
|
|
172
|
+
}
|
|
121
173
|
/**
|
|
122
174
|
* 快速放行:只过滤明确不涉及代码改动的操作。
|
|
123
175
|
* @param hasConversation 是否有会话上下文(多轮对话中)。有上下文时短输入可能是确认回复,应交给 AI 判断。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-engine.js","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"intent-engine.js","sourceRoot":"","sources":["../../src/autopilot/intent-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,19 @@ interface IntentRule {
|
|
|
7
7
|
confidence: number;
|
|
8
8
|
hit_count: number;
|
|
9
9
|
miss_count: number;
|
|
10
|
+
success_count?: number;
|
|
11
|
+
failure_count?: number;
|
|
12
|
+
avg_satisfaction?: number;
|
|
13
|
+
priority?: string;
|
|
10
14
|
}
|
|
11
15
|
/**
|
|
12
|
-
* RuleDistiller —
|
|
16
|
+
* RuleDistiller — 质量驱动的规则提炼器
|
|
13
17
|
*
|
|
14
|
-
* 每 20 次 Stop 触发一次,从 task_sessions
|
|
15
|
-
*
|
|
16
|
-
*
|
|
18
|
+
* 每 20 次 Stop 触发一次,从 task_sessions 历史中提炼意图规则。
|
|
19
|
+
* v2.0 改进:
|
|
20
|
+
* - 质量驱动:置信度 = 频率 × 准确率 × 满意度
|
|
21
|
+
* - 冲突检测:与 Ground Truth 冲突的规则不生成
|
|
22
|
+
* - 自动淘汰:低质量规则自动禁用或删除
|
|
17
23
|
*/
|
|
18
24
|
export declare class RuleDistiller {
|
|
19
25
|
private storage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-distiller.d.ts","sourceRoot":"","sources":["../../src/autopilot/rule-distiller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"rule-distiller.d.ts","sourceRoot":"","sources":["../../src/autopilot/rule-distiller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,aAAa;IAE1C;;;OAGG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgGxD;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,cAAc,GAAG,IAAI;IAmDtE,2BAA2B;IAC3B,OAAO,CAAC,eAAe;IAcvB,cAAc;IACd,OAAO,CAAC,eAAe;CASxB"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { logger } from '../utils/logger.js';
|
|
2
2
|
import { RULE_CONFIDENCE } from '../constants.js';
|
|
3
|
+
import { conflictsWithGroundTruth, computeConfidence } from './ground-truth-rules.js';
|
|
3
4
|
/**
|
|
4
|
-
* RuleDistiller —
|
|
5
|
+
* RuleDistiller — 质量驱动的规则提炼器
|
|
5
6
|
*
|
|
6
|
-
* 每 20 次 Stop 触发一次,从 task_sessions
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* 每 20 次 Stop 触发一次,从 task_sessions 历史中提炼意图规则。
|
|
8
|
+
* v2.0 改进:
|
|
9
|
+
* - 质量驱动:置信度 = 频率 × 准确率 × 满意度
|
|
10
|
+
* - 冲突检测:与 Ground Truth 冲突的规则不生成
|
|
11
|
+
* - 自动淘汰:低质量规则自动禁用或删除
|
|
9
12
|
*/
|
|
10
13
|
export class RuleDistiller {
|
|
11
14
|
storage;
|
|
@@ -18,34 +21,53 @@ export class RuleDistiller {
|
|
|
18
21
|
*/
|
|
19
22
|
async distillRules(projectPath) {
|
|
20
23
|
try {
|
|
21
|
-
// 查询近
|
|
22
|
-
const sessions = this.storage.getRecentSessions(projectPath,
|
|
24
|
+
// 查询近 200 条 task_sessions(扩大样本量)
|
|
25
|
+
const sessions = this.storage.getRecentSessions(projectPath, 200);
|
|
23
26
|
if (sessions.length < 5) {
|
|
24
27
|
logger.debug('[规则提炼] 历史数据不足(<5 条),跳过');
|
|
25
28
|
return 0;
|
|
26
29
|
}
|
|
27
|
-
//
|
|
28
|
-
const
|
|
30
|
+
// 按首个关键词分组统计
|
|
31
|
+
const keywordGroups = new Map();
|
|
29
32
|
for (const s of sessions) {
|
|
30
33
|
const req = s.requirement || '';
|
|
31
34
|
if (!req || req === '(未记录需求)')
|
|
32
35
|
continue;
|
|
33
|
-
// 简单关键词提取:取前 3 个有意义的词
|
|
34
36
|
const keywords = this.extractKeywords(req);
|
|
35
37
|
if (keywords.length === 0)
|
|
36
38
|
continue;
|
|
37
39
|
const key = keywords[0];
|
|
38
|
-
if (!
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
if (!keywordGroups.has(key))
|
|
41
|
+
keywordGroups.set(key, []);
|
|
42
|
+
keywordGroups.get(key).push({
|
|
43
|
+
requirement: req,
|
|
44
|
+
outcome: s.outcome,
|
|
45
|
+
satisfaction: s.satisfaction_score ?? 0.5,
|
|
46
|
+
});
|
|
41
47
|
}
|
|
42
48
|
let count = 0;
|
|
43
|
-
//
|
|
44
|
-
for (const [keyword,
|
|
45
|
-
if (
|
|
49
|
+
// 生成关键词规则:质量驱动
|
|
50
|
+
for (const [keyword, sessionList] of keywordGroups) {
|
|
51
|
+
if (sessionList.length < RULE_CONFIDENCE.MIN_SAMPLES)
|
|
52
|
+
continue;
|
|
53
|
+
// 1. 冲突检测:与 Ground Truth 冲突则跳过
|
|
54
|
+
if (conflictsWithGroundTruth(keyword)) {
|
|
55
|
+
logger.debug(`[规则提炼] 跳过与 Ground Truth 冲突的关键词 "${keyword}"`);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
// 2. 计算质量指标
|
|
59
|
+
const successCount = sessionList.filter(s => s.outcome === 'success').length;
|
|
60
|
+
const failureCount = sessionList.filter(s => s.outcome === 'failure').length;
|
|
61
|
+
const avgSatisfaction = sessionList.reduce((sum, s) => sum + s.satisfaction, 0) / sessionList.length;
|
|
62
|
+
// 3. 质量门槛:满意度 < 0.6 的规则不生成
|
|
63
|
+
if (avgSatisfaction < 0.6) {
|
|
64
|
+
logger.debug(`[规则提炼] 跳过低质量关键词 "${keyword}"(满意度=${avgSatisfaction.toFixed(2)})`);
|
|
46
65
|
continue;
|
|
66
|
+
}
|
|
67
|
+
// 4. 计算质量加权置信度
|
|
68
|
+
const confidence = computeConfidence(sessionList.length, successCount, failureCount, avgSatisfaction);
|
|
69
|
+
// 5. 写入或更新规则
|
|
47
70
|
const ruleId = `rule_kw_${keyword.replace(/[^\w]/g, '_')}`;
|
|
48
|
-
const confidence = Math.min(RULE_CONFIDENCE.MAX, RULE_CONFIDENCE.BASE + reqs.length * RULE_CONFIDENCE.INCREMENT_PER_SAMPLE);
|
|
49
71
|
this.storage.upsertIntentRule({
|
|
50
72
|
id: ruleId,
|
|
51
73
|
rule_type: 'keyword',
|
|
@@ -53,34 +75,24 @@ export class RuleDistiller {
|
|
|
53
75
|
confidence,
|
|
54
76
|
source: 'distilled',
|
|
55
77
|
});
|
|
78
|
+
// 6. 更新质量指标(如果规则已存在)
|
|
79
|
+
this.storage.updateRuleQuality(ruleId, successCount > failureCount, avgSatisfaction);
|
|
56
80
|
count++;
|
|
57
81
|
}
|
|
58
|
-
//
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (matching.length < RULE_CONFIDENCE.MIN_SAMPLES)
|
|
64
|
-
continue;
|
|
65
|
-
const ruleId = `rule_verb_${verb}`;
|
|
66
|
-
const successRate = matching.filter(s => s.outcome === 'success').length / matching.length;
|
|
67
|
-
const confidence = Math.min(RULE_CONFIDENCE.VERB_MAX, RULE_CONFIDENCE.VERB_BASE + successRate * RULE_CONFIDENCE.VERB_SUCCESS_WEIGHT);
|
|
68
|
-
this.storage.upsertIntentRule({
|
|
69
|
-
id: ruleId,
|
|
70
|
-
rule_type: 'action_verb',
|
|
71
|
-
pattern: verb,
|
|
72
|
-
confidence,
|
|
73
|
-
source: 'distilled',
|
|
74
|
-
});
|
|
75
|
-
count++;
|
|
82
|
+
// 7. 淘汰低质量规则
|
|
83
|
+
const disabledCount = this.storage.disableWeakRules(projectPath, 0.4);
|
|
84
|
+
const deletedCount = this.storage.deleteDeadRules(projectPath, 20);
|
|
85
|
+
if (disabledCount > 0) {
|
|
86
|
+
logger.info(`[规则提炼] 禁用 ${disabledCount} 条低质量规则`);
|
|
76
87
|
}
|
|
77
|
-
if (
|
|
78
|
-
logger.info(`[规则提炼]
|
|
88
|
+
if (deletedCount > 0) {
|
|
89
|
+
logger.info(`[规则提炼] 删除 ${deletedCount} 条死规则`);
|
|
79
90
|
}
|
|
91
|
+
logger.info(`[规则提炼] 完成:新增/更新 ${count} 条规则`);
|
|
80
92
|
return count;
|
|
81
93
|
}
|
|
82
94
|
catch (err) {
|
|
83
|
-
logger.
|
|
95
|
+
logger.error(`[规则提炼] 失败:${err}`);
|
|
84
96
|
return 0;
|
|
85
97
|
}
|
|
86
98
|
}
|