Fix missing DSH schedule tools: presets and subagents
When the model will not create a reminder, the first question is not “can the model do it?” but “does this agent have the schedule tools?” DeepSeek Harness declares the four reminder tools per preset: standard, cordis, and ptc have them; minimal does not; delegated subagents are denied. Confirm the tool is present before debugging the prompt.
DeepSeek Harness: Check the preset first
Different presets in one DSH instance expose different capabilities. Compare:(source)
| Preset | Four schedule tools | Clock context |
|---|---|---|
standard | Yes | Yes |
cordis | Yes | Yes |
ptc | Yes | Yes |
minimal | No | No |
With minimal, the model cannot see schedule_create and has no reason to know reminders exist. Switch to a preset with the tools or start a new session using standard.
After switching, do not immediately ask for a reminder; ask the model to list available tools and confirm all four names.
DeepSeek Harness: Check whether a subagent is calling
A subagent may look able to call the tool and still be rejected at the tool layer. The three presets’ delegation rows deny the four tools. Symptoms:(source)
- Main agent can create — ask in the main session. Expected: the task appears on the automation page.
- Subagent cannot create — delegate the reminder task. Expected: the subagent reports no permission or no tool.
- A constructed call is still rejected — the tool layer denies it. Expected: no silent success.
The right split: the subagent calculates timing or drafts the instruction; the main agent calls schedule_create.
DeepSeek Harness: Check the provider and time arguments
Tools present and main agent active still leaves two common causes: no model provider or invalid time arguments. Check:(source)
- Provider configured — the official docs require a model provider before asking for reminders. Expected: normal chat works.
- One-shot delay is positive integer seconds — do not pass “half an hour” as a string to the tool. Expected: a valid number.
- Fixed interval is at least one minute — shorter intervals are invalid. Expected: use the smallest allowed unit.
- Daily and weekly include an IANA zone — for example
Asia/Shanghai. Expected: do not rely on a browser guess. - Cron has five fields and a zone — not six fields, not a missing zone. Expected: normalized storage.
If the model only says “creation failed” without the tool output, ask it to paste the original error.
DeepSeek Harness: Three creation paths
Chat, page creation, and update all land on the same task data, but they fail in different layers. Compare:(source)
- Main-session chat — the model calls
schedule_create. Expected: most direct, but depends on preset and provider. - Automation page “New” — opens a session with the request prefilled. Expected: good for manually specifying a frequency.
schedule_updateon an existing task — keeps the ID and delivery records. Expected: good for adjusting a known reminder.
If chat fails but the page succeeds, the problem is the agent preset or tool declaration, not the Schedule service.
DeepSeek Harness: Reverse-check from the page
A working page does not mean a working agent; separate “service” from “agent”. Steps:(source)
- Create a reminder on the page — complete the flow from “New”. Expected: the task saves, proving the service works.
- List tools in the target session — ask the main agent for the four names. Expected: the missing name identifies the preset problem.
- Check the preset name — standard, cordis, ptc, or minimal. Expected: match the matrix.
- Switch presets and retry — start a standard session and create again. Expected: success confirms the original preset lacked the tool.
If the page also cannot create, the service layer is the problem. If the page works but chat does not, inspect the agent preset and delegation.
DeepSeek Harness: Three requests to try verbatim
Use the simplest requests first to rule out phrasing. Three:(source)
- One-shot — “Remind me to check the build in 3 minutes.” Expected:
schedule_createruns and the task appears. - Daily — “Remind me every day at 23:00 Asia/Shanghai to check the weather.” Expected: a daily rule with an explicit zone, not a one-shot.
- List — “List all current reminders.” Expected:
schedule_listreturns active tasks only.
If the first works and the second fails, the problem is time-zone or frequency arguments. If all three fail, return to the preset and tool declaration.
A verification sequence
Check tool presence → caller → arguments → delivery; do not skip steps. Sequence:
- List tools — confirm the four schedule names in the main agent. Expected: all present.
- Create a one-shot — ask for a reminder a few minutes out. Expected: the page shows the task.
- Check state — the task is active, not already not-running. Expected: it can be scheduled.
- Wait for delivery — the original conversation inbox receives a follow-up. Expected: the record proves inbox persistence, not model completion.
If step 1 fails, return to the preset. If step 2 fails, inspect arguments. If step 4 fails, check whether the host is running; scheduling stops with the host.
DeepSeek Harness FAQ
Does an accessible page mean the tools are present? No. The page only proves the Web profile includes Schedule. Tool exposure depends on the agent preset.
Can I add the tools to the minimal preset? You can change the preset declaration, but that is a configuration-layer change. Switching to standard or cordis is simpler.
Is “no permission” from a subagent a bug? No. The delegation rows deny the four tools by design. Let the main agent create the reminder.
The short version: check “is the tool present”, then “who is calling”, then “are the arguments valid”; reversing the order makes you debug the wrong layer.
FAQ
DeepSeek Harness: check the agent preset. standard, cordis, and ptc declare schedule_create, schedule_list, schedule_update, and schedule_delete plus clock context. minimal declares neither, so the model cannot see or create reminders.
DeepSeek Harness: no. The delegation rows in the three presets deny the four schedule tools. A call that reaches the tool layer is still rejected. The main agent should create reminders; a subagent can calculate timing or draft text.
DeepSeek Harness: check the frequency rules: one-shot delays use positive integer seconds, fixed intervals are at least one minute, daily and weekly rules need IANA zones, and cron uses five fields with an explicit zone. Nonexistent local times are skipped; absolute requests reject them.
DeepSeek Harness: the page only proves the Web profile includes Schedule. It does not prove the current agent preset declares the tools. Confirm the preset and the model provider before asking again.
DeepSeek Harness: reminders that exist only in an old session log are not scheduled automatically. Recreate the ones you still need; deleted task records are not rebuilt.
Related Terms
- schedule_create
- schedule_create is the DeepSeek Harness reminder creation tool exposed by standard, cordis, and ptc. minimal does not declare it, and delegated subagents are denied it.— DeepSeek Harness docs - Schedule reminders
- minimal preset
- The minimal preset is the lean DeepSeek Harness agent preset. It declares neither the four schedule tools nor the clock context that supplies current time and browser time zone.— DeepSeek Harness docs - Schedule reminders
- clock context
- Clock context is the current time and browser time zone supplied to the model. standard, cordis, and ptc declare it, helping the model turn natural-language times into reminder rules.— DeepSeek Harness docs - Schedule reminders
- automation task page
- The automation task page is the DeepSeek Harness Web UI view for reminders across sessions. It can view, filter, edit, and delete tasks and show recent delivery records.— DeepSeek Harness docs - Schedule reminders
Sources
- DeepSeek Harness docs - Schedule reminders· deepseek-ai
- DeepSeek Harness reference - Permission presets· deepseek-ai