Skip to main content

task-and-schedule-manager

统一任务与日程管理入口。当用户说"提醒我"、"待办"、"创建任务"时,先判断谁干活,再路由到对应机制: ① 自己的活 → 滴答清单(dida-task,DIDA_ENABLED=true 时优先); ② 别人的活 → 飞书任务(lark-task); ③ Agent 的活 → schedule_create(定时任务); ④ 多阶段周期 → 时间线引擎(timelines.yaml)。 本技能同时承载定时任务管理和时间线引擎两大核心能力。

Zur Installation springen

Quellinformationen

Repository
llm011/ethan-agent
Letzte Quellaktivität
10. August 2026 um 02:54
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
8
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
6 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
task-and-schedule-manager
version
2.0.0
description
统一任务与日程管理入口。当用户说"提醒我"、"待办"、"创建任务"时,先判断谁干活,再路由到对应机制: ① 自己的活 → 滴答清单(dida-task,DIDA_ENABLED=true 时优先); ② 别人的活 → 飞书任务(lark-task); ③ Agent 的活 → schedule_create(定时任务); ④ 多阶段周期 → 时间线引擎(timelines.yaml)。 本技能同时承载定时任务管理和时间线引擎两大核心能力。
trigger
提醒我|待办|创建任务|设个提醒|记一下|帮我记|定时任务|定时提醒|每天提醒|每周提醒|周期性任务|一次性任务|分配任务|schedule|cron|时间线|timelines|绩效周期|OKR周期|季度汇报|配置周期|加节点|更新时间线|导出时间线|备份时间线|导入时间线|恢复时间线|同步时间线|时间线节点|截止日期|DDL|跳过阶段|推进阶段|暂停时间线|恢复时间线|时间信号|识别时间|电话里说|通话记录|妙记|会议纪要|到点提醒|交付提醒|巡检|例行|我的任务|看看任务
author
Ethan Agent
license
MIT
platforms
["linux","macos","windows"]
metadata
{"ethan":{"tags":["Schedule","Timeline","Task","Reminder","Automation","Routing"],"fast_path":true}}
# 任务与日程管理 (Task & Schedule Manager) **统一路由入口**——用户说任何与"任务/待办/提醒/日程"相关的话,先到这里判断路由,再分流到对应机制。 ## ⚡ 快速路由(最优先,命中即执行) 当用户说「提醒我」「待办」「创建任务」「记一下」等词时,**先判断谁干活**: | 路径 | 条件 | 去哪 | 工具 | |------|------|------|------| | **A. 自己的活** | 用户自己的待办/提醒,没有@别人 | → `dida-task` 技能 | `dida_task_create`(DIDA_ENABLED=true 时) | | **B. 别人的活** | 消息里有@某人、或"分配给XX"、"让XX做" | → `lark-task` 技能 | `lark-cli task +create` | | **C. Agent 的活** | 需要到点后 agent 自动处理(查日历、生成摘要、跑分析) | → `schedule_create` | 本技能直接执行 | | **D. 多阶段周期** | 绩效季、OKR、产品发布等多阶段编排 | → 时间线引擎 | 本技能直接执行 | ### 路由判断规则 1. **有@人名/分配语气** → 路径 B(飞书任务) 2. **需要 agent 到点干活** → 路径 C(schedule_create) 3. **多阶段周期事件** → 路径 D(时间线引擎) 4. **以上都不是,就是用户自己的待办** → 路径 A(滴答清单) 5. **不确定时** → 问用户:"需要我到点自动处理,还是只设个待办提醒你?" ### 路径 A:自己的活 → 滴答清单 用户说「记一下周五交报告」「提醒我买牛奶」「帮我加个待办」时,转交 `dida-task` 技能: 1. `skill_read dida-task` 获取详细指引 2. 按 dida-task 的快速路径执行 **快速直接调用**(不需读 skill,DIDA_ENABLED=true 时): - 创建:`dida_task_create(title, project, due_date, tags, priority, ...)` - tag 必带 `work` 或 `life` - priority 按用户偏好规则(详见 dida-task 技能「优先级判定」): - 一般任务 → `1`(低,默认) - 无关紧要/可做可不做/不确定 → `0`(不设) - 很重要、要引起重视 → `3`(中,不要太多) - 非常紧急、不做后果严重 → `5`(高,不要随便用) - 查询:`dida_task_list(keyword, tags, status, ...)` - 完成:`dida_task_complete(project, task_id)` ### 路径 B:别人的活 → 飞书任务 用户说「@张三周五前完成接口」「分配给XX」时,转交 `lark-task` 技能: 1. `skill_read lark-task` 获取详细指引 2. 按 lark-task 的快速路径执行 ### 路径 C:Agent 的活 → schedule_create 用户说「每天8点发日程摘要」「每周五自动检查进度」时,**直接调用 `schedule_create`**: 1. 从消息提取 `{job_id, title, prompt, cron/interval, scene}` 2. 调用 `schedule_create`: - `job_id`: 简短英文/拼音 - `title`: 中文标题 - `prompt`: 触发时发送的内容 - `cron`: 5 段式(min hour day month weekday),周几用 mon-sun - `category`: 一次性用 `one_off`,周期性用 `recurring` - `scene`: `work` / `life`(默认 `work`) 3. 回复确认:任务名、触发时间、所属 scene **总计最多 2 步**:提取 → schedule_create。 ### 路径 D:多阶段周期 → 时间线引擎 用户说「绩效季配置」「OKR时间线」「产品发布编排」时,见下方[时间线引擎](#场景-b时间线引擎)章节。 --- ## 🚫 禁令 - 不读 `references/` 除非用户明确要时间线引擎的高级操作 - 不读 `/app/ethan/scheduler/` 下任何源码 - 不 `knowledge_search`、不 `web_search`、不 `fd_find` - 路径 A/B 转交后由对应技能处理,本技能不再重复执行 --- ## 🎯 核心场景 C:定时任务 离散的提醒和自动化任务,通过 `schedule_create` 工具创建。 ### 创建定时任务 当用户说「提醒我明天 10 点 xxx」「每周五下午 xxx」「设个提醒」且判断为路径 C 时: 1. 从消息提取 `{job_id, title, prompt, cron/interval, scene}` 2. 调用 `schedule_create` 3. 回复确认 ### 列出定时任务 当用户说「看看定时任务」「我有哪些提醒」时,调用 `schedule_list`: - 不带参数:列出全部 - `scene=work`:只看工作场景 - `category=one_off`:只看一次性任务 ### 定时任务能力 1. **一次性任务** (`one_off`) — 执行一次后自动删除(如:明天提醒开会) 2. **周期性任务** (`recurring`) — 按 cron 重复(如:每周五发周报) 3. **scene 隔离** — 任务归属 `work`/`life` 等 scene,互不干扰 4. **筛选查询** — `schedule_list` 支持按 scene/category 筛选 **工具**: - `schedule_create` — 创建任务(参数:job_id, title, prompt, cron/interval_minutes, category, scene, end_date) - `schedule_list` — 列出任务(参数:scene, category 筛选) - `schedule_delete` — 删除任务 - `schedule_patch` — 暂停/恢复/重命名/改 prompt ### 定时信号识别(从任意内容里抠时间节点) 当对话/电话/妙记/文档/口述里出现时间节点或待办信号时(哪怕用户主要意图是别的),主动识别并列候选: 1. 抽取所有候选信号(时间表达式、解析后日期、事件、来源、置信度) 2. 列出候选清单给用户看 3. 用户回编号确认 4. 对确认的按路由规则判断走路径 A(滴答)还是路径 C(schedule) 5. 回复已创建的提醒 **必须先确认再创建**,模糊时间先问。people-kb / work-notes / team-manager 发现时间信号都转交到这条路径。详见 `references/signal-recognition.md`。 --- ## 🎯 核心场景 D:时间线引擎 声明式批量任务生成器,适合**多阶段周期事件**(绩效季、OKR、产品发布、团建筹备)。 **核心价值**(schedule_create 替代不了的): 1. **批量生成** — 一条配置 = N 阶段 × M 动作 = N×M 个任务,自动生成 2. **相对时间编排** — action 用 offset 相对锚点(`-2w`/`+1d`),改锚点全调整 3. **阶段概念** — 收集→汇总→撰写→校准→沟通,每阶段不同动作 4. **lifecycle 管理** — `skip_phase`/`advance_phase`/`pause`/`resume`/`cleanup` 5. **周期轮转** — 本周期结束自动准备下一周期,无需手动重建 ### 更新时间线节点 当用户说「更新时间线」「加个时间线节点」「截止日期是X」时: **先判断节点类型**: - **A. 绝对日期的一次性截止节点**(如「7/23 23:59 自评截止」)→ 用 `schedule_create` 建提醒(`category=one_off`) - **B. 调整时间线阶段配置**(如「把集中汇总期提前到 -3w」)→ 直接编辑 `~/.ethan/{scene}/timelines.yaml` **路径 B 步骤**:读 timelines.yaml → 改 phase/offset → 写回 → 提示「可说『同步时间线』立即生效」。 ### 使用流程 1. 编辑 `~/.ethan/{scene}/timelines.yaml`(配置 anchor + phases + actions) 2. 说「同步时间线」→ Engine 编译配置为具体定时任务 3. 生成的任务和手动创建的平等展示在时间轴上 ### lifecycle 操作 | 指令 | 效果 | |---|---| | 「跳过这个阶段」 | 跳过当前 phase 所有未触发任务 | | 「推进到下一阶段」 | 立即触发下一 phase 首个任务 | | 「暂停时间线」 | 暂停该 timeline 所有任务 | | 「恢复时间线」 | 恢复该 timeline 所有任务 | | 「清理时间线」 | 删除该 timeline 所有任务(保留 state) | 详见 `references/timeline-engine.md`。 --- ## 📁 数据存储 ### Scene 目录隔离 数据按 scene 隔离存储在 `~/.ethan/{scene}/` 下,预置 `work` 和 `life`: ``` ~/.ethan/ ├── work/ # 工作场景(默认) │ ├── timelines.yaml # 时间线配置(绩效周期、OKR 等) │ ├── .timeline_state.json # 时间线运行状态(按 scene 独立) │ └── exports/ # 导出文件 │ └── timelines-{YYYY-MM-DD}.yaml └── life/ # 生活/创业场景(与 work 完全隔离) ├── timelines.yaml # 独立时间线 ├── .timeline_state.json # 独立运行状态 └── ... ``` **Scene 隔离规则**: | 规则 | 说明 | |---|---| | 目录即 scene | `timelines.yaml` 放在哪个 scene 目录就属于哪个 scene | | 运行状态隔离 | 每个 scene 独立的 `.timeline_state.json`,互不影响 | | 预置 scene | `work` 和 `life` 首次启动自动创建 | | 其他 scene | `health`/`study`/`finance` 按需自建目录即可被发现 | | 定时任务 | `schedule_create` 创建时带 `scene` 字段,归属对应 scene | ### 定时任务的来源 定时任务有两种来源,在 UI 上平等展示: 1. **手动创建** — 通过 `schedule_create` 工具,带 `category`(one_off/recurring) 2. **时间线生成** — 由 timelines.yaml 编译而来,带 `source_timeline` 和 `source_phase` 标记 ## 🏷️ 场景标签 所有 schedule 任务都带 scene 字段(`work`/`life`/`health`/`study`/`finance`/`social`),用于隔离和筛选。详见 `references/scenes.md`。 ## 📤 导出/导入时间线 用户说「导出时间线」「备份时间线」「导入时间线」时: - **导出**:将某 scene 的 `timelines.yaml` + `.timeline_state.json` 打包为 YAML/JSON - **导入**:读取导出文件,校验格式,写入指定 scene,可选 dry_run 和 merge 模式 详见 `references/timeline-engine.md` 中「导出与迁移」章节。 ## ⚙️ 首次配置 1. `work` 和 `life` 目录首次启动自动创建 2. (可选)复制 `templates/timelines.yaml.example` → `~/.ethan/{scene}/timelines.yaml`,配置时间线 3. 开始使用——`schedule_create` 直接可用,时间线需配置 yaml 后同步 ## 🔗 关联技能 | 技能 | 联动方式 | |---|---| | `dida-task` | 路径 A——用户自己的待办转交此技能处理(DIDA_ENABLED=true) | | `lark-task` | 路径 B——@别人的任务转交此技能处理 | | `team-manager` | 时间线常用于绩效周期;委派节点提醒、群扫描、CR 周度汇总的定时任务由本技能承载 | | `people-kb` | 含人物的时间信号(生日、约饭)在这里建提醒;人物档案本身归 people-kb | | `work-notes` | 项目进展中的时间节点转交本技能做信号识别 | | `lark-im` | 定时任务触发时通过飞书发送消息 | | `lark-calendar` | 时间线可选同步到飞书日历(`sync_to_lark: true`) | ## ⚠️ 约束 - **cron 周几用名称**:APScheduler 的数字 weekday 约定与标准 cron 不同,用 `mon-sun` 而非 `1-5` - **时间线配置需校验**:导入或手动编辑 timelines.yaml 后,Engine 会校验格式(anchor 合法、offset_start <= offset_end 等) - **不越权**:Agent 不自行修改用户已确认的 DDL 或取消任务 - **路由优先**:本技能是路由入口,先判断路径再执行,不要跳过路由直接用 schedule_create
Auf GitHub ansehen