前言¶
在 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
说明:
system1_evaluate_session在一次调用里完成机械步骤:读会话、过大则分段、对每段问完配置中的问题、在代码里聚合并写报告包。system1_measurements是单独一步,由你写 prose 解读;README 写明数字无法自动推导成文字说明。
动手前可先跑 system1_explain,它会打印运行中配置与「读数前须知」全文。
适用场景与注意¶
适合谁
- 需要在 agent loop 固定接缝上收集 System One 回复、做会话级评估或测量记录,且接受「只留证据、不替 loop 执法」的开发者。
- 愿意配合 dsh-session-index 定位
sessionId,并阅读 manual / settings 文档调整 seams 与问题集。
使用读数前(README 四条)
- 长对话会被摘要,除非传入
segmentChars;大会话应分段。 - 某处没有配置问题时,会记录「未提问」而不是猜测。
- 内置问题在 tool-call 节点上可测量地更弱,tool 密集的 run 读数会不同。
- 配置变更前后的读数不可直接对比;变更会先写入 trace。
仓库 findings 登记了本仪器曾暴露的问题及发现它们的测量;架构图、测量深度(G0–G4)、问题类型与证据匹配等见 README 文档表中的链接。
结尾¶
dsh-system1-observer 把 System One 调用钉在 loop 接缝上,输出 JSONL trace 与可选的会话评估包,并明确标注 declarative、未验证边界。若你要在 DSH 里做可审计的「第二意见」采集而非自动管控,可从安装、system1_explain 和 trace 路径入手。