dsh-flymemory:DeepSeek Harness 的本地长期记忆

前言

在 DeepSeek Harness(DSH)中构建智能体时,上下文窗口有限且状态难以持久化是常见痛点。每次开启新会话都需要重新解释背景,或者依赖外部服务存储敏感数据,都不符合本地化开发的需求。DSH 的插件机制允许扩展核心能力,而 dsh-flymemory 便是解决这一问题的方案。

简介

dsh-flymemory 是一个 DSH Bundle 插件。它在本地运行一个 FlyMemory MCP 服务,将 15 个记忆工具和两个自动钩子接入 DSH。数据存储在本地文件系统中,服务监听 127.0.0.1:8791,不涉及远程网络传输。

核心功能

插件通过前缀 mcp__flymemory__ 向模型提供工具,并运行两个钩子脚本实现自动化记忆管理。

记忆工具

提供 15 个工具用于记忆的增删改查:

  • 存储与检索:flymemory_remember 用于存储决策或发现,支持按 compartment 分组;flymemory_recall 用于搜索,融合了密集向量检索和关键词匹配;flymemory_auto 是钩子调用的核心,一次完成“检索”与“存储”。
  • 状态管理:flymemory_state_lookup 和 flymemory_state_history 追踪特定键的当前值或历史记录,适合管理“当前值 X”这类状态。
  • 冲突与清理:flymemory_find_conflicts 查找矛盾条目,flymemory_forget 和 flymemory_cleanup 负责删除条目或清理过期数据。
  • 会话辅助:flymemory_session_pack 打包近期活动摘要,flymemory_stats 输出统计信息。
  • 其他:flymemory_supersede 标记旧条目被新条目替代,flymemory_consolidate 合并多条记录。

自动钩子

两个钩子脚本在 DSH 事件中自动触发:
- 捕获:在每次对话后执行,将当前提示写入记忆。
- 回忆:在每次对话前执行,检索并追加相关记忆到上下文。
钩子脚本在服务不可用时静默降级,不会阻塞对话。

本地监督引擎

引擎基于 Python,依赖 torch 和 sentence-transformers。首次运行需下载多语言嵌入模型(约 470 MB)。下载完成后支持离线工作。

安装与启用

前置依赖:
- Node.js 20+
- Python 3.10+
- Python 依赖:torch, sentence-transformers, “mcp>=1.30,<2”, numpy

安装命令:

plugin_manager(action: "install_bundle", target: "/absolute/path/to/dsh-flymemory")

安装后,检查服务状态:

node bin/flymemory.mjs status
node bin/flymemory.mjs doctor

数据与配置

数据存储

记忆数据存储在 $DSH_HOME/flymemory-data/flymemory_v3.pkl。环境变量 FLYMEMORY_DATA_DIR 可修改此目录。

服务配置

服务默认监听 127.0.0.1:8791。可通过 FLYMEMORY_MCP_PORT 和 FLYMEMORY_MCP_URL 调整。

冷启动

由于需要加载 PyTorch 模型,首次启动和冷启动耗时较长,通常在 15-20 秒左右。

注意事项

  • 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证(MIT)。
  • 凭证类文本(如 gh token)不会被存储。
  • 移除插件时,数据文件不会自动删除,需手动处理。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜