dsh-plugin-focus:在 DSH agent 中固定目标、约束与决策

前言

DSH agent 的上下文会经历压缩,跨会话时也可能丢失早期确定的信息。已有做法中,todo list 通常关注“接下来做什么”;但还有一些信息需要稳定保留:当前目标是什么、哪些约束不能偏离、哪些决策已经发生。

dsh-plugin-focus 是一个 DSH 插件,它给 agent 提供一个 focus 工具和一份持久 focus board。focus board 位于 session workspace 中,用于记录目标、约束和决策,并在每轮开始或内容变化时重新注入模型上下文。

这是什么

一句话定位:dsh-plugin-focus 是面向 DeepSeek Harness agents 的 focus board 插件,用一份模型可维护的笔记把目标、约束和决策固定下来。

已核实信息:

  • 名称:dsh-plugin-focus
  • 许可证:MIT
  • GitHub 仓库:https://github.com/863683348/dsh-plugin-focus

它解决的核心问题是:agent 在执行长任务时,需要把“为什么做、不能偏离什么、已经决定了什么”保存在上下文压缩和会话切换之后仍然可读的位置。

核心功能

下面介绍已核实的能力。

focus 工具

插件提供 focus 工具,支持四个动作:

  • set
  • get
  • append
  • clear

这些动作用于写入、读取、追加和清空 focus board。

提示引导章节

插件提供 focus:instructions 提示引导章节,用于给模型补充使用 focus board 的引导信息。

自动上下文注入

focus board 会在以下时机重新注入到模型上下文:

1、每轮开始;
2、focus 内容发生变化时。

空 board 时不会注入,注入内容受 maxChars 限制。

clear 时归档

执行 clear 时,旧 focus board 会归档到:

.dsh/focus.md.bak

这意味着清空当前 board 后,旧内容仍会保留在归档文件中。

focusBoard 会话投影

插件提供 focusBoard 会话投影,供 UI 使用。

只读 Web 面板

插件提供实验性只读 Web 面板。已核实资料说明:该面板尚未针对运行中的 web 实例验证。

安装与启用

使用 DSH 插件管理命令安装:

dsh plugin --profile <profile> add dsh-plugin-focus

安装后需要重启 DSH。

典型用法

focus 是模型侧工具,常见用法如下。

focus set

用于追加一条固定当前焦点或约束的条目。

适用内容:

  • 当前目标;
  • 硬约束;
  • 必须保持不变的上下文。

focus append

用于追加日志条目。

适用内容:

  • 决定;
  • 发现;
  • 反转;
  • 执行过程中新增的重要上下文。

focus get

用于读取整个 board。

读取时按最新优先展示,并受 maxChars 渲染上限约束。

focus clear

用于清空 board。

执行后,旧 board 会被归档。

配置

插件的配置项可写在 composition row 的 config 中。已核实配置项包括:

file
archiveFile
archive
maxEntries
maxChars
autoInject
personaSection
sectionOrder

其中几个关键点如下:

  • file:board 路径,需要位于 session workspace 内;
  • archiveFileclear 时的归档路径;
  • archive:控制 clear 是否先归档;
  • maxChars:限制渲染或注入长度;
  • autoInject:控制是否自动注入 focus board;
  • personaSection:控制是否注册 focus:instructions 提示引导章节;
  • sectionOrder:用于提示章节顺序。

文件路径不能逃逸 session workspace。配置路径如果落在 session workspace 外,会失败。

适用场景与注意

适合以下使用方式:

1、同一个 session workspace 内长期运行 DSH agent;
2、agent 任务需要保留目标、约束和关键决策;
3、希望 focus board 在上下文压缩后仍然可被模型读取;
4、需要在同一 workspace 的新会话中继续读取已有 focus 条目。

需要注意:

1、focus board 按工作区而不是按会话管理;
2、已有 .dsh/focus.md 时,新会话会读取现有条目;
3、自动注入在空 board 时不注入,并受 maxChars 限制;
4、只读 Web 面板仍是实验性,尚未针对运行中的 web 实例验证;
5、所有文件访问通过 host ctx.fs 服务,并且路径需要 containment-check 到 agent 的 session workspace,不能逃逸;
6、插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。

结尾

dsh-plugin-focus 提供的是 DSH agent 的一块小型持久记忆板:用 focus set 固定目标与约束,用 focus append 记录决定、发现和反转,用 focus get 读取当前 board,用 focus clear 清空并归档。它的核心价值在于把“为什么做、不能偏离什么、已经决定了什么”放在 session workspace 中,并自动带回模型上下文。

GitHub 仓库:

https://github.com/863683348/dsh-plugin-focus

目录页地址未提供。

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

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

Xiaoye