在 DeepSeek Harness (DSH) 环境中,记录会话相对容易,但梳理一天的工作轨迹并生成总结却缺乏标准工具。dayreel 旨在解决这一问题,它将一天流经 DSH 的对话记录转化为一份设计感的日报,并进一步渲染为带旁白的总结视频。
插件简介¶
dayreel 是一个社区插件,由 peikuo 维护,采用 MIT 许可证。它全栈基于 TypeScript/Node.js,无 Python 依赖。其核心价值在于自动化生成工作内容文档与视频摘要,帮助用户直观回顾当日工作。
核心能力¶
dayreel 通过两个 runtime skill 和一组工具实现上述功能:
- 两个 runtime skill:
dayreel-content:负责收集事实、编写内容文档(包含工作主线 IR 和当日元数据),并确定性渲染出 HTML/Markdown 格式的日报。dayreel-render:将内容文档投影为 typed 场景,渲染成 MP4 视频,并持续播报进度。
- 核心工具:
fetch_today_recap:获取跨会话的当日摘要,包含按各会话实际模型的费用估算。fetch_session_detail:按需钻取单会话的详细日志。dayreel_report:生成日报(HTML/MD),支持force参数强制修订重生成。dayreel_render:异步启动视频渲染。dayreel_status:轮询渲染进度,完成后返回可播放 URL。
- 内嵌播放器:客户端半区注册了
<video>播放器卡片。渲染完成后,视频可直接在工具调用行中出现,无需复制 URL。
安装¶
使用官方安装命令添加插件:
dsh plugin add github:peikuo/dayreel
使用流程¶
在 DSH 的 Web UI 中,只需对模型说「生成今天的总结视频」,流程即自动启动:
- 内容生成:模型加载
dayreel-contentskill,调用fetch_today_recap获取跨会话当日摘要(自动排除当前对话),必要时调用fetch_session_detail获取细节,最终通过dayreel_report输出日报。 - 视频渲染:模型加载
dayreel-renderskill,调用dayreel_render启动视频渲染。 - 进度监控:模型循环调用
dayreel_status,通过旁白播报进度条(i/n -> Remotion %),直到完成。 - 获取结果:完成后,模型返回可播放 URL (
http://127.0.0.1:<port>/dayreel/<日期>/<序号>/recap.mp4) 及本地路径。
成本优化与模型选路¶
日报撰写与视频渲染不需要使用旗舰模型。插件通过 dayreel_author 工具进行模型选路,不依赖模型的自觉性。
- 选路逻辑:菜单即环境里配置的 LLM 目录。用户点名(
agent参数)直接路由;有记忆偏好直接使用;目录仅一个时直接使用;否则弹窗询问。 - 配置项:
fork:可选,设为true时子代理继承当前对话的完整历史(截至上一个完整 turn);默认为spawn。defaultModel:可选,兜底模型 ID,无交互时使用。
- 记忆机制:偏好保存在插件输出目录的
preferences.json中。 - 限制:外部 CLI 子代理(如 codex)无法调用这些工具。
依赖与限制¶
- 依赖:
msedge-tts:用于旁白(纯 Node,使用微软 Edge 语音)。Remotion + ffmpeg:用于视频渲染(需在 PATH 中配置 ffmpeg)。
- 数据范围:会话摘要仅覆盖今天与昨天。更早的日期属于 Tier 2 功能(未实现),请求更早日期会被工具拒绝。
- 资产版权:背景音乐由 AI 生成(Gemini),项目持有使用与分发权利。
配置项¶
在插件配置中,开发者可以调整以下选项:
- id: dayreel
name: dayreel
config:
fork: true # 是否继承当前对话上下文
defaultModel: deepseek-v4-flash # 默认模型,无交互时兜底
结语¶
dayreel 通过标准化的工作流,将 DSH 的工作记录转化为可读的日报和可观看的视频,降低了回顾工作的门槛。更多细节与源码,请访问 GitHub 仓库。