OpenClaw人人养虾:轮询 (Polls)

张开发
2026/5/30 3:50:31 15 分钟阅读
OpenClaw人人养虾:轮询 (Polls)
轮询 (Polls) - 周期性数据拉取Polls轮询是 OpenClaw 提供的周期性数据拉取机制。与时间驱动的 Cron 不同Polls 是一种 Pull-Based拉取式检查模式——每隔固定间隔主动检查外部数据源是否有新数据或变更有变更时触发 Agent智能体处理。基本概念轮询的核心工作流程┌─────────┐ 间隔触发 ┌──────────┐ 有变更? ┌─────────────┐ │ Timer │ ──────────── │ Check │ ──── Yes ── │ Agent 处理 │ │ 定时器 │ │ 数据源 │ │ 执行动作 │ └─────────┘ └──────────┘ └─────────────┘ │ No │ ▼ 等待下一轮Polls vs CronCron时间驱动到点执行不关心是否有新数据Polls数据驱动周期性检查仅在数据变更时触发操作适用场景场景说明推荐间隔邮件监控检查邮箱是否有新邮件到达60s - 300sRSS 订阅检查 RSS FeedRSS 订阅源是否有新文章300s - 900sAPI 变更追踪监控第三方 API 数据是否发生变化60s - 600s文件系统监控检查目录中是否有新文件出现10s - 60s数据库变更轮询数据库表的最新记录30s - 300s配置在openclaw.json中配置 Polls{ polls: { enabled: true, entries: { email-checker: { enabled: true, interval: 120000, source: { type: imap, host: imap.example.com, port: 993, ssl: true, folder: INBOX }, filter: { unseen: true, since: auto }, action: { message: 检查到新邮件请处理{subject}, session: isolated } }, rss-monitor: { enabled: true, interval: 600000, source: { type: rss, url: https://example.com/feed.xml }, action: { message: RSS 有新文章{title}, delivery: announce } } } } }配置字段说明字段类型说明enabledboolean是否启用此 Pollintervalnumber轮询间隔毫秒sourceobject数据源配置filterobject数据过滤规则actionobject变更触发时的动作数据源类型 (Source Types)IMAP 邮件{ type: imap, host: imap.example.com, port: 993, ssl: true, username: ${IMAP_USER}, password: ${IMAP_PASS}, folder: INBOX }RSS / Atom Feed{ type: rss, url: https://example.com/feed.xml, maxItems: 10 }HTTP API{ type: http, url: https://api.example.com/latest, method: GET, headers: { Authorization: Bearer ${API_TOKEN} }, diffField: data.updated_at }文件系统{ type: filesystem, path: /data/incoming/, pattern: *.csv, event: created }CLI 命令# 查看所有 Polls openclaw polls list # 手动触发一次轮询 openclaw polls run --name email-checker # 查看轮询历史 openclaw polls history --name email-checker --limit 20 # 启用/禁用 openclaw polls enable rss-monitor openclaw polls disable rss-monitor状态管理每个 Poll 维护一个 State状态用于记录上次检查的位置避免重复处理{ lastCheck: 2026-03-05T10:00:00Z, lastId: msg-12345, cursor: eyJwYWdlIjogMn0 }状态文件存储在~/.openclaw/polls/state/目录下。状态重置如需从头重新拉取数据可手动删除状态文件或使用命令openclaw polls reset --name email-checker与 Agent 的集成当 Poll 检测到变更时会将数据封装为事件发送给 Agent// Poll 触发 Agent 时的上下文 interface PollEvent { pollName: string; source: string; data: any[]; // 变更的数据列表 timestamp: number; metadata: Recordstring, any; }Agent 可以根据数据内容执行不同操作如回复邮件、生成摘要、转发通知等。最佳实践开发建议合理设置间隔间隔太短增加数据源压力太长可能错过时效性数据使用增量查询利用since、cursor等参数只拉取新数据处理去重配合lastId状态确保同一条数据不被重复处理设置超时为 HTTP 数据源设置合理的请求超时时间错误容忍单次拉取失败不应中断后续轮询《AI提示工程必知必会》为读者提供了丰富的AI提示工程知识与实战技能。《AI提示工程必知必会》主要内容包括各类提示词的应用如问答式、指令式、状态类、建议式、安全类和感谢类提示词以及如何通过实战演练掌握提示词的使用技巧使用提示词进行文本摘要、改写重述、语法纠错、机器翻译等语言处理任务以及在数据挖掘、程序开发等领域的应用AI在绘画创作上的应用百度文心一言和阿里通义大模型这两大智能平台的特性与功能以及市场调研中提示词的实战应用。通过阅读《AI提示工程必知必会》读者可掌握如何有效利用AI提示工程提升工作效率创新工作流程并在职场中脱颖而出。

更多文章