全部插件

DSH / BUNDLE / BUNDLES

dsh-tmcra-memory

v1.0.0-rc.1reshuibuduo / tmcra-plugin-deepseek-harness9f77e6f71a

可安装组合包组合包与其他模块社区 · Topic 自动分析

概览

dsh-tmcra-memory

Automatic TMCRA recall, injection, and role-separated writeback for DeepSeek Harness

README / ZH

插件文档

TMCRA × DeepSeek Harness:跨软件、跨会话的项目记忆

DeepSeek Harness、Codex 和其他已接入 TMCRA 的工具之间切换,也不需要重新介绍项目。

每轮收到用户问题后,插件会并行召回“用户全局记忆”和“当前项目记忆”,把证据写入 Harness 可审计的会话记录。回答完成后,用户陈述与 Agent 回答会以两个角色明确的记录写回 TMCRA。

仓库在 src/sdk/ 中附带适配器实际使用、可审查的 TypeScript 客户端与生命周期模块。托管 API、账号、计费、控制面、数据库、部署配置和生产记忆引擎代码均不在公开范围内。

当前状态:技术预览。已针对 @deepseek-ai/dsh 0.1.1-rc.2 与 TMCRA API 0.2.2 验证。DeepSeek Harness 本身仍处于 Developer Preview,后续可能出现破坏性兼容变更。

English

换软件、换会话,继续同一个项目

TMCRA 为每个账号维护一份用户全局记忆,并为每个项目建立相互隔离的项目记忆。两个受支持的工具使用同一个 TMCRA 账号,并识别到同一个项目身份时,就会读取和更新同一份项目记忆。因此,在 Harness 中完成的工作可以在之后的 Codex 会话中被召回;Codex 写入的新进度,也能在切回 Harness 后继续使用。

Agent 回答前,TMCRA 会找回与当前问题有关的用户要求、决策、偏好、Agent 工作进度、实现结果、测试结论、未解决问题和下一步计划。当前回合完成后,新的用户陈述与 Agent 结果会分角色更新到同一份记忆中,并保留来源信息。切换软件或新开会话时,用户无需从头解释项目背景。

跨软件衔接只使用已经进入 TMCRA 的记忆,并要求两端识别到同一个项目身份。TMCRA 不会把无关项目混在一起:.tmcra/project.json、Git 项目标识和账号下发的项目 Scope 前缀共同维持稳定边界;session_id 只承担项目内部的来源追踪,不会形成第三个召回孤岛。

已实现能力

1.0.0-rc.1 新增任务接续、会话模式、完整证据块预算和本机记忆控制台。使用 dsh-tmcra-memory memory --scope <当前项目的精确scope> --session <当前会话ID> 打开面板;可管理任务、查看来源、纠错、忽略或恢复。三种模式为 normalrecall_onlyoff。关闭期间的内容不会在恢复后补写;已提交的远端任务保持原状态。有效纠错需要服务端反馈接口同步更新,线上服务须单独升级验收。

工作台现已集成 Writer / 后台整理 API 配置、个人知识库和知识图谱。模型密钥只在本机表单输入并保存在受保护文件中,读取配置仅返回是否已保存;测试使用虚构 JSON 推理样本。知识与图谱分别读取已有服务接口,支持范围切换、搜索、节点选择及原始证据追溯。

在支持工具与原生 ApprovalService 的 DSH 中,tmcra_memory_control 会对真实的记忆纠错请求先暂停该回合的自动写入,然后在聊天内展示来源、拟修改内容和范围,请用户确认。拒绝、取消或无确认渠道均不提交;已标识的其他正常回合不受影响。语义识别由宿主 Agent 按工具说明完成,假设性讨论不构成修改授权。此流程已通过 DSH 0.1.1-rc.2 原生工具/确认服务的隔离测试。

预算默认 12000 字符;仅在证据仍位于实际模型上下文时跨轮去重。任务状态按凭据指纹和项目隔离;多个本机适配器可使用同一个 TMCRA_MEMORY_STATE_DIR。不同登录凭据的本机任务独立,已提交的长期记忆通过相同服务端项目 scope 共享。

  • 同一个项目可以在 Codex、DeepSeek Harness 等 TMCRA 接入工具之间继续推进。
  • 每轮第一次模型请求前自动召回,无需 Agent 主动调用工具。
  • 新开一个 Harness 对话后,可以继续同一项目的工作进度。
  • session_id 用于项目内部的来源追踪,不会被设计成第三个独立召回范围。
  • 用户内容与 Agent 回答分别保存为 userassistant 记录。
  • 主 Agent 与子 Agent 共享项目记忆,同时保留 Agent 身份、角色、父会话与委派深度。
  • 优先根据 Git origin 识别项目,其次使用 Git 公共目录,最后使用规范化工作目录。
  • 内容送往 TMCRA 前,会清理常见 API key、Bearer Token、密码、私钥、验证码和带凭据的 URL。
  • 召回异常默认不阻断 Harness 回答;写入失败会进入本地持久化待写队列,下次提问前重试。

让每一次项目协作都成为可继续使用的知识

一个长期项目中,真正有价值的信息通常散落在许多轮对话里:需求为什么这样确定、方案受过哪些约束、哪些尝试已经失败、代码改到了哪里、测试得到什么结果、下一步还要完成什么。对话窗口关闭以后,这些上下文很容易被遗忘。再次开始工作时,用户往往需要重新解释项目,Agent 也可能重复调查、重复试错,甚至沿用已经失效的结论。

接入 TMCRA 后,Harness 会在协作过程中自动记录用户表达的目标、要求、决定、修正和工作偏好,同时记录 Agent 完成的分析、实现、测试、问题定位与进度。用户说过的话和 Agent 做过的工作会被分别保存,后续能够判断一项内容是用户作出的决定、Agent 给出的建议,还是已经完成并验证的结果。

随着项目推进,这些协作记录会逐步整理为:

  • 项目现状:当前目标、需求与约束、已经完成的工作、正在处理的问题、未完成事项和建议的下一步;
  • 决策与实施过程:方案选择及其原因、重要变更、实验与测试结果、失败尝试、故障原因和最终处理方法;
  • 可复用的经验:经过实际项目验证的方法、排障路径、设计原则、研究笔记、领域知识和容易踩到的坑;
  • 个人工作背景:用户明确表达的偏好、习惯、常用工具、协作方式和长期关注的主题。

这些内容会随项目继续推进而更新。新的结论形成后,系统会更新项目的当前状态,同时保留此前的过程和依据。不同项目分别组织;同一项目中的多次对话可以共享已经积累的背景。用户开始一轮新对话时,Agent 可以先取得与当前问题相关的项目知识,再继续回答和执行任务。

用户可以在 TMCRA 网页端或桌面应用中查看记忆库和知识图谱,搜索项目经历,回到原始对话核对内容,并删除错误、过时或不希望继续保留的记忆。启用本地知识库同步后,稳定的项目知识也可以继续整理到 Obsidian,成为个人可长期维护的资料。

这套能力适合持续数周或数月的开发、研究、产品设计与多 Agent 协作。它减少重复说明、重复调查和重复试错,让项目进度能够跨对话延续,也让一次项目中形成的经验在之后的工作中继续发挥作用。

环境要求

  • Node.js 22.19.0 或更新版本
  • DeepSeek Harness 0.1.1-rc.2
  • Harness 管理插件时需要 pnpm 位于 PATH
  • 一个 TMCRA 账号。登录命令会自动创建插件所需的范围令牌。

发布初期,TMCRA 账号免费使用,暂不设置记忆写入与召回额度上限。后续如果调整免费政策,会提前公告,并在用户确认后生效。

安装技术预览包

dsh plugin --profile web add https://github.com/reshuibuduo/tmcra-plugin-deepseek-harness/releases/download/v1.0.0-rc.1/dsh-tmcra-memory-1.0.0-rc.1.tgz
dsh plugin --profile web exec dsh-tmcra-memory login
dsh --profile web --dump-config
dsh web

Harness Web UI 默认地址为 http://127.0.0.1:3080

压缩包内含 cordis.patch.yml,安装后会自动加入指定 Profile 的配置层。建议使用 Release 中已经构建好的 .tgz。下载到本地后,也可以执行 dsh plugin --profile web add ./dsh-tmcra-memory-1.0.0-rc.1.tgz。从 Git 源码安装可能还需要在 pnpm 中单独允许构建脚本。

DSH 0.1.1-rc.2 的 Windows 版仍可能把包含空格或非 ASCII 字符的本地包路径错误重组。请先把压缩包复制到纯 ASCII 短路径,例如 D:\\dsh-packages\\dsh-tmcra-memory-1.0.0-rc.1.tgz;上面的 Release URL 不受影响。

连接 TMCRA 账号

安装后执行:

dsh plugin --profile web exec dsh-tmcra-memory login

命令会启动带 PKCE 保护的设备授权,并打开 tmcra.com。首次使用需要注册 TMCRA 账号;已有账号可直接登录。核对权限并确认页面上的设备代码后,TMCRA 会签发仅含 memory:readmemory:write 权限的令牌,同时下发账户全局 scope 和项目 scope 前缀。插件会把这些值保存到 Harness 管理的 $DSH_HOME/.credentials.yaml,用户无需手工复制 API key。

dsh plugin --profile web exec dsh-tmcra-memory status
dsh plugin --profile web exec dsh-tmcra-memory logout

status 只显示当前 Profile 的连接状态,不输出令牌。logout 只删除 TMCRA 相关凭据,其他 Harness 凭据会原样保留。电脑遗失或不再可信时,还应在 TMCRA 个人控制台中撤销该连接。

Harness 不会把凭据值写入普通设置或模型请求。如果模型控制的工具和 Harness 使用同一个系统用户,它仍可能读取该系统用户有权访问的本地文件,因此只应在可信本地账号中保留连接。

配置本地 Writer 与后台整理模型

完整本地部署预览

插件包内置完整后端,提供 E5/MiniLM、BGE-M3/BGE reranker、Qwen3 embedding/reranker 三档。装入 DSH 后运行 dsh-tmcra-memory local-install,免登录打开安装页并选择档位。Python、依赖和校验后的模型自动准备,本机身份自动生成,重启 DSH 后自动发现连接。支持 Windows x64,无需预装 Python、TMCRA 账号或 TMCRA 服务器。首次下载需要联网。原云端凭据保留;本地选择生效后,旧云端连接和后台云模型请求会被拦截,安装失败也保持本地选择。高级用户应先清除显式 TMCRA_CONFIG_FILE 覆盖。

CPU 合成写入和原文召回已通过;复杂编译超时,后台整理和完整重启恢复仍待验收。轻量启动需约 6.3GiB 空闲内存。详见验收说明。宿主主模型在云端时,召回证据仍可能由宿主发往云端。

配置独立模型 API

安装后执行:

dsh plugin --profile web exec dsh-tmcra-memory setup

命令会在 127.0.0.1 启动带随机令牌的临时配置页。Writer 与后台整理可以共用一个模型服务,也可以分别填写 Provider、Base URL、模型名称和 API Key。Codex 与 Harness 共用 ~/.config/tmcra/local-providers.json;Key 只保存在当前系统用户的本地文件中,连接测试时只发往填写的模型服务。Provider 或 Base URL 改变后需要重新填写 Key。macOS/Linux 使用 0600 权限;Windows 移除继承 ACL,只授权当前用户与 SYSTEM。

Harness 运行期间,保存后的配置立即生效。写入请求会把 Writer 任务(包括强制慢速阶段)交给经过账号认证的本机执行器;显式整理请求同样会把后台 Organizer 任务交给本机。执行器只领取由当前设备凭据创建的任务,调用所配置的 OpenAI 兼容接口,并仅向 TMCRA 回传解析后的 JSON、标准化 Token 用量和 Provider Request ID。模型 API Key 与供应商原始响应始终留在当前用户的本机进程。

插件默认配置:

- insert:
    - id: tmcra-memory
      name: dsh-tmcra-memory
      config:
        baseUrl: https://api.tmcra.com
        baseUrlEnv: TMCRA_API_BASE_URL
        apiKeyEnv: TMCRA_API_KEY
        globalScopeEnv: TMCRA_GLOBAL_SCOPE
        projectScopePrefixEnv: TMCRA_PROJECT_SCOPE_PREFIX
        evidenceMode: auto
        recallFailureMode: continue
        waitForIngest: false
        recallTimeoutMs: 30000
        ingestTimeoutMs: 30000

受控部署可以显式填写 globalScopeprojectScopePrefixprojectScope。个人电脑上的常规使用建议保留自动项目识别:不同项目相互隔离,同一个项目里的不同会话可以继续彼此的进度。Harness 接入与 Codex 接入共用 .tmcra/project.json 标记和 Git 项目 scope 公式,因此两种工具能够落到同一张项目记忆图。

自动链路

用户提问
  -> 等待同项目上一轮写入
  -> 恢复本地待写队列
  -> 并行召回全局与项目记忆
  -> 注入可审计的 TMCRA 证据
  -> Harness 模型与工具循环
  -> 本轮正常完成
  -> USER / ASSISTANT 分角色写回

召回证据使用 Harness 的持久插件消息形式(form: recall),会保留到 Harness 执行上下文压缩。插件不会隐藏或改写用户本地的 Harness 会话记录。

验证

npm run typecheck
npm test
npm run build
npm run test:dsh-compat
npm run pack:check
pnpm audit --prod

公开单元测试覆盖生命周期 Hook、Scope 推导、角色分离、敏感信息清理、召回注入和持久化 Outbox。生产服务契约测试会导入 TMCRA 控制面模块,因此继续保留在私有环境;下方公开验收结果,但不公开服务端实现。

远端测试会连接真实 TMCRA 账户,并创建两个互相独立的 Harness 会话:

TMCRA_REMOTE_API_KEY=... \
TMCRA_REMOTE_CLEANUP_API_KEY=... \
TMCRA_REMOTE_GLOBAL_SCOPE=... \
TMCRA_REMOTE_PROJECT_SCOPE_PREFIX=... \
npm run test:remote

它核验写入、任务完成、新会话召回与待写队列清空。TMCRA_REMOTE_CLEANUP_API_KEY 是可选项,只用于删除一次性测试会话;插件日常令牌仍只需要 memory:readmemory:write。回答端使用记录型测试 Adapter,因此不会消耗外部回答模型的 Token 或费用;TMCRA 记忆处理链路自身的模型用量仍会单独计入服务端账本。

2026 年 8 月 14 日,技术预览通过了生产 API 验收:全新项目的两个完整回合写成四条分角色记忆,第二个独立 Harness 会话成功取回用户检查点与 Agent 进度。服务端账本在 deepseek_harness 平台下记录了两次写入事件(共 53 个估算写入 Token)和两次召回请求:第一次面向全新 Scope,按设计容错放行;第二次完成有效的跨会话召回。记忆处理链路另记录 7,894 个模型 Token,已知模型 API 成本为 ¥0.00。验收结束后,两个一次性 Session 均已删除;相关记忆记录、服务消息、Session 记录、活动 Base/Delta 索引指针和外键错误均为 0。测试设备连接、上游范围令牌与本地 Harness 凭据也已全部注销或移除。

当前边界

  • 账号连接和本地模型配置采用 CLI 引导加浏览器确认;Harness 内部暂时没有嵌入式 TMCRA 设置页。
  • 暂未提供 Harness 历史会话导入。
  • 长会话中的上下文增长遵循 Harness 的召回消息与压缩机制,仍需补充长时间工作负载测试。
  • 当前精确锁定并验证 Harness 0.1.1-rc.2;DSH 仍快速迭代,每次发布新版本都需要重新跑兼容性验收。
  • npm 包尚未正式发布;当前安装产物是已经审计的 .tgz
  • 使用真实 DeepSeek 模型完成回答,需要用户自己的 DeepSeek 凭据;记忆生命周期测试本身不依赖该凭据。
  • 记忆库和知识图谱通过 TMCRA 网页端或桌面应用查看;Harness 接入在对话过程中后台运行。

许可

Apache License 2.0。Copyright 2026 Yu Haoxin and TMCRA contributors.