open-preset-harness
August 26, 2026 · View on GitHub
Project memory for multi-role AI agents — one knowledge base, every preset reads.
English | 中文
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)
| Is | Open-source project organizational memory for Harness presets |
| Is | Domain-organized, recall-on-demand, auditable contributions |
| Is not | A replacement for DeepSeek Harness (we extend it) |
| Is not | Per-preset silos or a generic vector DB demo |
| Is not | Claiming 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)
- Preset — role/capability shell (unchanged Harness semantics)
- Session log — full history of one conversation (unchanged)
- Project memory — stable, 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
| Scenario | Who writes | Who reads | Value |
|---|---|---|---|
| Cross-functional delivery | Any function | Any other preset | Decisions don't die in someone else's session |
| Engineering ↔ QA | Dev preset after API change | QA preset before test plan | Fewer alignment loops |
| Product ↔ Engineering | PM preset after scope call | Eng preset during implementation | "Why we chose B" stays attached |
| Security / compliance | Review preset after audit | All presets | Constraints propagate |
| Onboarding | Senior presets over time | New hire's preset day one | Context without senior interrupt |
| Open-source maintainers | Triage preset | Release preset | Known issues and release norms |
| Agency / client work | Account preset | Delivery preset | Client preferences travel with the repo |
| Research → writing | Literature preset | Drafting preset | Findings become citable facts |
| SRE / incidents | Postmortem preset | Debug preset | Incident learnings reduce repeats |
| Design systems | Design preset | Frontend preset | Tokens and exceptions stay aligned |
| Localization | Translator preset | Dev preset | Terminology stays consistent |
| Data / ML pipelines | EDA preset | Modeling preset | Data 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).
| Milestone | Status |
|---|---|
| Memory API spec | ✅ phase-0-memory-api.md |
.dsh/memory/ on-disk convention | ✅ |
dsh-tool-project-memory bundle | ✅ packages/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 assist | ✅ phase-1-distill.md · #11 |
| Config reference | ✅ config-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)
- Memory LLM assist:
distillAutoLlm,vectorEmbedModel: llm-keywords-v1via Harnessctx.llm - Configuration reference · SRE scenario playbook
Shipped (v0.9.0)
- Auto distill (Tier 3):
distillAutopromotes heuristic candidates torememberunder Phase 3 governance
Shipped (v0.8.0)
- Write approval gate (Phase 3b):
writeApprovalDomainstriggers Harness approval beforeremember
Shipped (v0.7.0)
- Vector sidecar (Phase 2b):
vectorSidecar+recallranking: 'vector'(local-fhash-v1, no network)
Shipped (v0.6.0)
- Write ACL (Phase 3a):
writeAllowDomains,writeAllowPresets,writeDenyPresetsonremember
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_candidatestool — heuristic session scan, model still callsremember
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-stoppinginject to callremember— 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/ recallexpiredwarnings- 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.mdinject (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 checkpassing
Install (Profile Bundle — recommended)
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
- Harness integration — link plugin into local Harness
- Dual-preset demo —
standardwrites,codereads - Open a Scenario Issue — tag
en-scenarioorcn-scenario
chmod +x scripts/link-harness.sh
./scripts/link-harness.sh /path/to/deepseek-harness-master
DSH1024 marketplace
| Field | Value |
|---|---|
| Category | Memory |
| Package | dsh-tool-project-memory |
| Install | dsh plugin --profile web add "github:warrenop/open-preset-harness#main&path:packages/tool-project-memory" |
| Listing | DSH1024 (discovery via GitHub topic dsh-plugin) |
Contributing
See CONTRIBUTING.md.
High-impact contributions right now:
- Add a scenario to docs/scenarios.md
- Review docs/phase-0-memory-api.md
- 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.