dsh-report-ledger

DSH PLUGIN模型与账号接入

仓库 stone-brick/dsh-report-ledger · npm dsh-report-ledger

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

把「汇报」做成代理间一等交互原语的 DSH plugin:以 append-only 跳流账本记录传递路径,支持回执、结案与修正,并在会话头部提供汇报时间线标签页。

一句话选型结论

按资料字段整理

dsh-report-ledger 是模型与账号接入类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-09 创建于 2026-09-24
README 17.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add dsh-report-ledger@0.1.0
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 2 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2、0.2.0-rc.1版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-report-ledger可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-report-ledger:为 DeepSeek Harness 补上代理汇报的持久账本

  • 十个 report_* 汇报工具
  • append-only 传递路径账本
  • 回执、结案与修正
  • 会话头部汇报时间线标签页
  • 同伴代理创建与名册日志

适用场景

智能体编排

上游标签

cordisdeepseek-harnessdshdsh-pluginmulti-agenttypescript

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 2 个),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-report-ledger当前 L5 · 运行验证通过 低风险 0 0.2.0-rc.2 等 2 个 有
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方stone-brick仓库 dsh-report-ledger · 默认分支 main
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-09-24 · 2026-10-09最后推送 2026-10-11
本站收录2026-09-27首次进入本站目录的时间

README 全文

17.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-report-ledger

一个 DSH 插件:把「汇报」做成代理之间的一等交互原语,并为长期协作留下可追溯的账本。

DSH 原本的代理间通信是相邻 Agent 的 steer 投递:只能投给直接子代理或直接父代理,没有持久 mailbox(父代理不在线时消息被拒绝),也没有抄送、回执、线程与传递路径记录。本插件补上的是这一块地基,而且不改会话格式:账本是 $DSH_HOME/report-ledger/ 下的纯文本文件,模型只读 front matter 缩略,正文按需打开。

安装

dsh plugin --profile web add dsh-report-ledger

这条命令把包装进该 profile 的 node_modules;因为包声明了 dsh.bundle.patch,dsh plugin 会自动把它追加进 profile 的 dsh.profile.bundles,不需要手改任何配置文件。装完重启 profile(dsh web)生效。不启动也能验证:

dsh --profile web --dump-config     # 配置树里应出现 report-ledger 这一行

卸载走同一条通道,依赖与该配置层一起移除:

dsh plugin --profile web remove dsh-report-ledger

要求与边界

  • 对齐 DSH 0.2.0-rc.2 与 0.2.1 线(0.2.1-rc.2/rc.3/rc.4 已实测,见 兼容性;0.1.5-rc.3 及更早不再支持);运行产物要求 Node ≥ 20。
  • 账本是本机文件:$DSH_HOME/report-ledger/(可用 DSH_REPORT_LEDGER_ROOT 覆盖),不上传任何地方。
  • 浏览器读数据走三个 GET 只读端点,只放行 loopback;所有写操作仍然只经模型工具,那是唯一会记录跳的路径。
  • peer_start 是唯一会新增活代理的能力,受 maxPeersPerAgent(默认 8)约束,每次创建都记进名册日志;peer_wake 只加载已有会话,既不新增也不占名额,而且只有开启者能唤。
  • 工作区(git 检出)功能默认关闭,关闭时不出现 report_lease 与各工具的 worktree 参数。

国内镜像(Gitee)

源码与发行版同步在 gitee.com/stone_zhan/dsh-report-ledger,不经过 GitHub 也能装:

# 预构建产物,不需要构建工具链
dsh plugin --profile web add https://gitee.com/stone_zhan/dsh-report-ledger/releases/download/v0.2.4/dsh-report-ledger-0.2.4.tgz
# 或直接从 Gitee 安装(预构建产物,安装时不构建)
dsh plugin --profile web add git+https://gitee.com/stone_zhan/dsh-report-ledger.git

GitHub 每次推送后由 .github/workflows/mirror-to-gitee.yml 自动镜像所有分支与 tags。

注意:npm 安装走的是 npm 镜像站而不是 GitHub,所以 npm publish 之后上面那条一行命令才是国内用户最省事的路;Gitee 镜像解决的是「拿不到 GitHub」时的源码与产物可达性。

English quick start

dsh plugin --profile web add dsh-report-ledger   # install + register the bundle layer
dsh --profile web --dump-config                  # verify: a `report-ledger` row appears
dsh web                                          # restart the profile to load it

Reports are first-class agent-to-agent messages with a persisted ledger: front matter is the digest that enters the model's context, the body stays on disk and is opened on demand, and every hop is appended to an auditable transfer path. The ledger lives in $DSH_HOME/report-ledger/ and nothing leaves the machine. The host half works in any profile; the web profile additionally gets a Reports tab and a topological canvas in the right sidebar. Aligned with DSH 0.2.0-rc.2.

五分钟上手

开一份汇报(把活交给下级,或向上回报):

report_author(subject="重构读路径缓存", body="...", to=[""], task="read-path")

收件方驻留时立刻被唤醒(steer)。对方不在线不是错误:投递留在账本里,等它重新驻留时自动送达。但它不会自己回来——只有开启它的会话能用 peer_wake 把它叫回来(宿主重新加载该会话,账本随即把还欠着的投递送进去),而且只在账本还欠它投递时才有意义;其余情况要靠人或宿主把它恢复。所以派活时把范围切到一轮能交付,或者准备接手(report_transfer / report_handover)。

回执 → 共写 → 结案:

report_ack(report="R-0007", note="收到,开始做")          # 我收到了(事情仍在推进)
report_contribute(report="R-0007", body="结论:...")       # 以共写者身份追加一节,互不覆盖
report_send(report="R-0007", to=[""])      # 主送更多代理(唤醒)
report_cc(report="R-0007", cc=[""])      # 抄送,进入上下文但不唤醒
report_close(report="R-0007", note="已合并")               # 这件事结束了

改错了用修正,不要重开一份:report_amend 改主题/任务标签/正文,改动会被逐字记进传递路径(重开会丢掉原有的收件人与路径)。收件人永远不能在这里改——它们由跳流派生,唯一途径是再追加一跳。

需要纵览时用 report_list({ task: "read-path" }) 把一次协作跨会话拉到一起;需要知道"还有谁在线、跟我什么关系"用 peer_list。

它是怎么组织的

汇报是两层结构。

  • front matter 是缩略:主题、收发、抄送、共写者、跳数/其中读取数、最后一条因果动作、状态。它是唯一进入模型上下文的部分,所以长期协作的上下文开销有界。
  • 正文留在账本里,由 report_read 按需打开(超长时只返回头部与文件定位,模型用 read 分页取余下部分)。

传递路径是权威的。 每次操作都追加一跳(append-only JSONL):

  • to / cc / authors / hops / reads / last 都是从跳流派生的缓存,任何下一条跳都会重新校正它——账本不可能显示历史里没有的收件人;
  • hops 计全部记录在案的事件,reads 是其中「打开过正文」的条数,last 取最近一条因果跳——「有人看了一眼」不算这份汇报动过。所以「它有多忙」看 hops − reads,「谁读过」留在传递路径里;
  • 待投递集合同样派生:被投递过且其后还没有到达的收件人即为待投递,所以这套审计轨迹本身就是那个缺失的持久 mailbox,天然跨重启存活;
  • 会话或网络中断后先对账再继续:用 report_list / peer_list 找到最后落下的跳、谁已交付、谁还在线,不要从头重做;重试前先确认动作是否已经落地。

账本布局($DSH_HOME/report-ledger/):

reports/R-0001.md            front matter 缩略 + 正文
reports/R-0001.route.jsonl   append-only 传递路径,一行一跳

选文件而不是私有数据库,是因为账本是一段协作的长期记忆:它必须可被人直接检查、手工修正,而 front matter 让"只读缩略"不必打开正文。设计动机、取舍与被否掉的替代方案见 设计。

工具

工具 作用
report_author 开一份汇报,可同时主送 to 与抄送 cc,可用 parent 关联上溯汇报
report_contribute 以共同作者身份追加自己的一节(互不覆盖,各自记为独立跳)
report_send 主送给更多代理(唤醒):向上回报、向下派发
report_cc 抄送给更多代理(不唤醒):让需要知情者持有副本
report_forward 转呈下去,或 mode:"copy" 作为参考副本分发
report_read 读缩略 + 完整传递路径(开头一行按动作计数)+ 正文(读取记为 read,算进 reads、不算进 hops;不推进 updated、不改变列表顺序)
report_list 只列缩略,可按 session、status、task、worktree 过滤,用于纵览长期协作;行里带 authors=N——回执说明有人确认收到,authors=1 说明没人真的写过东西
report_ack 回执,让发送方看到闭环
report_amend 修正:改缩略字段或更正正文,仅发起者/共写者可改,改动会被记录
report_close 结案:事情的终结,仅发起者/共写者可关;从未有过贡献的汇报必须带 note(交代做到了哪,或为什么没写),否则拒绝;同时交还它持有的工作区
report_lease 认领一个已存在的检出(仅工作区功能开启时暴露)
report_release 交还检出占用,检出留在磁盘上原封不动(工作区关闭时调用会说明"本部署未启用工作区")
report_transfer 把一笔尚未送达的投递从欠它的会话转给另一个会话——义务仍然存在,只是换了人欠;不记为送达
report_handover 退役/接管:枚举一个会话名下的一切,能搬的搬、能关的关,并落一份 task: handover 记录。它转移的是账本资产(未结汇报、检出占用、待送达),不回收同伴名额

另有 peer_list / peer_start / peer_wake 三个同伴工具(发现、创建、唤醒;见 同伴),以及只由检出里的附加 bundle(dev/bundle,不发布)提供的 dev_* 三个(见 开发者模式)。工具背后完整的语义——投递怎么落、修正与结案为什么这样设计、退役怎么转移资产——在 设计 里。

状态、修正与交接

三个状态:open → acked → closed。

动作 谁能做 效果
report_ack 任何收件人(to/cc/共写者/发起者);非收件人会被拒绝并列出可回执的人 open → acked。回执 = "我收到了",事情仍在推进
report_close 仅发起者或共写者;被拒绝时会点名该找谁关 → closed。结案 = "这件事结束了"
贡献 / 主送 / 抄送 / 转呈 / 修正 任何有权限者 自动重开:先记 reopened 跳,再落下活动本身那一跳

修正必须被记录,而不是抹掉:缩略字段(subject / task / artifacts)是当前状态,直接替换并把改前改后逐字写进跳里;正文是人说过的话,默认追加一段 ### amendment,replace_body: true 才真替换(跳里注明被重写过)。所以一个写错的标题被改正后,落盘是"缩略给当前真相、路径留历史"。

closed 是状态,不是锁:结案后又有人贡献/主送/抄送/转呈,说明这件事又活了,于是自动重开并记录——否则一份被过早关闭的汇报会静默吞掉后续工作。同理,不需要单独的"重开"工具:活动本身就是重开。

一个会话退场时,它名下的未结汇报、待送达的投递与占用的检出可以整体交给继任者(report_handover),退役因此是账本里的一个事实,而不是一段缺席。

配置

- insert:
- id: report-ledger
name: 'dsh-report-ledger'
config:
announceToAgent: true    # 默认 true;false 则不向任何 agent 注入提示词段
maxPeersPerAgent: 8      # 一个会话终身的同伴名额
worktree:
enabled: false         # 总开关;关闭时相关工具与参数都不出现
键 默认 说明
announceToAgent true 是否注入两段 systemPrompt(账本协议 + 伙伴契约,见 设计)
maxPeersPerAgent 8 peer_start 的终身额度;超限是明确的工具错误,不是静默拒绝
worktree.enabled false 开启后一份汇报可拥有自己的 git 检出,见 工作区
worktree.root 仓库同级 .dsh-worktrees/<仓库名>/ 检出根目录
worktree.onClose keep 结案处置:keep | remove-if-clean
worktree.maxActive / maxRetained 4 / 4 同时占用上限 / 结案后留在磁盘上的告警阈值(不自动删除)
worktree.relativePaths false 启用 extensions.relativeWorktrees,会把仓库格式版本抬到 1(旧版 git 直接拒绝访问)

开启工作区之后,每份汇报可以有自己的 git 检出,但独立的只有工作目录与索引:config、hooks、对象库以及检出之外的一切仍然共享——装一个 hook,会影响所有检出的每一次提交。占用与清理的完整规则见 工作区。

界面

web profile 里多两处:

  • 会话头部的「汇报」标签页:一条自上而下的时间线,把会话分叉与汇报按时间合并;状态芯片带数量、搜索框覆盖编号/主题/收件人/任务/检出,点一行就地展开传递路径、正文与仍在等待的收件人。
  • 右侧栏的画布标签页:一份汇报画成发起者帧里的一张卡,传递路径画成跨会话的线;点卡片跳到「汇报」标签页读它。交互规则与可见性约束见 界面,几何与实测见 画布。

已知限制

  • 单进程假设。 每个汇报的写操作——包括 report_read 记跳与延迟投递泵——都由进程内按汇报的互斥锁串行化。跨进程共享同一账本需要租约协议,这与 harness 自身延期的工作相同。工作区的占用判定另有一把按仓库为键的锁(跨报告抢同一支分支是单报告锁看不见的),但它同样只在本进程内有效。
  • 正文并发覆盖。 跳流 append-only 永不丢跳,单进程内整份重写的写入点都已进锁;两个进程同时改写同一份正文仍是后写者胜(report_contribute 用追加,规避了常见路径)。
  • 同伴名额是终身的。 maxPeersPerAgent(默认 8)数的是本会话启动过的不同同伴会话数(peers.jsonl 的行先按 startedBy 过滤、再按 sessionId 去重,所以重复行不会多占名额),不区分同伴是否还在、是否首轮就死;没有任何工具能回收名额——report_handover 只搬账本资产,不碰名册行。回收是人工动作:备份后从 $DSH_HOME/report-ledger/peers.jsonl 删掉已结束同伴的行。
  • fromName 是会话标题,即"会话名"而非"代理名"。
  • 汇报页无法隐藏 composer。 conversation.view 的契约没有 composer 可见性维度,外壳在视图下方无条件渲染输入区,所以汇报页底部始终有输入框。视图侧唯一能整块替换它的是 conversation.composer 链(审批/提问面板用的同一机制),拿它隐藏属于偏用:该页会同时失去输入、发送、停止、模型/权限控件与队列/待办 dock。等上游给 view 定义提供正式开关后再做。

工作区相关的限制(默认关闭,未开启时都不适用)见 工作区。审计中已确认、但有意暂缓的五项(脚本清理、10k 深链、画布 emoji/帧 hover、视图焦点/无声点击/pane、publish shasum 断言)见 已知未修问题。

文档

正文按读者分开。只想用起来,上面这些就够了;下面这些是「要改它」或「想知道为什么」时才需要的。

文档 什么时候读
设计 账本布局、读路径的性能模型、修正与生命周期的理由、退役交接、提示词协议
工作区 要用 git 检出隔离,或想知道"独立"到底独立了什么
界面 时间线标签页的交互规则、数据通路、HTTP 守卫与信任假设
画布 卡片图的几何、为什么一个图库都不引、每项决定的实测数字
同伴 peer_start 开出来的到底是什么、它落在哪个工作区分组
工程约定 改这个仓库之前:20 条踩过的坑,每一条都对应一次真实故障
开发、构建与验证 构建、测试分层、HMR 开发回路、隔离 profile
开发者模式 开发期陪跑代理:名单、增减、退役、归档
发布 维护者:产物清单、可信发布、CI 分工、Gitee 镜像
已知未修问题 审计确认、但有意暂缓的五项:证据报告、影响、建议修法、状态

开发

pnpm build        # 三个产物:lib/index.js(宿主半)、lib/client.js(浏览器半)、
# dev/bundle/lib/index.js(开发者附加包,不发布)
pnpm test         # 十六套确定性检查,1151 项断言(不需要 DSH,不碰真实账本)
pnpm check        # 完整本地门禁:typecheck + test + test:tools

开发与测试需要 Node ≥ 22.18(脚本直接跑 .ts,依赖 type stripping;构建依赖链也声明 ^22.18.0 || >=24.11.0)。lib/ 随源码提交,所以 clone 下来不用构建也能跑。开发回路、测试为什么分成 test 与 test:tools、CI 为什么只跑前者,都在 开发、构建与验证。

许可

MIT。第三方声明见 THIRD-PARTY-NOTICES.md。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-report-ledger 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add dsh-report-ledger@0.1.0` 即可。对应的 npm 包名是 `dsh-report-ledger`。

dsh-report-ledger 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-report-ledger 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-report-ledger 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-report-ledger 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1。

dsh-report-ledger 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-report-ledger 有哪些功能?

十个 report_* 汇报工具、append-only 传递路径账本、回执、结案与修正、会话头部汇报时间线标签页、同伴代理创建与名册日志。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。