精选
为什么选中它
待人工精选——以下事实来自源码仓库。
它能做什么
DeepSeek Harness plugin: per-process tool-call statistics (not token usage) — tool_stats tool with call counts, error counts, avg durations
适合谁
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
风险提示
- 没有明确许可证,使用前确认授权。
DeepSeek Harness plugin: per-process tool-call statistics (not token usage) — tool_stats tool with call counts, error counts, avg durations
待人工精选——以下事实来自源码仓库。
DeepSeek Harness plugin: per-process tool-call statistics (not token usage) — tool_stats tool with call counts, error counts, avg durations
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
dsh plugin --profile web add github:disyli/dsh-tool-call-stats 作者没有声明支持的平台。
dsh). It records every committed tool call in the current harness process and exposes a tool_stats tool, so the model (or you) can ask at any point: > Which tools were used, how often did they fail, and where did the time go? Not to be confused with the token/cost trackers in the ecosystem (dsh-token-stats, dsh-usage-report, ...) — this plugin counts tool-call dispatches, not tokens. Also unrelated to dsh-tool-stat (a descriptive-statistics math tool). > Status: built and verified end-to-end against the dsh v0.1 developer preview (headless profile, live DeepSeek session): both event listeners record real dispatches and tool_stats returns the table below. Upstream interfaces may still change during the preview. Example output (from the verification run): tool calls errors avg_ms ---- ----- ------ ------ bash 1 0 23 read 1 0 8 ## How it works Everything in dsh is a plugin, and this one is deliberately minimal — three seams, ~100 lines, no build step: - tools/execute (waterfall): wraps each dispatch to record its start time, then delegates via next(). - tools/result (observer): counts each committed result per tool name and accumulates duration; result.isError drives the error counter. - ctx.tools.register(defineTool(...)): exposes tool_stats, which returns a canonical JSON array (output.schema) and renders a plain-text table for the model. All state is in-memory and process-local. Nothing is persisted; restarting dsh resets the counters. When the plugin is unloaded, Cordis disposes both listeners and the tool automatically — no manual cleanup code. ## Install ### Into a profile (recommended) sh dsh plugin --profile <name> add github:disyli/dsh-tool-call-stats pnpm ≥ 10 will ask you to allow the package before running install scripts (this package has none, but the prompt may still gate the git install). Follow the hint dsh prints, then re-run add. Verify the layer and start: sh dsh --profile <name> --dump-config # shows a "# == dsh-tool-call-stats" layer dsh --profile <name> ### As a local overlay (source checkout) From a deepseek-harness checkout, point a patch at the local file: yaml # stats.cordis.yml - insert: - id: tool-stats name: '/absolute/path/to/dsh-tool-call-stats/index.js' sh pnpm dsh web --patch ./stats.cordis.yml ## Use Ask the agent things like: - "Use tool_stats to show tool usage so far." - "Which tool failed the most in this session?" ## Limitations - Process-local only: counters reset on restart and are not shared across sessions. - Calls aborted before the registry commits a result are not counted (their timing entries are garbage-collected after 10 s). - Built against the dsh v0.1 developer preview; upstream interfaces may change ("THERE WILL BE COMPATIBILITY-BREAKING CHANGES"). ## License MIT不看 Star,人工一条条挑的。
把 DSH 的 settings.yaml 做成可视化看板:所有已注册的 settings namespace——包括官方界面从未覆盖的第三方插件配置——都渲染成可编辑表单。项目还早,但方向很对:告别手改 YAML。
给 DSH 的 DIY 轨迹可视化:把 agent 的计划与执行画成图,不用翻原始日志也能看清它在干嘛。项目还早,但补上了「一眼看懂 agent 在做什么」这个真实缺口。
从 Claude Code / Codex 把活派给 DSH:在宿主内拉起带分级预设的 DSH agent 会话,看原生子代理进度,还能借它的多模态桥给纯文本的 DSH 补上视觉和生图。编排型插件,把 DSH 变成其他编码 agent 的后端。