DeepSeek Harness 跨会话呼叫中心:dsh-agents-in-the-loop

前言

DeepSeek Harness (DSH) 采用插件化架构,智能体通常在会话中运行。在多智能体协作场景下,需要一种机制让不同会话中的智能体进行通信或传递指令。现有的做法往往依赖原始会话 ID 进行硬编码,缺乏管理性和稳定性。

dsh-agents-in-the-loop 插件解决了这个问题。它为 DSH 智能体提供了一个跨会话的“呼叫中心”功能,通过会话间消息传递和一个基于名称的联系人目录,实现了智能体间的标准化通信。

插件定位

  • 名称:dsh-agents-in-the-loop
  • 类型:工作流
  • 所有者:markelayan
  • 许可证:MIT
  • 核心价值:跨会话消息投递与命名联系人目录管理。

核心功能

该插件提供了三个主要功能模块:

  1. session_message 工具:用于列出当前活跃的会话,并向已注册的联系人名称发送消息。
  2. contacts 工具:维护一个基于会话 ID 的命名联系人目录。支持运行时添加、更新、重命名和删除联系人,无需重启 DSH。
  3. HTTP API:提供仅限回环的 HTTP 接口,允许外部代理(如 Claude Code)向已注册联系人发送消息,同时也支持客户端面板读取联系人目录。

安装与启用

通过 npm 安装:

npm i dsh-agents-in-the-loop

安装后,需要在 DSH 的 cordis.patch.yml 配置文件中添加插件行,并重启 dsh web。配置示例:

- insert:
    - id: dsh-agents-in-the-loop
      name: dsh-agents-in-the-loop
      config:
        enabled: true
        sessionMessage:
          enabled: true      # 开启 session_message 工具
        contacts:
          enabled: true      # 开启 contacts 工具

典型用法

1. 使用工具发送消息

在 DSH 智能体中,可以使用以下指令:

  • 列出活跃会话:
    session_message { action: "list" }
  • 发送消息:
    session_message { action: "send", target: "dev-lead", message: "task done", wake: true, resumeIfDead: false }
*   `target`:必须使用已注册的联系人名称(自 v1.4.2 起,原始会话 ID 被拒绝)。
*   `wake`:默认为 true,唤醒空闲会话。
*   `resumeIfDead`:默认为 false,尝试复活已死会话。

2. 管理联系人目录

  • 添加联系人(仅名称即可自注册):
    contacts { action: "add", name: "dev-lead" }
*   注:自注册不需要提供 sessionId。
  • 更新联系人信息:
    contacts { action: "update", name: "dev-lead", label: "Backend Lead", tags: ["senior", "python"] }

3. 外部 HTTP API 调用

外部脚本或 Claude Code 等非 DSH 环境的代理可以通过回环接口发送消息:

curl -s http://127.0.0.1:9001/api/agents-in-the-loop/message \
  -H 'Content-Type: application/json' \
  -d '{"from":"claude-code","contact":"dev-lead","message":"task done"}'
  • 注意:API 仅支持回环访问(127.0.0.1),非回环请求会返回 403。
  • 注意:外部 API 仅支持“发送”操作,不支持注册或接收消息。

注意事项

  1. 版本变更历史:该插件前身是 taskboard-flow。在 v1.0 版本中移除了看板引擎,v1.3 版本移除了 Web UI,当前版本专注于消息传递核心功能。
  2. 目标锁定规则(v1.4.2):session_message send 和 contacts call 只接受已注册的联系人名称作为目标。如果尝试使用原始会话 ID,会返回错误并提示使用 list 操作。
  3. 上下文卫生(v1.6.0):为了防止上下文膨胀,消息长度被限制在 8000 字符以内。如果发送长报告,建议通过文件路径发送。
  4. 配置与隐私:联系人存储基于文件(默认路径 ~/.dsh/taskboard-flow-contacts.json),所有操作均为本地化,无遥测数据收集。

结语

dsh-agents-in-the-loop 为 DSH 插件生态提供了一个实用的跨会话通信层。它通过引入“联系人”概念替代了原始会话 ID,使得多智能体协作更加规范和可控。适合需要构建复杂工作流或多智能体系统的开发者使用。

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

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

小夜