Built-ins
task Plugin
task 定义、task actions,以及归属于 plugin 实例的 cron trigger runtime
task Plugin
task 是任务运行时 plugin。
它主要持有:
- task 相关 actions
- task system text
- 每个 plugin 实例一套 cron trigger engine
主要形状
lifecycleactionssystem
它主要解决什么问题
当你需要这些能力时,应该关注 task:
- task 定义和变更
- cron 触发的 task 执行
- task 变更后的 scheduler reload
用户怎么使用
CLI 通过统一 Plugin Action 命令调用 task:
city plugin action task list <agent_id> --input '{}' --token <token>
city plugin action task run <agent_id> --input '{"title":"daily-summary","reason":"manual check"}' --token <token>如果一件事应该长期存在、可编辑、可手动重跑,使用 task Plugin,而不是建立另一个顶层 CLI 特例。
SDK 装配
TaskPlugin 只需要可选时区配置。agent task 直接使用任务绑定 Session 的有效模型(Session 优先、Agent 兜底)。cron 默认采用当前运行机器的本机时区:
import { TaskPlugin } from "@downcity/plugins/task";
const plugin = new TaskPlugin({
timezone: "Asia/Shanghai",
});timezone 主要影响 cron 表达式。time:<ISO8601-with-timezone> 这种一次性任务以 ISO 字符串自身的时区 offset 为准。
SDK action 用法
await agent.plugins.run_action({
plugin: "task",
action: "run",
payload: {
title: "daily-summary",
reason: "manual check",
},
});action 名称是 list、create、run、delete、update、status、enable、disable。
关键语义
- 长期 cron runtime 归属于 plugin 实例
- cron 时区来自 constructor
timezone,默认本机时区 - agent task 通过 PluginContext 的 Session runtime port 读取有效模型实例
- create / update / delete / status 变更后会触发 scheduler reload
- task 运行中锁归属于 plugin 实例,reload 时也会保持同一 task 串行执行
- plugin 也支持 reload / reschedule 这类 lifecycle command
公开性说明
TaskPlugin 从 @downcity/plugins 包根导出。它可以在 SDK 中直接装配;CLI 使用统一的 city plugin action 调用它。