Skip to main content

Cron 与调度器

调度周期性 API 调用 — 按计划触发的 cron 任务,适合周期性同步与提醒。


Cron 与调度器

Cron API 让你能够调度周期性 HTTP 调用 Synapse 端点(或外部 HTTPS 端点)。非常适合周期性同步、提醒和运维任务。

端点

POST /cron

创建一个定时任务。

curl -X POST https://synapse.schaefer.zone/cron \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "schedule": "0 * * * *",
    "endpoint": "https://synapse.schaefer.zone/memory/recall",
    "method": "GET",
    "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
  }'

响应:

{
  "id": "cron_001",
  "schedule": "0 * * * *",
  "endpoint": "https://synapse.schaefer.zone/memory/recall",
  "method": "GET",
  "enabled": true,
  "next_run": "2026-06-27T13:00:00Z",
  "created_at": "2026-06-27T..."
}

GET /cron

列出所有定时任务。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/cron

DELETE /cron/:id

删除一个定时任务。

curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/cron/cron_001

PUT /cron/:id/toggle

在不删除任务的情况下启用或禁用它。

curl -X PUT -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/cron/cron_001/toggle

调度语法

标准 cron(5 字段)

┌───── 分钟 (0-59)
│ ┌───── 小时 (0-23)
│ │ ┌───── 日 (1-31)
│ │ │ ┌───── 月 (1-12)
│ │ │ │ ┌───── 星期 (0-6, 0=周日)
│ │ │ │ │
* * * * *

示例:

调度表达式 含义
0 * * * * 每小时
*/15 * * * * 每 15 分钟
0 9 * * 1-5 工作日早上 9 点
0 0 * * 0 每周日午夜
0 0 1 * * 每月 1 日午夜

整数间隔(秒)

对于简单间隔,可直接传整数:

{ "schedule": "300" }  // 每 5 分钟

端点限制

端点必须是 `http://` 或 `https://` URL,并指向:

这可以防止 SSRF 攻击 — 否则被攻破的 Mind 可能会调度请求访问内部服务。

常见模式

每小时调用一次记忆回放(供 LLM Agent 使用)

curl -X POST .../cron -d '{
  "schedule": "0 * * * *",
  "endpoint": "https://synapse.schaefer.zone/memory/recall",
  "method": "GET",
  "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'

每日备份

curl -X POST .../cron -d '{
  "schedule": "0 2 * * *",
  "endpoint": "https://synapse.schaefer.zone/memory/mind-export",
  "method": "GET",
  "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'

周期性聊天轮询(每 5 分钟)

curl -X POST .../cron -d '{
  "schedule": "300",
  "endpoint": "https://synapse.schaefer.zone/chat/poll",
  "method": "GET",
  "headers": {"Authorization": "Bearer YOUR_MIND_KEY"}
}'

周报触发

curl -X POST .../cron -d '{
  "schedule": "0 9 * * 1",
  "endpoint": "https://my-app.com/weekly-report",
  "method": "POST",
  "body": "{\"mind_id\": \"m_xyz789\"}",
  "headers": {"Content-Type": "application/json", "X-API-Key": "my-secret"}
}'

下一步