包内文档:pkg/learning/docs/README.md · 仓库文档索引:docs/README.md
目标平台: MoonHub (Go) 集成方式: 与现有 Memory 系统深度集成 实现策略: 全部并行推进 状态: 核心实现完成 ✅ 来源: MoonHub 自主实现
实现已基本完整,校验中发现并修复了以下集成缺口:
| 缺口 | 状态 | 修复说明 |
|---|---|---|
| 工具执行未记录到学习引擎 | ✅ 已修复 | 在 loop.go 的 runLLMIteration 中,每次工具执行后调用 RecordToolExecution |
| 分析时未传入工具调用/结果 | ✅ 已修复 | analyzeConversationAsync 从会话历史提取 tool calls/results,传入 AnalyzeConversation |
PreviousToolResults 未传递 |
✅ 已修复 | 在 AnalysisContext 中新增 RecentToolResults,Engine.Analyze 传递给 DetectionContext |
| 分析使用旧历史 | ✅ 已修复 | 使用 agent.Sessions.GetHistory() 获取包含本回合的完整历史 |
- MoonHub: SQLite + FTS5,行为评分、工具效率、隐式信号、模式演化、主动建议等完整能力
pkg/learning/
├── types.go # 核心类型定义
├── detector.go # 模式检测器
├── scorer.go # 行为评分器
├── tool_tracker.go # 工具使用跟踪
├── evolution.go # 模式演化
├── suggester.go # 主动建议引擎
├── store.go # 模式存储 (SQLite + FTS5)
├── engine.go # 主引擎
└── integration.go # Agent 集成
- ✅ 正则表达式模式检测 (正面、负面、纠正)
- ✅ 语义关键词分析
- ✅ 工具使用隐式信号检测
- ✅ 工作流偏好检测
- ✅ 工具偏好检测
- ✅ 多维行为评分计算
- ✅ 趋势分析
- ✅ 响应质量评分
- ✅ 工具效率评分
- ✅ 上下文相关性评分
- ✅ 适应速度评分
- ✅ 工具调用记录
- ✅ 成功率/失败率统计
- ✅ 用户偏好评分 (-1.0 到 1.0)
- ✅ 使用趋势分析
- ✅ 应用上下文跟踪
- ✅ Ebbinghaus 衰减
- ✅ 模式合并 (相似度 > 0.8)
- ✅ 模式修剪 (低置信度 + 旧)
- ✅ 模式泛化
- ✅ 工具优化建议
- ✅ 工作流优化建议
- ✅ 行为改进建议
- ✅ 偏好建议
- ✅ SQLite 持久化
- ✅ FTS5 全文搜索
- ✅ 模式、工具使用、建议存储
- ✅ 组件协调
- ✅ 分析流程
- ✅ 上下文构建
- ✅ 统计信息
- ✅
initLearningEngine()- 初始化学习引擎 - ✅
GetLearningEngine()- 获取学习引擎 - ✅
HasLearningEngine()- 检查学习引擎是否可用 - ✅
SetLearningConfig()- 设置自定义配置 - ✅
Close()- 关闭时同时关闭学习引擎
- ✅
BuildSystemPrompt()- 注入学习上下文到静态提示 - ✅
BuildMessages()- 注入查询相关的学习上下文
{
"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
}
}| 结构体 | 用途 |
|---|---|
EnhancedPattern |
增强的行为模式 |
BehavioralScore |
多维行为评分 |
ToolUsagePattern |
工具使用统计 |
Suggestion |
主动建议 |
AnalysisContext |
分析上下文 |
AnalysisResult |
分析结果 |
DetectionContext |
检测上下文 |
ToolExecutionRecord |
工具执行记录 |
EnhancedLearnedContext |
学习上下文 |
EvolutionResult |
演化结果 |
Stats |
统计信息 |
Config |
配置 |
在 pkg/agent/loop.go 中添加响应后分析:
-
✅
analyzeConversationAsync()- 异步分析对话 -
✅ 在
runAgentLoop()中调用学习分析 -
✅ 模式演化触发 (当有新模式时)
detector_test.go- 模式检测器测试 ✅engine_test.go- 引擎测试 (进行中)integration_test.go- 集成测试scorer_test.go- (可选)evolution_test.go- (可选)
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 构建状态: ✅ 通过 深度校验: ✅ 完成,缺口已修复