Files
DataMate/MEMORY.md
Jerry Yan 6d23c89a88 docs(memory): 更新 DataMate 项目记忆记录
- 修正 DataMate 项目状态,将4个已完成功能标记为完成
- 添加详细的提交信息和涉及的文件
- 更新待办事项,添加测试任务
- 添加2026-02-03下午的工作记录
2026-02-04 05:31:26 +00:00

8.2 KiB

MEMORY.md - 全局记忆

本文件存储长期持久的重要信息,供所有会话继承和使用。


👤 用户信息

  • 姓名:Jerry Yan
  • ID:5155645359
  • 时区:东八区(北京时间,UTC+8)
  • 主要平台:Telegram
    • 私聊:Telegram Bot (OpenClaw)
    • 群组:
      • DataMate-Claw Coding 群 (-1003879848304):DataMate 项目开发
      • 其他工作群 (-5104596651):其他工作

💻 系统配置

OpenClaw

  • 版本:2026.2.1
  • 运行环境:Local
  • 工作目录/root/.openclaw/workspace
  • Gateway 端口:18789

模型配置

  • 主模型zhipu/glm-4.7
  • 可用模型
    • zhipu/glm-4.7 (智谱 GLM 4.7) - 主要模型,200K 上下文
    • packy/claude-sonnet-4-5-20250929 (Claude Sonnet 4.5) - 推理模型,204K 上下文

Memory(记忆系统)

  • Provider:Local(本地 embeddings)
  • 模型hf:ggml-org/embeddinggemma-300M-GGUF/embeddinggemma-300M-Q8_0.gguf
  • 配置
    • Memory 搜索:已启用
    • 向量存储:已启用
    • 缓存:已启用
    • 会话记忆:已启用(实验性)
    • 同步:会话开始时、搜索时
  • 文件结构
    • MEMORY.md - 全局长期记忆(本文件)
    • memory/YYYY-MM-DD.md - 每日记忆文件

Git

  • 版本:2.43.0
  • 状态:已安装

其他工具

  • pipx:已安装(用于管理 CLI 工具)
  • sqlite-vec:已卸载(使用 --break-system-packages

🛠️ 可用工具列表

文件操作

  • read - 读取文件内容
  • write - 创建/覆盖文件(自动创建目录)
  • edit - 精确编辑文件内容
  • 删除文件 - 使用 write 清空或通过 exec 的 rm

系统命令

  • exec - 执行 shell 命令(已配置 node host)
  • process - 管理后台进程

网络

  • web_search - 网页搜索(Brave API)
  • web_fetch - 获取网页内容
  • browser - 控制浏览器

消息与通信

  • message - 发送消息(Telegram)
  • sessions_* - 创建/管理子会话、跨会话通信
  • cron - 定时任务和提醒

记忆

  • memory_search - 语义搜索记忆内容
  • memory_get - 读取记忆文件

设备控制

  • ⚠️ nodes - 需要 paired nodes(当前无)
  • ⚠️ canvas - 需要 node 设备
  • ⚠️ camera - 需要 node 设备

其他

  • tts - 文本转语音
  • agents_list - 列出可用代理
  • session_status - 显示会话状态
  • gateway - 重启、更新配置

🎯 技能与能力

编程语言

Python, JavaScript, Java, C++, Go, Rust, SQL, TypeScript 等

Web 开发

HTML/CSS, React, Vue, Node.js, 前端框架

数据处理

  • 数据分析与可视化
  • 算法设计与实现
  • 数据库查询与优化

DevOps

  • Docker 容器化
  • Git 版本控制
  • CI/CD 流程

内容创作

  • 多语言翻译
  • 文章和文案撰写
  • 内容总结和改写

浏览器控制

  • 打开网页并获取内容
  • 截图查看页面状态
  • 点击、填写表单等交互操作
  • 支持两种模式:
    • chrome:接管已连接的 Chrome 浏览器
    • openclaw:使用独立的隔离浏览器

📂 项目信息

DataMate 项目

状态:活跃项目,持续优化中

已完成功能

1. 修复:编辑数据集时无法清除关联数据集

  • 问题:MyBatis-Plus updateById 忽略 null
  • 解决方案:使用 LambdaUpdateWrapper 显式更新 parentDatasetId 字段
  • 提交:699031d
  • 状态 已完成并测试通过

2. 优化:上传文件后任务中心立即显示

  • 问题show:task-popover 事件被 preUpload API 调用阻塞
  • 解决方案:在 createTask 函数中立即触发事件,不等待 API 完成
  • 目标文件frontend/src/hooks/useSliceUpload.tsx
  • 提交:893e0a1
  • 状态 已完成

3. 功能:实现文本切片预生成

  • 问题:每次进入标注页面都实时计算切片,大文件性能差
  • 解决方案:创建标注任务时预生成切片并存储到 AnnotationResult
  • 涉及的文件
    • runtime/datamate-python/app/module/annotation/service/editor.py - 新增 precompute_segmentation_for_project 方法
    • runtime/datamate-python/app/module/annotation/interface/project.py - 任务创建时触发预计算
  • 提交:147beb1
  • 状态 已完成,待测试验证

4. 功能:实现流式分割上传,优化大文件上传体验

  • 问题:大文件按行分割时一次性加载到内存导致前端卡顿
  • 解决方案:实现边分割边上传的流式处理
  • 涉及的文件
    • frontend/src/utils/file.util.ts - 流式分割上传核心功能
    • frontend/src/pages/DataManagement/Detail/components/ImportConfiguration.tsx - 智能上传策略
    • frontend/src/hooks/useSliceUpload.tsx - 流式上传处理
    • frontend/src/pages/Layout/TaskUpload.tsx - 进度显示
    • frontend/src/pages/DataManagement/dataset.model.ts - 类型定义
  • 提交:c8611d2
  • 状态 已完成,待测试验证

工作目录结构

Code/DataMate/
├── backend/              # Java 后端(Spring Boot + MyBatis-Plus)
├── frontend/             # React + TypeScript 前端
├── runtime/              # Python 运行时(FastAPI + SQLAlchemy)
├── scripts/              # 构建脚本
└── deployment/           # 部署配置

🔧 重要配置与操作

OpenClaw 配置文件

  • 位置/root/.openclaw/openclaw.json
  • 修改方式:通过 gateway config.get/set 或直接编辑

工作目录

  • 路径/root/.openclaw/workspace
  • Code 项目Code/DataMate/
  • Memory 文件memory/MEMORY.md

Git 仓库

  • 当前版本:2.43.0
  • 主要用途:代码版本控制

📝 重要决策与偏好

包管理最佳实践

  • 使用虚拟环境安装 Python 包(python3 -m venv
  • 使用 pipx 安装 CLI 工具
  • ⚠️ 避免使用 --break-system-packages 除非必要
  • ⚠️ 优先使用 apt install python3-xxx 而非 pip

Memory 配置偏好

  • 使用本地 embeddings 模型(隐私、免费)
  • 已清理 AiHubMix 配置(不再使用)

代码工作流

  • 提供完整修复方案和代码
  • 使用 sed 命令进行批量修改
  • ⚠️ 文件操作工具在某些环境下有限制

🔄 待办事项

DataMate 项目

  1. 测试文本切片预生成功能
    • 创建标注任务,勾选"需要切片段"
    • 验证切片数据是否正确写入数据库
    • 确认标注页面使用预生成的切片
  2. 测试流式分割上传功能
    • 上传大文本文件(>5MB),勾选"按分行分割"
    • 验证边分割边上传的流式处理
    • 确认内存占用优化效果
  3. 根据测试结果修复可能存在的问题
  4. 提交最终代码到远程仓库(已推送至 lsf 分支)

系统配置

  • 根据需要调整 memory embeddings 配置
  • 考虑配置 Node 以增强某些功能
  • 监控每日代码测试检查定时任务的运行情况

📅 更新记录

2026-02-03(上午)

  • 创建全局记忆文件 MEMORY.md
  • 配置 AiHubMix embeddings(后又移除)
  • 配置使用本地 embeddings 模型
  • 安装 pipx
  • 安装并卸载 sqlite-vec
  • 更新 OpenClaw 到 2026.2.1
  • 启用 elevated tools
  • 更新 Telegram 群组配置(DataMate-Claw Coding)

2026-02-03(下午)

  • DataMate 项目优化
    • 修复编辑数据集时无法清除关联数据集的问题(提交 699031d)
    • 优化上传文件后任务中心立即显示(提交 893e0a1)
    • 实现文本切片预生成功能,提升标注性能(提交 147beb1)
    • 实现流式分割上传,优化大文件上传体验(提交 c8611d2)
  • 系统配置
    • 创建每日代码测试检查脚本 scripts/check_yesterdays_changes.py
    • 配置 cron 定时任务,每天北京时间上午10点自动检查昨天修改的代码
    • 更新 SOUL.mdHEARTBEAT.md,配置自动任务响应逻辑
    • 测试报告发送到当前 Telegram 群组(-1003879848304)

最后更新:2026-02-03(下午)