dsh-fs-observation-bridge:把第三方读码接入 DSH 文件观察

前言

DeepSeek Harness(DSH)在编辑文件前会要求 Agent 先建立「已读」观察:未受信的内容不能直接改。实际工作流里,Agent 往往先用 CodeGraph、MCP 或 Shell 里的 cat/head 看源码,再调用原生 read 才能编辑——同一份文件读两遍,既费 token,也打断节奏。下面介绍社区插件 dsh-fs-observation-bridge(维护者 iBobbyTS):它不替换 DSH 的编辑与版本检查,只把外部读码工具的输出校验通过后,登记到 DSH 原生的 fs/observed 机制里,从而在合规前提下减少重复的 read。

这是什么

dsh-fs-observation-bridge 是一条「读码 → 观察 → 可编辑」的桥接层:将 MCP、CLI、保守的 Bash / PowerShell shell-read,以及 DSH 原生工具等通道上的源码读取证据,接入 DSH 原生文件观察策略。插件当前版本为 0.3.0(MIT 许可证),在 SkillHub 目录中归类为工作流。目录页:dsh-fs-observation-bridge;源码:GitHub。

核心功能

多种读取来源

内置 Source 覆盖:

  • CodeGraph CLI
  • CodeGraph MCP(dsh-plugin-codegraph)
  • POSIX 上的 shell-read(Bash 白名单语法)
  • Windows 上 powershell-read(pwsh 上的 Get-Content 等保守语法)

各 Source 通过 Transport → Source → Observation Core 三层协作:Transport 归一化输入,Source 识别工具调用并提取证据,Observation Core 校验后调用 fs/observed 注册观察。无法验证的读取不会获得编辑授权。

读取验证与原生安全

插件只做「受信观察」的登记,保留 DSH 原有的文件版本检查、并发保护与编辑行为。并发工具按完成顺序建立观察;若同一文件较旧的观察最后到达,后续编辑会以 FS_STALE_VERSION 拒绝(fail-closed),避免编辑模型未见过的内容。

fs/observed 与原生 read offset/limit 一样,是整文件级、带版本的观察:受信的局部视图在版本未变时,也允许后续全文件编辑。

Shell 读文件(典型白名单)

在 Linux/macOS 上,foreground bash 且 exit 0、stderr 为空等条件满足时,下列形式可被识别(节选):

cat src/app.ts
head -n 80 src/app.ts
sed -n '40,120p' src/app.ts
cat app.ts | head -n 80

Windows 上则针对 foreground pwsh 解析 Get-Content(及 gc/cat/type 别名)等固定形式;语法与 Bash 分开,细节以 README 中的表格为准。

安装与启用

安装方式为 bundle,通过 DSH 插件管理器的 install_bundle,target 指向本包在磁盘上的绝对路径(不是凭仓库名拼一条 dsh plugin add)。bundle 会通过 dsh.bundle.patch 插入 fs-observation-bridge 配置行,并保留原生 fs-observation-policy 启用。

运行环境要求(见 package.json):Node ^22.19.0 || >=24.0.0。

可选配置写在 profile patch 的插件 config 中:

- id: fs-observation-bridge
  name: 'dsh-fs-observation-bridge'
  config:
    maxSourceBytes: 8388608
    maxEvidenceFiles: 200
    disabledSources: []
字段 默认值 含义
maxSourceBytes 8388608(8 MiB) 校验证据时单文件大小上限;更大文件跳过校验(不授权)
maxEvidenceFiles 200 单次工具结果最多校验的文件数
disabledSources [] 禁用内置 source,如 codegraph、shell-read、powershell-read

典型用法

  1. 在 DSH 中按上文完成 bundle 安装,确认 fs-observation-policy 仍启用。
  2. Agent 用已支持的读码方式查看目标文件,例如 CodeGraph MCP/CLI,或在 bash 中执行白名单内的 cat/sed 命令。
  3. 插件校验 stdout 与当前文件内容一致(仅允许 CRLF/LF 归一化)后,登记观察。
  4. 在同一文件版本下,Agent 可直接走 DSH 原生编辑路径,无需再为「已看过」的内容重复调用 read。

若你同时使用 CodeGraph CLI 与 shell-read,二者在 Transport 层互斥:一条 shell 命令只会被其中一个归一化处理。

适用场景与注意

适合谁:在 DSH 里跑 Coding Agent、且习惯用 CodeGraph 或受控 Shell 读文件,又希望遵守「先读再改」策略的团队或个人。

务必注意:

  • 插件与当前 dsh 进程同权限运行;安装前应阅读源码与 MIT 许可证,确认信任维护者与 bundle 内容。
  • shell-read 只认白名单语法:重定向、变量替换、复杂管道、git show、docker exec … cat 等默认不会产生观察。
  • SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;星标与热度以各站点展示为准,安装决策仍以仓库 README 为准。

结尾

dsh-fs-observation-bridge 的价值在于:连接外部读码工具与 DSH 原生观察,而不是另起一套编辑规则。需要细节(PowerShell 方言、授权条件、如何贡献新 Source)时,请直接查阅仓库 README.zh.md 与 SkillHub 目录页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜