dsh-worldsense:DeepSeek Harness 的安全只读感知层

在 DeepSeek Harness (DSH) 的开发中,给 Agent 开放任意 HTTP 访问权限等同于赋予其一个未经认证的代理能力,这极易引发 SSRF(服务器端请求伪造)等安全问题。dsh-worldsense 插件旨在解决这一痛点,为 Agent 提供一个安全、受限且只读的“现实感知层”。

插件介绍

这是一个由 guhanfei-ai 维护的联网工具插件。它为 DSH Agent 提供了六个只读工具,用于观察通用结构化的世界状态(如部署 API、服务注册表、业务数据等)。

核心价值在于将 Agent 与任意网络请求解耦。管理员定义“世界有哪些窗口”,Agent 决定“现在看哪个窗口”,但 Agent 无法在墙上自己开一个洞。它通过限制响应大小、字段数量和计算确定性差异,确保感知过程是可控和可追溯的。

核心能力

插件提供以下六个只读工具:

  1. worldsense_sources:列出配置的源、终点、参数和字段别名(不包含密钥)。
  2. worldsense_status:检查单个源终点的可达性、延迟和 HTTP 状态(不返回响应体)。
  3. worldsense_read:观察当前状态,返回一个带来源信息的 WorldObservation。
  4. worldsense_snapshot:将观察结果保存到本地 SQLite 数据库,返回快照 ID。
  5. worldsense_history:列出保存的快照元数据,支持按源、终点、时间过滤。
  6. worldsense_diff:计算两个快照之间的确定性结构差异。

每次读取都会受到响应字节数、字段数量等限制,超限部分如实标注为 truncated。同时,插件为每次观察生成 SHA-256 内容哈希,确保可追溯性。

安装与启用

安装命令如下:

npm install

配置源时,可在 DeepSeek Harness 的 Settings → Plugins 中进行图形化配置,或直接编写 JSON 文件。

使用示例

配置通常包含源 ID、类型(http-json)、基础 URL、认证信息以及具体的端点路径和字段映射。认证凭证引用自 DSH 凭证存储,不会出现在工具输出中。

例如,配置一个 GitHub 仓库监控源:

{
  "sources": [
    {
      "id": "github-dsh-grafana",
      "type": "http-json",
      "baseUrl": "https://api.github.com",
      "auth": { "type": "bearer", "credential": "GITHUB_TOKEN" },
      "endpoints": {
        "repository": {
          "path": "/repos/guhanfei-ai/dsh-grafana",
          "fields": {
            "stars": "/stargazers_count",
            "forks": "/forks_count",
            "issues": "/open_issues_count",
            "updatedAt": "/updated_at"
          }
        }
      }
    }
  ]
}

典型工作流是:使用 worldsense_read 观察状态,使用 worldsense_snapshot 保存观察结果,执行变更后再次读取并使用 worldsense_diff 计算差异。

适用场景与注意

适用场景:
* 部署状态:监控生产环境的版本、副本数和健康状态。
* GitHub 反馈:读取项目仓库的 Star、Issue 等统计信息。
* 内部业务状态:查询订单、收入等业务指标。

注意事项:
1. 权限隔离:Agent 永远无法指定任意 URL、主机、端口、协议、路径、HTTP 方法、Header 或凭证。
2. 安全限制:插件仅支持 GET 请求,不跟随重定向。
3. 脱敏机制:密钥的脱敏(redaction)是基于启发式规则的,无法保证检测所有敏感字段。
4. 权限边界:插件不授权写入操作,所有变更需由 Human Intent 插件处理。
5. 信任模型:插件不保证远程 API 的数据是可信的,只负责提供带来源的观察结果。

插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。

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

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

小夜