返回目录

dsh-evolve-in-git

精选清单收录维护状态: 活跃

kytolly/dsh-evolve-in-git

让智能体在自定义 Git 仓库中持续「进化」的 DeepSeek Harness 插件。

前往 GitHub
$ dsh plugin add dsh-evolve-in-git

安装

dsh 没有统一的安装命令——把该插件 README 中的配置行加入你的 profile/patch 配置,然后重启即可。

了解安装方式

82

星标

0

Fork

TypeScript

语言

MIT

许可证

2026-08-21

创建于

2026-09-01

最近推送

README

dsh-evolve-in-git

DeepSeek Harness plugin version 0.6.3 license MIT

English · 中文

Git-backed long-term memory and evolution plugin for DeepSeek Harness.

Contents

What it does

This plugin treats a user-chosen or preconfigured Git repository as the memory store. It can write session notes, branch-specific records, and reusable skill drafts into that repo, then commit them as ordinary Git history.

Install

# example: install into the web profile
 dsh plugin --profile web add github:Kytolly/dsh-evolve-in-git

The bundle inserts one dsh-evolve-in-git row with the plugin defaults. Later profile patches can override repoPath, repoUrl, auth, and the storage roots.

Usage

Natural language

You do not need to remember tool names — describe the outcome and the model selects the right evolve_* / memory_* tool:

You say (or similar) The model uses
"Remember: whenever X happens, do Y" evolve_remember / memory_save
"Any memory about the deploy flow?" evolve_recall / memory_search
"Read my recent memory history" evolve_timeline
"Turn this warning into a reusable skill" evolve_skill_draft → evolve_skill_promote
"What is the memory repo's current state?" evolve_status / evolve_branches
"Undo the last memory commit" evolve_rollback

Commands (/evolve)

For explicit, deterministic control, type /evolve <subcommand>:

/evolve remember warning "pitfall" :: <content>
/evolve search deploy
/evolve skill list
/evolve skill promote evolve-process
/evolve status
/evolve help

The full command reference is under Harness entry points.

Architecture

The package is split into a framework-free core and a thin DSH adapter:

  • src/core.ts (GitMemoryCore) is the portability boundary. It depends only on Node built-ins and sibling core modules — never on @deepseek-ai/* — and resolves config from the on-disk file over the host-provided base.
  • src/index.ts (GitEvolutionService) is the adapter: it registers Cordis tools, the /evolve command, the system-prompt section, the skill provider, and the config-file route, then maps every surface onto GitMemoryCore.
Module Responsibility
src/git.ts Spawns git: clone/open, status, branch ops, push/fetch, commit, git mv, conflicts, rollback.
src/memory.ts + src/memory-index.ts Markdown+YAML-frontmatter scanning, a metadata index cache (HEAD + mtime signature), budgeted recall, timeline.
src/update.ts Versioned update: a new active record plus supersedes/supersededBy; the old file is never deleted.
src/forget.ts Soft-delete (move to archiveRoot) and restore.
src/privacy.ts Sensitive-content detection, sensitivity classification, redaction, export filtering.
src/skill.ts drafts/ ↔ enabled/ skill discovery; promote/demote via git mv; bundled-skill sync.
src/strategy.ts Slug/sanitize, draft generation from a memory, evolution suggestion, preview.
src/harness.ts /evolve command normalization/parsing plus help/usage/safety text.
src/config.ts + src/defaults.ts Config-file read/write/merge and the plugin defaults.
src/invariant.ts No-op invariant companion (the source of truth is the configured Git repo).
src/loopback.ts + src/config-route.ts Loopback-only /api/evolve-git/config route for the config-file editor.
src/client/ Browser settings section (evolve-git slot) and config-file editor.

Data layout

  • Memory — <repo>/<memoryRoot>/<kind>/<timestamp>-<slug>-<id>.md, one Markdown file per record with YAML frontmatter (kind, title, branch, source, tags, createdAt, id, updatedAt, status, supersedes, supersededBy, expiresAt, sensitivity) followed by the body.
  • Skills — <repo>/<skillsRoot>/drafts/<name>/SKILL.md (promotable) and <repo>/<skillsRoot>/enabled/<name>/SKILL.md (discoverable). Promotion is a git mv between the two, never a copy, so it stays reversible and in history.
  • Archive — <repo>/<archiveRoot>/… (same relative layout as memory); evolve_forget moves records here so they leave recall/timeline but stay recoverable. archiveRoot must remain outside memoryRoot.

Config

Web settings UI (v0.1.4+). The plugin ships a browser half that registers a first-level Settings → 演进记忆 section on the web profile's Settings page (via the settings.section slot). The form uses a SettingsScope adapter that reads and writes the per-user config file directly through the loopback-only /api/evolve-git/config route, so what the form shows is exactly what takes effect (defaults overlaid by the file) and saving writes the file immediately. Nested auth is written as one merged object, and the auth.token field is write-only (secret, redacted from read-back). Requires the profile to be restarted after install so the client manifest is rescanned.

在 GitHub 阅读完整 README →

DSH Plugins 是独立的 DeepSeek Harness 插件目录,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。