钉住目标与硬约束,跨压缩跨会话自动带回上下文
30/100
综合分
1
GitHub 星标
205
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-plugin-focusnpm 源 · dsh-plugin-focus 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 54 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-plugin-focus @ 1.1.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/8 06:34:35
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-fs@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 钉住目标与约束
- 跨压缩会话带回上下文
- 自动注入上下文
DeepSeek Harness 智能体的聚焦看板:会话工作区里持久、由模型维护的笔记——跨压缩和会话钉住目标、约束与决策;自动注入上下文,清空时归档,会话投影,实验性 Web 面板
README
由 DeepSeek 最新模型翻译生成dsh-plugin-focus — DeepSeek Harness Agent 专注板
一个真实可安装的 DSH 插件(DeepSeek Harness / Cordis profile bundle):给 agent 一个 focus 工具和一块持久化专注板(默认 .dsh/focus.md,位于会话工作区),钉住目标、硬约束、已做的决定——跨上下文压缩、跨同工作区的新会话都能存活。todo 列表管"下一步做什么";专注板管"为什么做、不能违背什么"。
功能
| 功能 | 状态 |
| focus 工具 —— set / get / append / clear | ✅ 稳定 |
| 提示词指引段落(focus:instructions) | ✅ 稳定 |
| 自动注入 —— 每轮开始及板子变化时自动把专注板放回模型上下文 | ✅ 稳定 |
| clear 归档 —— 清空时旧板子归档到 .dsh/focus.md.bak(可累积) | ✅ 稳定 |
| focusBoard 会话投影(供 UI 读取) | ✅ 稳定 |
| 只读 Web 面板(输入框上方 dock) | 🧪 实验性(手写 loader 格式 client bundle,未在运行中的 web 实例上验证) |
工作原理
展开完整文档(README 剩余 1 节)
dsh-plugin-focus — DeepSeek Harness Agent 专注板
一个真实可安装的 DSH 插件(DeepSeek Harness / Cordis profile bundle):给 agent 一个 focus 工具和一块持久化专注板(默认 .dsh/focus.md,位于会话工作区),钉住目标、硬约束、已做的决定——跨上下文压缩、跨同工作区的新会话都能存活。todo 列表管"下一步做什么";专注板管"为什么做、不能违背什么"。
功能
| 功能 | 状态 |
| focus 工具 —— set / get / append / clear | ✅ 稳定 |
| 提示词指引段落(focus:instructions) | ✅ 稳定 |
| 自动注入 —— 每轮开始及板子变化时自动把专注板放回模型上下文 | ✅ 稳定 |
| clear 归档 —— 清空时旧板子归档到 .dsh/focus.md.bak(可累积) | ✅ 稳定 |
| focusBoard 会话投影(供 UI 读取) | ✅ 稳定 |
| 只读 Web 面板(输入框上方 dock) | 🧪 实验性(手写 loader 格式 client bundle,未在运行中的 web 实例上验证) |
工作原理
- 板子是纯文本、追加友好的文件;条目带时间戳按序排列;get 最新在前、按字符上限截断(渲染永不删文件)。
- 单个 Cordis 插件、两面一体:宿主面(lib/index.js)注册工具/投影/自动注入,浏览器面(lib/client.js)渲染面板;同一组合行通过包的 dsh.bundle + dsh.client manifest 同时覆盖两面。
- 所有文件访问走宿主 ctx.fs 服务,且每个解析出的路径都做会话工作区 containment 校验——板子永远逃不出工作区。
- 自动注入复刻内置 dsh-time-context 机制:agent/pre-step waterfall 监听器追加一条携带板子文本的 plugin snapshot 消息(每轮 step 1,以及中途板子文本变化时)。会话恢复后第一步就会把板子带回来。
安装
包声明了 "dsh": { "bundle": { "patch": "./cordis.patch.yml" } },走 DSH 官方插件管理:
从本地目录安装(等价于 pnpm add + 自动 reconcile bundles 列表)
dsh plugin --profile add /path/to/dsh-plugin-focus
或发布到 npm 后
dsh plugin --profile add dsh-plugin-focus
重启 DSH。focus 工具宿主级注册;web profile 的界面上会出现只读面板。
备选:只挂到某个 agent preset
1. 复制内置 preset 到 $DSH_HOME/.agent-presets//(不要改部署自带的 preset——升级会被覆盖)。
2. 在 agent.cordis.yml 追加:
- id: focus
name: 'dsh-plugin-focus'
config:
file: '.dsh/focus.md'
3. 确保 dsh-plugin-focus 可解析(装在 profile 的 node_modules 或模块回退目录)。
模型侧用法
| action | 参数 | 行为 |
| set | note(必填) | 追加一条"当前焦点/约束" |
| append | note(必填) | 追加日志条目(决定、发现、反转) |
| get | — | 读整块板(最新在前,截断并注明省略数) |
| clear | — | 清空板子;旧板子归档到归档文件 |
插件还会注入 focus:instructions 提示词段落(可用 personaSection: false 关闭),并自动把板子放回上下文(可用 autoInject: false 关闭)。
配置
组合行 config 全部可选:
| 键 | 默认 | 说明 |
| file | .dsh/focus.md | 板文件路径,相对会话工作区;禁止逃逸工作区(运行时强制) |
| archiveFile | .dsh/focus.md.bak | clear 的归档路径 |
| archive | true | clear 是否先归档 |
| maxEntries | 60 | 磁盘最多保留条目数(最旧丢弃) |
| maxChars | 8000 | get / 自动注入的渲染上限(仅视图截断) |
| autoInject | true | 每轮开始/板子变化时自动注入上下文 |
| personaSection | true | 注册提示词指引段落 |
| sectionOrder | 5 | 提示词段落顺序(persona 为 0,升序) |
文件格式
Focus Board
[2026-08-14T23:12:00.000Z] set
[2026-08-14T23:13:00.000Z] append
清空时向归档文件追加一段带清空时间的归档块,历史得以累积。
设计
- 纯逻辑与运行时分离:lib/board.js 零 DSH/Cordis 依赖(解析/渲染/变更/归档),可独立单测;lib/index.js 才是 Cordis 插件。
- 安全:路径经 ctx.fs 解析,并用 ctx.fs.contains 对会话工作区做 containment 校验。
- 生命周期:工具、投影、注入监听、提示词段落全部由 Cordis scope 管理,插件停止/移除自动清理。
- 两面一行:宿主加载 .,浏览器加载 ./client(经 dsh.client manifest);focusBoard 会话投影(事件 focus/write)是未来任何 UI 的数据接缝,可用 useProjection('focusBoard') 读取。
测试
node --test test/
卸载
dsh plugin --profile remove dsh-plugin-focus
Roadmap
- 在运行中的 web 实例上验证面板并迭代 slot UI。
- 面板直接提供编辑/清空操作。
- 可选:把板子挂到 turn/start 事件上获得显式快照语义。
License
MIT
常见问题
- 新会话里板子是空的——之前的板子去哪了? 板子按工作区(workspace)存储,不按会话:如果该会话工作区已有 .dsh/focus.md,focus set 会接着读已有条目。每个 agent 会话按自己的 session.header.cwd 解析板子路径。
- 自动注入费 token 吗? 板子每轮开始注入一次(中途仅在文本变化时再次注入),并以 maxChars 截断;空板不注入任何内容。
- 板子能逃出我的工作区吗? 不能。所有路径都经 ctx.fs 解析,并强制做会话工作区 containment 校验;配置了工作区外的路径会直接报错。
- Web 面板为什么标记为实验性? client bundle 是无打包器的手写 loader 格式,尚未在运行中的 web 实例上验证。
- 如何发布到 npm? 执行 npm publish(已内置 prepublishOnly 测试)。之后 dsh plugin add dsh-plugin-focus 即可免构建安装。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
863683348/dsh-plugin-focus
钉住目标与硬约束,跨压缩跨会话自动带回上下文
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目