🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

错峰任务队列 tHedlund38/dsh-lowtide

DeepSeek Harness
tHedlund3820 天前有提交已提供中文文档扫描:无法判定

把任务排进队列,低谷时段自动跑完并交回报告

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/15 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add tHedlund38/dsh-lowtide
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · tool
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 20 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · tHedlund38
  • · dsh-lowtide
  • · tarball)
扫描于 2026/11/4(0 天前)

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

为 DeepSeek Harness(dsh)做错峰任务委派:闲时规划任务,它们会在非高峰时段无人值守地跑,回来只看一份报告。人工裁决,桌面端 + 网页端。

README

由 DeepSeek 最新模型翻译生成
dsh-lowtide 忙的时候把任务排进队列。价格便宜时它们自己跑。 半自动或全自动,避开模型的高峰时段和高价时段。DeepSeek Harness 必备插件。 hero 队列里排着三个任务,价格状态在会话头部亮着,你的时段一到就自动开跑 简介 lowtide 是 DeepSeek Harness (dsh) 的插件。它解决的问题很朴素,也再自然不过: 平时你想让智能体干点活,就得坐在电脑前,给智能体发条指令,等它回复,再手动检查。可这套工作流好像忘了,你其实有大把空闲时间——还有机会躲开某些模型的高峰/低谷差价。 装上 lowtide,一天就变成这样:白天什么时候想起一件事,就丢进队列,扫一眼,放行。任务一直堆到你设定的时间(比如晚上 7 点以后——那会儿 DeepSeek 是低谷价),然后自己跑起来。第二天早上你打开报告:做得好的留下,不行的打回去。 就这么点东西。可用上一周,你的工作节奏真的会慢下来——别忘了,「时间就是金钱,效率就是生命」……
展开完整文档(README 剩余 1 节)
dsh-lowtide

忙的时候把任务排进队列。价格便宜时它们自己跑。

半自动或全自动,避开模型的高峰时段和高价时段。DeepSeek Harness 必备插件。

hero

队列里排着三个任务,价格状态在会话头部亮着,你的时段一到就自动开跑

简介

lowtide 是 DeepSeek Harness (dsh) 的插件。它解决的问题很朴素,也再自然不过:

平时你想让智能体干点活,就得坐在电脑前,给智能体发条指令,等它回复,再手动检查。可这套工作流好像忘了,你其实有大把空闲时间——还有机会躲开某些模型的高峰/低谷差价。

装上 lowtide,一天就变成这样:白天什么时候想起一件事,就丢进队列,扫一眼,放行。任务一直堆到你设定的时间(比如晚上 7 点以后——那会儿 DeepSeek 是低谷价),然后自己跑起来。第二天早上你打开报告:做得好的留下,不行的打回去。

就这么点东西。可用上一周,你的工作节奏真的会慢下来——别忘了,「时间就是金钱,效率就是生命」……

几个关键能力:

- 四种执行策略:单次、迭代、采样、评审——从「跑一遍就够」到「跑五个候选我来挑」
- 168 个单元测试 + 10 个端到端用例,CI 在 ubuntu / windows × node 22 / 24 上全绿
- 一份构建产物同时服务桌面端和 Web 端——装一次,两边都能用
- 低谷时段执行,正好落在 DeepSeek 的低谷价区间:同一批任务,花费大约是高峰时的一半

和智能体一起过的普通一天,可能是这样……

下班前十分钟。 你刚审完代码,顺手给明天记了三张单子:一次重构(迭代,3 轮)、一份周报(单次)、一个你拿不准的设计(采样,4 个候选)。全部放行,关机,走人。第二天坐到工位,晨报写着:重构做完了,周报起草好了,四个候选设计并排摆着,每个都标了花费。

周五晚上。 一口气把一周的杂活排进队列:清理依赖、补测试、数据脚本。周末全天都是低谷价。你出门,它在家干活。周一你查报告——失败的重新跑,好的合并进来。
上午 10 点的灵光一闪。 你正跟智能体聊一个紧急 bug,忽然想到「对了,文档也顺手更新一下」。拦截卡片弹出来:现在跑是高峰价,今晚跑大约只要一半——差价写得明明白白。点「加入错峰队列」;你的草稿原封不动,你回去继续查 bug。

一台常开的服务器。 你有台机器 7×24 跑着 dsh。切到 L3 全自动,然后从任何地方通过 API(POST /ds-lowtide/tasks)提交任务。它按计划执行,写好报告。没人在旁边盯着,但沙箱、每日预算、文件锁一样都在。

给客户的交付物。 用 review 策略:跑一次,然后自动开一个独立会话,按你选定的重点把结果拆开揉碎(比如「专找数据源错误」)。第二天早上你拿到的不是一份光秃秃的结果——而是结果加一份批判性审查。

人在国外。 你在旧金山;DeepSeek 的高峰时段是北京时间,落到你这边就是傍晚和前半夜。设置里会把官方时段换算成你的本地时间,一键采用。你按自己的作息划窗口,账本始终跟官方表对齐。

lowtide 怎么运作

① 接收 ② 裁定 ③ 执行 ④ 验收什么时候有空都行: 队列坞按工作区 错峰窗口打开时: 你回来时:从拦截卡片一键提交, 分组任务;逐行 → 五道预检门通过, → 打开报告——或提交工单(4 种策略) 分诊:✓批准 ⏸延后 然后沙箱运行 结果 + diff ✕丢弃 / 全部批准 每个窗口一批 + 实际花费
+ 省下的钱

任务的一生:pending-review → queued → preflight → running → done / failed / stale / timeout,外加 deferred(已延后)和 dropped(软删除,可恢复)。

第二步正是 lowtide 跟「全自动脚本」的分水岭:每个任务都必须经你的手放行才能跑(L2 里你在窗口开始前 30 分钟一次性放行整批)。机器没法自己挪进运行队列。执行自动化,决策不自动化。正因如此,你才敢放心缺席。

lowtide 界面导览

新建任务弹窗。 四种策略并排,每种都配一句大白话提示;轮数、优先级、运行模式随任务一起走——不用再跑回设置里改。任务落地即「待审查」。不经过你,什么都进不了队列。

new-task-modal
高级选项。 模型、推理强度、优先级(0 到 9)、全新会话还是继续上一个会话,以及锁定文件列表——全都放在一个小面板里。简单说说锁定文件:列表里的任何文件在执行前都会做 sha256 校验,如果和当初登记的不一致,任务就会失效并拒绝运行。否则你排队时针对的那个文件,可能在等待期间被另一个任务改写,而这个任务会盲目地把它覆盖掉。

advanced-options

任选模型。 批量运行默认用官方 deepseek-flash(DeepSeek-V4.1-Flash;已退役的 deepseek-v4-flash 这个名字仍然路由到那里,按 Flash 价格计费),但每个任务都能选自己的模型——凡是接入你 Harness 的都在下拉列表里,按服务商分组。私有服务商也能用。非官方模型没有公开价格表,所以账本会老老实实写「价格未知」;想让记账精确,就在设置里加一个价格覆盖。

model-picker

时间窗编辑器。 多时段、跨夜、按星期几——都没问题。下面是一条实时 24 小时价格带:红色是高峰,绿色是低谷,还有一个标记显示你现在的位置。不在 UTC+8 时区的话,点一下「采用官方高峰时段」,就能把北京时间换算成你本地的时钟。

window-editor

设置页。 时间窗时段、每批任务数、单任务时长上限、并发数、每日预算、报告历史、自主程度、价格覆盖——全是图形化操作,不用配置文件。官方定价规则(包括新增的整周末低谷)也在同一页用大白话讲清楚了。

settings

日常使用中还会出现三块 UI:价格胶囊(会话标题栏——忙碌/空闲、队列长度;点它就能编辑时间窗)、高峰拦截卡片(在高峰时段输入时弹出;差价写得明明白白;你的草稿不会丢),以及执行报告(早间简报:先看省了多少钱,异常单独钉出来,候选方案等你挑选,一键复制 Markdown)。

关于 lowtide 工作区

每个任务都在一个工作区里运行。就这一个下拉框,决定三件事。

它能碰哪些文件。 任务跑在沙箱里,边界就是工作区目录。选错了,轻则找不到文件,重则改了不该改的东西。

它和谁一起排队。 同一个工作区里的任务串行执行(两个任务绝不会抢同一个仓库);不同工作区并行执行(默认上限 3,可调)。想要吞吐量?把互不相关的工作分散到不同工作区。想要顺序?就放在同一个里。

报告怎么分组。 任务坞和早间报告都按工作区组织——等你有了真实的任务量,这种分组就值回票价了。
工单弹窗里的 Workspace 下拉框有三个来源:Use current workspace(会话所在的位置——最常见的情况)、列表里已有的 workspace(每个都显示绝对路径,你随时知道是哪个项目),或者 Custom path…(手动输入一个)。如果会话模式选了「Continue previous」,你还要挑 workspace 和具体的对话——任务会带着那段对话的上下文继续跑。

我的建议:一个项目一个 workspace,别混。 preflight 里的 git 快照和文件锁都按 workspace 划分;把多个项目混进同一个 workspace,很容易把自己绕晕。

四种策略,以及各自的使用时机

| 策略 | 做什么 | 什么时候用 | 成本 |
| Single | 跑一遍,结束 | 简单、定义清晰的任务 | 1× |
| Iterative | 在一个会话里跑 2–5 轮,每轮都按你的「iteration lens」改进上一轮;两轮结果足够像就提前停 | 需要打磨的活:写作、方案、代码 | ~N× |
| Sampling | 2–5 个隔离会话各自产出一份完整候选,连成本一起并排展示——你来挑;机器不做审美判断 | 标题、点子、设计:你要的是选项,不是答案 | ~N× |
| Review | 跑完之后,另起一个独立会话按你的「review focus」把结果拆开审视,并写出结论 | 重要交付物,发布前再过一遍 | ~2× |

三档自主级别

- L1 逐任务:每个任务都要你单独点 ✓。早期用,或者仓库很金贵时用。
- L2 批量(默认):任务在 review 里等着;批次开始前 30 分钟出现一张 gate card,一次性放行全部;不放行就不跑。日常主力。
- L3 全自动:提交的任务立刻排队,在沙箱里错峰运行,零确认(切换时会问两次)。为常驻服务器而生。

单个任务可以在工单弹窗里覆盖全局级别。

架构:你不在的时候它怎么跑

让智能体在你睡觉时跑批量任务,是个不小的要求。底下有四层撑着,才让它安全。

Cordis 微内核。 dsh 跑在 Cordis 微内核插件生态上:每项能力都是插件,插件之间靠服务注入通信,而不是直接依赖。lowtide 的 host 半边就是一组规规矩矩的 Cordis 服务——路由、调度器、状态机——各干各的活,注册进内核,跟着 harness 一起启动,卸载时干干净净。说人话:它不是贴在 dsh 上的一层皮,而是长在内核里的一个器官。

两张脸,一份产物。 host 半边(Node.js)管调度、执行和账本;浏览器半边(React)管每一个像素。一次构建同时产出两者——而且 dsh Desktop 的 GUI 本身就是 web 渲染的,所以桌面端和 web 端不需要单独分支。同样的字节,同样的行为。
平台无关的核心。 lowtide-core 装着窗口模型、价格表、计费公式、队列摘要、账本和批次窗口计算 —— 全是纯函数,不碰任何 dsh API,单独打包,自带测试。实际好处:核心已经扛过 44 个纯函数单元测试,哪天你把 lowtide 移植到别的智能体框架,这个包可以原封不动拎出来。

纵深防御。 五道预检关卡(工作区还在不在、git HEAD 有没有动、锁定文件的 sha256 对不对得上、窗口放不放得下、预算还剩不剩)—— 任何一道不过,任务就标记为过期或延后,绝不盲目开跑。三套沙箱预设,审批一律设为 never —— 无人值守就意味着没人点「允许」,所以哪些操作放行,开跑之前就定好。状态文件原子写入,损坏时回滚到备份。HTTP 路由只接受本机发来的同源请求。

状态同步走 SSE,带 4 秒轮询兜底 —— 队列动,界面跟着动。

安装

一行安装(预构建): dsh plugin --profile web add https://github.com/KelaoHu/dsh-lowtide/releases/latest/download/dsh-lowtide.tgz —— 或者按下面的步骤从源码构建。

前置条件:Node ^22.19 || >=24,pnpm 11.7。所有依赖都在公共 npm registry 上 —— 不需要私有 registry。

先装 dsh(二选一):桌面版走 DeepSeek 官方渠道,或者 npm install -g @deepseek-ai/dsh 装命令行。然后在 dsh 设置里配一个能用的模型(比如官方 DeepSeek API key)—— lowtide 从不碰你的凭据。

兼容性(dsh-lowtide ≥ 0.2.6): dsh 命令行 ≥ 0.1.5-rc.1 或 DSH Desktop 2.0.3。浏览器那一半只使用每一代 shell 都会静态注入的模块词,所以同一份产物在两边都能启动;0.1.1 时代的命令行 shell 与桌面版共用同一张注入表,表现应该一致,但只有上面两个目标经过测试。(0.2.2 及更早版本在命令行 0.1.5 上无法启动 —— 见 issue #4。)0.2.6 把声明的主机范围放宽到 >=0.1.0-rc.7 <0.2.1-0: 0.2.3–0.2.5 用的是 caret(^0.1.0-rc.7,后来是 ^0.1.5-rc.1),它的 0.x 上界够不到 0.2.0 这条线,于是 DSH 0.2.0-rc.2 的兼容性关卡拒绝安装或启动它们。

然后克隆、构建、安装:

git clone https://github.com/KelaoHu/dsh-lowtide
cd dsh-lowtide
pnpm install

Build the core layer first (the plugin's tests resolve its output)
pnpm --filter lowtide-core bundle
Then the plugin: host half + browser half in one pass
pnpm --filter dsh-lowtide bundle

Install into a profile — one artifact serves desktop and web
npx @deepseek-ai/dsh@0.1.5-rc.1 plugin --profile desktop add ./packages/dsh-lowtide # Desktop
npx @deepseek-ai/dsh@0.1.5-rc.1 plugin --profile web add ./packages/dsh-lowtide # Web

Start the dev instance (port 3080)
pnpm --filter dsh-lowtide dev
打开 dsh 后:你应该能在会话头部看到价格胶囊,在输入区旁边看到队列停靠栏。如果没有,看看下面的常见问题。

日常使用

三种提交任务的方式。 拦截卡片(在高峰时段输入,一键点击,草稿原样变成工单);工单弹窗(输入区旁边的「New」——提示词、策略、轮数、优先级);或者 API(POST /ds-lowtide/tasks,接入你自己的自动化流程)。

队列停靠栏里的日常。 按工作区分组,分为待处理 / 已完成 / 已丢弃。每个任务内联操作:✓ 批准,⏸ 延后,✕ 丢弃(软删除,可恢复)。「Approve all」释放全部;「clear finished」保持整洁(账本不受影响);「Run now」跳过等待,立即启动一批——调试就靠它。

时间语义。 官方高峰时段按北京时间判断(DeepSeek 按北京时间计费,账本才能对齐;周末全天非高峰)。你的自定义窗口和运行窗口按你本地时间判断,支持跨夜区间和按星期几的规则。窗口结束会停止新启动;正在运行的任务永不打断。

账本。 ledger[YYYY-MM-DD] = { yuan, savedYuan }——花费与节省,按天累计。显示的价格就是计费价格:一个公式,精确到分可审计。

配置参考

GET /ds-lowtide/config 读取;PUT 部分更新(未列出的字段会被拒绝):

| 字段 | 类型 | 默认值 | 说明 |
| autonomy | 'l1'\|'l2'\|'l3' | l2 | 自主级别;工单弹窗里可按任务覆盖 |
| batch.window | "HH:MM-HH:MM" | 19:00-23:30 | 非高峰运行窗口(本地时区);对应 batch.windows[0] |
| batch.windows | "HH:MM-HH:MM"[] | — | 多个运行窗口(1–6);每个每天跑一批。缺省 = 单个 batch.window |
| batch.tz | IANA 时区 | 系统 | 运行窗口时区(空 = 本地) |
| batch.gateLeadMin | 分钟 | 30 | 批次门控提前量 |
| batch.maxTasksPerNight | 数字 | 10 | 每批任务数上限 |
| batch.maxDurationMin | 分钟 | 240 | 单任务时长上限(超时取消 + 重试一次) |
| batch.maxConcurrency | 数字 | 3 | 最大并发 1–8(同工作区串行,跨工作区并行) |
| batch.paused | 布尔 | false | 暂停自动批处理 |
| budgetDailyYuan | ¥ | 0 | 每日预算(0 = 不限) |
| windows[] | 数组 | [] | 自定义窗口;空 = 官方高峰(北京时间) |
| windows[].level | peak\|off\|custom | — | 高峰 / 非高峰 / 自定义(非高峰价格 × 倍率) |
| windows[].start/end | "HH:MM" | — | 本地时钟,支持跨夜 |
| windows[].days | 1..7 数组 | 每天 | ISO 星期(1 = 周一 … 7 = 周日) |
| windows[].tz | IANA 时区 | 系统 | 每个窗口的时区 |
| windows[].multiplier | 数字 | 1 | 自定义窗口的非高峰价格倍率 |
| prices[model].{peak,off}.{input,inputCached,output} | ¥/1M | official | 价格表覆盖项 |

HTTP API

前缀 /ds-lowtide/,位于同源 + 回环信任围栏之后:

| 方法 | 路径 | 用途 |
| GET | /state | 聚合状态(价格 / 倒计时 / 队列 / 最新报告) |
| GET | /events | SSE 增量推送(客户端回退到 4 秒轮询) |
| GET/PUT | /config | 读取 / 写入配置 |
| POST | /tasks | 提交工单 |
| POST | /tasks/:id/approve \| defer \| drop \| cancel \| retry \| restore \| delete \| choose-candidate | 裁定与管理 |
| POST | /tasks/approve-all | 全部批准 |
| POST | /estimate | 估算:高峰 vs 低谷 |
| POST | /batch/run-now | 立即运行批次 |
| POST | /dismiss | 今天剩余时间不再拦截 |
| GET | /health | 心跳 |

权限预设

| preset | sandbox | approval |
| lt-readonly | read-only | never |
| lt-standard | workspace-write | never |
| lt-trusted | danger-full-access | never |

录入界面不提供选择——所有任务都在 lt-standard 下运行;另外两个留给 API 调用方(POST /tasks 上的 permissionPreset)。没有预检,什么都不会运行。

数据与状态

- 所有内容都持久化在 $DSH_HOME/lowtide.json(原子写入,损坏时自动回滚);设置 DSH_PROFILE 后,状态按配置档隔离。同一时间一个文件只能有一个写入者——没有配置档隔离时,不要同时运行 Desktop 和 Web。
- 每个窗口一个批次,过夜安全;空队列不会产生空报告。
- 延迟恢复:窗口开始时,预检延迟的任务自动重新入队(失败 ≥3 次后);手动延迟的任务回到待审核。

测试与 CI

pnpm --filter lowtide-core test # 44 pure-function core tests
pnpm --filter dsh-lowtide test # 124 plugin unit tests
pnpm --filter dsh-lowtide exec playwright test # e2e (needs dsh web running on :3080)

十个 e2e 规格串行运行,从双面加载冒烟测试到针对真实 API 的完整录入→裁定→运行→报告循环。仓库包含一个 GitHub Actions 工作流:每次 push / PR 都在四个环境上运行 install → build → typecheck → 完整单元测试套件。

安全

- 路由只接受回环 + 同源;不要把 3080 端口暴露到公网——用 SSH 隧道或带认证的反向代理。
- Windows 沙箱是缓解级别的;Linux/macOS 完全强制执行。无人值守使用时,叠加文件允许列表和每日预算。
- 切换到 L3 全自动会询问两次。
- 状态文件保存完整的任务提示词和路径;备份时请相应处理。
- 通过 [ 私下报告漏洞
预览分享卡片长什么样 ↓tHedlund38/dsh-lowtide
分享 · DeepSeek Harness Hub
tHedlund38/dsh-lowtide

把任务排进队列,低谷时段自动跑完并交回报告

这是你的仓库?认领条目

回到顶部