- AI 技能
- AI 插件
【免费下载链接】agentic-awesome-skills
AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,115+ agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.
导读
本文以agentic-awesome-skills仓库中的apify-competitor-intelligence技能(Skill)为骨架,系统讲解如何在 Agent 工作流中利用 Apify Actors 采集并分析竞争对手在 Google Maps、Booking.com、Facebook、Instagram、YouTube、TikTok 六大平台上的策略、内容、定价、广告与市场定位。读完本文,你将掌握从 Actor 选型、Schema 动态获取、三种结果导出模式,到错误处理与使用边界的完整实操流程,并能结合仓库源码理解每一步背后的实现原理。
技能定位:一条面向竞品情报的自动化管道
apify-competitor-intelligence是agentic-awesome-skills插件体系中一个风险级别标记为critical、来源为community的社区技能,其官方描述为:
Analyze competitor strategies, content, pricing, ads, and market positioning across Google Maps, Booking.com, Facebook, Instagram, YouTube, and TikTok.
在仓库的目录索引中,该技能被归入automation分类,携带apify、competitor、intelligence等标签,并定义了analyze、content、pricing、ads、market、positioning、google、maps、booking等触发词,便于 Agent 在对话中自动识别匹配。
从使用时机看,该技能适用于三类典型任务:
- 需要对内容、评论、定价、广告、受众或渠道表现做竞品对标(benchmark);
- 任务涉及跨地图、预订、社交、视频平台的 Actor 选择与数据对比;
- 需要结构化的竞品数据 + 提炼后的战略建议,用于策略与定位决策。
技能本体位于 plugins/agentic-awesome-skills-claude/skills/apify-competitor-intelligence/SKILL.md,配套的驱动脚本位于 reference/scripts/run_actor.js,仓库的plugins/agentic-awesome-skills目录下保留了同构副本,两处均可作为阅读与运行入口。
环境准备
技能文档明确要求三项前置条件(无需提前逐项核查,运行时报错再处理即可):
| 前置条件 | 说明 |
|---|---|
.env文件 | 需包含APIFY_TOKEN,用于鉴权调用 Apify API |
| Node.js 20.6+ | 需要原生--env-file支持,用于安全加载环境变量 |
mcpcCLI 工具 | 通过npm install -g @apify/mcpc全局安装,用于动态获取 Actor 详情 |
从源码层面看,run_actor.js在main()中通过process.env.APIFY_TOKEN读取令牌,若缺失会打印Error: APIFY_TOKEN not found in .env file并直接退出;同时该脚本使用 ESMimport语法与fetch、node:util等现代 Node API,这也是要求 Node.js 20.6+ 的根本原因。
五步工作流总览
技能内置了一份可复制的进度清单,Agent 执行时应逐项勾选:
Task Progress: - [ ] Step 1: Identify competitor analysis type (select Actor) - [ ] Step 2: Fetch Actor schema via mcpc - [ ] Step 3: Ask user preferences (format, filename) - [ ] Step 4: Run the analysis script - [ ] Step 5: Summarize findings下面逐一展开每个步骤。
Step 1:选择竞品分析类型(Actor 选型)
这是整个流程中最关键的一步:根据用户需求从下表中选择最合适的 Apify Actor。Actor ID 采用作者/名称格式,选型依据按平台分组如下。
地图与本地商家(Google Maps)
| 用户需求 | Actor ID | 最佳用途 |
|---|---|---|
| 竞品商家数据 | compass/crawler-google-places | 位置分析 |
| 竞品联系方式挖掘 | poidata/google-maps-email-extractor | 邮箱提取 |
| 功能对标 | compass/google-maps-extractor | 详细商家数据 |
| 竞品评论分析 | compass/Google-Maps-Reviews-Scraper | 评论对比 |
酒店预订(Booking.com)
| 用户需求 | Actor ID | 最佳用途 |
|---|---|---|
| 酒店竞品数据 | voyager/booking-scraper | 酒店对标 |
| 酒店评论对比 | voyager/booking-reviews-scraper | 评论分析 |
Facebook 全家桶
| 用户需求 | Actor ID | 最佳用途 |
|---|---|---|
| 竞品广告策略 | apify/facebook-ads-scraper | 广告创意分析 |
| 竞品主页指标 | apify/facebook-pages-scraper | 页面表现 |
| 竞品内容分析 | apify/facebook-posts-scraper | 帖子策略 |
| 竞品 Reels 表现 | apify/facebook-reels-scraper | Reels 分析 |
| 竞品受众分析 | apify/facebook-comments-scraper | 评论情绪 |
| 竞品活动监控 | apify/facebook-events-scraper | 活动追踪 |
| 竞品受众重叠 | apify/facebook-followers-following-scraper | 粉丝分析 |
| 竞品评论对标 | apify/facebook-reviews-scraper | 评论对比 |
| 竞品广告监控 | apify/facebook-search-scraper | 广告发现 |
| 用户需求 | Actor ID | 最佳用途 |
|---|---|---|
| 竞品主页指标 | apify/instagram-profile-scraper | 主页分析 |
| 竞品内容监控 | apify/instagram-post-scraper | 帖子追踪 |
| 竞品互动分析 | apify/instagram-comment-scraper | 评论分析 |
| 竞品 Reel 表现 | apify/instagram-reel-scraper | Reel 指标 |
| 竞品增长追踪 | apify/instagram-followers-count-scraper | 粉丝追踪 |
| 综合竞品数据 | apify/instagram-scraper | 全量分析 |
| 基于 API 的竞品分析 | apify/instagram-api-scraper | API 访问 |
YouTube 与 TikTok
| 用户需求 | Actor ID | 最佳用途 |
|---|---|---|
| 竞品视频分析 | streamers/youtube-scraper | 视频指标 |
| 竞品情绪分析 | streamers/youtube-comments-scraper | 评论情绪 |
| 竞品频道指标 | streamers/youtube-channel-scraper | 频道分析 |
| TikTok 竞品分析 | clockworks/tiktok-scraper | TikTok 数据 |
| 竞品视频策略 | clockworks/tiktok-video-scraper | 视频分析 |
| 竞品 TikTok 主页 | clockworks/tiktok-profile-scraper | 主页数据 |
需要说明:Actor 清单是技能内置的静态映射,实际运行时以 Apify 平台上的最新可用性为准;若目标平台不在上表中,可退回 Step 2 用 mcpc 动态检索。
Step 2:动态获取 Actor Schema
选定 Actor 后,通过mcpc调用 Apify MCP 服务端的fetch-actor-details工具,动态拉取该 Actor 的输入 Schema 与详细信息:
export $(grep APIFY_TOKEN .env | xargs) && mcpc --json mcp.apify.com --header "Authorization: Bearer $APIFY_TOKEN" tools-call fetch-actor-details actor:="ACTOR_ID" | jq -r ".content"将ACTOR_ID替换为实际选中的 Actor,例如compass/crawler-google-places。命令拆解:
export $(grep APIFY_TOKEN .env | xargs):从.env提取APIFY_TOKEN并导出到当前 shell 环境;mcpc --json mcp.apify.com:以 JSON 模式连接 Apify 的 MCP 端点;--header "Authorization: Bearer $APIFY_TOKEN":携带令牌完成鉴权;tools-call fetch-actor-details actor:="ACTOR_ID":调用工具查询 Actor 详情;jq -r ".content":提取响应中的内容字段,便于阅读。
返回内容通常包含三部分:
- Actor 的描述与 README;
- 必填与可选输入参数(input schema);
- 输出字段(如果可用)。
拿到 Schema 后即可为 Step 4 的--input参数构造正确的 JSON 输入。
Step 3:确认用户偏好
正式运行前,向用户确认两个关键偏好:
- 输出格式,三选一:
- Quick answer:仅在对话中展示前几条结果,不落盘保存文件;
- CSV:全字段导出为 CSV 文件;
- JSON:全量数据导出为 JSON 文件。
- 结果数量:根据具体用例性质(如关键词数量、目标竞品数、时间范围)确定采集规模。
Step 4:运行分析脚本
技能通过插件内预置的run_actor.js完成「提交运行 → 轮询状态 → 拉取数据集 → 导出/展示」的完整闭环。三种模式命令如下。
Quick answer(对话内展示,不保存文件):
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \ --actor "ACTOR_ID" \ --input 'JSON_INPUT'CSV 导出:
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \ --actor "ACTOR_ID" \ --input 'JSON_INPUT' \ --output YYYY-MM-DD_OUTPUT_FILE.csv \ --format csvJSON 导出:
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \ --actor "ACTOR_ID" \ --input 'JSON_INPUT' \ --output YYYY-MM-DD_OUTPUT_FILE.json \ --format json其中${CLAUDE_PLUGIN_ROOT}是插件根目录环境变量,对应仓库中的实际脚本路径为plugins/agentic-awesome-skills-claude/skills/apify-competitor-intelligence/reference/scripts/run_actor.js。
源码级解析:run_actor.js 的内部实现
对照 run_actor.js 源码,可以清晰看到整个执行链路:
1. 参数解析(parseCliArgs)
脚本基于 Node 内置node:util的parseArgs定义全部 CLI 参数:
| 参数 | 短名 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
--actor | -a | string | 必填 | Actor ID,如compass/crawler-google-places |
--input | -i | string | 必填 | Actor 输入的 JSON 字符串 |
--output | -o | string | 无 | 输出文件路径;不传则进入 Quick answer 模式 |
--format | -f | string | csv | 输出格式:csv或json |
--timeout | -t | string | 600 | 最长等待秒数 |
--poll-interval | 无 | string | 5 | 状态轮询间隔秒数 |
--help | -h | boolean | 无 | 打印帮助信息 |
其中--timeout与--poll-interval是错误处理表中「Timeout」场景的调节手段(见下文)。
2. 启动运行(startActor)
- 先将
author/actor形式的 ID 转换为 Apify API 兼容的author~actor格式; - 向
https://api.apify.com/v2/acts/{actorId}/runs发起POST,携带令牌与用户输入的 JSON; - 请求头中附带
User-Agent: apify-agent-skills/apify-competitor-intelligence-1.0.1,用于在 Apify 侧统计技能使用情况; - 返回
runId与defaultDatasetId,供后续轮询与下载使用。
3. 轮询状态(pollUntilComplete)
- 每
--poll-interval秒(默认 5 秒)请求一次运行状态,仅在状态变化时打印(SUCCEEDED/FAILED/ABORTED/TIMED-OUT为终态); - 超过
--timeout(默认 600 秒)仍运行中则判定为超时; - 非
SUCCEEDED终态会打印Error: Actor run <状态>,并提示前往 Apify console 查看运行详情后以非零码退出。
4. 结果导出(downloadResults/displayQuickAnswer)
- CSV:以首条记录字段为表头;单元格做了两层防护——若值以
=、+、@、-等公式注入字符开头,则前置单引号规避 CSV 注入;含逗号、引号或换行的值会正确加引号转义;超过 200 字符的长文本被截断,数组/对象字段序列化为 JSON 字符串。 - JSON:以
JSON.stringify(data, null, 2)格式化写入。 - Quick answer:仅拉取前 5 条结果在对话中展示,单值超过 100 字符会被截断,并输出数据集总条数。
5. 汇总报告(reportSummary)
导出文件后打印记录数与文件大小(字节),其中 CSV 的记录数按「非空行数减表头」统计。
Step 5:汇总发现
运行结束后,向用户汇报以下四项内容:
- 分析的竞品数量;
- 结果文件位置与名称;
- 关键竞争洞察(如定价差异、广告创意方向、评论情绪趋势、渠道表现对比);
- 建议的下一步动作(更深入的定向分析、跨周期对标等)。
错误处理对照表
技能文档给出了一份明确的错误处理清单,结合源码可确认每条对应的处理位置:
| 错误信息 | 处理动作 | 源码依据 |
|---|---|---|
APIFY_TOKEN not found | 请用户创建.env并写入APIFY_TOKEN=your_token | main()中令牌缺失即报错退出 |
mcpc not found | 请用户执行npm install -g @apify/mcpc | 属 CLI 前置条件 |
Actor not found | 检查 Actor ID 拼写 | startActor对 HTTP 404 的专门分支 |
Run FAILED | 请用户查看错误输出中的 Apify console 运行链接 | 非SUCCEEDED终态分支 |
Timeout | 减小输入规模,或通过--timeout增大等待时间 | pollUntilComplete的超时判定 |
使用边界与注意事项
技能的Limitations部分明确了三条边界,使用时务必遵守:
- 仅在任务与上述范围明确匹配时使用本技能,不要泛化套用;
- 采集结果不能替代环境专属的验证、测试或专家评审——竞品数据仅作情报参考,落地决策仍需人工把关;
- 当必填输入、权限、安全边界或成功标准缺失时,应停止执行并向用户澄清,而不是擅自猜测。
此外需注意:该技能依赖 Apify 平台鉴权(APIFY_TOKEN)与外部数据源,运行会产生真实的 Actor 执行,涉及成本与第三方平台使用条款,建议在受控环境下按需运行。
结语
apify-competitor-intelligence演示了agentic-awesome-skills中「技能即工作流」的典型形态:一份可勾选的任务清单 + 一次动态 Schema 获取 + 一个可复用的运行脚本,即可覆盖从 Google Maps 本地商家到 TikTok 视频策略的跨平台竞品情报采集。理解其选型表、mcpc用法与run_actor.js的调用链,你便能将该模式迁移到其他 Apify 类技能(如仓库内的apify-brand-reputation-monitoring、apify-market-research、apify-lead-generation等同族技能),快速构建自己的数据采集与分析管道。
- AI 技能
- AI 插件
【免费下载链接】agentic-awesome-skills
AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,115+ agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.
相关推荐
agentic-awesome-skills 中 apify-market-research Skill 实战指南:基于 Apify Actors 的多平台市场调研工作流
agentic awesome skills 中 apify market research Skill 实战指南:基于 Apify Actors 的多平台市场
AI 技能AI 插件agentic-awesome-skills 实战:用 Andru.ia Niche Intelligence 为 Agent 注入垂直领域情报
agentic awesome skills 实战:用 Andru.ia Niche Intelligence 为 Agent 注入垂直领域情报 本篇文章围绕
AI 技能AI 插件Agentic Awesome Skills 实战:基于 Apify Actors 的跨平台趋势分析技能(apify-trend-analysis)全解析
Agentic Awesome Skills 实战:基于 Apify Actors 的跨平台趋势分析技能(apify trend analysis)全解析 导读
AI 技能AI 插件
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考