← 返回列表
未验证
顾问引导。守卫保护。模型执行。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/2 · 已提供中文文档
Ward concil 是移植到 DeepSeek Harness 的 oh-my-pi 顾问子系统——独立的审查模型会监视你的 agent 并向其提供建议(nit 注入,concern/blocker 引导),它还包含自动恢复和 git 检查点
综合分
30.4
GitHub 分
30.4
用户评分
—
★ Stars
3
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add AndrasSama/dsh-omp-advisor该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
Ward Council 顾问引导。守卫保护。模型执行。 包名:dsh-omp-advisor —— 即其安装并存储设置时所用的名称。 这是什么? 你的编码智能体很出色,但在长时间会话中可能会视野狭窄:漏掉安全漏洞、在测试真正通过之前就宣称“完成”,或者在走错方向后仍一意孤行。Ward Council 为它提供了第二双眼睛——一个或多个独立的顾问模型,实时观察会话,并在关键时刻发声。 每个顾问会随着对话记录的不断增长而阅读它,可以用只读工具(read / grep / glob)调查你的工作区,并通过专用的 advise 工具递交具体建议。建议以一条清晰标注的备注形式送达,由主智能体权衡——而绝非它必须服从的命令: The SQL in search.py interpolates the user query directly — parameterize it before this ships. 你可以从 DSH 的模型列表中为每个顾问挑选模型,将其限定到特定的工作区,并赋予它一个人设(内置 25 个预设)以及精选的领域技能(打包 250 个)。这是来自 can1357/oh-my-pi 的顾问看门狗设计,在 DeepSeek Harness(DSH)插件接缝上原生重建。 primary agent ──► session log ──► delta renderer ──► advisor model (your pick from the DSH model list) ▲ │ read/grep/glob (read-only) │ ▼ └──── agent.inject / agent.steer ◄── advise tool ── dedupe + quarantine 概览 - 实时审查 —— 顾问会审查对话记录的每一个新片段(按轮次或按步骤),绝不重复阅读历史。 - 建议,而非命令 —— 备注带有严重程度(nit / concern / blocker)以及指引“权衡,不要盲目服从”;由主智能体决定如何行动。 - 持久记忆 —— 顾问在每次审查中回忆相关经验,并将持久经验写回,通过可插拔引擎(纯文本 MD、OpenViking、Hindsight、MisakaNet、mem0 或任意 MCP 服务器)实现。 - Git 还原点 —— 在轮次边界创建无副作用的工作区快照,让顾问可以建议精确的、仅限工作树的回退。 - 完成门禁 —— 在智能体宣称“完成”之前,顾问会核实最初的请求是否真正实现,否则要求给出诚实的报告。 - 韧性 —— 对失败的审查和轮次自动重试、配额冷却、输出隔离;顾问绝不会阻塞你的智能体。 - 25 个人设,250 项技能 —— 从安全审计员到网络小说架构师,一键预设,每个都配有精选的领域技能。 - 多标签页设置 + 实时监控 — 常规 / 顾问 / 工作区 / 记忆 / 监控,外加一个可选的工作区范围侧边栏标签页。 目录 - 工作原理 — 审查循环 · 建议与投递 · 韧性 · 干预 · 恢复点 · 完成门禁 · 记忆 · UI - 安装 · 配置 · 预设 · 技能 - 安全模型 · 开发 · 署名与许可 · 已知限制 工作原理 审查循环 - 增量审查。 顾问永远不会两次看到完整历史:一个指向持久会话日志的游标会将每个新片段(user/message、assistant/message、tool/call、tool/result)渲染成一份紧凑的 markdown 更新,供顾问模型审查。 - 微小增量跳过(可选)。 启用 跳过微小增量 后,小于阈值的转录更新会被跳过,而不会调用顾问模型——这是在话多的会话中减少顾问流量的一种低成本方式(被跳过的增量之后不会重放)。 建议与投递 - 是建议,不是命令。 笔记以 … 消息的形式到达。主智能体自行决定如何处理它们。 - 严重级别。 nit(默认)· concern · blocker。升级等级去重:同一条笔记只有在严格更高的严重级别下才会重新投递。 - 投递通道(DSH 原生)。 | 严重级别 | 主智能体运行中 | 主智能体空闲 | |---|---|---| | 非中断(默认:nit) | agent.inject — 搭乘下一个步骤边界,绝不唤醒 | agent.inject | | 中断(默认:concern、blocker) | agent.steer — 最近的步骤边界 | concern 降级为 inject;blocker 仍然 steer(可能唤醒一个回合) | - 回合中途延迟。 当 reviewTrigger: step 时,在回合仍在运行时提出的非 blocker 笔记会被暂扣,并在回合完成时确定性地冲刷,因此部分工作不会被打断,也不会有建议丢失。 - 合并(可选)。 当附加了多个顾问时,笔记可能会在短时间内接连到达。将 合并建议 设置为一个以毫秒为单位的窗口(例如 1500),运行时就会在该窗口内缓冲来自所有顾问的笔记,然后按每个投递通道一条多 消息的方式发出,而不是每条笔记一条消息。语义如下: - 0(默认)——每条笔记都单独投递,完全如上所述。 - 窗口激活——计时器从第一条被缓冲的笔记开始;当它触发时,批次会在发出时按通道分组(steer 还是 inject 会针对主智能体的当前状态重新解析),并按每个非空通道发送一条消息。 - 中断严重级别——一个 concern/blocker(根据你的中断集合)会立即冲刷整个批次,因此紧急建议绝不会等到窗口结束。 - 会话销毁会取消计时器并丢弃缓冲的笔记:已销毁的会话永远不会收到建议。 韧性 - 自动重试(可选,默认开启)。 失败会自动恢复,而不是无声消亡: - 失败的顾问审查(速率限制、临时提供商错误)会在配置的延迟后重新运行相同的增量,最多达到配置的尝试上限。 - 失败的主模型回合(turn/end 带有 reason.kind: "error")会在相同延迟后收到一条自动的“从你中断的地方继续”后续消息,每次失败事件有次数限制,并在任何完成的回合后重置。 - 尝试上限:1–999,或 0 = 无限制(消息将上限标记为 ∞)。用户中止和永久性错误(未知模型/提供商)永远不会重试——即使上限无限制。使用 Auto-retry failures 可关闭整个功能。 - 遏制(移植)。 输出隔离(不可用工具请求、仅输出型破坏性指令)、连续 3 次失败后丢弃积压、永久性错误暂停直到设置更改、配额/速率限制冷却暂停。顾问永远不会阻塞主代理——这是对 oh-my-pi 追赶等待的有意且更安全的偏离。 - 上下文溢出恢复(v0.7.3)。 如果顾问累积的历史记录超出模型的上下文窗口,运行时会重置该顾问的对话(将其缩减回系统提示 + 当前增量)并重试一次——而不是在无限制重试循环中重新发送同样臃肿的上下文。第二次溢出(单个增量本身就太大)会停止顾问,而不是永远空转。随后 Monitor 会显示停止原因以及一个 Resume 按钮(v0.7.4):在 Advisors 选项卡中将顾问切换为具有更大上下文的模型,然后点击 Resume 即可直接恢复——无需重启。 干预 - 阻塞者干预(可选,默认关闭)。 DSH 没有向插件暴露同步的工具调用前否决权,因此这是平台允许的最强中断:当顾问在主代理运行时提出 blocker,插件会对正在运行的步骤调用 agent.cancel——尚未分派的工具调用会中止,已在运行的调用会提交——然后用后续消息将建议作为后续唤醒代理,使其看到原因并作出反应。在审查触发器为 step 时,这会落在步骤之间,即在模型能够发出下一个破坏性调用之前;当前步骤内的快速工具可能会先完成。使用 Blocker intervention 选择启用;不启用时,建议仍然只是建议。 Git 恢复点 - Git 还原点(可选,默认关闭)。 该插件将工作区快照为无副作用的 git 对象——一个一次性索引捕获已跟踪的更改以及未跟踪的文件(遵循 .gitignore),并以提交对象的形式存储在隐藏命名空间 refs/dsh-omp-advisor/ 下。你的索引、HEAD、分支和工作树永远不会被触碰,也永远不会运行任何 reset/clean/stash 命令。快照在回合边界处发生,并且(可选地)在变更工具之前通过直通的 fs/write-intent / fs/edit-intent / tools/pre-execute 监听器发生,带有有界等待,绝不会阻塞你的工具。顾问获得只读的 list_restore_points / diff_restore_points 工具;在破坏性或错误的步骤之后,顾问可以调用 advise 并带上 rewindTo——该建议随后携带精确的仅工作树还原配方(git restore --source= --worktree --staged .),以及顾问对哪些步骤绝不能再次发生、哪些是进展的分类。主模型自行执行还原;该插件从不回退任何内容。在某点之后创建的文件会被保留,绝不会被删除。非 git 工作区会被跳过。 完成门禁 - 完成门禁(默认开启,仅提示)。 当被监视的代理进入收尾状态(“完成”、“所有测试通过”、目标达成)时,顾问会验证原始请求是否确实已实现——对照工作区,以及当还原点存在时,对照会话的基线→当前差异。如果没有实现,它会指示代理如实报告已完成和未完成的内容,并询问你部分状态是否可接受。一旦工作被验证为完成——或者你明确接受这一折中——顾问的 acceptance 建议会提醒代理将已接受的状态提交到它正在处理的分支(插件将最新的还原点标记为已接受;代理执行提交)。 顾问记忆 - 顾问记忆(v0.7.0)。 顾问在每次审查中回忆相关的长期经验教训,并将持久的经验教训写回,通过可插拔的引擎名册:内置的每工作区纯文本存储(默认)、OpenViking、Hindsight、MisakaNet、mem0,以及任何自定义 MCP 记忆服务器。多个引擎同时运行,每个顾问选择自己的引擎,不可用的引擎会变灰且绝不会阻塞审查,写入门禁(批准 / 自动 / 只读)控制存储的内容。完整控制位于记忆选项卡。 设置界面与监控 - 多选项卡设置界面。 设置部分像插件市场的内部选项卡栏一样组织:常规(策略开关)、顾问(名册——卡片默认折叠,点击标题展开)、工作区(基于同一 workspaces 字段的工作区 × 顾问激活矩阵)、记忆(持久顾问记忆——可插拔引擎、写入门禁、每顾问引擎开关)以及监控(实时状态 + 活动动态)。 - 可选的侧边栏监视器 + 工作区管理器标签页。 当安装了 dsh-better-sidebar 时,该插件会在侧边栏工作台中注册一个 Advisors 标签页。该标签页遵循侧边栏的会话作用域,因此它会显示此会话的名称和工作区、其附加的顾问(状态点、审查/建议计数器、最后错误)及其活动流——其他会话则折叠在“Other sessions”下,并且标签条徽章仅统计此会话的顾问(当某个顾问已停止/出错时显示 !,当此处未附加任何顾问时隐藏)。自 v0.7.5 起,它还是一个工作区顾问管理器:它列出所有已配置的顾问,分为在此工作区中活跃和在此处不活跃(原因:off、disabled here 或 not in this workspace),并带有内联的 Enable here / Disable here 按钮,以及一个主题感知的 Add advisor ▾ 下拉菜单,其中列出内置预设(一个自行渲染的菜单,而非原生 ,因此它会跟随浅色/深色方案;新顾问的作用域限定为此工作区,并使用第一个可用的模型)。自 v0.7.6 起,该开关真正限定于工作区作用域:“Disable here”会向一个新的正交 disabledWorkspaces 排除列表追加一个精确的 = 条目——它绝不会翻转顾问的全局 enabled 开关,也绝不会删除已编写的 workspaces 包含模式,因此一个始终开启的顾问可以仅在此工作区中被关闭,并在其他所有地方继续运行;“Enable here”会清除该排除项(并在需要时打开该顾问 / 添加一个包含模式)。写入操作通过狭窄的主机端 RPC(setAdvisorWorkspace、addWorkspaceAdvisor)进行,这些 RPC 以原子方式对当前设置执行加载-修改-保存——侧边栏绝不会对其(最多 2 秒过期的)缓存进行读取-修改-写入,因此在设置对话框中的并发编辑不会被覆盖。主机的 workspace 匹配器会遵循 disabledWorkspaces,因此一个在此处被禁用的顾问实际上会在该工作区中停止附加/审查(而不仅仅是在标签页的渲染中)。检测是一个有界的运行时探测——绝不是硬依赖:没有侧边栏时,该插件会像以前一样加载并运行。 安装 先决条件 - DeepSeek Harness 0.1.2-alpha.4 或更新版本(alpha 系列),并带有 web 配置文件(dsh web)。v0.8.0 放弃了对 rc.8 的支持:它依赖于 alpha-4 的双参数 connection.rpc.handle(不再传递 rc.8 的第三个 authority 选项参数)。所使用表面的其余部分在 0.1.2-alpha.4 中经核实保持不变:Service(ctx, name)(cordis 4.0.2)、createUserMessage + plugin 源类型、llm.stream、agents.get、settings.register、session/turn/fs 事件名称、settings.section 槽位、__ModuleLoader__ 客户端包装器,以及 dsh.bundle.patch / dsh.client package.json 清单结构。 - 在 DSH 的模型列表中至少配置了一个模型——每个顾问都需要一个 provider 路由 + 从该列表中选择的模型。 - 该插件在被启用之前处于惰性状态:主开关(将顾问附加到会话)默认关闭。 - 可选:对于侧边栏“顾问”标签页,需要 dsh-better-sidebar 0.18.0-alpha.0(alpha 系列版本;0.17.x 面向旧的 rc 系列)。 安装 从 GitHub 安装 dsh plugin --profile web add github:AndrasSama/dsh-omp-advisor 或从本地检出安装 dsh plugin --profile web add "file:/path/to/dsh-omp-advisor" 然后重启 DSH Web并强制刷新浏览器(Ctrl+Shift+R)。重启是强制性的:正在运行的服务器会在启动时计算插件包修订版本,因此新安装或更新的插件在服务器进程重启之前绝不会出现。 验证 1. 在 DSH Web GUI 中打开设置——必须存在一个 Ward Council 部分。 2. 一旦主开关打开,其 实时状态 面板会列出已附加顾问的会话。 3. 首次运行:启用主开关,点击 添加顾问 ▾ 并选择一个预设,从下拉菜单中选择一个模型,然后启动任意会话——顾问标签会在一个回合内出现在实时状态中。 升级 / 卸载 升级:使用相同的 spec 重新运行 add,然后重启 DSH Web dsh plugin --profile web add github:AndrasSama/dsh-omp-advisor 卸载(dsh-omp-advisor 命名空间中的设置会保留在磁盘上) dsh plugin --profile web remove dsh-omp-advisor 速率限制指南。 每个顾问在每次被审查的转录更新时都会发起一次模型调用。在严格的免费额度下(例如 5 次请求/分钟),将 审查触发 保持为 turn,保持名册精简,并让 自动重试 保持开启,其延迟至少与提供商的速率窗口一样长。 代理安装提示 将此交给具有 DSH 主机 shell 访问权限的 AI 代理——它是自包含的: 将 dsh-omp-advisor 插件安装到 DSH web 配置文件中。 上下文: - DSH CLI:dsh(必须在 PATH 中;通常是 ~/.npm-global/bin/dsh)。版本必须为 0.1.2-alpha.4+(alpha 系列)。web 配置文件目录为 ~/.dsh/profiles/web(由 pnpm 管理)。 - dsh plugin --profile web 会在该配置文件目录内委托给 pnpm。 - 一个 dsh web 服务器当前可能正在运行,并托管着活跃的用户会话。 除非用户明确表示他们会重启它,否则绝不要自行终止它; 插件仅在服务器重启后才会激活,因此请完成安装,然后 请用户重启 dsh web 并强制刷新浏览器。 步骤: 1. 从 GitHub 安装: dsh plugin --profile web add github:AndrasSama/dsh-omp-advisor (或从本地检出安装:dsh plugin --profile web add "file:/abs/path/to/dsh-omp-advisor") 2. 验证它已注册: dsh plugin --profile web list | grep dsh-omp-advisor 预期会显示一行 dsh-omp-advisor。 3. 对位于 ~/.dsh/profiles/web/node_modules/dsh-omp-advisor 的已安装副本进行健全性检查: package.json 版本与发布版本匹配,并且 lib/index.js + lib/client.js + skills/ 存在。file: 安装的已知陷阱:pnpm 在首次安装时对文件进行硬链接,因此之后对源检出的编辑可能会使已安装的副本部分陈旧。如果任何内容看起来陈旧,请用检出覆盖它: rsync -a --delete --exclude node_modules --exclude .git \ /abs/path/to/dsh-omp-advisor/ ~/.dsh/profiles/web/node_modules/dsh-omp-advisor/ 4. 请用户重启 dsh web 并硬刷新浏览器(Ctrl+Shift+R)。 5. 重启后在 GUI 中验证:Settings 显示一个“Ward Council”部分。在用户启用“Attach advisors to sessions”(默认关闭)并添加至少一个从 DSH 模型列表中选择模型的 advisor 之前,该插件处于 INERT 状态——请告知他们这一点。 6. 如果重启后该部分缺失:检查服务器日志中的插件加载错误,确认步骤 2/3,并确认浏览器已硬刷新。 不要为此插件手动编辑 ~/.dsh/settings.yaml;配置位于 dsh-omp-advisor 设置命名空间中,并通过 GUI 部分进行编辑。 配置 打开 Settings → Ward Council。该部分有五个内部标签页——General、Advisors、Workspaces、Memory、Monitor——仿照 Plugin Market 的子标签栏。设置位于 dsh-omp-advisor 命名空间中,并实时生效——编辑名册时无需重启。Advisor 模型调用通过 ctx.llm.stream 使用你选择的提供商路由 + 模型 ID 进行,因此计费、路由和故障转移的行为与你的其他 DSH 模型流量完全一致。 General 标签页 - Attach advisors to sessions——主开关(默认关闭)。 - Review trigger——turn(审查已完成的轮次)或 step(在轮次运行时审查)。Step 模式会在每个工具步骤触发——UI 警告称,在限速或按量计费的提供商上这会带来沉重负担。 - Interrupting severities——哪些严重级别会进行干预;其余则作为非中断上下文随行。 - Coalesce advice (ms)——0 = 立即传递每条提示;>0 = 将窗口内所有 advisor 的提示批量合并为每个通道一条消息(参见工作原理)。限制在 0–10000。 - Auto-retry failures——开关 + 延迟(ms,1000–300000,默认 5000)+ 尝试上限(0–999,默认 3,0 = 无限制)。重试失败的 advisor 审查,并向失败的主轮次发送自动“continue”(参见工作原理)。 - Blocker intervention——默认关闭。开启后,当主流程运行期间出现 blocker 时,会取消正在运行的步骤并用该建议唤醒 agent(参见工作原理)。 - Restore points——默认关闭。开启后,会在轮次边界将工作区快照到隐藏的 git refs 中;keep 设置每个会话保留多少个(1–100,默认 20),而 also snapshot before mutating tools(默认开启)会在写入/编辑/bash 之前进行捕获。然后 advisor 可以建议回退,并对照会话基线验证完成情况(参见工作原理)。 - 完成门禁 — 默认开启(仅提示词,零额外调用)。顾问会在智能体声称完成之前核实工作是否确实完成,否则要求提供诚实的已完成/未完成报告,并提醒智能体提交已验收的状态(参见工作原理)。 - 跳过微小增量(字符) — 0 = 审查所有内容;>0 = 跳过小于此值的转录更新。 顾问标签页 - 从预设添加 — 一键从 25 个内置角色之一创建现成的顾问(参见预设)。 - 顾问 — 顾问名册,以可折叠卡片形式呈现(默认折叠 — 点击卡片标题展开;新添加的顾问会自动展开)。每位顾问包括: - 名称, - 从 DSH 模型列表中选择的模型(提供商路由 → 模型 → 可选推理强度), - 最大轮数 — 顾问每次审查的工具循环预算(1–10,默认 4), - 可选的专长指令(例如“关注安全:注入、密钥、不安全反序列化。”), - 工作区 — 以逗号分隔的模式,与会话的工作区路径进行匹配;顾问仅在匹配的会话中运行(留空 = 所有会话)。普通模式为子字符串匹配 — /home/sama 也会匹配 /home/sama/anything — 因此对于宽泛路径,请以 = 为前缀以进行精确的 cwd 匹配(=/home/sama)。这样你就可以把写作工作台分配给小说工作区,把工程工作台分配给代码工作区。 - 技能 — 顾问精选的技能标签:移除一个(×),从目录下拉菜单中添加任何已打包的技能,或者如果该顾问是从预设创建的,则重置为预设默认值(参见技能), - 技能交付 — inject(默认:在系统提示词中提供完整技能正文)或 lazy(id+描述索引加上一个 load_skill 工具 — 节省 token,每加载一个技能多一次调用), - 记忆引擎 — 该顾问从哪些长期记忆引擎中回忆并写入(参见记忆标签页)。一个都不勾选 = 仅使用内置的纯文本存储;不可用的引擎在此处也会置灰, - 每位顾问的启用开关。 工作区标签页 - 一个工作区 × 顾问矩阵:行是已知工作区(会话中打开的每个工作区加上已配置的每个模式),列是顾问。勾选的单元格表示该工作区模式在该顾问的列表中;切换会重写卡片编辑器使用的同一个 workspaces 字段。没有模式的顾问会在所有地方运行 — 其单元格显示为不确定状态,勾选一个会将其限定到该单个工作区。一个自由文本行让你可以添加尚无会话打开的工作区模式。 记忆标签页 顾问拥有持久的、按工作区限定的记忆:每次审查前,它们会回忆相关经验教训到上下文中;审查后,它们可能会写回一条持久经验。多个引擎可以同时运行,每位顾问在其卡片上选择自己的引擎。 - 启用顾问记忆 — 总开关(默认开启)。关闭时,不执行任何召回,也不存储任何内容。 - 写入闸门 — 谁可以存储经验教训: - 审批(默认)— 顾问提出的经验教训会排队为待处理,只有你在待处理经验教训列表(或监控标签页)中批准后才会存储。 - 自动 — 经验教训立即存储。 - 只读 — 仅召回,从不写入。 - 召回预算 — 每个引擎的最大条目数(1–10,默认 3)以及每次审查的总字符数(500–40000,默认 6000)。召回条目通过单一打包层合并:按引擎设上限、跨引擎去重、按分数排序、按预算截断——并作为最后一个提示块注入,以保持提示前缀缓存稳定。 - 记忆引擎 — 引擎名册,带有实时探测状态(绿色 = 可用,黄色 = 需要设置,灰色 = 不可用)。不可用的引擎会置灰并在运行时跳过;它们绝不会阻塞审查。重新扫描会按需重新探测。引擎包括: - Plaintext MD(内置) — 默认引擎。每个工作区一个仅追加的 markdown 经验教训文件,位于 /.dsh-omp-advisor/lessons.md,通过确定性的 BM25-lite 关键词搜索进行召回。零 LLM 调用、零依赖、可人工编辑。 - OpenViking — 驱动与 OpenViking 记忆插件 启动的同一个 stdio MCP 代理(servers/mcp-proxy.mjs,从配置文件的 node_modules 自动解析)。通过 find 召回,通过 remember 存储——因此 OpenViking 的经验教训也可以写入。(该插件的 openvikingMemory 宿主服务是隔离作用域的,无法跨插件访问,因此使用代理。) - Hindsight — 启动 Hindsight 捆绑的 stdio MCP 服务器(dist/mcp-server.js,自动解析),并设置 HINDSIGHT_MCP_HARNESS=dsh;召回/搜索知识页面并摄取经验教训。 - MisakaNet — 只读的失败经验教训网络(经过验证的调试经验教训),在存在其本地 MCP 适配器时通过该适配器进行探测。其原始 MCP 工具使用带点的名称(deepseek.recovery.search);DSH 仅在向代理暴露工具时将点重写为下划线,因此预设匹配这些点。 - mem0 — 自托管的 mem0 MCP 服务器(随附时处于禁用状态;填写端点并启用)。 - 添加自定义 MCP 引擎 — 将顾问指向任意 MCP 记忆服务器(mem0、Graphiti、Cognee、私有存储……)。提供 id、传输方式(stdio 命令/参数/工作目录或 HTTP url)、召回/存储工具名称以及只读标志。这是针对没有专用预设的框架的兜底方案。 - 引擎脚本自动解析 — 位于另一个包中的内置 stdio 预设(OpenViking、Hindsight)使用 resolveScript 说明符,在生成时跨外层和配置文件的 node_modules 进行解析,因此不会硬编码任何特定于配置文件的绝对路径。如果该包未安装,引擎会显示“未安装”并保持灰色。 - 预设迁移 — 内置引擎定义是有版本的。当某个版本更改了预设(工具名称、传输方式、生成命令)时,你持久化的旧预设副本会自动从新预设重新派生(你的启用/禁用开关会保留;自定义引擎绝不会被改动)。 - 待处理的经验教训 — 当写入门控为“审批”时,顾问提出的经验教训会连同其标签和目标引擎一起在此等待;批准会存储它们,丢弃会删除它们。待处理的写入按工作区持久化,并在重启后保留。 监控标签页 - 实时状态 — 每个会话的顾问状态点、积压、审查/建议计数器、最近错误、还原点计数。被暂停 / 出错 / 配额耗尽的顾问会获得一个 恢复 按钮,该按钮会重置其对话并重新启用它;上下文溢出导致的暂停还会显示一条提示,建议先在“顾问”标签页中为该顾问分配一个上下文更大的模型。 - 活动动态 — 服务范围的事件环形缓冲区(≤100,最新在前):带时长的审查、带严重级别+渠道的建议投递、重试、配额冷却、暂停、阻塞干预、还原点快照、会话附加/分离。同一动态也为可选的侧边栏标签页提供数据。 预设 从预设添加 下拉菜单内置了 25 个现成的顾问角色。应用预设会创建一个新顾问(名称冲突会获得数字后缀),其专业化指令是该角色扩展后的 灵魂描述,其技能列表是该角色的 10 项精选技能。之后你可以像任何顾问一样编辑一切——模型、指令、技能。 | # | 角色 | 预设 | |---|---|---| | 1 | 高并发后端 | The Rustacean Weaver | | 2 | AI 推理集成者 | The Weights Whisperer | | 3 | 应用链开发者 | The Genesis Architect | | 4 | 基础设施管理员 | The Edge Guardian | | 5 | Python 服务架构师 | The Django Synthesizer | | 6 | Node.js 系统开发者 | The Event Loop Maestro | | 7 | Harness 插件创建者 | The Meta Coder | | 8 | 代码审查守门人 | The Linting Oracle | | 9 | 技术文档撰写者 | The Clarifier | | 10 | 安全审计员 | The Red Teamer | | 11 | 数字营销策略师 | The Conversion Alchemist | | 12 | 直接响应文案撰稿人 | The Hook Master | | 13 | 网络小说架构师 | The Worldbuilder | | 14 | 作者社区经理 | The Patron Whisperer | | 15 | 调查记者 | The Fact Finder | | 16 | 编辑部主任 | The Style Enforcer | | 17 | 财务分析师 | The Ledger Reader | | 18 | 法律合同审查员 | The Clause Hunter | | 19 | GDPR 与隐私官 | The Data Steward | | 20 | 欧盟 AI 法案与治理 | The Model Auditor | | 21 | 知识产权与版权哨兵 | The License Guardian | | 22 | 网络安全与 NIS2 准备 | The Resiliency Engineer | | 23 | 电子商务与消费者保护 | The Consumer Shield | | 24 | 隐私设计工程师 | The Minimizer | | 25 | 代理工具安全守护者 | The Tool Warden | 领域预设(金融、法律、隐私、营销……)将其建议定位为审查标记与分析,而非专业意见——其灵魂描述要求它们揭示风险,并将最终判断交由合格的人类。 技能 该插件在 skills//SKILL.md 下打包了 250 个顾问技能——每个预设精选 10 个。每个技能都是一份简洁的简报(需要留意什么、最佳实践、快速检查清单),用于在特定领域磨砺顾问,例如 n-plus-one-query-audit、prompt-injection-via-tool-results、gdpr-data-mapping、cliffhanger-mechanics。 - 注入(默认)。 顾问所配置的技能正文会在每次审查调用时作为 … 嵌入其系统提示中。未知 id 会被跳过,绝不会导致致命错误。一次模型调用即可覆盖全部内容——在限流提供商上效果最佳。 - 懒加载(按顾问选择启用)。 当技能交付设置为 lazy 时,系统提示仅携带 id+描述索引,顾问会获得一个 load_skill 工具以按需获取正文。每个顾问可节省约 15KB 的提示;每个加载的技能会额外消耗一次工具循环调用,因此更适合在有余量的按 token 计费的提供商上使用。 - 按顾问编辑器。 每张顾问卡片都会将其技能列为标签:× 移除一个,+ 添加打包技能… 下拉菜单可添加 250 个中的任意一个(其描述作为工具提示),而从预设创建的顾问会获得一个 重置为预设默认值 按钮,用于恢复精选列表。 - 构建时嵌入。 scripts/gen-skills.mjs 会扫描 skills/,并在每次构建和测试运行前生成宿主嵌入(完整正文)和客户端目录(id + 描述);skills/ 目录树是唯一事实来源,并随包一同发布。 安全模型 - 顾问获得只读工具,且仅限于所监视会话的工作区(read、grep、glob,在懒加载模式下还有 load_skill)。目前尚无变更类工具——oh-my-pi 的 WATCHDOG.yml 授权系统计划在后续版本中,在 DSH 的审批流程之后推出(关于当前已有的功能,请参见 Blocker 干预)。 - 顾问输出在成为上下文之前会经过隔离:对不可用工具的请求以及仅输出型破坏性指令(移植的危险模式)会被替换为经过净化的错误。 - 注入到会话中的建议会从未来的顾问增量中排除(无反馈循环)。 - 该插件绝不会主动阻止或门控主代理。自动重试只会在失败回合之后追加一条后续消息,并在达到配置的尝试上限后停止(永久性错误绝不重试)。唯一的例外是选择启用的 blocker 干预:只有当你启用它时,blocker 建议才会取消正在运行的步骤——即便如此,已在运行的工具调用也绝不会被终止。 - 还原点仅支持追加。 快照通过一个一次性索引将提交对象写入 refs/dsh-omp-advisor/** 下——用户的索引、HEAD、分支和工作树永远不会被触碰;只有一份允许列表中的 git 动词会运行,拼接到参数中的对象 id 会经过 SHA 格式校验,提示被禁用,并且每次 spawn 都有硬超时。还原和提交始终由主模型执行(在你正常的工具权限/审批下),绝不由插件执行;还原会保留在该还原点之后创建的文件,而不是删除任何内容。变更前的快照等待是有界的,因此工具调用永远不会被 git 阻塞。 - /dsh-omp-advisor RPC 以 authority: 'trusted-host' 注册:请求通过与 /api 相同的 Host/Origin 信任围栏(回环地址,或部署的 --trusted-host 授权),因此设置部分和实时状态面板也能从远程 GUI 使用。处理程序返回 RpcResult 值,并且从不抛出异常。 - 设置读取和写入走同一通道(snapshot / update 端点),而不是 ctx.settingsScope:DSH 将 settingsScope 的持久化限制为仅回环地址,因此绑定作用域的设置部分会在每个远程浏览器中渲染为“不可用”。在宿主侧,update 仍然经过设置域的模式 + 验证 + 实时监听。 开发 bash npm install # 仅开发依赖;DSH 包由运行时提供 npm run build # gen-skills + 宿主 ESM (lib/index.js) + 客户端 CJS ModuleLoader 包 (lib/client.js) npm test # 针对移植语义 + 内存的 144 个单元测试 npm run typecheck # tsc --noEmit(DSH 包已垫片) 布局:src/ 宿主插件(设置、服务、运行时、顾问循环、工具、投递、隔离、增量、还原点、内存),src/client/ 设置部分(多标签页)+ 预设 + 可选的 better-sidebar 标签页(sidebar.tsx),src/prompts/ 移植的顾问提示(包括完成门协议和内存召回协议),skills/ 250 个打包的顾问技能(构建时嵌入的真相来源),scripts/gen-skills.mjs 技能嵌入生成器,test/ node:test 测试套件(基于 git 的测试针对真实临时仓库运行,并在 git 缺失时干净地跳过;客户端模块通过一个最小 React 桩进行测试)。 归属与许可 顾问语义和提示文本移植自 can1357/oh-my-pi(packages/coding-agent/src/advisor/),© Mario Zechner / Can Bölük / Stencil Labs,采用 MIT 许可证,副本见 NOTICE-oh-my-pi-LICENSE。本插件是面向 DeepSeek Harness 的独立移植,与 oh-my-pi 项目无关联。 恢复点设计借鉴了两个社区插件的模式(不含代码):PerryLink/dsh-checkpoint-rewind(Apache-2.0)——无副作用的 git 对象快照、变更前捕获监听器、仅恢复工作区且保留快照后文件;以及 Anionex/dsh-turn-rewind(BSD-3-Clause)——仅显式触发 / 不变更 Git 控制平面的安全契约。感谢这两个项目公开其设计。 可选的侧边栏监控标签页通过其公开的 ctx.betterSidebar.registerTab 服务 API 与 omdsh-dev/DSH-better-sidebar(MIT)集成,遵循其外部插件指南(可选对等依赖、effect 包装的注册、运行时探测而非硬注入)。 许可证。 Ward Council 在 SamaCorp Inc. 个人使用许可证 下分发——见 LICENSE:授予个人使用和修改的完整许可;不得销售本软件或修改后的衍生作品;未经授权的销售将触发全额买家退款,外加法律费用,并按每份售出副本向 SamaCorp Inc. 支付 50 美元。一项例外:从 oh-my-pi 移植的顾问语义和提示词仍保留在 MIT 之下(见 NOTICE-oh-my-pi-LICENSE),这是 MIT 的要求——这些部分在每一份副本中都保留其 MIT 条款。截至并包括 v0.6.0 的版本均在 MIT 下发布;已按 MIT 分发的副本保留这些条款(重新许可仅向前生效,自 v0.6.1 起)。 已知限制 - 顾问建议在对话中呈现为普通插件消息(专用建议卡片为未来工作)。 - 恢复点需要 git 工作区:非 git(以及未出生 HEAD)的工作区会被跳过,稀疏检出/子模块不在快照范围内。恢复会保留在该点之后创建的文件——删除它们由模型自行斟酌决定,并以顾问建议为指导。 - 在安装了 dsh-turn-rewind 时消费 ctx.changeLedger、对高风险工具模式进行人工审批(ask)路由,以及会话状态(种子重放)回退,均为未来工作。 - 顾问目前尚无变更工具授权(oh-my-pi 的 WATCHDOG.yml 名单)。阻断式干预(可选的步骤取消)是第一层干预;完整的 WATCHDOG 授权仍计划在后续版本中于 DSH 审批流程之后推出。 - 尚无会话内“顾问正在监视”徽章;健康状况可在设置的监控标签页中查看,并且在安装了 dsh-better-sidebar 时,也可在侧边栏的顾问标签页中查看(含状态徽章)。 - 设置区段打开时,状态面板每 5 秒轮询一次(侧边栏标签页:注册后为 2 秒);尚无推送。活动环仅存于内存中(≤100 个事件,重启后丢失)——用于监控,而非审计。 - 顾问记忆(v0.7.0)仍在前方:将记忆与还原点(回退经验)和完成门(妥协记录)组合起来,MCP 连接池,专用记忆浏览器,以及按引擎的写入确认。 - Web 配置文件 UI;其他配置文件仍可手动配置命名空间。
扫码进群