Scheduled Automation
Use this skill when the user wants the phone to do something later, every day, on specific weekdays, on workdays, or at a fixed minute interval.
Extraction Workflow
For app-centric natural-language requests, use this two-stage workflow:
- LLM extraction:
- extract
app_name - extract
operation - extract
schedule_phrase
- extract
- Rule parsing:
- let
schedule_app_taskparseschedule_phrase - convert it into
repeat,daily_time,days_of_week, orinterval_minutes
- let
- Ambiguity check:
- if
app_name,operation, orschedule_phraseis still ambiguous - let the tool return clarification questions first instead of creating the wrong task
- if
Important boundary:
- This skill is only for creating, listing, or cancelling future schedules.
- When an existing schedule fires, do not call
schedule_app_taskagain. - The saved execution instruction must be immediate and one-shot, e.g.
打开小红书,然后搜索新闻总结后发给我. - Never keep words such as
每天晚上8点,每周三,定时, or到点insideoperation; those belong only inschedule_phrase.
Example:
- user request:
每周三早上10点打开小红书搜新闻并总结 - LLM extraction:
app_name = 小红书operation = 搜新闻并总结schedule_phrase = 每周三早上10点
- rule parsing result:
repeat = weeklydays_of_week = [3]daily_time = 10:00
Typical requests:
- "每天晚上12点打开微信给张三发消息"
- "每天中午12点打开小红书搜索 AI 新闻并总结"
- "每周三早上10点打开小红书搜索 AI 新闻并总结"
- "每个工作日上午10点打开企业微信提醒我打卡"
- "每隔45分钟打开某个 App 检查一次状态"
- "明天早上8点自动打开企业微信提醒我打卡"
- "帮我定时打开某个 APP 去做某事"
- "每天晚上扫描相册并更新用户画像"
Preferred Tool
schedule_app_task
Use schedule_app_task as the high-level first choice for natural-language scheduling requests about apps and follow-up operations.
It is better than the lower-level schedule_task when the request is naturally phrased as:
- at what time
- open which app
- then do what
Recommended mapping
If the user says:
- "每天晚上12点打开微信去做 X 操作"
Prefer extracting fields first, then call:
{
"action": "create",
"task_name": "daily-wechat-task",
"app_name": "微信",
"operation": "做 X 操作",
"schedule_phrase": "每天晚上12点"
}
Tool Parameters
schedule_app_task
action:create|list|canceltask_name: task display nameapp_name: target app name, e.g.微信package_name: optional package name for higher precisionoperation: what to do after opening the appschedule_phrase: preferred natural-language schedule phrase extracted by the LLM, e.g.每周三早上10点repeat:daily|once|weekly|workday|intervaltime_text: backward-compatible alias ofschedule_phrasedays_of_week: used withrepeat=weekly, e.g.["mon", "wed"]or["周三"]interval_minutes: used withrepeat=interval, e.g.30or45run_at: one-time target timedelay_seconds: one-time delaytask_id: used when cancelling
When to fall back to schedule_task
Use lower-level schedule_task when:
- the task is not app-centric
- the user wants to schedule a generic agent instruction
- the execution target is not just "open app then do something"
- the task is a memory maintenance workflow such as gallery syncing or profile rebuilding
Example: schedule gallery memory sync
If the user says:
- "每天晚上 10 点扫描相册并更新用户画像"
Prefer using schedule_task with a clear instruction that tells the agent to use gallery_memory:
{
"action": "create",
"task_name": "daily-gallery-memory-sync",
"instruction": "使用 gallery_memory 工具同步相册中的新增图片记忆,并更新用户画像。",
"repeat": "daily",
"daily_time": "22:00"
}
Best Practices
- Prefer
schedule_app_taskfor "定时打开 App 并操作" requests. - Preserve the user's original business intent inside
operation. - If the target app is ambiguous, ask for clarification or include
package_name. - For first-time setup, remind the user to verify the task once on a real device.
- When the task is critical, suggest checking exact alarm permission and background restrictions.
- If the extracted fields still look vague, do not force task creation; let the tool ask follow-up questions first.
- Creation-time query and execution-time instruction are different: creation uses
schedule_phrase; execution must contain only the action to perform now.
Example Commands
Daily task
{
"action": "create",
"task_name": "daily-xhs-news",
"app_name": "小红书",
"operation": "搜索 AI 新闻,并总结前三条结果",
"schedule_phrase": "每天中午12点"
}
Weekly task
{
"action": "create",
"task_name": "weekly-xhs-news",
"app_name": "小红书",
"operation": "搜索 AI 新闻,并总结前三条结果",
"schedule_phrase": "每周三早上10点"
}
Workday task
{
"action": "create",
"task_name": "workday-checkin",
"app_name": "企业微信",
"operation": "提醒我打卡",
"schedule_phrase": "每个工作日上午10点"
}
Fixed interval task
{
"action": "create",
"task_name": "interval-status-check",
"app_name": "小红书",
"operation": "检查一次首页热点并总结",
"schedule_phrase": "每隔45分钟"
}
One-time task
{
"action": "create",
"task_name": "wechat-reminder-tonight",
"app_name": "微信",
"operation": "给张三发送消息:明天记得交日报",
"repeat": "once",
"delay_seconds": 600
}
Cancel task
{
"action": "cancel",
"task_id": "your-task-id"
}
Verification Hint
After creating a task, you can use schedule_app_task(action="list") to confirm:
- task exists
- next trigger time is correct
- generated instruction matches the user's intent