dsh-session-supervisor: DeepSeek Harness 会话生命周期监督插件

前言

DeepSeek Harness 的插件化架构允许开发者扩展行为。面对需要严格时间控制或异常检测的长会话场景,手动监控往往效率低下且容易遗漏。acosmi/dsh-session-supervisor 提供了一套基于事实的生命周期监督机制,旨在解决活跃会话中的静默超时、截止延误及异常轮次问题。

这是什么

这是一个面向活跃(宿主进程存活中)DeepSeek Harness 会话的、可持久、有预算的生命周期监督插件。它通过定时评估驱动,仅依据会话生命周期事实做判断,不执行任何外部操作。

核心功能

  • 生命周期监督:支持三种监督契约——静默检测(连续 N 秒无事件)、截止时间检测(RFC3339 截止已过)、异常轮次检测(连续 K 个 turn/end 状态为 error/blocked 等)。
  • 持久化与排队:当策略越界时,插件会形成可持久记录的 incident,限制证据数量与大小,并在配置允许时向 owner 会话排队 follow-up。
  • Guardian 工具:提供创建、列表、更新(暂停/恢复/确认/关闭)、检查状态的命令。
  • 只观察不执行:无 shell 执行、无网络请求、不 cancel Agent,确保监督者不干扰业务逻辑。
  • 冷会话恢复:支持在 resume 会话时合并过期的 deadline 并重新锚定 silence 检测。

安装与启用

安装前请确认已锁定具体版本,不要使用 latest。

dsh plugin --profile <name> add @<publisher>/dsh-session-supervisor@0.1.0-beta.1

安装后,插件会将配置对象整对象替换写入 profile 的 cordis.patch.yml,请确保配置文件结构完整。

典型用法

  1. 声明监督契约:在配置中定义 lifecycle_silence、deadline_unclosed 或 abnormal_turn_streak 等策略。
  2. 管理 Guard 状态:使用 guardian_create 创建监督对象,通过 guardian_update 对 incident 进行 acknowledge(确认)或 close(关闭)。
  3. 手动触发检查:使用 guardian_check_now 进行单次评估,仅记录真实发生的状态转换。
  4. 恢复会话:在 resume 会话时,插件会自动合并已逾期的 deadline,并在 silence 重新锚定后继续监督。

适用场景与注意

  • 宿主进程依赖:计时仅在 harness 进程存活期间进行。如果宿主进程挂掉,计时停止,无法监督冷会话。
  • 通知幂等性:由于 at-least-once 投递机制,通知可能重复。需依赖 incident id 去重。
  • Agent 不可救回:挂死的 Agent 无法被本插件救回(插件不会 cancel Agent),只能排队 follow-up。
  • 日志零污染:v1 版本不向会话日志写入任何事件,状态存储在独立目录。
  • 版本锁定:必须按发布逐个锁定版本,避免兼容性问题。
  • 架构限制:单宿主、单进程架构,无多宿主协调。

结语

该插件适合需要严格生命周期管理能力的场景。它提供了从检测、记录到排队 follow-up 的完整流程,但开发者需注意其仅观察不执行、依赖宿主存活等特性。

项目地址:https://github.com/acosmi/dsh-session-supervisor

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

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

小夜