dsh-agent-run-logger
为会话写入本地 JSONL 运行轨迹,并提供实时只读查看器(运行/步骤/模型/工具时序)
bluefateludi
@bluefateludi
⬇ 2
★ 0
main
安装
dsh plugin --profile web add github:bluefateludi/dsh-agent-run-logger
需要可复现安装时,可在仓库后追加 #commit 固定提交。
为会话写入本地 JSONL 运行轨迹,并提供实时只读查看器(运行/步骤/模型/工具时序)
该插件未提供要点说明,请参考仓库 README。
agent-observabilityagent-tracingdeepseek-harnessdsh-pluginlocal-firsttypescript
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/bluefateludi/dsh-agent-run-logger |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 2 |
| GitHub 星标 | 0 |
| 最近推送 | 2026-08-18 |
| 收录日期 | 2026-09-19 |
| 分类 | 开发与运行时 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# Agent Run Logger
[中文](README.zh.md) | English
Agent Run Logger is a DeepSeek Harness plugin that writes compact local JSONL traces and serves a live, read-only viewer. It turns Session events into run, step, model, and tool timing records without replacing the canonical Session log.
Each Session writes to its own file under `/.dsh/traces/` by default. Writers preserve source-event order inside one Session and drain independently across concurrent Sessions. The viewer incrementally indexes those files and presents Session lineage, a timing waterfall, event details, failures, token usage, gaps, and truncated values.
Content capture is off by default. Enabling it records prompts, replies, tool arguments, and tool results after credential-like values are redacted and before each value is truncated to its configured UTF-8 byte limit.
## Install
Install the package directly from npm:
```sh
npm install dsh-agent-run-logger
```
Add the plugin to a DeepSeek Harness profile:
```sh
dsh plugin --profile trace-demo add dsh-agent-run-logger
dsh --profile trace-demo --dump-config
dsh --profile trace-demo
```
The bundle adds this row, which a profile patch may replace:
```yaml
- id: agent-run-logger
name: dsh-agent-run-logger
config:
outputDir: .dsh/traces
includeContent: false
maxContentBytes: 65536
maxPendingBytes: 4194304
redactSensitiveContent: true
redactKeys: []
```
`outputDir` may be absolute or relative to each Session working directory. Byte limits are positive integers. `redactKeys` adds case-insensitive object-key names to the built-in credential list.
## View traces
Run the viewer from the project whose `.dsh/traces` directory you want to inspect:
```sh
npx dsh-agent-run-logger view
```
The command binds to `127.0.0.1`, selects a port beginning at `4318`, and opens the dashboard. It does not accept remote connections.
```text
Usage: dsh-agent-run-logger view [options]
--trace-dir Trace directory (default: .dsh/traces)
--port Preferred loopback port (default: 4318)
--poll-ms Refresh interval (default: 750)
--page-size Records returned per page (default: 500)
--no-open Print the URL without opening a browser
--retention-days Delete old regular JSONL files at startup
```
Retention is disabled unless `--retention-days` is supplied. The viewer otherwise performs read-only filesystem access. See the [viewer design](docs/visualizer-design.md) for data, lifecycle, privacy, and HTTP behavior.
## Record behavior
The trace schema version is `1`. The plugin writes `session.meta`, `run.start`, `run.end`, `step.start`, `step.end`, `llm.first_token`, `llm.end`, `tool.start`, `tool.end`, and `trace.gap`. Every record includes `sessionId`, `sourceSeq`, and `time`.
The Session event path never waits for disk I/O. Each Session has a bounded 4 MiB queue by default. Queue overflow drops new trace records and a later `trace.gap` reports the affected source sequence range. A directory, write, or sync failure warns once and disables only that Session writer.
## Limitations
- The logger observes only events committed after activation; it does not backfill canonical Session history.
- Subagent Sessions remain separate files. The viewer navigates `parentSessionId` relationships when both files are present, but does not merge their timelines.
- The viewer is local only and provides no authentication, remote exporter, trace upload, database, or OpenTelemetry integration.
- Content redaction reduces accidental credential storage but cannot classify every secret. Keep `includeContent: false` unless content is required.
- `run.end` and plugin disposal request a filesystem sync, but an operating-system or power failure may still lose an unsynced tail.
- Trace files are diagnostics, not a replacement for the canonical DeepSeek Harness Session log.
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。