自动记录每次会话的任务、模型、工具与耗时
28.7/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Cavan-Ou/dsh-observation-journal该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 15 处,展示前 15 条)
- 写入本地文件lib/index.js:104
mkdirSync(dirname(file), { recursive: true }); - 写入本地文件lib/index.js:106
writeFileSync(tmp, data); - 写入本地文件lib/index.js:107
renameSync(tmp, file); - 读取本地文件lib/index.js:111
for (const f of readdirSync(obsDir)) if (f.includes('.tmp-')) { try { unlinkSync(join(obsDir, f)); } catch {} } - 删除本地文件lib/index.js:111
for (const f of readdirSync(obsDir)) if (f.includes('.tmp-')) { try { unlinkSync(join(obsDir, f)); } catch {} } - 删除本地文件lib/index.js:117
unlinkSync(probe); - 读取本地文件lib/index.js:365
const text = readFileSync(RAW_FILE, 'utf8'); - 读取本地文件lib/index.js:417
if (Date.now() - statSync(LOCK_FILE).mtimeMs > LOCK_STALE_MS) { try { unlinkSync(LOCK_FILE); } catch {} } - 删除本地文件lib/index.js:417
if (Date.now() - statSync(LOCK_FILE).mtimeMs > LOCK_STALE_MS) { try { unlinkSync(LOCK_FILE); } catch {} } - 删除本地文件lib/index.js:422
const releaseLock = () => { try { unlinkSync(LOCK_FILE); } catch {} }; - 写入本地文件lib/index.js:425
mkdirSync(dirname(RAW_FILE), { recursive: true }); - 写入本地文件lib/index.js:426
appendFileSync(RAW_FILE, line + '\n'); - 读取本地文件lib/index.js:432
try { text = readFileSync(OBS_FILE, 'utf8'); } catch {} - 读取本地文件lib/index.js:465
try { text = readFileSync(OBS_FILE, 'utf8'); } catch {} - 读取本地文件lib/index.js:506
const lines = readFileSync(replay, 'utf8').split('\n');
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 记录会话任务与模型
- 记录工具调用与失败
- 记录会话耗时
DeepSeek Harness 的零接触运行时遥测:每个会话都会把自己的成绩单(任务/模型/工具/失败/耗时)写进一份人类可读的日志。纯观察者运行事实遥测。
README
由 DeepSeek 最新模型翻译生成dsh-observation-journal
DeepSeek Harness 的零侵入运行事实遥测:每个会话自动写一张成绩单。
MIT
DSH
dsh-plugin
纯观察者插件(零工具注册、零 LLM 调用、零 agent 介入)。session 结束时自动把任务 / 模型档位 / 工具 / 失败 / 时长 / 状态写入人机共读的观测卡,附自动更新的统计区。
为什么需要它
失败有记录者(dsh-fail-logger),成功和运行事实没有。这是它的姊妹篇:记录发生了什么——不是"怎么解决"、不是"该记住什么"。无工具、无注入、无检索。harness 被动写,人/项目读。
它不是什么(边界说破):
| 插件 | 记录 | 注入回 agent?
展开完整文档(README 剩余 1 节)
dsh-observation-journal DeepSeek Harness 的零侵入运行事实遥测:每个会话自动写一张成绩单。 MIT DSH dsh-plugin 纯观察者插件(零工具注册、零 LLM 调用、零 agent 介入)。session 结束时自动把任务 / 模型档位 / 工具 / 失败 / 时长 / 状态写入人机共读的观测卡,附自动更新的统计区。 为什么需要它 失败有记录者(dsh-fail-logger),成功和运行事实没有。这是它的姊妹篇:记录发生了什么——不是"怎么解决"、不是"该记住什么"。无工具、无注入、无检索。harness 被动写,人/项目读。 它不是什么(边界说破): | 插件 | 记录 | 注入回 agent? | 消费端 | | 本插件 | 运行事实(遥测)| 永不 | 人/项目文件 | | dsh-task-planner | 解决方案("怎么解决")| 是(recall)| agent 规划 | | dsh-mneme / dsh-memento / dsh-memory | agent 记忆 | 是(检索)| agent 上下文 | | dsh-fail-logger | 失败 | 经 skill | agent 技能加载 | 60 秒验证 dsh plugin --profile headless add # 或复制仓库作本地 bundle dsh --profile headless "跑任意小任务" cat ~/.dsh/observations.md # 出现一行记录 + 统计区 输出长什么样 观测卡就是 UI。机器维护区段(人工编辑不受影响)+ 自动统计块: | time | sid | task | model | dur | turns | tools | calls | fail | status | | 2026-08-14T21:42 | abe96e0f | 阅读 specs/s11-1.md 任务书 | deepseek-v4-pro(max) | 1242 | 1 | read:80,bash:12,edit:9,todo_write:4 | 106 | 0 | completed | | 2026-08-15T03:04 | 9c1f3a | run any small task | deepseek-v4-flash(max) | 25 | 1 | bash:4,grep:2,glob:1 | 7 | 0 | completed | - 会话总数: 2 - 失败率: 0.0%(0/113) - top 工具: read:80,bash:12,edit:9,todo_write:4,grep:2 - 平均时长(秒) 按模型: deepseek-v4-flash(max): 25, deepseek-v4-pro(max): 1242 raw sidecar(obsFile + '.jsonl',追加写):全保真——todo 规划轨迹(≤5)、工具全量计数、失败工具、完整模型 id、任务描述全文、归一化 task_hash。v2 LLM 洞察的素材,与主卡 TTL 解耦。 配置(patch config: 字段,全可选) | 键 | 默认 | 说明 | | obsFile | $DSH_HOME/observations.md | 主卡路径(可指项目级观测卡)| | maxRows | 200 | 主卡最多保留行数(raw 不受限)| | marker | OBS-JOURNAL | 区段 marker id,[A-Za-z0-9-] | | redact | [] | 额外脱敏正则(叠加内置密钥表)| | flushMs | 300 | turn/end 尾随防抖 | 环境变量:OBS_FILE(覆盖 obsFile)、OBS_REPLAY=(回放测试模式)。 可靠性 - 一行一 session,不做有损合并 - 任务标题转义 \| 与换行;密钥脱敏(fail-logger 同款表) - 跨进程写锁 + 陈旧锁回收;dispose 兜底落盘无 turn/end 的会话 - 真实会话日志实测:5 个真实 .zstd 样本(含 2000+ 事件的 Pro 长提炼会话)14/14 回放用例,逐字段与独立重算交叉核对;21 会话全量回放验证人工区字节级不变 开发 node --check lib/index.js node --test tests/test.mjs # 需要 python3 + zstandard License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Cavan-Ou/dsh-observation-journal
自动记录每次会话的任务、模型、工具与耗时
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目