Web、Headless、工具、命令与 RPC
本页是集成参考。日常使用请先看 Sidebar 与对话交互指南。
记忆空间命名与兼容性
产品统一使用记忆空间(memory space)。Source 导出 MemorySpace、MemorySpaceView、MemorySpaceCatalog 及对应的请求和元数据类型;已发布的 MemoryBody* 类型作为弃用别名保留,数据形状不变。
既有 v0.5.x 标识,如 mnemon_memory_bodies、mnemon_memory_body_create、body-directory 和 memoryBodyId / memoryBodyIds,仍表示记忆空间。为兼容已安装的工具、Source 页面、Provider 适配器和持久化的 Document/Pack 来源信息,这些标识保持稳定;.dsh-memory-bodies.json 文件名与其中的 bodies 字段也继续保留。术语调整不会重命名用户创建的空间、修改 ID、移动数据库或改变访问授权。
用户界面入口
| 入口 | 默认 | 说明 |
|---|---|---|
| Sidebar | 是 | 左侧栏的“记忆系统”工作台:状态、运行时、档案、记忆空间 |
| 会话标签页 | 否 | 在会话内打开同一工作台,自动跟随所属会话的范围 |
| 本回合记忆 | 是 | 已完成回合下方的记忆工具摘要;展开后可跳到对应页面 |
| 存入记忆 | 是 | 已定稿助手回复旁的操作;确认后调用监督写入 |
| 插件页中的 dsh-mnemon 页面 | 是 | 记忆组合、组件页面、存储、界面与备份 |
/mnemon |
— | 对话命令入口 |
| 模型工具 | — | Root Agent 的结构化读写入口 |
displayMode 选择 sidebar(默认)或 builtin(会话标签页);tabEnabled 控制所选入口是否显示。会话标签页不展示 Sidebar 的范围控件。对话内两个快捷入口在界面中分别开关,通过 mnemon-ui 设置范围保存。
Profile 能力面
| 能力 | Web | Headless |
|---|---|---|
| 运行时上下文与生命周期提示 | 是 | 是 |
| 模型工具与独立任务 Agent | 是 | 是 |
workspace 范围按 Agent cwd 路由 |
是 | 是 |
| Sidebar / 对话操作 | 是 | 否 |
| Host 到客户端 RPC | 是 | 否 |
| Agent idle 后的延迟评分审查 | Host 持续运行时执行 | 一次性进程退出时取消 |
Headless 会获得完整模型工具面。它把命令行任务作为普通用户消息提交,不提供交互式斜杠命令分发;Agent 进入 idle 前已经完成的显式和模型引导写入会持久化。
模型工具、生命周期 hook 与系统调度都使用 automatic trigger;Web/RPC 中由用户直接发起的数据面操作使用 manual trigger。因此把某层设为 manual 会保留人工管理能力,同时拒绝模型工具和自动投影。memory-system 与 status 属于控制面观察,即使某层关闭也仍可读取。
模型工具
只读工具
| 工具 | 用途 | Root Agent 路径 |
|---|---|---|
mnemon_status |
CLI、配置、存储与目录聚合状态 | 直接服务 |
mnemon_memory_bodies |
读取记忆空间目录、Provider 能力、健康与可用统计 | 直接服务 |
mnemon_recall |
从一个或多个 active Provider 召回;异构结果排名融合 | 受 pinned Source 权限约束的 Host 直接服务 |
mnemon_related |
在 capabilities.related=true 的记忆空间中遍历关系 |
受 pinned Source 权限约束的 Host 直接服务;Root 默认两跳 |
mnemon_document_search |
确定性搜索受管档案 | Documents 控制层 |
“只读”表示不修改受管正文或长期语义内容。mnemon_document_search 命中后仍会更新 lastAccessedAt,用于 LRU 排序,因此功能只读不等于磁盘只读。
writeEnabled=true 时的工具
| 工具 | 用途 | Root Agent 路径 |
|---|---|---|
mnemon_runtime_memory |
add / replace / remove 热记忆 |
确定性控制;add 溢出时可能启动 worker |
mnemon_document_manage |
创建、更新或归档档案 | 创建/更新确定性;归档使用 worker,没有记忆空间能接收索引时不经 worker 直接归档到本地 |
mnemon_document_create |
新建独立档案,不更新或归档已有档案 | 确定性 Source create Action;供后台审查使用 |
mnemon_remember |
按 Provider 语义沉淀洞察,回执区分已接受与持久提交 | spawn write worker |
mnemon_link |
在支持能力的 Provider 中建立 typed relationship | spawn write worker |
mnemon_forget |
在支持能力的 Provider 中按精确 ID 删除 | 仅限显式操作的 spawn write worker;自主蒸馏不含此工具 |
mnemon_memory_body_create |
由 Agent 创建独立 Mnemon Native 记忆空间;第三方连接只由用户在 WebUI 管理 | spawn write worker |
mnemon_memory_body_update |
更新名称、说明或 active | spawn write worker |
mnemon_memory_body_merge |
非破坏性合并 Mnemon Native 记忆空间 | spawn write worker |
worker 内调用同名工具时直接进入服务层,不再递归委派。
自主 write worker(蒸馏与 supervised writeback 运行)自行决定写入内容,因此宿主在其硬性工具白名单中排除了 mnemon_forget:遇到重复或冲突时只能跳过或写入修正后的条目,不能删除已有记忆。请求目标由用户或用户侧流程显式给出的操作(/mnemon forget、mnemon_link 与记忆空间管理)保留完整 write 工具面。
后台审查可以搜索档案并调用 mnemon_document_create,不能调用 mnemon_document_manage 或 mnemon_view_action。已有档案覆盖候选时跳过;有新增知识时,新建一份独立档案并引用相关已有档案 ID。Source 的 create Action 接收 title、content,以及可选的 description、sourcePaths、sessionIds;拒绝 action、id 等额外字段。容量不足时拒绝创建,不归档已有档案。已有的用户档案和 Agent 创建档案都受此保护;显式编辑继续使用原有管理路径。
mnemon_runtime_memory 的 target=memory 写入支持可选 branches 数组(git 分支名)。带分支范围的条目只在会话 workspace 处于所列分支上时投影进每回合 Runtime 快照;无分支标签的条目始终投影。replace 时提供 branches 修改范围,传空数组清除范围,省略则保持当前范围;该参数对 target=user 会被拒绝。
工具准入建议
- 运行时:明确偏好、稳定项目约定、环境事实和高频经验。
- 档案:具有完整结构和理由的设计、调查、流程、复盘或交接。
- 记忆空间:需要跨任务保留,或适合图关系与深召回的稳定事实、决策和洞察。
- 跳过:问题、猜测、临时进度、完成日志、原始输出、秘密和可轻易从仓库重新发现的普通事实。
mnemon_forget 是破坏性语义操作;只有用户明确要求,或内容已确认错误 / 过时时才应执行。宿主通过把该工具排除出自主 worker 的白名单来强制这一点;用户明确要求时主代理仍可调用。
/mnemon 命令
/mnemon
/mnemon status
/mnemon recall <查询>
/mnemon related <完整记忆 ID>
/mnemon remember <内容>
/mnemon forget <精确 ID>- 空
/mnemon等价于status。 status是确定性读取,不启动模型。recall、related通过命令所在 live Agent 的限定 Source 路由直接读取,不启动 worker;remember、forget使用该 Agent 作为写入 worker 的 parent。- 命令 recall 最多返回 10 条。
forget必须接收一个不含空格的精确 ID。forget仅在收到forgotten回执时报告删除成功;跳过、失败或未确认的结果返回错误并附 worker 摘要。
界面注册
Mnemon 在 DSH 中展示的一切都注册到 DSH 自己的界面区域。对话内的注册都是增量的,不替换 DSH 官方渲染。
| DSH 区域 | 注册 | 行为 |
|---|---|---|
conversation.chat.turnTail |
list,id=dsh-mnemon/turn-tail |
通过 turn-activity 汇总完成回合中的 mnemon_* 调用,以及工具活动元数据中每次调用读到或写入的内容;无活动或未完成回合不渲染 |
conversation.chat.assistant-actions |
list,id=mnemon-save |
通过 assistant-message 读取已定稿文本;只在用户确认后调用 supervise |
conversation.session.header.lineage |
DSH 官方条目的低优先级副本 | 任务 Agent 会话页眉只统计该 Agent 自己的 token,不含其 fork 来源的日志 |
plugins.bundle.config |
keyed,dsh-mnemon |
插件页中 dsh-mnemon 页面上的全部配置 |
plugins.row.config |
keyed,dsh-mnemon#<row> |
每个随包组件的行打开的页面,含该组件注册的设置 |
plugins.detail.actions |
list,id=dsh-mnemon/open-workspace |
从插件详情页打开记忆系统 |
Mnemon 自己声明两个 keyed 区域,都以组件包名为键:mnemon.component.settings 渲染在该组件的页面上,mnemon.component.status 是它在状态页上的卡片。官方组件与第三方组件都通过这两个区域注册,见插件开发。
assistant-message 读取的候选可编辑,长回复会按界面上限截取;确认后会启动独立任务 Agent,写入结果以它的落定回执为准。
工作区路由
Web 工作台请求携带 sessionId 和可选 workspaceId。Host 只接受 workspaceRegistry 已登记的 ID:
- 确定性读取与人工维护可以路由到
workspaceId选择的查看根; - Agent、工具、命令和生命周期仍按
sessionId对应 Agent cwd 路由; status.workspaceContext返回 selected / effective roots 与aligned;- 工作台发起的独立任务 Agent 使用查看工作区,不要求当前主会话与其对齐;对话工具仍使用所属会话的 cwd 和本轮 View,不借用工作台的查看范围。
Headless 等没有 Web 工作区目录的 profile 不提供任意查看目标;Agent 执行仍直接根据 session cwd 路由 workspace 范围。
RPC 通道
RPC 是 DSH Host 与插件客户端之间的内部桥,不是稳定外部 HTTP API。页面与组件插件应使用 dsh-mnemon/client 提供的限定范围客户端,见插件开发。
| 通道 | 承载 | 远程页面 |
|---|---|---|
/dsh-mnemon-read |
状态、目录、检索与对话读取 | 允许 |
/dsh-mnemon-activation |
开关单个记忆空间 | 允许 |
/dsh-mnemon-write |
其余所有 mutation | 需要 remoteAccess: trusted-host |
/dsh-mnemon-pack |
备份导出与导入 | 需要 remoteAccess: trusted-host |
/dsh-mnemon-settings |
Host 与界面设置 | get 允许;mutate 需要 remoteAccess: trusted-host |
/dsh-mnemon-view |
记忆组合读取 | 允许 |
/dsh-mnemon-view-settings |
保存记忆组合、安装组件 | 需要 remoteAccess: trusted-host |
回环页面直接调用这些通道,由 DSH 浏览器会话认证。远程页面经 DSH API Gateway 到达同一组处理器:通道 /api,endpoint 为 dshMnemon/read、dshMnemon/activation、dshMnemon/write、dshMnemon/pack、dshMnemon/settings、dshMnemon/view 与 dshMnemon/viewWrite。Gateway 负责 Host/Origin 校验、浏览器配对与响应封装;Mnemon 只额外施加上表中的 remoteAccess 授权,并在启动时确定。见远程管理。
读通道
| Endpoint | 行为 |
|---|---|
status / status-summary |
服务、版本、生命周期、档案、存储与工作区上下文及当前 Memory System 描述符;status-summary 不等待任何 Provider I/O |
memory-system |
Serving/候选评估、脱敏 Source 实例描述符与当前参与配置 |
versions |
Mnemon CLI 与 dsh-mnemon 的当前 / 最新版本和安装来源 |
task-agent-models |
独立任务 Agent 可用的模型 |
runtime-memory |
运行时快照 |
documents / document / document-search |
档案目录、正文与确定性搜索 |
graph / bodies / body-directory |
active 多空间图谱投影、含 Provider 能力的记忆空间目录与快速目录投影 |
body-reconnect |
清除短期健康状态并刷新单个记忆空间,不修改持久数据 |
provider-services |
脱敏的 Provider 服务目录;可包含已配置的凭据字段名,绝不包含凭据值 |
embedding-status |
Mnemon 嵌入模型、可用性与默认 Store 覆盖率 |
list / entities |
内容列表与实体聚合 |
search / agent-search / related |
直接检索、证据回答与关系遍历 |
turn-activities / turn-activity |
会话或单回合的记忆工具活动 |
assistant-message |
按 messageId 读取已定稿助手文本 |
source-management-catalog / source-management-read / source-assistance |
通用 Source 管理:实例目录、声明的读取操作与只读辅助检索 |
激活通道
/dsh-mnemon-activation 的请求 schema 比写通道更窄。body endpoint 只接受 memoryBodyId、布尔值 active 和常规 session / workspace 路由字段;source-assistance 以经确认的 activation 操作接受同样两个字段,仅作用于 Memory Spaces 实例。两者只控制记忆空间是否参与 DSH 读取与路由,不接受元信息、Provider 连接、凭据、删除或持久记忆 mutation。只读模式会在 Host 边界拒绝。
写通道
| Endpoint | 行为 |
|---|---|
runtime-memory |
热记忆 mutation |
document |
create / update / archive |
supervise |
用独立任务 Agent 处理候选并返回落定回执 |
remember / link / forget |
长期语义写入、关系与软删除 |
body-create / body-update / body-delete / body-merge |
创建或连接、编辑、确认后的 Native 删除或远程断开,以及合并记忆空间 |
body-metadata-maintain |
由任务 Agent 刷新 1 到 20 个 active 记忆空间的名称与说明 |
provider-service-update |
更新单个 Provider 服务;凭据仅在 Host 保存,响应脱敏 |
source-management-mutate / source-assistance |
通用 Source 管理 mutation,以及按 Source 当前修订确认的 Host 辅助操作 |
version-update |
更新明确组件;Host 固定命令与参数 |
provider-services 通过读通道返回脱敏目录。设置编辑器只知道哪些凭据字段已经配置;保存新的值或显式清除字段,不回读已保存的凭据值。
writeEnabled=false 时激活通道与写通道仍保持注册,但所有 mutation 都在 Host 边界拒绝。浏览器也会根据 Host settings snapshot 在传输前禁用 mutation 控件。
备份通道
| Endpoint | 行为 |
|---|---|
target |
当前有效根、范围,以及“默认位置”对应的默认根 |
export |
导出完整、带 manifest 与 SHA-256 校验的 ZIP |
inspect |
解析并校验待导入 ZIP,返回组件与占用预览 |
import |
把 ZIP 安全合并到当前有效根;只读模式拒绝 |
备份包含私有记忆;调用方必须把已认证 DSH 浏览器会话视为完整 Host 权限,并单独保护导出的归档。
设置通道
/dsh-mnemon-settings 为两个命名空间提供 get 与 mutate:mnemon 管理 Host 与存储设置,mnemon-ui 管理 turnBar 与 saveAction,保存为 conversationInteraction。mutation 携带 settings revision,防止覆盖并发编辑。插件页中的 dsh-mnemon 页面(plugins.bundle.config)在回环页面和远程页面上都通过该通道读写。回环页面还会跟随 DSH ctx.configForms 中 mnemon 条目的 revision,在其他页面或 profile 重新加载改动它时重新读取该通道。
记忆组合通道
| 通道 | Endpoint | 行为 |
|---|---|---|
/dsh-mnemon-view |
dashboard |
已安装组件、当前主策略、当前会话的 View 与回合活动,以及此处能否安装组件 |
/dsh-mnemon-view |
preview |
按当前修订校验拟保存的组合,不写入 |
/dsh-mnemon-view |
inspect-plugin |
读取组件包的 registry manifest:版本、dsh-mnemon peer 范围,以及当前 Profile 是否已安装 |
/dsh-mnemon-view-settings |
apply |
保存经确认的组合:主策略、组件开关与选项 |
/dsh-mnemon-view-settings |
install-plugin |
用 DSH CLI 把经确认的包版本安装到当前 Profile |
apply 把主策略与各组件选项保存在 mnemon-view 设置范围(保存为 memoryView);组件开关由 DSH 插件管理器写入 profile patch。见配置参考。
npm 导出与扩展服务
Core 发布 ctx.mnemonMemory: MnemonMemoryService,实际服务只提供 installContributions。Source/Strategy 作者通过 inject = ['mnemonMemory'] 与 installMemory 注册,不获得引擎、控制器或注册表。各包的公开子入口以其 package.json#exports 为准;Source 可提供自己的 ./contracts 和可选 ./client。
| 入口 | 职责 |
|---|---|
dsh-mnemon |
DSH Host 与默认 Starter |
dsh-mnemon/core |
不带 Host/UI 的、Source 无关的 ctx.mnemonMemory 服务 |
dsh-mnemon/contracts |
JSON 安全的 manifest、facts、ViewSpec、View、Evidence、Receipt |
dsh-mnemon/extension-sdk |
Source/Strategy 定义、生命周期注册与校验 |
dsh-mnemon/testing |
真实 Cordis 组合测试夹具与已构建 Client 制品加载器 |
dsh-mnemon/client |
DSH 工作台与 Source 页面 SDK |
dsh-mnemon-source-memory-spaces/provider-sdk |
Memory Spaces 自己的 Provider 子模块协议 |
dsh-mnemon-source-memory-spaces/testing |
Provider 驱动测试夹具 |
通用模型工具 mnemon_view_route、mnemon_view_action 只执行当前 View 内的 route/offer;原有具名工具保留默认工作流。浏览器管理使用 source-management-catalog、source-management-read、source-management-mutate 与可选 source-assistance,Host/Source 检查实例、确认、修订与当前权限。内部 RPC 名称不是插件 SDK,页面应使用限定实例的管理客户端。见插件开发。
国际化范围
主要 Sidebar 工作台、插件页中的配置与对话内入口支持中文和英文,并跟随 DSH locale 实时切换。品牌名、工具名和配置键不翻译。/mnemon 命令、模型工具卡、部分 Host 错误与兼容元数据尚未完全国际化。