跳转到主要内容
响应式例程按事件触发,而非固定时间。适合“有事发生就执行”的场景,例如文件更新、Webhook 回调、内部事件触发。

触发类型

事件触发

可监听的内部事件包括:
事件触发时机
job.completed任意任务成功完成
job.failed任意任务进入失败状态
memory.write记忆文档创建或更新
routine.run其他例程完成一次运行
heartbeat心跳系统触发
可加过滤条件,例如仅监听 inbox/ 下写入:
{
  "trigger": {
    "type": "event",
    "event": "memory.write",
    "filter": {
      "path_prefix": "inbox/"
    }
  }
}

Webhook 触发

可暴露 HTTP 端点,收到请求即触发:
{
  "trigger": {
    "type": "webhook",
    "path": "/hooks/deploy-complete",
    "secret": "${DEPLOY_WEBHOOK_SECRET}"
  }
}
端点格式:
POST https://<your-ironclaw-host>/hooks/<path>
Authorization: Bearer <secret>
Webhook 触发配置暂未完整暴露在 Web UI,可先通过 routine_create 或聊天命令创建。

Guardrails(护栏)

护栏用于限制单次运行资源,响应式例程尤其需要护栏,因为触发频率可能不可控。
{
  "guardrails": {
    "max_tokens": 8000,
    "max_tool_calls": 20,
    "allowed_tools": ["memory_write", "memory_read", "memory_search"],
    "timeout_secs": 120,
    "rate_limit": {
      "max_runs": 10,
      "window_secs": 3600
    }
  }
}
护栏项说明
max_tokens累计 token 超限即停止
max_tool_calls工具调用次数上限
allowed_tools工具白名单(空表示不限)
timeout_secs运行超时硬终止
rate_limit.max_runs时间窗口内最大运行次数
rate_limit.window_secs限流窗口(秒)
Webhook 触发例程务必设置 rate_limit,否则外部服务误配置会导致无限触发。

执行上下文

响应式任务会收到触发事件上下文:
  • Webhook 触发:包含请求体
  • 事件触发:包含事件载荷(如任务 ID、记忆路径)
动作提示可直接引用:
action: "A job just completed: ${event.job_id}. Get the status and write a summary."