教程DeepSeek Harness

DeepSeek Harness 的自动化:定时提醒怎么建,GitHub 有新 PR 自动开评审

按 DeepSeek Harness 官方文档整理两种自动化:在对话里让它建定时提醒,到点自己把任务发回原来的会话;配一个 GitHub Webhook,PR 转为可评审时自动开一个只读的评审会话。讲清怎么开启、支持哪些时间规则、关掉程序会怎样,以及发送记录不等于执行结果。

发布 · 约 7 分钟读完 · 经人工审核()· 本站的内容怎么来的

本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。

本页目录(4 节)
  1. 定时提醒
  2. GitHub 评审会话
  3. 常见问题
  4. 相关文章

DeepSeek Harness 有两种让它“自己动起来”的办法:

办法 什么时候触发 难度
定时提醒 到了你定的时间 在对话里说一句就行
GitHub 评审会话 仓库里的 PR 从草稿转为可评审 要配 Webhook 和反向代理,偏运维

多数人用得上的是第一种,先讲它。

还没装的,先看DeepSeek Harness 安装和上手。

定时提醒

先打开“自动化任务”

官方文档说明,发布的网页版默认不带这个功能。打开侧栏的 插件 页,在“官方”分组里启用 自动化任务。

它在官方页面上标着“实验性”。按 0.2.1-alpha.1 的版本说明,自动化任务已经改成网页版的内置能力,不过提醒工具只在标准、创造和 PTC 这几种模式下可用,极简模式和子代理里没有。你的版本里入口在哪,以界面为准。

另外要先配好模型,见安装和上手里“配置模型”一节。

用一句话创建

直接对它说就行,比如官方文档里的例子:

每天 Asia/Shanghai 时区 23:00 提醒我查看天气。

它会调用创建提醒的工具。之后想看有哪些提醒、改时间、删掉,也都可以直接说。

也可以从 自动化任务 页面点“新建”,它会开一个新会话,输入框里已经替你写好了请求。

支持哪些时间规则

官方文档列出的:

规则 例子 说明
过一段时间后,一次 30 分钟后 以秒为单位的延迟
指定的日期时间,一次 10 月 12 日 9:00
固定间隔,重复 每 2 小时 最短一分钟
每天 每天 23:00 要带时区
每周 每周一、周五 9:00 要带时区
cron 表达式 0 9 * * 1-5 五段式,要带时区

把时区说清楚。 官方文档说明,浏览器会提供它的时区来理解“每天 9 点”这样的说法,但明确写出时区可以避免歧义。在国内就写 Asia/Shanghai。

建完检查一遍。 官方的建议是打开自动化任务页面,选中刚建的提醒,看“频率”显示的是不是你要的规则和时区,而不是“仅一次”。

到点之后发生什么

这一点和手机上的提醒不一样,要先弄明白:

  • 提醒到期时,它会恢复原来那个会话,把这条指令作为后续消息排进去,不会打断那个会话里正在做的事。
  • 同一个会话里同时到期的几个重复任务,可能合成一条消息。
  • 官方写明,不支持每次运行新开一个会话。所以一个每天执行的任务,所有的执行都累积在同一个会话里。

关掉程序会怎样

官方文档的说法:

  • 会话没有打开,提醒照样保存着。
  • 程序关掉之后,调度就停了,直到再次启动。
  • 重新启动后,它会检查存着的任务:过期的一次性提醒会补发;重复的任务,每条只补最近错过的那一次。

所以想让它每天按时跑,程序要一直开着。桌面应用关掉窗口只是隐藏,不影响;真正退出就不跑了。电脑休眠时的情况官方没有写。

发送记录不等于执行结果

在自动化任务页面选一个任务,可以看“规则”和“发送记录”。官方文档对发送记录的定义要看清楚:

已保存的发送记录确认消息已持久化到对话收件箱,不表示模型完成了所请求的工作。

也就是说,记录里有一条,只说明“到点了、指令发进会话了”。它做没做、做得对不对,要点进原来的会话去看。

官方还写明了两个边界:

  • 不保证恰好投递一次。 极端情况下(比如刚发完就崩溃)可能重复发。
  • 它不是外部通知渠道。 不会给你发邮件、推送或者短信,结果只出现在会话里。

管理和修改

在自动化任务页面可以:

  • 按名称、指令搜索,按“全部、已开启、未运行”筛选;
  • 修改活动任务的名称、指令和运行时间,改完点“保存更改”;
  • 删除任务。删除会停止以后的投递,并把这个任务和它的发送记录一起删掉,但不会删除原来的会话。

一次性的提醒发出后会变成“未运行”,仍然留在列表里,直到你删掉它。官方提醒,对话顶部的列表和模型自己列出来的只包含活动的提醒,所以在那里看不到不代表任务被删了。

官方写明不支持暂停。想临时停一个任务,只能删掉,要用时再建。

适合拿它做什么

下面是我们的看法,不是官方的建议:

  • 适合:每天整理一次某个目录下的记录、每周生成一份周报、到点提醒自己看某件事。
  • 不适合:要求严格准点、不能漏也不能重复的事;需要发到手机或邮箱的通知。

另外别忘了权限。定时任务在原来的会话里跑,用的是那个会话的权限。一个会自己定时运行的会话,权限给多大要想清楚,见DeepSeek Harness 的权限怎么设。

GitHub 评审会话

这一部分偏运维,需要一台能被 GitHub 访问到的机器。只是自己本机用的,可以跳过。

它做什么

官方文档的描述:给 dsh web 加一个带签名校验的 GitHub 端点。配置好的仓库里有 PR 从草稿转为可评审(ready for review)时,它会在这个仓库对应的工作区下面开一个带标题的会话,启动一段只读的评审提示词。

官方的规则里写得很明确:这个会话用的是只读的权限预设,提示词里禁止它修改文件、分支、PR 或者 GitHub 上的状态。它只是看代码、写评审意见。

需要准备什么

官方列的前置条件:

  • 一个本地的代码检出,可以注册成工作区;
  • 一个强度足够的 Webhook 密钥,通过环境变量 DSH_GITHUB_WEBHOOK_SECRET 提供;
  • 一个带 TLS 的反向代理或隧道,把一个公网地址转到本机的监听端口;
  • GitHub 上的 Webhook 订阅 Pull requests 事件,内容类型选 application/json。

启动

生成密钥,之后重启也要用同一个值:

export DSH_GITHUB_WEBHOOK_SECRET="$(openssl rand -hex 32)"

官方把这个功能做成了一份可选的配置,启动时用 --patch 带上:

dsh web --patch /absolute/path/to/github-review/cordis.yml

这份配置在官方仓库的 apps/cli/config/examples/github-review/ 目录下。默认用启动时所在的目录当工作区,监听 127.0.0.1:3081,可以用 DSH_GITHUB_REVIEW_WORKSPACE 和 DSH_GITHUB_WEBHOOK_PORT 改。

只暴露那一个端口

这是最需要小心的地方。官方文档说明:主界面和它的接口仍然在 3080 端口;这份配置另外开了第二个服务,上面只有 POST /github 这一个路径,别的路径都返回 404。

反向代理应该只把 /github 转给 3081,不要顺手把 3080 端口的主界面也暴露到公网。主界面能让它在你的机器上执行命令,要对外发布的话官方另有一篇专门的说明。官方给的 Caddy 配置正是只转这一个路径的写法。

GitHub 上这样填:

项目 填什么
Payload URL https://你的域名/github
Content type application/json
Secret DSH_GITHUB_WEBHOOK_SECRET 的值
Events Pull requests

要知道的边界

官方文档对它的可靠性说得很保守:

  • 返回 202 只说明收到了。 签名和 JSON 通过了校验、规则已经安排执行,不代表规则匹配上了,更不代表会话已经建好。
  • 不记录投递状态。 GitHub 重复投递同一个事件,就可能再开一个会话。进程崩溃会丢掉还没开始处理的那一次。
  • 默认的规则只认官方自己的仓库。 示例里写死了仓库名,要用在自己的仓库上得改规则文件。规则是一段普通的 JavaScript,官方给了按仓库映射到不同本地目录的写法。
  • 密钥只管进来的数据。 它验证的是 GitHub 发来的请求,不会让规则或者智能体有权限去操作 GitHub。想让它把评审意见发回 PR,要另外配置。

最后一条意味着,按默认配置它只会把评审写在自己的会话里,你要到网页界面上去看。

常见问题

现象 原因和办法
找不到自动化任务页面 在插件页的官方分组里启用“自动化任务”
建的每日提醒变成了“仅一次” 它理解错了。在自动化任务页面改成每天,或者删掉重建,把时区写明
到点没有执行 程序是不是退出了。调度只在程序运行时进行
发送记录有,但事情没做 发送记录只表示指令发进了会话。到原会话里看它做了什么
重启后一下子收到好几条 过期的一次性提醒和每个重复任务错过的最近一次会补发
在对话里看不到某个提醒 一次性提醒发出后变为未运行,只在自动化任务页面的“全部”或“未运行”里
Webhook 返回 202 但没有新会话 202 只表示收到。检查事件是不是“转为可评审”、仓库名和规则里的是否一致
同一个 PR 开了两个评审会话 GitHub 重复投递了。它不做去重

相关文章

来源

通过 API 中转站使用这些模型?到 Veridrop 免费检测中转站给你的是不是它声称的模型,或者看看中转站排行榜前 100 名。

相关文章

  • 从 Claude Code、Codex 过来:DeepSeek Harness 认哪些现成的配置教程 · DeepSeek Harness · 约 10 分钟

    按 DeepSeek Harness 官方文档整理:项目里的 AGENTS.md 和 CLAUDE.md 默认就读;技能要放在 .agents/skills;Claude Code、Codex 的钩子有实验性桥接,只支持部分事件;模组兼容层只是演示;还能把 Claude Code、Codex 当子智能体调用。

  • DeepSeek Harness 的插件:怎么装、怎么关,让它自己写一个教程 · DeepSeek Harness · 约 8 分钟

    按 DeepSeek Harness 官方文档整理:插件页上的官方插件、实验性插件和第三方插件各是什么,怎么从包名、Git 仓库或本地目录安装,安装源怎么选,装完为什么还要点启用,以及用“创造模式”让它自己写一个插件。也讲清装插件的风险:插件的代码不受工作区沙箱限制。

  • DeepSeek Harness 的命令行用法:一条命令跑完一个任务,接进脚本和 Python 程序教程 · DeepSeek Harness · 约 6 分钟

    按 DeepSeek Harness 官方文档整理:除了桌面和网页界面,dsh 还能在命令行里一次跑完一个任务就退出,适合放进脚本和 CI;也能用 Python SDK 从自己的程序里调用。讲清 headless 模式的输入输出、退出码、JSON 事件流、怎么接着上一段对话,以及 SDK 的最小例子。

  • 给 DeepSeek Harness 加记忆:用 MCP 接记忆服务,也接别的 MCP 服务器教程 · DeepSeek Harness · 约 7 分钟

    按 DeepSeek Harness 官方文档整理:它自己不带跨会话的记忆,官方给了三份默认关闭的参考配置,通过 MCP 接上第三方的记忆服务。讲清它负责什么不负责什么、三种服务怎么选怎么装、怎么验证新会话里真的记得,以及用同样的写法接任何别的 MCP 服务器。