open-preset-harness

August 26, 2026 · View on GitHub

Project memory for multi-role AI agents — one knowledge base, every preset reads.

English | 中文

License: MIT DSH Plugin Wiki

DSH Profile Bundle: dsh-tool-project-memory · Category: Memory · Install · DSH1024 checklist

Agents forget between sessions. Teams don't.
open-preset-harness adds a project-scoped organizational memory layer on top of DeepSeek Harness: any role (preset) can contribute experience; any role can recall it when needed.


Why this exists

DeepSeek Harness separates preset (who the agent is — tools, persona, prompts) from session log (what happened in one conversation). That split is right for engineering — but team knowledge lives at the project level, not inside a single preset or session.

Without shared memory:

  • A security review preset rediscovers the same auth pitfalls every sprint
  • A new contributor preset repeats questions answered three months ago
  • Product decisions vanish when the PM's session ends
  • Token spend grows because every role rebuilds context from scratch

open-preset-harness makes project experience compound over time — like a team wiki that agents actually use, wired into the harness session log.


What it is (and is not)

IsOpen-source project organizational memory for Harness presets
IsDomain-organized, recall-on-demand, auditable contributions
Is notA replacement for DeepSeek Harness (we extend it)
Is notPer-preset silos or a generic vector DB demo
Is notClaiming to invent "AI memory" — we integrate it correctly for multi-role teams

Relationship to DeepSeek Harness

DeepSeek Harness (upstream, MIT)

        ├── preset  = role shell (tools + persona)
        ├── session = episodic log (one conversation)

        └── open-preset-harness (this project)
                └── project memory = shared team experience (cross-preset, cross-session)
  • Upstream: DeepSeek Harness — plugin-based agent harness on Cordis
  • Our approach: Prefer plugins + conventions over a hard fork; track upstream releases
  • License: MIT — we preserve upstream copyright in NOTICE
  • Naming: This is an independent community project, not an official DeepSeek product

We upstream-friendly fixes when possible; project-memory features live here until (if ever) they graduate upstream.

See docs/architecture.md and docs/phase-0-memory-api.md.


Core concepts

┌─────────────────────────────────────────────────────────┐
│              Project Memory (shared)                       │
│   index · domains · decisions · distilled learnings      │
└────────────────────────▲────────────────────────────────┘
                         │ write (distill) / read (recall)
     ┌───────────────────┼───────────────────┐
     │                   │                   │
  Preset A            Preset B            Preset C
  (any role)          (any role)          (any role)
     │                   │                   │
  Session 1           Session 2           Session N
  (episodic log)      (episodic log)      (episodic log)
  1. Preset — role/capability shell (unchanged Harness semantics)
  2. Session log — full history of one conversation (unchanged)
  3. Project memorystable, distilled, searchable facts the whole team reuses

Design rules

  • One memory pool per project — all presets read (governance controls write)
  • Organize by domain/topic, not by preset id (e.g. security, api, onboarding)
  • Index + recall on demand — don't dump the whole library every turn
  • Model-visible ⟺ logged — Harness invariant; memory enters via inject/tools/session events

Default layout:

<projectRoot>/.dsh/memory/
├── index.md
├── domains/
│   ├── engineering.md
│   ├── product.md
│   └── …
└── decisions/
    └── YYYY-MM-slug.md

Scenarios

ScenarioWho writesWho readsValue
Cross-functional deliveryAny functionAny other presetDecisions don't die in someone else's session
Engineering ↔ QADev preset after API changeQA preset before test planFewer alignment loops
Product ↔ EngineeringPM preset after scope callEng preset during implementation"Why we chose B" stays attached
Security / complianceReview preset after auditAll presetsConstraints propagate
OnboardingSenior presets over timeNew hire's preset day oneContext without senior interrupt
Open-source maintainersTriage presetRelease presetKnown issues and release norms
Agency / client workAccount presetDelivery presetClient preferences travel with the repo
Research → writingLiterature presetDrafting presetFindings become citable facts
SRE / incidentsPostmortem presetDebug presetIncident learnings reduce repeats
Design systemsDesign presetFrontend presetTokens and exceptions stay aligned
LocalizationTranslator presetDev presetTerminology stays consistent
Data / ML pipelinesEDA presetModeling presetData quirks persist

More in docs/scenarios.md.


Status

v1.0.0 — Full roadmap shipped (Phase 0–3, Distill 1–3, LLM assist); dual-preset demo deferred (#3).

MilestoneStatus
Memory API specphase-0-memory-api.md
.dsh/memory/ on-disk convention
dsh-tool-project-memory bundlepackages/tool-project-memory
Supersede governance (Phase 1)phase-1-supersede.md · #4
Session distill hook (Phase 1)phase-1-distill.md · #5 #6
Recall ranking (Phase 2)phase-2-recall.md · #7 #9
Write governance (Phase 3)phase-3-governance.md · #8 #10
Distill + LLM assistphase-1-distill.md · #11
Config referenceconfig-reference.md
Dual-preset demo📝 deferred · #3 · walkthrough

Roadmap

Capability-oriented, demand-driven from Issues and scenario feedback — no fixed dates.

Shipped (v1.0.0)

Shipped (v0.9.0)

  • Auto distill (Tier 3): distillAuto promotes heuristic candidates to remember under Phase 3 governance

Shipped (v0.8.0)

  • Write approval gate (Phase 3b): writeApprovalDomains triggers Harness approval before remember

Shipped (v0.7.0)

  • Vector sidecar (Phase 2b): vectorSidecar + recall ranking: 'vector' (local-fhash-v1, no network)

Shipped (v0.6.0)

  • Write ACL (Phase 3a): writeAllowDomains, writeAllowPresets, writeDenyPresets on remember

Shipped (v0.5.0)

  • Token-ranked recall (Phase 2a): default IDF multi-term scoring; ranking: 'legacy' restores Phase 0 substring mode

Shipped (v0.4.0)

  • Assisted distill (Tier 2): opt-in suggest_memory_candidates tool — heuristic session scan, model still calls remember

Shipped (v0.3.1)

  • Distill compaction reminder (Tier 1b): opt-in inject after successful compaction/end, with optional summary excerpt

Shipped (v0.3.0)

  • Distill reminder (Tier 1a): opt-in agent/turn-stopping inject to call remember — default off, no auto-write

Shipped (v0.2.0)

  • Supersede governance: remember(supersedes) back-patches old entries; recall/index show active entries only
  • expires_at / recall expired warnings
  • Harness smoke + CI (scripts/smoke.sh)

Shipped (v0.1.0)

  • Profile Bundle install via dsh plugin add
  • Tools: recall, remember, memory_status
  • Blank-session index.md inject (bounded)
  • Domain-organized memory under .dsh/memory/

Planned

  • Dual-preset demo (#3) — walkthrough exists, recording deferred

See docs/scenarios.md and Scenario Issues to influence priorities.


Quick start

DSH Memory plugin: packages/tool-project-memory · npm run check passing

dsh plugin --profile web add "github:warrenop/open-preset-harness#main&path:packages/tool-project-memory"
dsh --profile web --dump-config | grep dsh-tool-project-memory

Headless / CI:

dsh plugin --profile headless add "github:warrenop/open-preset-harness#main&path:packages/tool-project-memory"

From a local clone:

dsh plugin --profile web add ./packages/tool-project-memory

Develop locally

  1. Harness integration — link plugin into local Harness
  2. Dual-preset demostandard writes, code reads
  3. Open a Scenario Issue — tag en-scenario or cn-scenario
chmod +x scripts/link-harness.sh
./scripts/link-harness.sh /path/to/deepseek-harness-master

DSH1024 marketplace

FieldValue
CategoryMemory
Packagedsh-tool-project-memory
Installdsh plugin --profile web add "github:warrenop/open-preset-harness#main&path:packages/tool-project-memory"
ListingDSH1024 (discovery via GitHub topic dsh-plugin)

Contributing

See CONTRIBUTING.md.

High-impact contributions right now:

  1. Add a scenario to docs/scenarios.md
  2. Review docs/phase-0-memory-api.md
  3. Chinese + English doc fixes

Community

  • Issues — bugs, ideas, scenario requests
  • Discussions — enable when repo is public
  • Tag Issues with [cn-scenario] or [en-scenario] to help us track market signals

License

MIT — see LICENSE and NOTICE.
DeepSeek Harness is © DeepSeek; modifications © contributors.