dsh-meeting-coordinator:给 Agent 装上持久会议室与会话互相唤起

在 DeepSeek Harness(DSH)的多 Agent 协作场景中,单个 Agent 长期运行容易产生上下文污染、陷入死循环或遗忘全局目标。dsh-meeting-coordinator 旨在为这些长跑的 Agent 装上「会议室」与「互相唤起」的能力,基于 dsh-std 元协议,提供持久化的多 Agent 协作方案。

核心概念:持久会议室与会籍

本插件的核心不是简单的广播,而是建立持久实体。

  1. 持久实体与会籍
    会议室是持久存在的实体,不是每次开会临时建立。会籍是权限边界:只有加入会议室的会话才拥有「唤起会议」的权利,也才有资格被他人唤起。未加入的会话既不能召集,也不会被误召。

  2. 跨工作区与主动加入
    成员可以跨工作区加入同一个会议室。会话必须主动加入会议室,入场时会预注入一段 Prompt,说明议题、在场成员及发言规则。会后,每个会话各自对会议进行压缩,只保留与自己相关的内容,避免上下文污染。

状态流转与会话唤起

插件定义了 working、idle-waiting、done 三种状态,并规定了明确的流转逻辑。

  1. 入场机制

    • working 状态:正在输出或调用工具的会话,先进 awaiting-entry。宿主会在当前工作单元结束(如工具调用返回)时才允许其入场,不打断正在进行的任务。
    • idle-waiting / done 状态:没有工作单元等待的会话,直接入场。
  2. 急停与还原
    散会时,所有成员会还原到被召集之前的状态。正在跑的继续跑,等待回复的继续等,已完成的保持完成。插件提供了完整的急停机制闭环,确保会议结束后 Agent 不会因状态错乱而失效。

主持人控场与无上下文设计

为了防止控场逻辑被其他 Agent 的上下文带偏,插件采用了独特的主持人设计。

  • 无上下文主持人:主持人由召集者的模型担任,但它没有任何私有上下文。它只能看到群聊记录、成员名单以及谁还没有说话。
  • 控场权:主持人通过 JSON 格式的控制决定(如 invite 或 adjourn)来控场。如果解析失败,会回退到安全轮转模式,确保会议不会卡住。

工程约束与数据隔离

在实现层面,插件坚持几个关键的不变量,以保证系统的稳定性。

  1. 拒绝截断,硬预算限制
    对于单次发言的字数,采用硬预算策略。如果字数超过限制,直接拒绝该次发言,而不是截断。这避免了 Agent 以为诉求已传达但实际被截断的隐患。

  2. 数据根独立性
    数据存储根目录默认不依赖进程的 cwd(除非配置),避免因启动目录不同导致数据丢失或错位。

  3. 隔离性
    进会议室时,注入的是记忆的「限长投影」而非完整上下文。进会议室后,私有上下文在会话间不流动,确保每个 Agent 只看到与自己相关的部分。

使用方式

插件提供了几个演示脚本,用于验证核心机制。

pnpm run demo:room
pnpm run demo
pnpm run demo:briefing-exchange

状态与依赖

  • 依赖:基于 dsh-std 元协议(Community v0.15)。
  • 当前状态:早期阶段。核心机制已经跑通,测试覆盖率为 215 个,但尚未在真实生产场景中长时间运行。
  • 许可:MIT。

该插件为 DSH 生态中的多 Agent 协作提供了结构化的解决方案,适合需要持续协作且需严格控制上下文污染的场景。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜