TevinClaw
12 hours ago 32737f2bab875c55b8ad4cbbf477d907674bc0d4
workspace/skills/memory-md-learning/scripts/learning.py
@@ -2,6 +2,7 @@
"""
memory-md-learning 学习记录脚本
记录陷阱、教训和解决方案到长期记忆和 MEMORY.md
【限制:只修改"学习事件"区块,其他内容保持不变】
"""
import os
@@ -47,10 +48,10 @@
        stripped = line.strip()
        
        # 检测学习事件区块
        if '学习事件' in stripped and stripped.startswith('#'):
        if '## 📚 学习事件' in stripped:
            in_learning = True
            continue
        elif stripped.startswith('#') and in_learning:
        elif stripped.startswith('#') and in_learning and '学习事件' not in stripped:
            in_learning = False
            
        # 收集学习事件
@@ -119,6 +120,7 @@
def update_memory_md_learning(summary, keywords):
    """
    更新 MEMORY.md 的学习事件区块
    【限制:只修改"学习事件"区块,其他内容保持不变】
    """
    content = read_memory_file()
    if not content:
@@ -162,7 +164,18 @@
    if any(new_event.strip() in existing.strip() for existing in existing_events):
        return {'added': False, 'message': '学习事件已存在'}
    
    # 【关键】使用正则替换只修改学习事件区块,保留其他所有内容
    # 找到学习事件区块并插入新事件
    all_events = existing_events + [new_event]
    events_content = '\n'.join(all_events)
    # 替换学习事件区块内容(保留区块标题和说明)
    learning_pattern = r'(## 📚 学习事件\n\n> 记录从陷阱和教训中学习的经验。\n> 所有学习记录永久保留,可使用 memory-md-archive 技能归档瘦身。\n\n)(.*?)(\n---\n\n\*文件大小:)'
    learning_replacement = r'\1' + events_content + r'\3'
    new_content = re.sub(learning_pattern, learning_replacement, content, flags=re.DOTALL)
    # 如果正则没有匹配到(格式可能不同),使用原来的方法
    if new_content == content:
    lines = content.split('\n')
    new_lines = []
    in_learning = False
@@ -200,10 +213,9 @@
    if in_learning and not learning_inserted:
        new_lines.append(new_event)
    
    # 更新文件大小信息
    new_content = '\n'.join(new_lines)
    
    # 更新文件大小统计
    # 更新文件大小信息
    write_memory_file(new_content)
    new_size = get_file_size()
    size_kb = round(new_size / 1024, 2)
@@ -273,6 +285,13 @@
---
## 📚 学习事件
> 记录从陷阱和教训中学习的经验。
> 所有学习记录永久保留,可使用 memory-md-archive 技能归档瘦身。
---
*文件大小: ~0.5KB | 事件数: 0*
*维护脚本: `memory-md-hot/scripts/daily_maintenance.py`*
*归档提示: 文件较大时请使用 memory-md-archive 技能归档*