coding-agents
vectorize-io/hindsightHindsight:会学习的 Agent 长期记忆系统,自动召回/保存、知识页、深度反思与按仓库隔离的记忆银行。
Minta 记忆引擎的 DSH 原生接入层:合成官方 dsh-mcp-client 行、注册 minta-memory-governance 技能与 session-start 记忆预热,并提供 Minta agent 预设;19 个 MCP 工具由需单独部署的 Minta 引擎(Python/Docker)提供,未部署引擎则无法使用。
One command → 13 working memory tools → your agent stops re-explaining the project. Memories are governed, not hoarded: stale/conflict/redundancy checks, and nothing becomes permanent until you confirm it in the inbox.
Minta — context quality layer for DeepSeek Harness.
Installing this package composes two Cordis rows into a DSH profile:
mcp-client-minta — official @deepseek-ai/dsh-mcp-client wired to the local
Minta engine's streamable-HTTP endpoint (its 13 Community minta_* tools reach the agent).minta-plugin — this package as a real Cordis plugin. At mount it registers a
runtime skill (minta-memory-governance, content derived from the Minta
interaction guide) and a agent/session-start hook that prewarms engine
health + recent memory over the Minta REST API (fail-open: an unreachable
engine never breaks a session).The memory engine itself is a separately deployed service (see Prerequisites);
the plugin is a thin DSH-native surface over it. See docs/dsh-integration.md
for the verified end-to-end flow.
npx @deepseek-ai/dsh web)python minta_cli.py start (serves MCP at
127.0.0.1:18721 and API at 8772), or docker compose up -ddsh plugin --profile web add @xxinchen/dsh-plugin
Restart dsh web. The MCP client row is composed automatically — no manual
config editing. Verify in a new session: "list all tools whose name contains
minta" → the 13 mcp__minta__* Community tools.
Note: the engine must be running before the tools respond; failOnStartupError: false means a stopped engine does not break DSH sessions.
python minta_cli.py start (or Docker).dsh plugin add + one restart of dsh web, start a new session and
ask: "list all tools whose name contains minta" — expect the 13
mcp__minta__* tools. If they are absent, restart dsh web once more.minta_login (your Minta credentials) so the tools
operate with your identity.minta-memory-governance is registered and available to the model.minta_search_context first.minta_append_inbox, and you confirm or discard in the Minta UI
(http://127.0.0.1:8772, inbox review). Your memory is never edited
silently.For turn-level automation (DSH rc.2 has no per-step/turn-end events, so the protocol is carried by the preset persona, which the model follows every turn), install the preset shipped in this package:
mkdir -p ~/.dsh/.agent-presets
cp -r <node_modules>/@xxinchen/dsh-plugin/presets/minta ~/.dsh/.agent-presets/ # or cp -r the repo's dsh-plugin/presets/minta
Then, in DSH, pick Minta in the session preset picker — or set it as the
default by overriding the agent-presets row (in ~/.dsh/profiles/web/cordis.patch.yml):
- id: agent-presets
config:
default: minta
The preset persona adds the per-turn protocol: minta_autopilot_preflight
before answering about prior work, minta_autopilot_postflight after each
reply, inbox-only writes, and graceful degradation when the engine is offline.
cordis.patch.yml blockIf you previously set Minta up by appending the mcp-client-minta block to
~/.dsh/profiles/web/cordis.patch.yml, remove that block before installing
this plugin. The bundle patch and the manual block insert the same loader
entry id mcp-client-minta; with both present the profile fails to boot with
duplicate loader entry id: mcp-client-minta. Check you are clean with:
grep -A6 mcp-client-minta ~/.dsh/profiles/web/cordis.patch.yml # expect no output
(A patch file containing only [] is valid and means "no overrides".)
Append to ~/.dsh/profiles/web/cordis.patch.yml:
- insert:
- id: mcp-client-minta
name: '@deepseek-ai/dsh-mcp-client'
config:
transport: streamable-http
serverName: minta
url: http://127.0.0.1:18721/mcp
failOnStartupError: false
Shipped: MCP wiring, runtime skill registration, session-start prewarm.
Not here yet (and why):
minta_autopilot_preflight / minta_autopilot_postflight,
instructed by the registered skill) rather than a hidden automatic hook.