DeepSeek Harness 模型不创建提醒?schedule 工具缺失与 preset 限制
模型不创建提醒,最常见的不是“模型不会”,而是“这个 Agent 根本没有 schedule 工具”。 DeepSeek Harness 把四个提醒工具按 preset 声明:standard、cordis、ptc 有,minimal 没有;被委派的子 Agent 也被 deny。先确认工具在不在,再谈模型会不会用。
DeepSeek Harness:先查 preset
同一个 DSH 实例里,不同 preset 的 Agent 能力不同;工具缺失先看这一层。 对照:(来源)
| preset | schedule 四工具 | 时钟上下文 |
|---|---|---|
standard | 有 | 有 |
cordis | 有 | 有 |
ptc | 有 | 有 |
minimal | 无 | 无 |
如果当前会话用的是 minimal,模型看不到 schedule_create,也不会凭空知道有提醒功能。切换到带工具的 preset,或新建一个使用 standard 的会话。
切换后别急着让模型创建;先让它列一下可用工具,确认四个名字都在。
DeepSeek Harness:再看是不是子代理
子代理即使“看起来能调用”,也会在工具层被拒绝。 官方说明三个 preset 的委派行已经 deny 了这四个工具。表现为:(来源)
- 主 Agent 能创建 — 直接在主会话里请求提醒。预期:任务出现在自动化任务页。
- 子 Agent 不能创建 — 把提醒任务委派给子 Agent。预期:子 Agent 说没有权限或工具不可用。
- 调用到达也被拒 — 即使构造了调用,工具层仍拒绝。预期:不会悄悄创建成功。
正确分工是:子 Agent 负责算时间、写提醒文案,主 Agent 负责真正调用 schedule_create。
DeepSeek Harness:再看 provider 与时间参数
工具在、主 Agent 也在,仍失败时,问题通常在模型 provider 或时间约束。 检查:(来源)
- provider 已配置 — 官方要求先配置模型 provider,再请求创建提醒。预期:普通对话能正常返回。
- 一次性延迟是正整数秒 — 不要传“半小时”这种字符串给工具。预期:数值合法。
- 固定间隔至少一分钟 — 低于一分钟的间隔不合法。预期:按最小单位填写。
- 每日/每周带 IANA 时区 — 例如
Asia/Shanghai。预期:不依赖浏览器时区猜测。 - cron 是五字段且带时区 — 不是六字段,也不是省略时区。预期:表达式被规范化保存。
时间参数错误通常会有明确报错;如果模型只说“创建失败”而不带原因,让它把工具返回原文贴出来。
DeepSeek Harness:三种创建路径
对话、页面、更新,三条路径都能落地,但排查时要分清入口。 对比如下:(来源)
- 主会话对话创建 — 让模型调用
schedule_create。预期:最直接,但依赖 preset 与 provider。 - 自动化任务页“新建” — 打开一个新会话,composer 已写好请求。预期:适合手工指定频率。
- 对已有任务
schedule_update— 原地改时间或指令,保留 id 与投递记录。预期:适合调整已验证的提醒。
如果对话路径失败但页面路径成功,问题多半在 Agent 的 preset 或工具声明,而不是 Schedule 服务本身。
DeepSeek Harness:从页面反查 preset
页面能用不代表当前会话能用,反查时要把“服务”和“Agent”分开。 步骤:(来源)
- 在页面新建一个提醒 — 用“新建”走一遍完整流程。预期:任务能保存,说明 Schedule 服务正常。
- 回到目标会话列工具 — 让主 Agent 列出 schedule 四工具。预期:缺哪个就知道是 preset 声明问题。
- 核对 preset 名称 — 看当前会话用的是 standard、cordis、ptc 还是 minimal。预期:与工具矩阵对上。
- 换 preset 重试 — 新建一个 standard 会话再创建。预期:能成功即确认原 preset 不含工具。
如果页面也不能新建,问题在服务层;如果页面能、会话不能,问题在 Agent 的 preset 或委派限制。
反查时把“预设名称”记下来,后面换 preset 重试才有对照;只凭界面记忆容易把 cordis 和 standard 搞混。
DeepSeek Harness:一套验证顺序
按“工具在不在 → 谁在调用 → 参数对不对 → 有没有投递”四步验证,别跳步。 步骤:(来源)
- 列工具 — 让主 Agent 列出可用工具,确认四个 schedule 名字。预期:都在。
- 建一次性提醒 — 让主 Agent 建“几分钟后”的提醒。预期:自动化任务页出现任务。
- 看状态 — 确认任务是“已开启”,不是“未运行”。预期:能参与调度。
- 等投递 — 到点后看原会话收件箱。预期:收到 follow-up;记录只证明消息进了收件箱,不证明模型完成工作。
如果第 1 步就失败,回到 preset;第 2 步失败看参数;第 4 步失败看宿主是否在运行。宿主停止时调度也停止,这是正常边界。
三条可直接照说的请求
排查时用最简单的请求,先排除模型表达问题。 三条:
- 一次性 — “3 分钟后提醒我检查构建结果。”预期:调用
schedule_create,任务出现在自动化任务页。 - 每日 — “每天 Asia/Shanghai 23:00 提醒我查看天气。”预期:保存每日规则与显式时区,不只是一次性任务。
- 列出 — “列出当前所有提醒。”预期:调用
schedule_list,只显示活动任务。
如果第一条能成功、第二条失败,问题在时区或频率参数;如果三条都失败,回到 preset 与工具声明。
DeepSeek Harness 常见问题
Q:页面能打开,是不是就说明工具一定有? 不是。页面存在只说明 Web profile 带 Schedule 服务;工具是否暴露给某个 Agent,取决于它的 preset。
Q:能不能给 minimal preset 手动加工具? 可以改 preset 声明,但这属于配置层改动;更简单的做法是换用 standard 或 cordis。
Q:子代理说“没有权限”是 bug 吗? 不是。委派行明确 deny 了四个工具,这是设计边界。让主 Agent 执行创建即可。
一句话收束: 提醒创建失败先查“工具在不在”,再查“谁在调用”,最后才查时间参数;顺序反了,会在错误的一层反复试。
常见问题
DeepSeek Harness 里,先看 Agent 用的 preset。standard、cordis、ptc 声明 schedule_create、schedule_list、schedule_update、schedule_delete 四个工具和时钟上下文;minimal 两者都不声明,所以模型看不到也不会创建提醒。
DeepSeek Harness 里,不能。三个 preset 的委派行已经把四个 schedule 工具 deny 掉;即使某个调用仍能到达工具,也会被拒绝。提醒应由主 Agent 创建,子代理只负责返回建议或内容。
DeepSeek Harness 里,检查频率约束:一次性延迟要正整数秒,固定间隔至少一分钟,每日/每周要带 IANA 时区,cron 必须是显式带时区的五字段表达式。不存在的本地时间会被跳过,绝对时间请求会被拒绝。
DeepSeek Harness 里,页面存在只说明 Web profile 带 Schedule 服务,不代表当前 Agent 的 preset 声明了工具。回到会话确认 preset,并确认模型 provider 已配置;两条都满足再让模型创建。
DeepSeek Harness 里,只记录在旧 Session 日志里的提醒不会自动调度。官方说明需要重新创建仍需要的提醒;已删除的任务记录也不会被重建。
相关术语
- schedule_create
- schedule_create 是 DeepSeek Harness 的提醒创建工具,只有 standard、cordis、ptc 三个 preset 声明;minimal 不声明,子代理也被 deny。— DeepSeek Harness 官方文档 - Schedule 提醒
- minimal preset
- minimal preset 是 DeepSeek Harness 的极简 Agent 预设,不声明 schedule 四工具,也不声明把当前时间与浏览器时区交给模型的时钟上下文。— DeepSeek Harness 官方文档 - Schedule 提醒
- 时钟上下文
- 时钟上下文是 DeepSeek Harness 提供给模型的当前时间与浏览器时区信息,standard、cordis、ptc 会声明它,帮助模型把自然语言时间转成提醒规则。— DeepSeek Harness 官方文档 - Schedule 提醒
- 自动化任务页
- 自动化任务页是 DeepSeek Harness Web UI 中管理提醒的页面,可跨 Session 查看、筛选、编辑和删除任务,并查看最近发送记录。— DeepSeek Harness 官方文档 - Schedule 提醒
来源
- DeepSeek Harness 官方文档 - Schedule 提醒· deepseek-ai
- DeepSeek Harness 官方参考 - 智能体预设· deepseek-ai