← 返回列表
未验证
@dsh-external/dsh-peer-mailbox
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/21 · 已提供中文文档
DSH 对等邮箱插件 v0.0.2 - 通过 jsonl 邮箱进行会话间通信(peer_ask / peer_read_mailbox / peer_reply / peer_reset_limit)
综合分
27.5
GitHub 分
27.5
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add stark-L-1/dsh-peer-mailbox该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
- 是什么
- dsh 原生插件 · market
- 装得上吗
- 本站尚未做安装检查
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 更新放缓:最近一次提交在 35 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
数据截至 2026/9/23(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-llm@deepseek-ai/dsh-tools用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成@dsh-external/dsh-peer-mailbox
对话间信箱通信(toolkit + daemon-loop,仅限 host):让 DSH 的不同会话之间一问一答,
全程不切换会话、不互相占用(绕开 live 会话锁)、不落 skill 文件。
工作用途约束(防闲聊烧 token)
- 工具描述标注:peer_ask / peer_reply / peer_read_mailbox 的描述均声明
「工作用通信通道,不是闲聊工具:只用于传达任务、问事、交付结果,不要寒暄、不回复问候/闲聊内容」。
- 轮数上限(硬约束):同一「发送方→接收方」有向对在滑动时间窗口内最多
workLimitMax 条(默认 4,建议 3~5)。超限时 peer_ask/peer_reply 拒绝投递(不落盘),
返回 {ok:false, limited:true, reason:"已达通信轮数上限…"}。
- 自动重置:滑动窗口(默认 1 小时)——窗口过期旧消息自动不计入,无需手动清零;
也可由管理员调整 workLimitMax/workLimitWindowMs 配置。
- 手动重置(管理员):peer_reset_limit(from, to, scope?)——给指定对(或 scope=all 整个目录)的
现有消息打 limit_reset 标记,统计时忽略它们,该对可立即继续投递、计数从 0 开始。
工具描述带醒目标注「管理员工具,除非接到明确命令否则不许使用」。
- 计数与投递在同一 per-file 锁内原子完成(并发投递不会超发);不同 (from,to) 对独立计数。
工具
- peer_ask(target, message, from?):向目标会话的信箱投递一条消息(只投递),返回 {ok,id,from,to,file};超限返回 {ok:false,limited:true,reason,…}。
- peer_read_mailbox(from?, mark_read?, who?):读当前会话信箱;mark_read 缺省 true = 只看未读并标记已读,false = 看全部不动标记。
- peer_reply(target, reply_to, message, from?):回复某条消息(写 reply_to 字段),本质同 peer_ask(同样受轮数限制)。
- peer_reset_limit(from, to, scope?):管理员工具,除非接到明确命令否则不许使用。重置指定「发送方→接收方」的轮数计数(scope=pair 默认 / scope=all 整个目录),返回 {ok,scope,from,to,reset_count}。
唤醒层(daemon-loop)
- 定时轮询 D:\dsh\peer-mailbox\mb-*.jsonl(默认 10s,下限 5s),发现目标会话有未读消息时:
- 目标在 live registry(ctx.agents.get(id) 命中)→ agent.followup() 注入一条
{kind:'plugin', form:'relay'} 通知(与 dsh-chat-proxy 的注入方式一致),idle 司机开回合 / running 司机排队;
- 目标不在 live registry → 本轮跳过(信箱本身即队列,下轮再试),绝不主动 attach/抢挂会话。
- peer_ask/peer_reply 投递后默认立即尝试一次唤醒(wakeOnAsk,低延迟路径);轮询 daemon 是兜底。
- 已读不重复触发:peer_read_mailbox 标记 read: true 后不再通知;进程内 WakeState 记住已通知的消息 id,
同一条未读只投递一次通知(防 spam / 防死循环)。
- 唤醒目标必须用真实会话 id(名字只用于信箱可读性);且目标会话需已挂 agent preset(否则模型回合可能因
{{cwd}} 等模板变量缺失或权限策略被拒——生产会话天然满足)。
配置(插件 config)
{
mailboxDir?: string // 默认 D:\dsh\peer-mailbox
pollIntervalMs?: number // 默认 10000,下限 5000
wakeOnAsk?: boolean // 默认 true:投递后立即尝试唤醒
wakeEnabled?: boolean // 默认 true:启用轮询 daemon
wakePreviewChars?: number // 默认 160:唤醒通知里的消息预览长度
workLimitMax?: number // 默认 4:每对(from→to)窗口内最大投递条数; → dev_reload_package dsh-peer-mailbox → dev_uninject_plugin dsh-peer-mailbox
消息格式(每信箱一个 jsonl,一行一条,UTF-8 无 BOM、原子写、进程内 per-file 锁)
{"id":"","from":"","to":"","text":"...","ts":,"reply_to":"","read":true}
已知限制
- 进程内 per-file 锁:同一 web 进程内并发写安全;跨进程(多 DSH 实例)不保证。
- 唤醒通知只是"提醒",目标会话是否真的调用 peer_reply 取决于其模型行为(实测可闭环,但非 100% 确定性)。
- 目标会话未挂载时只排队不唤醒(信箱即队列,挂载后下一轮轮询会补投递)。