schedule-reference.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233
  1. // 定时任务的协议参考(docs/design/14-schedules.md §8),Agent API 与 Bot API 共用类型
  2. import type { ApiTypeDef } from '@agent-server/shared'
  3. export const SCHEDULE_DESC = '定时任务由 AI 在对话中创建(用户在确认卡片中确认后生效),到点时服务端把指令作为一条新消息发到同一个会话或工作组。平台可以查看、暂停、恢复和删除。'
  4. export const SCHEDULE_TYPES: ApiTypeDef[] = [
  5. {
  6. name: 'Schedule', fields: [
  7. { name: 'id', type: 'string', desc: 'sch_ 开头' },
  8. { name: 'target', type: '{ kind: "session", sessionId } | { kind: "team", teamId }', desc: '所属的会话或工作组' },
  9. { name: 'title / prompt', type: 'string', desc: '名称;到点时发出的指令' },
  10. { name: 'spec', type: 'ScheduleSpec', desc: '时间表:once(at)、daily / weekdays(time)、weekly(days、time)、monthly(day、time)、interval(hours)' },
  11. { name: 'description', type: 'string', desc: '时间表的中文描述,如"每个工作日(周一到周五)09:00"' },
  12. { name: 'timezone', type: 'string', desc: '如 Asia/Shanghai' },
  13. { name: 'status', type: '"active" | "paused" | "ended"', desc: 'ended:只执行一次的已执行' },
  14. { name: 'statusNote', type: 'string | null', desc: '自动暂停的原因(例如成本超出上限)' },
  15. { name: 'nextRunAt / lastRunAt', type: 'string | null', desc: '' },
  16. { name: 'lastOutcome', type: '"running" | "completed" | "failed" | "skipped" | "sent" | null', desc: 'sent:已发到工作组' },
  17. { name: 'runCount', type: 'number', desc: '' },
  18. { name: 'createdByBotId', type: 'string | null', desc: '工作组中创建它的机器人' },
  19. ],
  20. },
  21. {
  22. name: 'ScheduleRun', fields: [
  23. { name: 'id', type: 'number', desc: '' },
  24. { name: 'ts', type: 'string', desc: '执行时间' },
  25. { name: 'outcome', type: '"running" | "completed" | "failed" | "skipped" | "sent"', desc: '' },
  26. { name: 'runId', type: 'string | null', desc: '会话中执行时的 Run' },
  27. { name: 'costUsd', type: 'number | null', desc: '' },
  28. { name: 'note', type: 'string | null', desc: '跳过或失败的原因' },
  29. ],
  30. },
  31. ]