Skip to content

Latest commit

 

History

History
231 lines (183 loc) · 6.92 KB

File metadata and controls

231 lines (183 loc) · 6.92 KB

Self-Improving Behavioral Pattern Detection 实现状态

包内文档pkg/learning/docs/README.md · 仓库文档索引docs/README.md

目标平台: MoonHub (Go) 集成方式: 与现有 Memory 系统深度集成 实现策略: 全部并行推进 状态: 核心实现完成 ✅ 来源: MoonHub 自主实现


深度校验报告 (2026-03-18)

校验结论

实现已基本完整,校验中发现并修复了以下集成缺口:

缺口 状态 修复说明
工具执行未记录到学习引擎 ✅ 已修复 loop.gorunLLMIteration 中,每次工具执行后调用 RecordToolExecution
分析时未传入工具调用/结果 ✅ 已修复 analyzeConversationAsync 从会话历史提取 tool calls/results,传入 AnalyzeConversation
PreviousToolResults 未传递 ✅ 已修复 AnalysisContext 中新增 RecentToolResultsEngine.Analyze 传递给 DetectionContext
分析使用旧历史 ✅ 已修复 使用 agent.Sessions.GetHistory() 获取包含本回合的完整历史

技术特性

  • MoonHub: SQLite + FTS5,行为评分、工具效率、隐式信号、模式演化、主动建议等完整能力

已完成的工作

1. 核心包结构

pkg/learning/
├── types.go           # 核心类型定义
├── detector.go        # 模式检测器
├── scorer.go          # 行为评分器
├── tool_tracker.go    # 工具使用跟踪
├── evolution.go       # 模式演化
├── suggester.go       # 主动建议引擎
├── store.go           # 模式存储 (SQLite + FTS5)
├── engine.go          # 主引擎
└── integration.go     # Agent 集成

2. 核心功能

2.1 模式检测器 (detector.go)

  • ✅ 正则表达式模式检测 (正面、负面、纠正)
  • ✅ 语义关键词分析
  • ✅ 工具使用隐式信号检测
  • ✅ 工作流偏好检测
  • ✅ 工具偏好检测

2.2 行为评分器 (scorer.go)

  • ✅ 多维行为评分计算
  • ✅ 趋势分析
  • ✅ 响应质量评分
  • ✅ 工具效率评分
  • ✅ 上下文相关性评分
  • ✅ 适应速度评分

2.3 工具使用跟踪 (tool_tracker.go)

  • ✅ 工具调用记录
  • ✅ 成功率/失败率统计
  • ✅ 用户偏好评分 (-1.0 到 1.0)
  • ✅ 使用趋势分析
  • ✅ 应用上下文跟踪

2.4 模式演化 (evolution.go)

  • ✅ Ebbinghaus 衰减
  • ✅ 模式合并 (相似度 > 0.8)
  • ✅ 模式修剪 (低置信度 + 旧)
  • ✅ 模式泛化

2.5 主动建议 (suggester.go)

  • ✅ 工具优化建议
  • ✅ 工作流优化建议
  • ✅ 行为改进建议
  • ✅ 偏好建议

2.6 模式存储 (store.go)

  • ✅ SQLite 持久化
  • ✅ FTS5 全文搜索
  • ✅ 模式、工具使用、建议存储

2.7 主引擎 (engine.go)

  • ✅ 组件协调
  • ✅ 分析流程
  • ✅ 上下文构建
  • ✅ 统计信息

3. Agent 集成

3.1 Memory Store (pkg/agent/memory.go)

  • initLearningEngine() - 初始化学习引擎
  • GetLearningEngine() - 获取学习引擎
  • HasLearningEngine() - 检查学习引擎是否可用
  • SetLearningConfig() - 设置自定义配置
  • Close() - 关闭时同时关闭学习引擎

3.2 Context Builder (pkg/agent/context.go)

  • BuildSystemPrompt() - 注入学习上下文到静态提示
  • BuildMessages() - 注入查询相关的学习上下文

4. 配置选项

{
  "learning": {
    "db_path": "memory/learning.db",
    "min_confidence": 0.7,
    "max_examples": 10,
    "enable_semantic_detection": true,
    "enable_implicit_signals": true,
    "enable_behavioral_scoring": true,
    "enable_pattern_evolution": false,
    "enable_contradiction_detection": false,
    "enable_suggestions": false,
    "decay_older_than_days": 7,
    "prune_older_than_days": 30,
    "merge_similarity_threshold": 0.8
  }
}

5. 数据结构

结构体 用途
EnhancedPattern 增强的行为模式
BehavioralScore 多维行为评分
ToolUsagePattern 工具使用统计
Suggestion 主动建议
AnalysisContext 分析上下文
AnalysisResult 分析结果
DetectionContext 检测上下文
ToolExecutionRecord 工具执行记录
EnhancedLearnedContext 学习上下文
EvolutionResult 演化结果
Stats 统计信息
Config 配置

待实现的工作

1. Agent Loop 集成 ✅ (完成)

pkg/agent/loop.go 中添加响应后分析:

  • analyzeConversationAsync() - 异步分析对话

  • ✅ 在 runAgentLoop() 中调用学习分析

  • ✅ 模式演化触发 (当有新模式时)

2. 单元测试 (进行中)

  • detector_test.go - 模式检测器测试 ✅
  • engine_test.go - 引擎测试 (进行中)
  • integration_test.go - 集成测试
  • scorer_test.go - (可选)
  • evolution_test.go - (可选)

3. Memory Tool ✅ (已存在)

  • pkg/tools/memory_tool.go - 已存在且已注册

文件清单

新建文件

  • pkg/learning/types.go - 核心类型定义
  • pkg/learning/detector.go - 模式检测器
  • pkg/learning/scorer.go - 行为评分器
  • pkg/learning/tool_tracker.go - 工具使用跟踪
  • pkg/learning/evolution.go - 模式演化
  • pkg/learning/suggester.go - 主动建议引擎
  • pkg/learning/store.go - 模式存储
  • pkg/learning/engine.go - 主引擎
  • pkg/learning/integration.go - Agent 集成

修改文件

  • pkg/agent/memory.go - 学习引擎集成 ✅
  • pkg/agent/context.go - 学习上下文注入 ✅

使用示例

// 获取学习引擎
learningEngine := memoryStore.GetLearningEngine()

// 分析对话
result := learningEngine.Analyze(learning.AnalysisContext{
    UserID:          "user",
    MessageHistory:  history,
    RecentToolCalls: toolCalls,
})

// 获取学习上下文
ctx := learningEngine.GetContextString()

// 记录工具执行
learningEngine.RecordToolExecution(learning.ToolExecutionRecord{
    ToolName:    "read_file",
    Success:     true,
    DurationMs:  150,
})

// 运行模式演化
evolutionResult := learningEngine.Evolve()

校验清单 (逐项核对)

模块 文档声明 实际校验
pkg/learning/*.go 9 个核心文件 ✅ 全部存在
memory.go 集成 initLearningEngine, GetLearningEngine, HasLearningEngine, SetLearningConfig, Close ✅ 完整
context.go 注入 BuildSystemPrompt 静态注入, BuildMessages 查询相关注入 ✅ 完整 (含 BuildLearnedContextForPrompt)
loop.go 分析 analyzeConversationAsync, 模式演化触发 ✅ 完整 (已修复工具记录与上下文传递)
工具执行记录 RecordToolExecution 在每次工具调用后 ✅ 已接入
隐式信号检测 detectImplicitToolSignals 需 PreviousToolResults ✅ 已传递

最后更新: 2026-03-18 构建状态: ✅ 通过 深度校验: ✅ 完成,缺口已修复