dsh-group-feed:群聊上下文投喂与日结

前言

DeepSeek Harness(DSH)插件:群聊上下文投喂——非 @ 的消息攒批挂进上下文(零 token、不唤醒模型),每天再压成日结。

群聊场景里,Agent 面临两个极端:要么只在被 @ 时才醒,对上下文一无所知,答非所问;要么为了接住每一条消息,频繁唤醒模型,导致账单暴涨。本插件走第三条路:非 @ 的消息在内存中攒批,攒成一段后以零 token 的方式挂进会话上下文,不触发模型调用;每日再对会话进行一次摘要并清理。

核心功能

攒批投喂
非 @ 消息按条数(25条)或时间(40分钟)触发投喂。从最新往旧取,每次最多处理 40 条。同一会话最多挂 3 段未读,防止上下文被撑爆。

零 token 注入
投喂过程不唤醒模型,不产生 token 成本。消息只在内存中暂存,待下次被 @ 时作为背景一起注入。

每日日结
每天 04:10(本地时间)执行。将每个会话的原文压成一段中文摘要写入 <dir>/digest/<日期>.md。摘要失败不清会话,保证数据不丢失。

会话筛选
40 字以下的会话不进行日结摘要。04:10 到 08:00 之间进程未运行则跳过当日日结。

安装与配置

安装命令如下:

dsh plugin --profile web add github:JackZo400/dsh-group-feed

配置需抄 cordis.patch.yml 里那份。

典型用法

投喂消息
通过 note 函数将非 @ 消息存入内存:

ctx.get('groupFeed').note('group:chatId', senderName, text)

手动日结
若需立即整理,可调用 digest:

ctx.get('groupFeed').digest()

数据目录
插件运行时会在启动目录下创建 .group-feed 文件夹,用于存储状态和日结摘要。

适用场景与注意

适用场景
适合需要在群聊中保持一定语境感知,但不想为每一条闲聊消息付费的 DSH Agent。

运行限制
攒批仅在内存中,进程重启后未投出的消息会丢失。投喂本身仍需 token 成本(下次被 @ 时)。没有工具(tool)出口。

依赖要求
需要通道插件实现 transcript 函数提供原文。若摘要失败或通道未提供原文,会话不会清空,以保证数据安全。

时间窗口
04:10 到 08:00 之间进程未运行则跳过当日日结。需要手动补做。

结尾

该插件通过攒批和日结机制,平衡了 Agent 的上下文感知能力与 token 成本。更多细节可查阅插件目录或 GitHub 源码。

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

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

Xiaoye