前言¶
在 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)不会被存储。
- 移除插件时,数据文件不会自动删除,需手动处理。