dsh-system1-observer:在 Agent 循环接缝处采集 System One 读数

前言

在 DeepSeek Harness(DSH)里跑智能体循环时,你往往只能事后从会话日志里反推「当时 loop 在干什么」。若想在 loop 的特定节点上,用另一路模型(System One)做说明或评估,并把每一次调用、跳过和回答留成可检索的证据,就需要在 harness 里挂一个只做观测、不做裁决的插件。下面介绍社区插件 dsh-system1-observer(维护者 johnlam1968):它在 loop 的「接缝(seam)」上询问 System One 模型,把结果写入 JSONL trace,本身不改变 loop 的决策。

这是什么

dsh-system1-observer 是面向 DSH 的 seam observer。README 用三句话概括其边界:

  • 在你选定的 loop 节点上调用 System One 模型,询问 agent loop 在做什么;
  • 每一次调用、跳过与回答写入 JSONL trace;
  • It decides nothing——各 listener 按引用返回 loop 自身决策;trace 每行带 enforcement: "declarative", verified: false。产物是对决策模型在各节点回复的证据,而不是对被观测会话的「判决」。

当前 package 版本为 0.2.1,许可证 MIT。插件在 DSH 生态里以「一切皆插件」的方式安装;社区目录页见 skillhub.cn 条目,源码与文档在 GitHub。

核心功能

运行时 trace

  • 路径:~/.dsh/logs/system1-observer.jsonl,每行对应一次调用、一次跳过或一次启动。
  • 可通过工具 system1_trace、Plugins 页的 trace 卡片,或仓库内 scripts/trace.mjs 阅读。

九个 DSH 工具

README 列出的工具共九个:

工具 作用(据 README 简述)
system1_explain 说明能做什么、当前配置、一次读数覆盖什么
system1_settings 设置相关
system1_decide 决策相关接口(插件本身不替 loop 做决定)
system1_evaluate_session 读会话、分段、逐段提问、聚合并写报告包
system1_measurements 附加人工解读等测量记录
system1_session_subject 会话主题相关
system1_question_sets 问题集
system1_battery 电池/批量提问相关
system1_trace 读 trace

查找会话依赖 dsh-session-index 的 session_index_list / session_index_search / refresh(README 写明为毫秒级检索,不属于本插件自带的九个工具)。

配置与 UI

  • Plugins 页有 settings card:可热写(hot-load)的运行时设置,以及「…」→ Observe this session。
  • 配置变更会先写入 trace;变更前后的读数不宜直接对比(见下文注意项)。
  • 完整设置、接缝(seams)、trace 格式及「已测量 / 未验证」的声明见仓库 manual。

依赖与模型来源

安装后需要 profile 内 harness 已提供 peerDependencies:@deepseek-ai/cordis 与 @deepseek-ai/dsh-tools(插件不打包这两项)。调用模型可使用 profile 的 system1 服务,或 HTTP wire,默认 wireUrl 为 http://127.0.0.1:8766。

package.json 中记录的兼容测试基线:Node 25.3.0,DSH 0.1.7-rc.2(升级 Node 或 DSH 后维护者建议重跑 npm run ci 并更新该字段)。

安装与启用

将 web 换成你实际使用的 profile 名称:

dsh plugin --profile web add dsh-system1-observer

README 另给出从仓库执行 ./install.sh <profile> 的方式(需本地 clone);与上式二选一即可。安装前请自行查看 源码与 LICENSE,并记住插件以当前 dsh 进程权限运行。

典型用法

README「Sixty seconds」给出一条可复现的短流程(查找会话需已安装 dsh-session-index):

system1_explain                                    what it can do, what it is set to now, what a reading covers
session_index_search { query: 'XYZ' }                    find the session  (dsh-session-index)
system1_evaluate_session { sessionId: '…', segmentChars: 57600, package: true }   judge it, and package the run
system1_measurements { action: 'interpret', package: '…', text: '…', by: 'you' }  attach your reading

说明:

  1. system1_evaluate_session 在一次调用里完成机械步骤:读会话、过大则分段、对每段问完配置中的问题、在代码里聚合并写报告包。
  2. system1_measurements 是单独一步,由你写 prose 解读;README 写明数字无法自动推导成文字说明。

动手前可先跑 system1_explain,它会打印运行中配置与「读数前须知」全文。

适用场景与注意

适合谁

  • 需要在 agent loop 固定接缝上收集 System One 回复、做会话级评估或测量记录,且接受「只留证据、不替 loop 执法」的开发者。
  • 愿意配合 dsh-session-index 定位 sessionId,并阅读 manual / settings 文档调整 seams 与问题集。

使用读数前(README 四条)

  1. 长对话会被摘要,除非传入 segmentChars;大会话应分段。
  2. 某处没有配置问题时,会记录「未提问」而不是猜测。
  3. 内置问题在 tool-call 节点上可测量地更弱,tool 密集的 run 读数会不同。
  4. 配置变更前后的读数不可直接对比;变更会先写入 trace。

仓库 findings 登记了本仪器曾暴露的问题及发现它们的测量;架构图、测量深度(G0–G4)、问题类型与证据匹配等见 README 文档表中的链接。

结尾

dsh-system1-observer 把 System One 调用钉在 loop 接缝上,输出 JSONL trace 与可选的会话评估包,并明确标注 declarative、未验证边界。若你要在 DSH 里做可审计的「第二意见」采集而非自动管控,可从安装、system1_explain 和 trace 路径入手。

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

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

小夜