前言¶
长对话里最难受的不是回答不好,而是回答后面要继续追问很多次时没有地方放。传统聊天窗口只有一条向下的流,回答 A 下面追问了十轮,再想回到回答 B,只能上下翻找;文字一多,定位原文基本靠运气。
下面介绍的 Mica Space 是 DSH 的一个客户端插件,维护者 ToiMee,方向是把这条流改成一张可缩放的对话地图:一条纵向主线,多条从回答分叉出去的支线,每个空间是一张独立画布。它在社区目录 SkillHub 上的分类是「客户端」,GitHub 上有 1 颗星,包版本 0.99.7,许可证 MIT。
它解决的是同一件事:追问直接长在那张回答上,主线保留完整上下文,支线各自展开,回到主线时本地记忆还能 callback 之前支线的结论。
Mica Space 的定位¶
一句话:DSH 的分支式对话画布插件,零配置本地记忆。
- 语言 JavaScript,包名
@local/dsh-chat-space,private: true,走 Release 分发,源码安装需自建。 - 侧边栏入口叫「Mica空间」,界面语言跟随 DSH,插件内不单独切换。
- 当前是预览版。README 明确写着
0.99.7 demo,升级前建议保留.chat-space备份。
核心功能¶
分三组看。
分支结构与画布:
- 多空间、文件夹、子文件夹;主线 / 支线 / 子支线树;
- 竖版支线左右交替排布,避免全部堆在右侧;
- 创建分支时可填可选名称,也可右键对「分支名称(optional)」重命名;
- 点模式下可直接拖动小点调整位置;选中卡片后 Alt + 滚轮仍可缩放画布;
- 分支颜色支持调色盘和十六进制输入,主线可单独设色;
- 分支折叠 / 展开带堆叠卡片、淡入淡出和聚合标记;支线卡有四向连接点,折叠点和展开点做了视觉区分;
- 横竖布局在创建空间时决定,之后不可切换。
追问与附件:
- 引用选中文字后继续追问;
- 图片和文件附件;
- 图片附件与扫描版 PDF 的本地 OCR(Tesseract,离线);
- 已停止的回答旁边提供「重新问」,重新问不移动视角,完成后显示蓝色未读标记;
- 卡片支持折叠、颜色、标签、待追问和红旗;待追问卡片离开视口时边缘出现
!提醒。
库管理与记忆:
- 回收站、撤销、搜索、整库导入导出;
- 本地记忆:主线摘要 + 分支摘要 + 父子级检索;长回答自动分 chunk,命中子片段时回带父 turn;
- 零配置轻量哈希向量,以及可选的本地共现语义模式;
- Git 备份(本地提交 + 可选私有 remote push)。
安装与启用¶
Release 里的 mica-space-0.99.7-demo.zip 已经包含运行依赖,解压后直接在 DSH 插件管理里选择该目录即可,不需要再执行 npm install。源码安装仍然需要先 npm install。
按 README 的步骤走:
1、在 DSH 插件管理中安装本目录对应的插件包;
2、确认侧边栏出现「Mica空间」;
3、在 DSH 里配置一个聊天模型;
4、新建空间,从第一个问题开始。
插件声明 dsh.client.platform 为 web、immediately: true,并注入 @deepseek-ai/dsh-client-ui-conversation,属于客户端侧插件。
用户不需要另外安装:
- 向量数据库;
- embedding 模型;
- Python;
- embedding API。
典型使用流程¶
1、新建一个空间,输入第一个问题。
2、对某个回答点追问,回答下方分叉出一条支线;想并行试另一种问法,就从同一张回答再分一条。
3、引用卡片里选中的文字继续追问,减少口头复述。
4、需要图片或扫描版 PDF 时直接附进去,OCR 在本地完成。
5、后续回到主线,本地记忆从分支摘要里 callback 结论,不用重新粘贴。
6、整理时折叠分支、打标签、设红旗;想留档就走导出或 Git 备份。
记忆模式与隐私¶
画布顶部点「记忆」切换两档。
轻量模式是默认档:关键词 + 字符 n-gram 哈希向量,零配置,速度最快。
本地语义增强模式在当前空间的词语共现上构建分布语义向量:
- 零配置,不需要外部 API;
- 不是通用神经语义模型,不能理解任意同义改写;
- 每个空间独立构建,不共享其他用户数据。
隐私边界按 README 列的几条:
- 轻量 / 本地语义模式不访问网络;
- 正常聊天时,问题、上下文和附件会发送给用户配置的 DSH 模型提供商;
- 文件抽取后的文本、图片 OCR 和 PDF OCR 结果也会进入聊天上下文;
- OCR 在本地完成,不上传图片或 PDF 到 OCR 服务;
- Git 备份只有用户主动配置 remote 并点击备份时才 push;
- 插件本身不包含遥测,不包含作者 API key。
数据默认落在默认工作区:
.chat-space/library.json
.chat-space/spaces/<id>.json
.chat-space/attachments/
.chat-space/trash/
每个空间独立保存,包含主线、分支、视图和 memory。
Agent 模式:现在没有¶
当前 0.99.7 demo 没有 Agent 模式,这一点 README 说得比较明确:
- Mica 里的每条对话都是一次普通模型调用:发送系统提示词、历史消息、分支上下文、记忆和附件,接收文字流;
- 不执行工具循环;不读写文件,不运行命令,不调用 MCP;也没有 Agent 权限确认。
v1.0 的探索方向包括但不限于:按空间或分支选择是否使用 Agent,接入 DSH 的 Agent 会话和工具调用,工具调用与权限确认以卡片形式挂到对应分支,先做只读工具再考虑写文件和执行命令,以及明确分支复制、回到主线、中断后继续时 Agent 状态怎么处理。这些是计划,不是现有能力。
已知限制¶
写下来免得踩坑:
- 当前不是神经语义 RAG;
- PDF 文本层不足时自动本地 OCR,最多处理 8 页,OCR 质量受扫描清晰度影响;
- 新上传附件保存在
.chat-space/attachments;打开旧空间时会把 DSH 旧附件复制进来并改用本地引用,永久删除时清理本地文件; - 附件文件不包含在导出 JSON 或 Git 备份里;
- 大空间已做视口裁剪,但未做完整的节点虚拟化;
- 测试方面,核心测试覆盖上下文、空间库、embedding 和语义排序,另有 Playwright 真实浏览器 E2E。
想自己跑测试,真实浏览器 E2E 是:
npm run test:e2e
如果 Chromium 不在默认路径,设置 MICA_CHROMIUM 指向 chrome.exe。
核心与 UI smoke:
node --test tests/context.test.mjs tests/library.test.mjs tests/embedding.test.mjs tests/semantic.test.mjs tests/parent-child.test.mjs tests/rag-eval.test.mjs tests/performance.test.mjs tests/ui-smoke.test.cjs
适用场景与注意¶
适合的场景:对话轮次多、经常从一个回答分头追问、需要可回溯结构的研发或调试过程;希望记忆和 OCR 都在本地跑完、不额外接服务的场景。
需要注意五点。
第一,插件以当前 DSH 进程的权限运行。它能做的文件读写、命令执行、网络访问都取决于 DSH 这个进程本来拥有什么权限,不会因为装成客户端插件而额外收窄,也不该因为看着只是聊天界面就假设它没副作用。
第二,安装前应读一遍源码,重点看 index.js、client.js、cordis.patch.yml 和 settings 相关入口,确认它对工作区文件(尤其是 .chat-space 目录)的读写范围是否在你的预期内。许可证是 MIT,允许查看和修改。
第三,预览版的定位。README 自己标了「当前版本为预览版,升级前请保留 .chat-space 备份」,所以动手之前先备份。
第四,附件不进备份。导出 JSON 和 Git 备份都不含附件文件本身,这份空间的完整留档要另外考虑附件目录。
第五,生态位置。Mica Space 挂在社区目录 SkillHub 下,SkillHub 是独立站点,与 DeepSeek 及幻方没有官方从属关系,不要把这类目录当作官方应用商店。DSH 的理念是「一切皆插件」,插件的来源、维护者和更新节奏需要自己判断。
小结¶
Mica Space 的价值集中在一个具体改动上:追问不再往下追加,而是从那张回答分叉。对经常在长对话里反复追问的开发者,它把「翻回去找那个回答」这件事换成了「在那张卡片上继续长」。零配置的本地记忆、离线 OCR 和 Git 备份对小规模个人工作区够用,但不是通用神经语义 RAG;Agent 模式仍停留在 v1.0 计划里。
目录页:https://www.skillhub.cn/plugins/ToiMee/mica_space
源码与 Release:https://github.com/ToiMee/mica_space