| name | data-fetch |
| description | 从指定数据源抓取最新数据。在用户说「拉取数据」「同步一下」或流程需要最新数据时使用。 |
| metadata | {"openclaw":{"emoji":"📥","requires":{"bins":["curl"],"env":["API_KEY"]}}} |
数据抓取(data-fetch)
从配置好的数据源(API 或网页)抓取最新数据,并可选落盘或写入 memory。
何时使用
- 用户明确要求「抓取 / 同步 / 更新数据」
- 某流程第一步要求「先获取最新数据再分析」
- 定时任务中配置的「数据同步」步骤
前提条件
- 所需二进制(如
curl、agent-browser)已安装;若 skill 声明 requires.bins,未满足时不会出现在可用列表
- API Key 或认证方式已在环境变量或
skills.entries.data-fetch.env 中配置
- 若目标为 JS 渲染页,需使用浏览器类工具而非简单 HTTP 请求
执行步骤
步骤 1:确认数据源与范围
- 从用户输入或流程上下文中确认:抓哪个源、时间范围或 ID 范围(若有)。
- 若未指定,使用默认源或默认范围(在 TOOLS.md 或本 SKILL 中说明)。
步骤 2:执行抓取
- API:用
run/exec 调用 curl 或脚本,或使用内置 HTTP 工具;注意鉴权方式(Header、Query)。
- 网页:用
agent-browser 等打开页面,等待加载完成后再提取(eval/query),不复用旧快照。
步骤 3:解析与校验
- 将响应解析为结构化数据(JSON/表格/列表)。
- 校验必要字段存在、条数或时间范围符合预期;若失败,报错并中止后续步骤。
步骤 4:输出与落盘(可选)
- 向用户或流程返回摘要(如「共 N 条」「最新一条为 …」)。
- 若流程约定要落盘:写入
data/ 或 memory/YYYY-MM-DD.md 的指定段落,路径与格式在 AGENTS.md 或 TOOLS.md 中约定。
输出
- 结构化数据或摘要回复给调用方。
- 可选:文件写入路径与命名规则(便于后续 skill 或流程读取)。
本文件为结构示例;实际使用时替换为真实数据源、工具与字段。