用途
该技能用于为 Apify Actor 生成输出 schema 文件,使 Apify Console 能够正确展示运行结果。它会分析 Actor 的源代码,创建 dataset_schema.json、output_schema.json 和 key_value_store_schema.json(如果 Actor 使用键值存储),并更新 actor.json。
主要能力
- 分析 Actor 源代码,识别实际推送到数据集和键值存储的数据字段。
- 生成 dataset_schema.json,包含所有输出字段定义和展示视图。
- 生成 key_value_store_schema.json,定义键值存储集合(如适用)。
- 生成 output_schema.json,告知 Apify Console 结果位置。
- 更新 actor.json,将 schema 文件接入 Actor 配置。
- 复用仓库中已有的类型定义、接口和 schema 约定,避免重复定义。
使用方式
技能按七个阶段执行:
- 发现 Actor 结构:定位 .actor/ 目录和 actor.json,查找数据推送调用(如 Actor.pushData、Actor.push_data),查找键值存储写入调用(如 Actor.setValue、Actor.set_value),查找输出类型定义(TypeScript 接口、Python TypedDict/dataclass/Pydantic 模型),检查仓库中已有的 schema 约定。
- 生成 dataset_schema.json:定义所有输出字段,每个字段设置 "nullable": true,顶层和嵌套对象均设置 "additionalProperties": true 和 "required": [],示例值匿名化,视图部分列出 8–12 个最重要字段。
- 生成 key_value_store_schema.json(如适用):按键模式分组为集合,使用 key 或 keyPrefix 区分固定键和动态前缀键。
- 生成 output_schema.json:为每个属性设置 "type": "string",使用模板变量如 {{links.apiDefaultDatasetUrl}}/items。
- 更新 actor.json:添加 storages.dataset、storages.keyValueStore 和 output 引用。
- 审查与验证:检查所有字段是否完整、可空、示例匿名化、类型存在、视图格式正确等。
- 总结:报告创建或更新的文件、字段数量、集合数量、概览视图字段及需用户澄清的字段。
适用场景
- 为 Apify Actor 添加或更新输出 schema,以便在 Apify Console 中正确展示运行结果。
- 当 Actor 源代码已有类型定义时,从中派生 schema 字段。
- 当仓库中已有其他 Actor 的 schema 时,遵循其命名、描述风格和格式约定。
限制
- 技能要求先分析代码,不能猜测字段。
- 所有字段必须设置 "nullable": true,且必须与 "type" 同时出现。
- 示例值必须匿名化,不能使用真实用户 ID、用户名或个人数据。
- output_schema.json 中每个属性必须包含 "type": "string",不接受 "type": "object"。
- 顶层 fields 对象和每个嵌套对象都必须包含 "additionalProperties": true 和 "required": []。
- 如果仓库中已有 schema,新 schema 必须遵循其约定,包括描述风格、字段命名、示例格式、视图结构和 JSON 格式。
- 具体收费、价格、平台支持情况暂未提供。