dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
A long-term math-memory agent for DeepSeek Harness that lives inside Obsidian as a right-sidebar chat panel.
A two-component repository:
dsh-math-assistant, repo-root manifest.json + main.js): embeds the dsh web UI in the right sidebar, detects and starts the dsh service, bootstraps the dsh-side configuration and vault templates on first run, and hosts the memory panel, capture-policy settings, and deterministic maintenance.dsh-obsidian-math, dsh/): installs the same obsidian agent preset / profile and vault templates into $DSH_HOME.Both write identical, idempotent configuration. Installing the Obsidian plugin alone is enough; dsh/install.mjs covers the pure-CLI workflow.
Mathematics learning is long-horizon accumulation: notation habits, theoretical preferences, half-finished proofs, techniques, counterexamples, and ideas all need continuous collection and polishing into a connected system. Generic chat AI treats every conversation as isolated Q&A. This plugin gives the agent cross-session layered memory (five layers + a notation ledger + memo lifecycle), unified retrieval (notes + memory in one search), and a standing protocol (AGENTS.md) so each new session starts where the last one ended.
note_recall unified search: one BM25-ranked pass over user notes AND all memory layers (hook-weighted cards, memos, topics, theorem/episode indexes); unicode-dash normalization and CJK char containment bridge word-form gaps; hits carry a coverage indicator (query-token coverage; <0.35 marks a lexical-coincidence weak signal).note_search (user-note tag filter), note_links (backlinks / link-following), note_create (refuses to overwrite).hook: blocks and verification levels ✅⚖️❓) / episodes (raw evidence, append-only) / inbox (idea memos, inbox→polishing→done).memory/notation.md with adopted/candidates/rejected tables and a revision history — collect → unify → maintain; the agent proposes unifications when your notation drifts (observes first when you have no stable habit yet).uses/success_rate.idea/fact/preference × auto/ask/off — pick them in the plugin settings (dropdowns write back to capture-policy.md), or edit via the memory panel / the file directly; auto-tier writes are announced in the closing line, ask-tier proposals state what/why/where.[✅ 这条对] [❌ 这条错] links in replies deterministically rewrite cards through the loopback /feedback endpoint (CSRF-token protected); note references are clickable and jump into Obsidian (/open).approval: never); DSH_PERMISSION_MODE=danger-full-access only re-enables escalation prompts, the sandbox itself stays workspace-write.@deepseek-ai/dsh); a configured DeepSeek model.dsh web on 3080; configurable in settings).A (recommended): Obsidian → Settings → Community plugins → search DSH Math Notes Assistant, install and enable; or copy main.js/manifest.json/styles.css from a release into <vault>/.obsidian/plugins/dsh-math-assistant/. First run auto-detects dsh, initializes preset/profile/templates, and starts the service.
B (CLI):
npm install -g dsh-obsidian-math
dsh-obsidian-math install --vault "D:\\Obsidian笔记数据库"
dsh --profile obsidian --port 3180 --patch "$DSH_HOME/profiles/obsidian/obsidian.patch.yml"
Plugin settings: port, dsh install dir, DSH_HOME, auto-start, auto-init, auto-archive (>90-day episodes), ribbon button, keep-alive on close, and the capture-policy dropdowns.
vault/
AGENTS.md working protocol (auto-loaded)
.deepseek/
memory/profile.md semantic layer (profile)
memory/notation.md notation ledger (collect → unify → maintain)
memory/topics/ navigation layer
memory/records/ typed atomic cards (+ hook blocks)
memory/theorems/ personal theorem index (Matlas-style)
memory/templates/ problem-template ↔ theorem graph
memory/episodes/ raw evidence (append-only + archive/)
inbox/ idea memos
capture-policy.md capture policy (user-maintained)
cache/ machine-generated caches (do not edit)
npm test # syntax + 63 zero-token regression checks + installer e2e (drift detection)
npm run qa # engine probe: 12 ground-truth recall assertions on the real vault (zero tokens)
npm run qa:e2e # real-session end-to-end acceptance (spends real tokens; reports API-level usage)
node scripts/build-obsidian.mjs # rebuild main.js (required after shared-file changes)
node scripts/deploy-local.mjs # one-shot local deployment
Everything runs locally: the service binds 127.0.0.1, memory is markdown inside the vault, and the past-session index never leaves the machine.
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。