--- name: agenticx-automation-crontask description: Build and maintain Near Desktop scheduled (cron) tasks — default workspace ~/.agenticx/crontask, schedule_task tool, execution contract, and user-facing output. Use when the user wants recurring automation, crontab-style jobs, or to author/fix automation task prompts. metadata: author: AgenticX version: "0.1.2" --- # AgenticX 定时任务(Crontask) ## 任务根目录(工程约定,与 Desktop / `schedule_task` 一致) | 用户在自动化里是否填写「工作区」 | 任务根目录 | |----------------------------------|------------| | **填写了** | 用户给定目录(Desktop 会 `mkdir`) | | **留空** | `~/.agenticx/crontask//`(**每个定时任务独占一个子目录**,与 `automation:` 对话一一对应) | - **Python venv**:一律在任务根下 **`<任务根>/.venv`**,用 `<任务根>/.venv/bin/pip` / `python`;不要把定时任务专属依赖装到仓库 `.venv` 或任意路径,除非该路径就是用户指定的任务根。 - **脚本、数据、日志、临时文件、辅助工具**:**全部**放在任务根或其子目录内;不要在 `~/.agenticx/scripts`、仓库根等散落(除非用户显式把其中某路径设为任务根)。 ## Meta-Agent:调用 `schedule_task` 之前(运行环境) 定时任务**以后**在 **automation 专属会话**里执行,不会在当时的 Near 对话里自动装包。在调用 `schedule_task` **之前**应代用户准备好任务根下的环境: 1. 先拿到 **任务根**:用户指定的 `workspace`,或创建任务后默认的 `~/.agenticx/crontask//`(`schedule_task` 返回的 `task_id` 可用于路径)。 2. 在任务根下 **`python3 -m venv .venv`**(若尚无),**`.venv/bin/pip install …`**。 3. **`bash_exec` 用 `<任务根>/.venv/bin/python` 试跑脚本**,确认无 import 错误。 4. `instruction` 里的命令必须与 **同一解释器路径** 一致。 ## 默认工作区(摘要) - 未指定 `workspace` 时,Desktop 与 `schedule_task` 均写入 **`~/.agenticx/crontask/`** 并创建目录。 - 删除任务时,UI 会**二次确认**是否同时删除该目录下的本地文件(仅针对上述 crontask 子目录,不随意删除用户任意路径)。 ## 用 `schedule_task` 创建任务(对话 / Meta-Agent) 在 `instruction`(提示词)里写清: 1. **何时跑**:已在工具参数里用 `frequency_type` / `time` / `days` 表达;提示词内可再写一句业务语义(如「交易日 9:28」)便于人读。 2. **怎么跑**:必须要求 **真实执行**(如 `bash_exec` + `python3`),禁止「只给代码不运行」。 3. **输出格式**:给出**严格版式**(标题、字段、单位),并写明「最终回复只允许该版式,禁止工具 JSON」。 4. **失败**:简短错误(接口/库/网络),不超过若干行,不要教程、不要反问。 5. **依赖**:写明 `pip install` 包名;执行环境以本机为准。 可选参数 `workspace`:仅当用户明确要求固定目录时填写;否则留空使用默认 crontask 目录。 ## 任务执行时(automation 会话) 会话 `avatar_id` 为 `automation:` 时,后端会注入执行器系统提示,强调: - 先工具执行、再按用户版式输出; - 不在最终回复粘贴 `schedule_task` 等原始 JSON; - 失败简短说明。 编写或审阅提示词时,应与此行为一致。 ## 验收清单 - [ ] 提示词是否要求**实际跑命令**并得到数据? - [ ] 是否定义了**唯一允许的输出模板**? - [ ] 是否说明**非交易日 / 无数据**时的单行或短输出? - [ ] 是否需要**默认 crontask 路径**下的脚本文件(便于复跑与排障)?