DeepSeek Harness 插件

dsh-gitmemo

Git-backed long-term memory for DeepSeek Harness: a local .mem git repo with mem_search / mem_read / mem_write / mem_delete tools, auto-managed by the agent with zero manual steps.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
fonlan/dsh-gitmemo
最近更新
2026年8月19日
分类
自动化与任务
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/fonlan/dsh-gitmemo
插件名:dsh-gitmemo
作者:fonlan

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-gitmemo

English | 简体中文

基于 Git 的 DeepSeek Harness (dsh) 长期记忆插件 —— 一个镜像 GitMemo 功能的 Cordis 插件。Agent 会把已完成任务的结论以 markdown 条目存入项目根目录的本地 .mem Git 仓库,并在开始新任务前先搜索既往记忆。唯一依赖 是 Git,日常使用完全无需手动记忆命令。

核心特性

  • 极其简单 —— 安装后日常任务无需任何手动记忆命令
  • 全自动 —— Agent 在正常任务流程中自动执行 init / search / read / write / delete
  • 纯本地、可离线 —— 记忆存于本地 .mem Git 仓库,无云端依赖
  • 仅依赖 Git —— 除 git CLI 外无任何运行时依赖
  • 省 token —— 通过 mem_search 复用既有结论,而非反复注入上下文
  • 防止上下文膨胀 —— 先搜索后工作的流程,技能规定最多只读 5 条最相关记忆
  • 可审计 —— 每次记忆操作都是 .mem Git 历史中的一次提交
  • 可追溯 —— 每条记忆都能从提交历史中回溯与重放
  • 分支对齐 —— 写入时 .mem 分支跟随项目当前分支

插件提供的内容

| 内容 | 说明 | | --- | --- | | mem_init | 初始化 .mem 仓库(其余工具都会自动初始化) | | mem_search | 搜索记忆:keywords(逗号分隔)、skip(分页)、modeand / or / auto,auto 先 AND 后 OR 兜底)。每次最多返回 20 条 hash\|title\|date | | mem_read | 按提交哈希读取一条记忆的完整 markdown | | mem_write | 存储任务结论:title + content(或 content_file / file),可选内联 body(commit body;引擎 API 仍支持 body_file)。提交为 .mem/entries/<时间戳>-<slug>.md 并对齐 .mem 分支 | | mem_delete | 按提交哈希删除记忆条目(然后重做并重写) | | 常驻规则片段 | 完整工作流规则(相当于 gitmemo 的 agents-template.md)注入每个会话的系统提示词——无需加载技能即可生效 | | 会话开始注入 | 每个新 Agent 会话开始时,自动把最近 N 条记忆标题(hash\|title\|date)注入该系统提示词,跨会话上下文在调用任何工具前即可见;子代理被跳过,且该查询只读、绝不创建 .mem |

安装

需要 dsh ≥ 0.1.0-rc.6 与 git CLI。

从 npm 仓库(发布后):

dsh plugin --profile web add @fonlan/dsh-gitmemo

从本地源码目录(开发/未发布):

dsh plugin --profile web add /path/to/dsh-gitmemo

然后重启对应的 dsh profile(例如重启 dsh web 进程)。插件注册在宿主平面,该 profile 下所有 Agent 会话都能看到这些工具与技能。

配置

bundle patch 自带合理默认值,可在 profile 的 cordis.patch.yml 中覆盖:

- id: dsh-gitmemo
  config:
    memDirName: .mem       # 项目根目录下记忆仓库的目录名
    searchLimit: 20        # 每次 mem_search 返回的最大条数
    branchAlign: true      # 写入时 .mem 分支跟随项目分支
    recentContextLimit: 5  # 注入每个新会话系统提示词的最近记忆条数(0 表示关闭)
    projectRoot: null      # 可选:显式项目根目录(默认取会话工作目录)

记忆存放位置

.mem 仓库位于调用会话工作区的项目根目录git rev-parse --show-toplevel,找不到时退回 工作目录)。条目是 .mem/entries/ 下的 markdown 文件;每次操作都是一次提交,整个记忆可以用 普通 git 命令查看:

git -C .mem log --oneline
git -C .mem show <commit-hash>

> 提示:建议把 .mem/ 加入项目的 .gitignore,避免记忆仓库混入项目提交。

Agent 工作流(常驻规则)

1. 开工前 —— 搜索。 从请求中提取 3-5 个关键词 → mem_search。若相关结果超过 5 条,只 mem_read 最可能相关的 5 条。无相关结果时用 skip 20、40… 翻页。 2. 用户不满意 —— 删除重写。 mem_delete <hash> → 按反馈重做 → mem_write 更正后的条目。 3. 会话结束检查点 —— 唯一的写入路径。 对话即将结束时,回顾整个会话,用 mem_write 写入 每一条已完成、与仓库相关、且结论有价值/可复用(或用户明确要求记住)但还没有记忆的任务。 绝不重复写已存在的条目;若已存结论已过时,先 mem_delete 再写更正条目。纯问答、未完成任务、 与仓库无关的工作、纯操作性的 git 动作一律不写。关闭会话前写完所有待写记忆。

条目格式

---
date: 2026-02-19T15:10:10Z
status: done
repo_branch: main
repo_commit: 9f3e1a2
mem_branch: main
related_paths: [src/auth/login.ts]
tags: [auth, security]
---
### Original User Request
(verbatim)
### AI Understanding
- Goal: / Constraints: / Out of scope:
### Final Outcome
- Changes/outputs summary

开发

npm install
npm run build    # tsc → lib/
npm test         # 构建 + 引擎/插件单元测试(node:test)

目录结构

dsh-gitmemo/
├── package.json          # npm 包;dsh.bundle.patch 接入 profile 层
├── cordis.patch.yml      # 组合层:dsh-gitmemo 行
├── src/
│   ├── index.ts          # Cordis 插件:mem_* 工具 + gitmemo 技能 + 提示词片段
│   └── mem.ts            # 核心引擎(gitmemo scripts/mem.sh 的移植)
├── lib/                  # 构建产物(已提交,供 file:/git 安装使用)
└── test/mem.test.mjs     # 引擎 + 插件单元测试

License

MIT