DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Stratagate Dsh — DeepSeek Harness 插件(DSH Plugin)
← Plugins

stratagate-dsh

Stratagate Dsh

最近的对话依然鲜活。较早的对话会逐渐淡化为摘要,而不是被遗忘。StrataGate 为 DeepSeek Harness 提供六层、随时间衰减的记忆,同时将持久的事件和关系沉淀为知识图谱。将你在其他 AI 中的记忆带来

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add stratagate-dsh@0.2.75
README兼容性版本

兼容性与来源证明

Stratagate Dsh 以 stratagate-dsh 发布,当前版本为 0.2.75。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.2.75stable
2026/9/20
0.2.74stable
2026/9/19
0.2.73stable
2026/9/18
查看其余 46 个版本收起版本
0.2.72stable
2026/9/18
0.2.71stable
2026/9/15
0.2.70stable
2026/9/14
0.2.69stable
2026/9/14
0.2.68stable
2026/9/14
0.2.67stable
2026/9/13
0.2.66stable
2026/9/13
0.2.65stable
2026/9/13
0.2.64stable
2026/9/12
0.2.63stable
2026/9/12
0.2.61stable
2026/9/9
0.2.60stable
2026/9/9
0.2.58stable
2026/9/8
0.2.57stable
2026/9/8
0.2.55stable
2026/9/7
0.2.54stable
2026/9/7
0.2.53stable
2026/9/6
0.2.49stable
2026/9/4
0.2.48stable
2026/9/3
0.2.47stable
2026/9/2
0.2.46stable
2026/9/2
0.2.45stable
2026/9/2
0.2.43stable
2026/9/1
0.2.42stable
2026/9/1
0.2.40stable
2026/8/31
0.2.39stable
2026/8/31
0.2.38stable
2026/8/30
0.2.37stable
2026/8/29
0.2.36stable
2026/8/28
0.2.35stable
2026/8/27
0.2.34stable
2026/8/27
0.2.33stable
2026/8/27
0.2.32stable
2026/8/26
0.2.31stable
2026/8/26
0.2.30stable
2026/8/25
0.2.29stable
2026/8/25
0.2.27stable
2026/8/25
0.2.26stable
2026/8/25
0.2.25stable
2026/8/24
0.2.21stable
2026/8/24
0.2.19stable
2026/8/23
0.2.16stable
2026/8/21
0.2.15stable
2026/8/21
0.2.1stable
2026/8/18
0.2.0stable
2026/8/18
0.1.0stable
2026/8/16

相关插件

正在加载相关插件…

最新版
0.2.75
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
23.1 MB
文件数
38
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 94
周下载
2,017
安全扫描
✓ v0.2.75 扫描通过
最近提交
2026/9/20
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Mnemondsh-mnemon面向 DeepSeek Harness 的可组合三层记忆控制平面:持久化运行时上下文、可搜索的项目文档、可插拔的长期记忆、受保护的策略、WebUI 和无头工具。Memsearch Dsh@zilliz/memsearch-dsh适用于 DeepSeek Harness 的 MemSearch 插件:在多个代理之间共享 Markdown 记忆,支持捕获、步骤前上下文注入、记忆召回技能和技能候选审核面板。Memory@furongjun1999/dsh-memory灵枢(Lingshu·líng shū)DeepSeek Harness 插件:完整大脑——长期记忆/知识飞轮/自我认知/递归反思接入 DSH,对话自动沉淀进 md_cg 认知图(md 文档)

README

StrataGate Agent Memory banner

StrataGate

Recent conversations stay detailed. Older memories grow more concise.

StrataGate gradually condenses an AI agent's short-term memory as the conversation progresses, with original details available to expand when needed. Important information becomes Events and a knowledge graph, preserving historical changes and current state for future sessions.

中文说明 · DeepSeek Harness guide · Architecture · Full evaluation

Current public result: on LoCoMo conv-26, StrataGate averaged 80.46% across 10 independent Judge runs, versus 63.22% for Mem0 base. See the scope and protocol.

In plain words: StrataGate keeps recent conversations detailed and gradually condenses older ones as the conversation progresses. Important information becomes Events and a knowledge graph for future sessions. Original records remain available to expand and verify when needed.

Why StrataGate?

  1. Short-term memory: details fade as the conversation progresses and expand when needed.

    (1) Recent history stays detailed; older history becomes concise. Each conversation block has six views, L0–L5, with different levels of detail. As more conversation accumulates, older memories gradually shift from full dialogue to key facts, short summaries, and title indexes, reducing the context occupied by history. → Layered memory

    (2) Views shrink while original records remain. Complete L5 source messages and tool records are preserved. When details need checking, the agent can expand a memory to recover the original wording and context. → Layered memory

  2. Long-term memory: an event timeline preserves history, while a knowledge graph organizes current state.

    (1) Events record what happened. Important decisions, preferences, plans, and changes are extracted from conversations as Events. Each retains its source and distinguishes when something was mentioned from when it happened, so future sessions can retrieve and trace it. → Event cards

    (2) The knowledge graph represents current state. Historical Events provide the basis for current information and relationships about people, projects, organizations, tools, and places. New Events can supplement or supersede an earlier state while historical Events and their sources remain preserved. → Current-state graph

    (3) Long-term weights decay too. As conversations progress, memories that have not been adopted gradually lose weight, affecting their priority during retrieval and automatic recall. Their sources remain available for verification even after their weights decay. → Weights and adoption-based reinforcement

    (4) Bring memories from other AIs. Imported content can become traceable Events and update the knowledge graph while the original imported text remains preserved. → External memory import

  3. Evidence gate: check whether retrieved evidence is sufficient before answering.

    A relevant search result may still be insufficient to answer the question. The agent assesses the evidence and, when needed, searches again, expands Events, or checks the original messages. If it still cannot confirm the answer, it states the uncertainty. → Evidence gate

  4. Reinforce only memories actually used.

    Search hits and automatic context injection do not trigger reinforcement. Only evidence recorded as actually used in the final answer increases the adoption count and resets the decay anchor. More adoptions mean slower future decay, preventing a memory from reinforcing itself merely because it is frequently retrieved. → Use-only reinforcement

Get started: → Quick start

Choose your path

PathBest forStart here
DeepSeek Harness pluginUsers who want automatic, local-first memory with a visual Memory UIInstall stratagate-dsh
Core TypeScript libraryDevelopers building a custom agent or memory integrationLibrary entry points

Quick start: DeepSeek Harness

If DeepSeek Harness is already installed, add StrataGate to the profile you use:

dsh plugin --profile web add stratagate-dsh

Restart that profile, then keep using DSH normally. StrataGate will capture completed main-agent turns, build searchable memory in the background, and expose its Memory UI under DSH Settings → StrataGate-AgentMemory.

By default, the database is stored at:

DSH_HOME/stratagate/memory.db

Removing the plugin does not delete the database. For screenshots, configuration, memory tools, and the exact automatic-capture rules, see the DeepSeek Harness plugin guide.

The problem behind the design

As conversations accumulate, an AI agent has to fit the current task, earlier discussions, and lasting information into a limited context window.

Recent discussions often need their full detail. Older conversations can remain as concise summaries and expand when needed. Meanwhile, user preferences, project decisions, and task plans change, making it necessary to distinguish historical records from current state. StrataGate addresses these needs by managing short-term views, long-term updates, retrieval assessment, and usage feedback separately.

Common problemHow StrataGate handles it
Conversations keep growing, and historical details continue to occupy contextStore each conversation block as L0–L5 views; as more conversation accumulates, older content defaults to a more concise view and expands when needed
Important information is scattered across conversations, and old decisions can be confused with current stateExtract Events with sources and timestamps, preserve history in an event timeline, and organize current state in a knowledge graph
Search finds related content but misses details needed to answerAssess the evidence through the evidence gate; search again, expand memories, or inspect the source when necessary
A memory keeps gaining weight merely because it is frequently retrievedSeparate retrieval from adoption: long-term weights decay as conversations progress, and only memories recorded as actually used receive reinforcement

Short-term decay gradually reduces the detail that older conversations contribute to current context. Long-term memory and its weighting mechanism help the agent recall information that remains useful in future sessions. Both retain sources so condensed information can still be traced and checked.

How it works

Figure 1: StrataGate workflow—memory formation, automatic activation, active retrieval, and evidence assessment (Chinese labels)

The four-round retrieval budget in Figure 1 is an example evaluation setting. Integrations control their own retrieval loops and budgets. The diagrams use Chinese labels; the accompanying text explains each mechanism in English.

StrataGate's workflow covers memory formation, recall when answering, and feedback after adoption.

1. Accumulate conversations into layered short-term memory

Each completed turn and its tool records are saved first. The DeepSeek Harness plugin seals a Block every 6 turns by default. Users can configure this size; turns below the boundary remain in the current conversation.

Each Block stores six levels of detail, L0–L5, from title indexes and short summaries to complete source records. Decay begins only after background processing finishes: as more Blocks become ready in the same conversation, older Blocks default to shallower views.

This reduces the historical detail presented in context while preserving the complete L5 source records. → Layered memory

2. Turn important information into Events and update the knowledge graph

Decisions, preferences, plans, and changes worth keeping become Events. Each Event records content, time, and provenance for future conversations to retrieve.

The knowledge graph then organizes current information and relationships about entities such as people, projects, and tools. New Events can supplement or supersede an earlier state while historical Events and their sources remain available. → Event cards · Current-state graph

3. Activate relevant memories before answering and retrieve more when needed

Before each main-model call, the plugin uses the current question and recent conversation to bring in a small set of relevant long-term Events and graph information as background.

The current DSH integration includes at most 4 Events and 4 graph nodes, subject to a total budget of approximately 900 tokens. The active conversation's history is supplied through layered Blocks and unsealed turns.

If the available context is sufficient, the agent can answer directly. Otherwise, it uses memory tools to search Events, the graph, or source messages, expanding details as needed.

4. Assess whether actively retrieved evidence answers the question

After finding relevant memories, the agent determines whether they answer the actual question: which evidence supports the answer, what is missing, and whether further retrieval is needed.

For example, “the project uses pnpm” answers which tool is currently used, but does not explain why pnpm was originally chosen. The agent should expand the relevant Event or inspect the original discussion.

The evidence gate requires an explicit assessment, while code validates evidence references and protocol constraints. If evidence remains insufficient, the agent continues searching or states that it cannot confirm the answer. → Evidence gate

5. Record adopted evidence and update long-term weights

Search hits and automatic context injection do not reinforce memories.

When the agent determines which evidence supports its final answer, it submits a usage receipt. Events recorded as actually used update their adoption counts and decay anchors. More adoptions lead to slower future decay. Unused search results receive no reinforcement from that selection. → Use-only reinforcement

For example, a user first decides to use npm, then switches the project to pnpm. StrataGate preserves both decisions and updates the graph's current state. A later question about what the project uses can be answered from that state; questions about when or why the change happened can follow the Event back to the original conversation.

See a retrieval example that follows an event card back to source messages.

Core design

StrataGate separately manages conversation detail, long-term information updates, retrieval assessment, and feedback from adopted memories.

Short-term decay controls how much detail older conversations display. Long-term weights influence information's priority in later recall. Neither form of decay deletes the original sources.

1. Short-term memory: gradually condense older conversations and expand them when needed

Recent discussions usually need their full detail. Older conversations can remain in context as concise views. StrataGate stores several levels of detail for the same conversation block and gradually reduces what older Blocks display by default as more conversation accumulates.

Figure 2: Short-term memory—L0–L5 views, display decay, and on-demand expansion (Chinese labels)

One conversation block, six levels of detail.

The DeepSeek Harness plugin seals a Block every 6 complete turns by default. A turn consists of a user question and the assistant's complete response. The Block size is configurable; the core-library default is 12 turns. Content below the boundary remains in the current conversation.

Each fully processed Block contains these views:

LevelContentsPrimary use
L0Title and tagsIdentify a piece of history with minimal context
L1Short summaryUnderstand the discussion's topic
L2Key factsReview decisions, constraints, plans, and outcomes
L3Rule-condensed dialoguePreserve the discussion while removing bounded redundancy
L4Readable, near-verbatim dialogueCheck fuller language context
L5Source messages and tool recordsVerify provenance and specific details

The model produces L0–L2 summaries. Code generates L3 and L4 deterministically. L3 may condense standalone greetings, pure confirmations, repeated long pasted content, and tool arguments; it does not perform free-form semantic paraphrasing.

Source records are saved first, followed by summarization and Event processing. Only a fully processed, ready Block can replace its corresponding native history and participate in decay.

As more conversation accumulates, older Blocks default to less detail.

Display changes follow exponential decay:

$$ w_{\text{block}}(age)=e^{-\lambda_{\text{block}},age} $$

The default $\lambda_{\text{block}}$ is 0.30. Code maps weight ranges to display levels. Smaller coefficients preserve detail for longer and therefore consume more context.

In this formula, age is the distance between the current display anchor and the latest ready Block in the same conversation. It measures conversation progress, not elapsed calendar days. Unsealed turns and Blocks still awaiting model processing do not advance this decay.

For a Block that starts at L5 and is never expanded again, the default schedule is:

Additional ready BlocksDefault display level
0–1L5
2L4
3–4L3
5–6L2
7–8L1
9 or moreL0

The figure illustrates the trend. Actual changes depend on both the decay coefficient and level thresholds; a new Block does not necessarily cause a one-level drop.

Expand again when details are needed.

Suppose an older conversation currently shows only:

Discussed the project's technical approach and near-term plans.

If the user asks why pnpm was chosen, the agent can expand key facts, condensed dialogue, or the complete source records to find the original reason.

Expansion can proceed one level at a time or jump directly to a requested level. The selected level and current Block position become the new decay anchor. As subsequent conversation accumulates, the view gradually becomes concise again.

Older conversations can therefore remain lightweight during ordinary use while retaining recoverable detail. L0–L4 are derived views of the source and never overwrite L5.

2. Long-term memory: preserve history in Events and organize current state in a knowledge graph

Short-term memory retains a discussion's context. Long-term memory extracts information worth using in future sessions. StrataGate records decisions, preferences, plans, and changes as Events, then uses those Events to organize a knowledge graph.

Figure 4: Long-term memory updates—Event extraction, historical relationships, and the current-state graph (Chinese labels)

Event cards record what happened and retain their sources.

A Block can produce multiple Events or contain no information that needs long-term extraction. In addition to content, each Event retains its source Block, source messages, and whatever temporal information can be established.

Two different time axes must be distinguished:

TimeMeaning
Mention timeWhen the conversation referred to the event
Occurrence timeWhen the event happened or is planned to happen

If a user says “Finish the prototype next week” on May 6, May 6 is the mention date, while “next week” describes the planned completion time. The record should retain its planned status and cannot serve as evidence that the prototype is already complete.

When a date cannot be established, the original wording and uncertainty remain available for later source verification.

New Events update memory through additions, supersession, or conflicts.

A project discussion might contain these statements over time:

“Use npm for this project.”

“Let's switch to pnpm.”

“Finish the prototype next week.”

They play different roles:

  • Switching to pnpm updates the package-manager choice; the earlier npm Event remains in history.
  • Finishing the prototype next week adds a plan without changing the package-manager decision.
  • If statements cannot both be true and their validity cannot yet be resolved, a conflict relationship is retained for later verification.

New Events do not overwrite the content or provenance of earlier Events. Their validity status and relationships can change as new evidence arrives. This lets the system retrieve current information while also explaining what used to be true and what changed.

The knowledge graph organizes current information and relationships from Events.

People, projects, organizations, tools, and places become nodes. Connections such as “uses,” “participates in,” and “depends on” become directed edges. Both node attributes and relationships retain their source Events.

In the example, the graph can update the project's current package manager to pnpm while preserving npm as a historical state. Later:

  • a question about what the project uses can start with the current graph;
  • a question about when it changed can inspect the change Event;
  • a question about why it changed can expand the Event and return to the original discussion.

Graph state must be supported by its sources. “Finish the prototype next week” directly supports a plan. The figure's “prototype in development” state and owner information require additional supporting Events.

Graph updates run as independent jobs with persisted progress. A failed update can be retried separately while the committed Events and source records remain available.

3. Evidence gate: check whether retrieved results can answer the actual question

After finding relevant memories, the agent still needs to assess whether they support the answer. StrataGate uses a fixed, compact assessment structure that requires an explicit judgment of sufficiency and the next action.

FieldWhat it explains
verdictWhether evidence is sufficient, partial, or mismatched
evidence_refsWhich retrieved items support the assessment
fitHow the evidence matches the question
missingWhat information is still missing
next_strategyWhether to answer, search again, or expand a memory

For example, the user asks:

Why did we originally switch to pnpm?

The only retrieved result says:

The project switched from npm to pnpm.

That confirms a change but does not explain the reason. The agent should judge the evidence as partial and expand the Event or inspect the original conversation, rather than infer the historical reason from the tool choice alone.

The model assesses semantic sufficiency. Code validates references and protocol constraints: cited evidence must come from the selected retrieval batch, and accepting sufficient requires valid evidence references and an explicit choice to answer.

These checks make retrieval traceable and auditable, but the model can still misjudge evidence. When sufficient information is unavailable, the agent should continue searching or state that it cannot confirm the answer.

Integrations control active-retrieval loops and budgets. The four-round limit in Figure 1 is an example evaluation setting, not a fixed limit for every integration.

4. Reinforce only memories actually used: more adoptions mean slower future decay

Long-term memories also decay as conversations progress. Here, the changing quantity is an Event's weight, which participates in later recall and ranking. Unlike a short-term Block, an Event does not move through L0–L5 display levels as its weight decays.

Figure 3: Long-term memory weights—natural decay, retrieval without reinforcement, and adoption-based reinforcement (Chinese labels)

New Events have an initial weight that decays when they are not adopted.

The base Event-weight function is:

$$ w(t,n)=\max\left(floor,e^{-\lambda(n)t}\right) $$

$$ \lambda(n)=\frac{0.15}{1+1.5\ln(n)} $$

Here:

  • $t$ is the difference between the current turn and the last adoption turn; new Events start counting from creation;
  • $n$ is the internal adoption count, initialized to 1 and incremented for each recorded adoption;
  • $floor$ is the minimum weight assigned according to the memory's criticality.

Long-term decay also uses conversation turns rather than elapsed wall-clock time. Lower weight may reduce a memory's priority in later recall, but decay does not delete its historical record.

Retrieval does not trigger reinforcement.

A search hit only establishes possible relevance. The system may record when a memory was retrieved, but retrieval does not increase its adoption count or reset its decay anchor.

Memories automatically included in context receive no reinforcement merely for being displayed. This prevents a memory from continually gaining weight just because it happened to rank highly and then appeared repeatedly.

Weights update only after recorded adoption.

After selecting evidence for the final answer, the agent submits a usage receipt. Validated Event selections increase their adoption counts and move their decay anchors to the current turn. An ordinary active Event without an additional weight cap returns to weight 1.

As the adoption count increases, the decay coefficient decreases. The Event retains more weight over the same number of subsequent turns, so memories that repeatedly help answers decay more slowly.

Adoption is based on the agent's submitted evidence selection. Code checks that the evidence belongs to the corresponding batch and has passed a sufficient assessment. Receipts prevent the same operation from being applied twice. Unused results receive no reinforcement from that selection.

Different criticality levels have different minimum weights.

Memory categoryDefault minimum weight
Routine information0
User preference0.3
Identity information0.9
Safety information1.0

Pinned memories have an effective weight of 1. Superseded Events normally receive a low weight cap so older states do not retain excessive priority.

These weights express a memory-management policy, not factual accuracy. Even high-weight information must be assessed against the current question, current state, and original source.

Import memory from another AI

importExternalMemory() can migrate a structured memory summary produced by another AI. The core API extracts candidate Events, compares each candidate with a bounded set of existing Events, and lets a model choose one of five actions: add, merge, supersede, mark a conflict, or ignore. Imported text is also retained as a permanent source Block, so every accepted Event remains traceable to the exact import.

The exported prompt and parser use the stratagate.external-memory.v2 format. Unknown dates remain unknown: the importer preserves the original temporal wording instead of guessing from the current date or message order. See docs/EXTERNAL_MEMORY_IMPORT.zh-CN.md for the current integration guide.

The DeepSeek Harness UI previews every import, skips exact duplicates deterministically, and asks the configured model to choose add, merge, supersede, conflict, or ignore against Top-K local matches. High-confidence decisions are applied automatically; only low-confidence decisions require confirmation. Each committed batch can be undone from the result screen.

A real retrieval path

One LoCoMo question asks when Caroline gave a speech at a school.

The event card found the “school speech,” but the card itself did not contain enough date information:

search_events
        ↓
Match the “school speech” event card
        ↓
The event is relevant, but has no exact date
verdict = partial
missing = occurrence date
        ↓
search_raw_memory
        ↓
Find the source message dated 2023-06-09
It says “last week”
        ↓
Resolve the relative date against the message timestamp
verdict = sufficient
        ↓
Answer

In this path:

  • the event card provides fast location;
  • the source timestamp and original message provide final verification;
  • the evidence gate requires the agent to identify missing information and keep checking when evidence is insufficient.

Experimental results

The repository's published R8 comparison uses the LoCoMo conversation sample conv-26, containing 419 messages, 35 sessions, and 152 questions across categories 1–4.

Each system generated answers, and each answer received 10 independent Judge evaluations. These are repeated evaluations, not ten complete system runs.

MetricStrataGateMem0 baseDifference
Mean accuracy across 10 Judge runs80.46%63.22%+17.24 percentage points
Majority-correct121 / 152 (79.61%)96 / 152 (63.16%)+25 questions
Temporal74.86%34.59%+40.27 percentage points
Single-hop89.29%75.14%+14.14 percentage points
Multi-hop66.56%61.56%+5.00 percentage points
Open-domain83.08%84.62%-1.54 percentage points

Both systems used the same questions, order, answer model, Judge model, evaluation prompt, parser, and evaluation count, and each rebuilt its memory. Memory extraction, retrieval implementation, embedding use, and answer context differed, so this compares two complete system configurations.

These results cover only conv-26, not the full LoCoMo dataset. They do not isolate the benefits of short-term decay, the knowledge graph, or the evidence gate. Individual contributions still require ablation experiments.

See the evaluation document for the full protocol, per-question results, and Judge variation, and the machine-readable results for summary data.

How these designs emerged

Failures observed across several experimental rounds helped StrataGate refine its memory processing and retrieval strategies:

  • Store temporal information explicitly. Summaries alone make event dates hard to recover, so event cards distinguish mention time from occurrence time and retain the original temporal wording and source.
  • Keep evidence assessment short and explicit. Five fields require the agent to state its evidence, gaps, and next action while allowing code to validate references.
  • Change retrieval strategy when repeated searches add no information. When an event card lacks key details, expanding its source or searching original messages is more useful than repeatedly searching the same cards.

The evaluation document retains the full R1–R8 history, version differences, and per-question analysis. Multiple changes occurred between rounds; these observations explain design choices but do not independently establish the effect of any single component.

Current limitations and next steps

In the R8 evaluation above, 31 questions were judged incorrect by a majority of evaluators. Grouped by the observable failure stage:

Failure stageQuestionsWhat it indicates
Incorrect direct answer without retrieval15The agent sometimes failed to recognize that historical evidence was needed
Evidence judged sufficient, but the final answer was incorrect14Evidence could concern a neighboring event or fail to support the complete answer
Evidence remained insufficient at the retrieval budget2Enough information was not found within the allotted budget

Within this evaluation, the results point to a need to improve when retrieval starts and whether retrieved evidence actually answers the question. The evidence gate constrains references and assessment procedures, but cannot guarantee the model's semantic judgment or final answer.

Further validation will focus on:

  1. Holding the model and memory state fixed while ablating short-term decay and key retrieval mechanisms, comparing accuracy, context use, and call costs.
  2. Supplying known-correct source evidence directly to distinguish retrieval failures from reasoning errors that persist despite correct evidence.
  3. Repeating the same protocol on more conversation samples before extending it to the full LoCoMo dataset.

Current status

StrataGate provides an installable DeepSeek Harness plugin, with memory management implemented through a shared TypeScript core engine.

Current functionality includes:

  • automatic capture of completed conversations and tool records;
  • L0–L5 short-term memory views, display decay, and on-demand expansion;
  • Events with provenance and time, plus a knowledge graph updated from those Events;
  • automatic activation of relevant long-term memories, active search, and source lookup;
  • retrieval-batch management, evidence assessment, and usage receipts;
  • long-term weight decay, adoption-based reinforcement, and memory import from other AIs.

The repository includes automated tests, experiment records, and traceable evaluation results. Public APIs, model integration, and evaluation coverage are still evolving. Custom integrations should pin a version and validate behavior for their own use cases.

The standard StrataGate.open() entry point uses SQLite persistence; StrataGate.inMemory() explicitly selects temporary operation or testing. The storage adapter supports interruption recovery and consistency checks. See the architecture document for its constraints.

When StrataGate is a good fit

StrataGate suits agent workflows that need continuity across extended conversations while controlling the context occupied by history. For example:

  • Sustained project work. Recent discussions stay detailed; older discussions become concise and can expand when the reasoning behind a decision matters.
  • Continuing work across sessions. Retrieve project decisions, user preferences, plans, and unfinished work in a new conversation.
  • Tracking changes. Understand both current project state and historical changes without mistaking an earlier decision for the current one.
  • Verifying memory sources. Trace Events and graph information back to original records when an answer depends on dates, exact wording, or tool results.
  • Migrating existing memories. Turn information exported by another AI into Events while retaining the imported source text.

Memory can be organized by project, session, or global scope. The knowledge-graph UI primarily supports viewing current information, relationships, and sources; collaborative editing and cloud synchronization across products are not its primary functions.

DeepSeek Harness users can install the plugin through the quick start. See the plugin guide for configuration, memory tools, and recovery behavior.

Code entry points

This section is for developers. DeepSeek Harness users can follow the quick start without building the repository themselves.

The development environment requires:

  • Node.js 22.19.0 or later within the 22.x series, or 24.0.0 or later;
  • the declared version range is ^22.19.0 || >=24.0.0.

After checking out the repository, run these commands from its root:

npm install
npm run check
npm test
npm run build

The main code entry points are:

Entry pointContents
Core-engine exampleMinimal integration example
Core state and lifecycleBlocks, Events, graph, import, retrieval, and adoption records
Layering and decayL0–L5 levels, display decay, and deterministic pruning
Long-term weightsEvent decay and minimum-weight calculation
Event typesEvent-type normalization
Knowledge graphProvenance checks, graph updates, and state maintenance
Retrieval rankingBM25 ranking and RRF fusion
Evidence assessmentAssessment structure and reference constraints
External-memory importImport formats, prompts, and parsing
Legacy Element-card supportElement projection and historical time views

In persistent mode, recordMemoryUse() requires a nonempty, stable receiptId. Reuse that ID when retrying the same adoption operation to avoid duplicate reinforcement. For example:

await memory.recordMemoryUse(
  { eventIds: usedEventIds },
  { receiptId: usageReceiptId },
);

Here, usedEventIds contains the Events the application selected for the answer, and usageReceiptId identifies that adoption operation. The DSH plugin handles this through memory tools and its batch protocol; plugin users do not call this API manually.

The core example demonstrates API integration. See the evaluation document for the model calls, tool loop, and Judge protocol used in the full evaluation.

Documentation and reproduction

ResourceContents
DeepSeek Harness guideInstallation, configuration, UI, memory tools, and recovery
ArchitectureLayering, Events and graph, retrieval, evidence gate, weights, and storage constraints
External-memory importExport format, import flow, and integration example
Full evaluationProtocol, version history, failure analysis, and result scope
Evaluation summary dataPublished results, statistics, and artifact information
Core-engine exampleMinimal API integration example

Repository layout

src/                    DeepSeek Harness Host and Web client adapter
tests/                  DeepSeek Harness integration tests
cordis.patch.yml        Root-level DSH bundle manifest
packages/core/          Shared memory engine, core tests, and example
integrations/workbuddy/ WorkBuddy Host Adapter and MCP integration
docs/                   DSH usage, architecture, and evaluation
benchmarks/             Machine-readable experiment results

Contributing

Contributions are welcome—whether you are fixing a bug, improving documentation, adding an integration, or exploring a better memory and retrieval strategy.

To get started, read CONTRIBUTING.md. It explains how to set up the monorepo, run checks and tests, choose a useful area to work on, and prepare a focused pull request. If you are unsure whether an idea fits the project, open an issue before investing in a large change.

License

StrataGate is available under the MIT License.