dsh-env-facts:为 runtime-context 快照补上结构化环境事实与 As of 时间戳

前言

DeepSeek Harness(DSH)在运行时会向模型提供 runtime-context 快照,其中会描述当前工作目录、沙箱策略、审批策略、GUI 地址、会话 ID 等环境信息。内置快照多以自然语言段落呈现,且不带「这些事实是在何时采集的」这一时间锚点。对需要对照日志、复现步骤或审计「当时机器上到底是什么状态」的开发者来说,可读性与可解析性都不够理想。

下面介绍的 dsh-env-facts(GitHub:zszzlzm/dsh-env-facts)是一个 Host 侧插件:在不改动 DSH 安装目录的前提下,向快照中注入一块机器可读的环境事实块,并附上 As of 时间戳。维护者为 zszzlzm,在社区目录中归类为 记忆。

这是什么

dsh-env-facts 的定位是:在 runtime-context 快照里增加结构化 <env> 块,并在块首写入采集时刻,形式类似:

As of 2026-10-25T12:34:56.789Z
<env>
cwd: "F:\\workspace"
file_policy: danger-full-access
approval_policy: never
gui_url: http://127.0.0.1:3442
session: 019...
</env>

内置快照仍会列出同类事实,但是散文式表述且没有时间戳;本插件补充结构化形态与 As of,便于下游解析与对齐时间线。

核心功能

结构化字段与来源

插件从 DSH 运行时服务读取事实,组装成键值形式写入快照。各字段与来源如下(资料以 README 表格为准):

字段 来源
cwd workingDirectory.get(session)
file_policy sandboxPolicy.resolve({ session }).mode
approval_policy approval.overrideOf(session)(未设置时不输出)
gui_url webApp.getAdvertisedUrl()
session session.id

若某项对应的服务或事实不可用,组装时会直接省略该字段,不会因缺项而导致整段快照构建失败。

As of 时间戳与 dedupe

DSH 会对 snapshot 文本做 dedupe:环境稳定时,同一段快照不会每一步都重复发送(README 提到在 dsh-v0.2.1-rc.3 上曾观测到 186 个 model step 只产生一次 snapshot)。若每一步都写入「当前时刻」,文本每步都会变,dedupe 会失效,相当于每步多一条消息。

本插件按 会话缓存:仅在环境事实发生变化时重新计算文本。As of 表示这些事实最后一次变更(或首次采集)的时刻;事实不变时快照字节保持一致,dedupe 仍可正常工作。

与上游的关系

仓库中的 upstream-patch/ 目录提供针对 deepseek-ai/deepseek-harness 标签 dsh-v0.2.1-rc.3 的补丁,用于将类似能力合入核心(快照头常量、在 emission 时打 stamp、按 body dedupe)。该目录供参考与上游贡献使用,详见 upstream-patch/PR.md。使用插件本身不依赖手动打这些补丁。

安装与启用

官方说明:通过 plugin_manager 的 install_bundle,将插件包目录作为本地 bundle 安装。包在 package.json 中声明 dsh.bundle.patch(指向 cordis.patch.yml),用于插入 env-facts 相关行。

请勿凭插件名自行拼接 dsh plugin add github:owner/repo 一类命令;以 README 与包内声明为准。npm 包名为 @local/env-facts,版本 1.0.0(private: true)。

安装前建议阅读仓库源码与 MIT 许可证(LICENSE)。插件在 当前 DSH 进程权限 下运行,与任何 Host 插件一样,启用前应确认你信任维护者与代码行为。

典型用法

启用后无需额外配置字段(资料未列出独立配置文件项):Host 在组装 runtime-context 时自动注入上述 <env> 块。你在模型侧或日志里看到的快照片段,应包含 As of … 行及随后的结构化环境键值。

当工作目录、沙箱模式、审批 override、GUI URL 或会话 ID 变化时,插件会更新事实并刷新 As of;稳定期间同一会话内文本保持不变,便于与 DSH 的 snapshot dedupe 协同。

适用场景与注意

适合谁

  • 希望在 prompt / 日志里机器可读地看到 cwd、file_policy、approval_policy、gui_url、session,并知道「这组事实何时生效」的 DSH 使用者。
  • 做 Harness 扩展、调试沙箱与审批策略、或对比多步对话中环境是否变化时的开发者。

注意

  • 分类为「记忆」指的是在 runtime-context 中沉淀环境事实;并非替代 DSH 其它记忆或持久化机制。
  • 星标与目录页展示以社区站点为准;撰写时 GitHub 星标为 0。
  • 仅使用已公开文档中核实的事实;未在资料中出现的 CLI 子命令或配置项不要假设存在。

结尾

dsh-env-facts 用结构化 <env> 与 As of 时间戳补全 runtime-context 快照,并在事实不变时保持文本稳定,避免破坏 DSH 对 snapshot 的 dedupe。若要在本地 bundle 方式安装或查看字段来源与 upstream 补丁,可打开:

  • 社区目录:https://www.skillhub.cn/plugins/zszzlzm/dsh-env-facts
  • GitHub:https://github.com/zszzlzm/dsh-env-facts
羽毛球分组比赛记分
小程序二维码

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

小夜