🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

轨迹治理台 dfycaly98931680/dsh-trajectory-governance

DeepSeek 客户端
dfycaly9893168080 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

重建多分支轨迹树,诊断循环与漂移并告警

28.9/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/dfycaly98931680/dsh-trajectory-governance.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
生态插件
可安装,未声明 dsh 能力
暂无时间戳·判据 →
装得上吗[实装验证]—
静态安装检查有提示项,装前建议看一眼 README
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 80 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-trajectory-governance(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/24 00:03:07

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 发起网络请求
    src/diagnose/alerts.ts:122
    const response = await fetch(url, {
  • 写入本地文件
    src/persistence/sqlite.ts:14
    if (path !== ':memory:') mkdirSync(dirname(path), { recursive: true })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 重建多分支轨迹树
  • 诊断循环与漂移
  • 一键中断与断点分叉

README

由 DeepSeek 最新模型翻译生成
dsh-trajectory-governance Awesome DSH Plugin 面向 DeepSeek Harness (dsh) 的智能体轨迹治理与异常诊断。 将扁平的 session/event 日志重建为结构化、多分支的轨迹树,保留观测层快照,并运行三种时序异常策略(循环死锁 / 无效重试 / 目标漂移),结果挂载到树节点上,并在独立的 GUI 标签页中呈现。 零内核修改 · 仅消费的事件订阅 · 观测层快照(无控制平面回滚)· 独立 SQLite 存储 · 绝不覆盖官方 Trajectory 视图。 为什么 官方 Trajectory 页面是扁平的原始事件日志。对于长时间运行的智能体任务(数十轮、子智能体、分叉),你无法看到: - 哪个工具调用属于哪个子任务 / 子智能体 / 分叉分支, - 智能体从何处开始偏离原始目标, - 它是否在原地循环、空烧 token(死锁 / 无效重试)。 本插件是一个上层观测与推理层:它消费已提交的事件,并推导出结构、快照和诊断——它从不操控、拦截或回滚智能体。两种视图共存。
展开完整文档(README 剩余 1 节)
dsh-trajectory-governance

Awesome DSH Plugin

面向 DeepSeek Harness (dsh) 的智能体轨迹治理与异常诊断。

将扁平的 session/event 日志重建为结构化、多分支的轨迹树,保留观测层快照,并运行三种时序异常策略(循环死锁 / 无效重试 / 目标漂移),结果挂载到树节点上,并在独立的 GUI 标签页中呈现。

零内核修改 · 仅消费的事件订阅 · 观测层快照(无控制平面回滚)· 独立 SQLite 存储 · 绝不覆盖官方 Trajectory 视图。

为什么

官方 Trajectory 页面是扁平的原始事件日志。对于长时间运行的智能体任务(数十轮、子智能体、分叉),你无法看到:

- 哪个工具调用属于哪个子任务 / 子智能体 / 分叉分支,
- 智能体从何处开始偏离原始目标,
- 它是否在原地循环、空烧 token(死锁 / 无效重试)。

本插件是一个上层观测与推理层:它消费已提交的事件,并推导出结构、快照和诊断——它从不操控、拦截或回滚智能体。两种视图共存。

| 方面 | 官方 Trajectory | dsh-trajectory-governance |
| 视图 | 扁平原始事件日志 | 结构化多分支轨迹树 |
| 谱系 | 无 | 父/子 + 分叉/子智能体分支(隐式推导) |
| 快照 | 无 | 观测层快照(nodeId + 上下文哈希 + branchId) |
| 诊断 | 无 | loop_deadlock / invalid_retry / goal_drift,含置信度 + 建议 |
| 存储 | 宿主存储 | 插件私有 SQLite(~/.dsh-trajectory-governance/) |
| 行为 | — | 仅消费;从不调度、分叉或回退智能体 |

架构

dsh web profile
├─ @deepseek-ai/dsh-base (official core)
└─ dsh-trajectory-governance (this bundle)
│
│ ctx.on('session/event' | 'session/created' | 'session/disposed'
│ | 'subagent/start' | 'subagent/end') ← emit-mode, post-commit, read-only
▼
┌─ ingest ───────────────┐ ┌─ tree ─────────────────┐
│ normalize (scalars) │──▶│ cross-session trajectory │
│ sqlite (events/sessions)│ │ tree + branch attach │
└────────────────────────┘ └─────────────────────────┘
┌─ snapshot ─────────────┐ ┌─ diagnose ──────────────┐
│ index-only snapshots │ │ 3 strategies (async) │
│ LRU/TTL prune, branches │ │ results → anomalies DB │
└────────────────────────┘ └─────────────────────────┘
│
▼
┌─ api (host) ────────────┐ ┌─ client (browser) ─────┐
│ /trajectory-governance/ │◀──│ independent Tab: │
│ api/* (JSON, same-origin)│ │ conversation.view slot, │
└─────────────────────────┘ │ id 'trajectory-…' │ └─────────────────────────┘ 数据流:session/event(持久化,提交后)→ 规范化 + 持久化 → 树/快照/诊断服务 → JSON API → GUI 标签页。诊断引擎异步按间隔运行(增量水位线 + 尾部重叠),绝不阻塞 agent 循环。

安装

需要 dsh >= 0.1.0-rc.6。有两种方式:

打包安装(已发布 / git):

dsh plugin --profile web add github:dfycaly98931680/dsh-trajectory-governance#

git 安装会拉取源码,因此该包附带了一个 prepare 构建;pnpm
要求为其显式配置允许列表(将打印出的键添加到该 profile 的 pnpm-workspace.yaml,然后重新运行):

allowBuilds:
dsh-trajectory-governance: true

或者安装已构建的 tarball(pnpm pack)——无需构建权限。

开发覆盖层(无需 pnpm):

dsh web --patch C:\path\to\dsh-plugin\overlay.dev.yml

然后重启 web 应用。你应该会在日志中看到 [trajectory-governance] loaded;
storage=... sessions=N events=M anomalies=K。

使用

1. 在 GUI 中运行任意 agent 任务(最好是长时间运行的任务)。
2. 打开 轨迹治理 / Trajectory Governance 标签页(一个独立的 conversation.view 条目——官方 Trajectory 标签页不受影响)。
3. 选择一个会话:树会渲染出分支徽标(subagent/fork)、快照标记(★)以及红色高亮的异常区间(⚠)。
4. 点击某个节点可查看原始事件 + 挂载的诊断报告(类型、置信度、严重程度、描述、建议)。
5. 使用快照栏在任意节点捕获检查点、列出它们,并跳转回去;通过 API/CLI 删除过期的分支。

CLI 检查工具(针对插件自有的 SQLite):

node scripts/inspect.mjs [dbPath] # sessions/events overview
node scripts/tree.mjs [dbPath] # trajectory tree JSON
node scripts/snapshot.mjs [...] # list|create|context|delete|prune

配置

插件行接受 config(全部可选;在默认值之上深度合并):

- insert:
- id: trajectory-governance
name: dsh-trajectory-governance
config:
storage:
path: C:/data/trajectory.db # default ~/.dsh-trajectory-governance/trajectory.db
diagnosis:
strategyA:
enabled: true
windowSize: 5
similarityThreshold: 0.85
resultSimilarityThreshold: 0.8
strategyB:
enabled: true
minRounds: 3
strategyC:
enabled: true
sampleEveryNRounds: 5
similarityThreshold: 0.5
consecutiveSamples: 2
embedder: lexical # 'lexical' built-in; 'llm' is the extension seam
analyzer:
enabled: true
intervalMs: 10000
alerts:
enabled: true
minConfidence: 0.8
cooldownMs: 600000
channels:
desktop: true # browser Notification (client side)yaml
cordisEvent: true # 生态系统中的 'trajectory/anomaly' 总线事件 webhook: url: "" # 飞书/钉钉/Slack 风格的文本 webhook actions: onLoopDeadlock: notify # notify | suggest-stop(一键中断按钮) | auto-stop onInvalidRetry: notify onGoalDrift: notify cost: enabled: true tokenPricePerM: 0.28 # 根据你的服务商定价调整 estimateWhenUsageMissing: true

完整 schema:src/diagnose/config.ts 中的 DIAGNOSIS_CONFIG_SCHEMA。

告警与止损(v0.2)

当检测到新的异常时(置信度 ≥ alerts.minConfidence),插件会:

1. 在 Cordis 总线上发出 trajectory/anomaly(生态系统通知插件可订阅),并在已配置的情况下 POST 一个文本 webhook —— 消息使用止损语言:类型、置信度,以及该区间已经消耗了多少 token/金钱/时间(来自官方 assistant/message.usage);
2. GUI 标签页轮询 /api/alerts,显示桌面通知(浏览器 Notification API,工具栏中有权限按钮),并将异常会话固定在下拉列表顶部,按浪费的 token 排序;
3. 提供一键中断(POST /api/actions/interrupt),它会调用官方 agent.cancel 能力 —— 绝不使用 monkey-patch。默认层级为 notify;auto-stop(仅用于循环死锁,置信度 ≥ 0.9)可为无人值守场景配置。

断点与浪费报告(v0.3)

断点退出 —— 合法的轻量级“回滚”。 本插件不采用控制平面倒带(已由 dsh-turn-rewind 覆盖),而是提供诊断驱动的重启:在任意快照 / 异常起点 / 选定节点处,“在此处分叉新会话” 会将目标解析到最近的稳定 turn/end 边界,并调用官方
ctx.sessions.fork(source, boundary) —— 在该点播种一个全新的子会话。
它从不触碰工作区文件,保持观察层的立场,并将“你在这里浪费了钱”转化为一键操作。

浪费归因报告 —— 不是又一个用量统计仪表盘(那个细分领域已经饱和):它回答的是别人都没做的归因问题,“哪些会话浪费了 token/金钱,属于哪些异常类型”: sh
curl http://127.0.0.1:3080/trajectory-governance/api/report/waste # 所有会话(Markdown + JSON)
curl "http://127.0.0.1:3080/trajectory-governance/api/report/waste?sessionId=" # 单个会话详情

两者也可从标签页访问(“浪费报告” / “本会话报告”按钮)。

快速演示(复现循环死锁与目标漂移)

即时(无需等待真实循环): 将一个合成会话播种到实时存储中,刷新标签页,选择 demo-session: sh
node scripts/demo-seed.mjs # 写入默认实时数据库

你应该会看到一棵树,其中红色高亮的 loop_deadlock(5 个相同的工具调用)以及一个严重的 goal_drift 范围,外加一个快照标记(★)。

真实 agent:

1. 给 agent 一个冗长、开放式的重构提示(例如“重构这个项目为 TypeScript 并补单元测试,先读代码再动手”)。
2. 让它运行,直到它开始重复相同的工具调用(相同文件、相同内容)且没有可见进展——策略 A 会在触发节点上标记 loop_deadlock。
3. 在另一个领域提出后续请求(“顺便帮我看看怎么做番茄意面”)——在采样 N 轮之后,策略 C 会针对原始基线标记 goal_drift(轻度/中度/严重)。

验证:树标签页会以红色高亮显示这些范围;scripts/inspect.mjs 会显示异常计数;scripts/tree.mjs 会转储已挂载的 anomalyInfo。

截图

TODO — 在首次实际运行后添加:树标签页概览 / 异常卡片 / 快照列表。(此处预留占位符。)

测试 sh
npm install
npm run build && npm test # 46 tests: normalize/store/subscriber/tree/snapshot/diagnose/api

边界(重要)

- 零内核修改 —— 不 fork、不 monkey-patch、不访问宿主存储。
- 仅消费事件 —— session/event 等是 emit 模式、提交后、即发即忘的监听器;payload 永远不会被修改。
- 观测层快照 —— 快照是一个索引(nodeId + 上下文哈希
+ branchId);上下文从事件存储重建。此插件永远不会 fork、恢复或回滚 agent。
- 独立标签页 —— 使用自己的 slot id 注册;官方 Trajectory 页面(id trajectory)永远不会被覆盖。
- 预览 API —— SESSION_FORMAT_VERSION = 0,不暗示任何兼容性。
事件词汇表集中在 src/core/event-catalog.ts 中;未知类型遵循信封的 ignorable 标记。

仓库布局

src/
index.ts # Cordis plugin entry (name/apply)
core/ # types + 44-type event catalog
ingest/ # normalize + session-event subscriber
persistence/ # node:sqlite store (events/sessions/snapshots/anomalies)
tree/ # trajectory tree builder + queries
snapshot/ # observation snapshots + branch manager
diagnose/ # similarity, config, 3 strategies, engine, mount, runtime
api/ # host JSON API (/trajectory-governance/api/*)
client/ # independent GUI tab (conversation.view, id 'trajectory-governance')
tests/ # node:test suites
scripts/ # inspect / tree / snapshot / smoke
cordis.patch.yml # official bundle load row
plugin.manifest.yaml # self-describing metadata (loader uses cordis.patch.yml)

许可证

MIT —— 参见 LICENSE。属于 awesome-dsh-plugin 生态系统的一部分。主题:dsh-plugin。
预览分享卡片长什么样 ↓dfycaly98931680/dsh-trajectory-governance
分享 · DeepSeek Harness Hub
dfycaly98931680/dsh-trajectory-governance

重建多分支轨迹树,诊断循环与漂移并告警

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部