open-preset-harness
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 checklistAgents 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
v0.1.0 — DSH Memory Profile Bundle published. Early stage; feedback welcome via Issues.
| Milestone | Status |
|---|---|
| Memory API spec | ✅ phase-0-memory-api.md |
.dsh/memory/ on-disk convention |
✅ |
dsh-tool-project-memory bundle |
✅ packages/tool-project-memory |
| Dual-preset demo | 📝 walkthrough + demo-project |
Roadmap
Capability-oriented, demand-driven from Issues and scenario feedback — no fixed dates.
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 (when users need them)
- Expanded scenario library and demo materials
- Entry supersede / conflict metadata
- Optional distill hook (session → memory)
- Optional semantic search over memory
- Domain-level write governance
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.