Install
openclaw skills install industry-intelligence行业情报 — 构建并维护某一行业的竞争对手资源库,持续采集监管动态/政策动态、媒体关注、企业官方发布、业务动态、企业数智化动态、国际同行、江湖传闻七大类信息,评估可信度与影响力,生成简报或详报。凡是用户提到"行业情报"、"竞争对手动态"、"行业动态"、"监管动态"、"政策动态"、"竞争对手资源库"、"行业情报收集"、"江湖传闻"、"国际同行"、"企业数智化",或者想了解某个行业的竞争格局、跟踪同业动向时,都应触发本 skill。
openclaw skills install industry-intelligence帮助用户对特定行业建立竞争情报体系:先构建资源库,再持续采集信息,最后生成可读报告。
部分宿主环境(如 OpenClaw 4.10+)启用了 exec preflight 安全预检,会拦截"复杂解释器调用"。本技能所有代码执行必须严格遵循以下规范,否则会触发 complex interpreter invocation detected 报错。
Some host environments (e.g. OpenClaw 4.10+) enable an exec preflight safety check that blocks "complex interpreter invocations". All code execution in this skill MUST follow these rules, otherwise the host will raise complex interpreter invocation detected.
只允许对 {SKILL_DIR}/scripts/ 目录下已存在的脚本文件进行直接调用。由于 cwd 通常位于工作区而非技能安装目录,调用时需使用 {SKILL_DIR} 前缀(请把 {SKILL_DIR} 替换为 SKILL.md 所在目录的实际路径)。
Only direct invocations of existing script files under {SKILL_DIR}/scripts/ are allowed. Because cwd typically sits in the workspace (not the skill install directory), prefix calls with {SKILL_DIR} (replace it with the actual directory of SKILL.md).
⚠️ 解释器路径规则 / Interpreter Path Rule:部分宿主(如 OpenClaw 4.10+)的 exec preflight 会拦截 python / python3 等裸命令形式的脚本调用,但放行绝对路径解释器调用(如 /usr/bin/python3)。因此:
Some hosts (e.g. OpenClaw 4.10+) block bare python / python3 script invocations but allow absolute-path interpreters (e.g. /usr/bin/python3). Therefore:
在首次调用脚本前,先运行 which python3(或 command -v python3)获取 Python 解释器绝对路径,后续所有脚本调用统一使用该绝对路径。 若首次尝试裸 python3 命令即被 exec preflight 拦截,立即用 which python3 取得绝对路径后重试。
Before the first script call, run which python3 (or command -v python3) to obtain the Python interpreter's absolute path. Use that absolute path for ALL subsequent script calls. If a bare python3 call is blocked by exec preflight, immediately run which python3 and retry with the absolute path.
# 第一步:获取 Python 解释器绝对路径(仅需一次)
which python3
# 输出示例: /usr/bin/python3
# 第二步:使用绝对路径调用脚本(请将 /usr/bin/python3 替换为实际输出)
/usr/bin/python3 {SKILL_DIR}/scripts/web_fetchers.py dynamic <URL>
/usr/bin/python3 {SKILL_DIR}/scripts/web_fetchers.py encoding <URL>
/usr/bin/python3 {SKILL_DIR}/scripts/web_fetchers.py xueqiu
/usr/bin/python3 {SKILL_DIR}/scripts/web_fetchers.py zhihu <URL>
/usr/bin/python3 {SKILL_DIR}/scripts/md_to_pdf.py <MD文件路径>
/usr/bin/python3 {SKILL_DIR}/scripts/md_to_pdf.py --check-fonts
/usr/bin/python3 {SKILL_DIR}/scripts/download_fonts.py
Windows 用户不受此限制,可直接使用 python 裸命令。Windows users are not affected — bare python works fine.
以下所有形式一律禁止,即便是"临时处理一下数据"也不行:
All of the following are strictly forbidden, even for "just quickly processing some data":
python -c "..." — 内联代码串python <<EOF ... EOF — heredoc 形式bash -c "python ..." — 嵌套 shell 调用echo ... | python / 任何管道拼接的解释器调用Write 生成一个临时 .py 文件再 python 执行它node -e "..." 及其他语言的等价内联形式若宿主返回 complex interpreter invocation detected,说明上一条命令的解释器调用方式被 preflight 拦截,正确应对是:
If the host returns complex interpreter invocation detected, the interpreter invocation was blocked. Correct response:
首先尝试改用 Python 解释器绝对路径:运行 which python3 获取绝对路径(如 /usr/bin/python3),然后用该绝对路径重新调用同一脚本。大多数情况下这能立即解决问题;
若绝对路径仍失败,改用 WebSearch / WebFetch / Write / Read 等原生工具完成同等功能;
绝对禁止以此为借口退化为"手动编造情报数据"——这会违反本技能"不自行编制情报"的核心红线(见"注意事项"章节)。宁可减少覆盖面、降级输出格式,也不可伪造数据。
First, retry with the absolute interpreter path: run which python3, then re-invoke the same script using the absolute path (e.g. /usr/bin/python3 scripts/xxx.py <args>). This resolves most cases immediately.
If the absolute path still fails, fall back to native tools (WebSearch / WebFetch / Write / Read).
Never fabricate intelligence data as a workaround — prefer reducing scope or downgrading output format.
本技能严格区分"只读技能资产"与"可写工作区输出"两类路径,严禁把生成的资源库 / 报告 / 日志写入技能安装目录。
This skill strictly separates read-only skill assets from writable workspace outputs. Generated resource libraries, reports, and logs MUST NOT be written into the skill install directory.
{SKILL_DIR})指 SKILL.md 所在的技能安装目录,通常由宿主挂载为只读或跨会话共享。以下资源只读,只能通过相对 SKILL.md 的路径访问:
Refers to the directory containing SKILL.md — typically mounted read-only or shared across sessions by the host. Access via paths relative to SKILL.md:
| 用途 / Purpose | 路径 / Path |
|---|---|
| 模板文件 / Templates | {SKILL_DIR}/templates/{resource,brief-report,detail-report,log}.md |
| 辅助脚本 / Helper scripts | {SKILL_DIR}/scripts/{web_fetchers,md_to_pdf,download_fonts}.py |
| 中文字体 / CJK fonts | {SKILL_DIR}/fonts/*.ttf |
{WORKSPACE_DIR}/industry-intelligence/)所有生成的文件(资源库、简报、详报、PDF、采集日志)必须写入当前 agent 工作区下的 industry-intelligence/ 子目录,而不是技能安装目录。默认以**当前工作目录(cwd)**作为工作区根,所有输出路径写作 ./industry-intelligence/...:
All generated files (resource libraries, briefs, detail reports, PDFs, collection logs) MUST be written into the current agent workspace under an industry-intelligence/ subdirectory — never into the skill install directory. The current working directory (cwd) is treated as the workspace root by default, so output paths are written as ./industry-intelligence/...:
| 输出类型 / Output | 路径 / Path |
|---|---|
| 资源库 / Resource library | ./industry-intelligence/resource/{行业名称}-resources.md |
| 详报 MD / Detail report MD | ./industry-intelligence/reports/{行业名称}行业情报-{YYYY-MM-DD}.md |
| 详报 PDF / Detail report PDF | ./industry-intelligence/reports/{行业名称}行业情报-{YYYY-MM-DD}.pdf |
| 简报 / Brief | ./industry-intelligence/reports/{行业名称}简报-{YYYY-MM-DD}.md |
| 采集日志 / Collection log | ./industry-intelligence/log/{报告名称}-{YYYYMMDDThhmmss}.md |
首次写入前:若 ./industry-intelligence/ 或其子目录不存在,使用 Write 工具创建文件时直接使用完整路径即可(Write 会自动建立缺失的父目录);若必须显式建目录,使用 mkdir -p ./industry-intelligence/{resource,reports,log},不得使用内联 Python。
Before first write: if ./industry-intelligence/ or its subdirectories don't exist, simply use the full path with the Write tool (it auto-creates missing parents). If explicit creation is needed, use mkdir -p ./industry-intelligence/{resource,reports,log} — never inline Python.
进入技能时,按以下顺序查找现有资源库,命中任一即进入采集模式:
On skill entry, search for an existing library in this order; hit any → enter Collection Mode:
./industry-intelligence/resource/{行业名称}-resources.md(首选,当前工作区)./resource/{行业名称}-resources.md(兼容旧版布局,当 cwd 已经位于工作区 industry-intelligence/ 内部时)均未命中 → 进入建库模式,最终写入位置为 ./industry-intelligence/resource/{行业名称}-resources.md。
Neither hit → enter Library-Building Mode, writing the final library to ./industry-intelligence/resource/{行业名称}-resources.md.
{SKILL_DIR}/resource/、{SKILL_DIR}/reports/、{SKILL_DIR}/log/ 写入任何新生成的文件/Users/.../industry-intelligence/resource/...)来写入输出技能仓库内保留的 resource/ reports/ log/ 目录仅作为示例存档与模板参考,不参与运行时输出。
The resource/, reports/, log/ directories within the skill repository serve only as example archives and template references — they are not runtime output destinations.
每次被调用时,先判断当前处于哪个模式:
建库模式 — 用户首次对某行业开展情报工作,或尚无该行业的资源库文件。
→ 执行"构建资源库"流程。
采集模式 — 该行业的资源库文件已存在。
→ 执行"情报采集与报告"流程。
资源库文件命名规则:{行业名称}-resources.md,保存在当前工作区的 ./industry-intelligence/resource/ 目录下(详见上方"文件路径约定")。严禁写入技能安装目录。
生成一份结构化的竞争对手资源清单,让后续信息采集有迹可循。
建库阶段完全不需要执行任何 Python 脚本。全流程仅使用以下原生工具:
The library-building phase does not require executing any Python script. The entire flow uses only native tools:
WebSearch — 查询行业排名、主体数量、监管机构、官网 URL 等WebFetch — 按需验证单个页面(如公司官网是否可达)Read — 读取 {SKILL_DIR}/templates/resource.md 模板(只读技能资产)Write — 将填充好的资源库内容写入 ./industry-intelligence/resource/{行业名称}-resources.md(当前工作区)若你发现自己正准备写 python -c "..." 或生成临时脚本来"结构化处理"搜索结果,说明路径走错了——请立即停止,改回"WebSearch 获取 → 直接在对话上下文中整理 → Write 一次性写入"的纯文本流程。搜索结果的归纳整理应在模型推理中完成,而不是通过代码执行。
If you find yourself about to write python -c "..." or generate a temporary script to "structurally process" search results, you are on the wrong path — stop immediately and return to the plain-text flow: WebSearch → organize in-context → Write. Aggregation of search results should happen in model reasoning, not via code execution.
在生成资源文件前,必须执行以下检查:
检查已存在资源文件:查看当前工作区 ./industry-intelligence/resource/ 目录下是否已存在相同行业的资源文件,包括:
存在时的处理规则:
质量问题处理:
用户可以用以下关键词指定覆盖范围,默认按行业收入排名确定:
| 用户指定 | 默认覆盖范围 |
|---|---|
| 头部企业(或"龙头"、"Top 10") | 行业收入排名前 10 名 |
| 中坚力量(或"中型"、"第二梯队") | 行业收入排名第 11~30 名 |
| 全市场(或"全行业") | 行业全部主体(受下述规则限制) |
| 用户直接指定公司名称 | 以用户指定为准,不受排名限制 |
| 用户指定具体数量(如"前20名") | 以用户指定数量为准 |
| 用户指定区域范围(如"华东"、"广东省") | 在指定区域内按排名确定 |
若用户未说明范围,按以下规则确定:
使用 WebSearch 确认当前行业排名和主体数量,优先使用最新年度收入数据。
第一步:确认行业范围
向用户确认行业名称、关注焦点(如"商业银行"、"公募基金"、"消费金融")、竞争对手范围以及区域范围(如有)。若未指定范围,按上述规则自动确定。
第二步:调研并填充资源库
通过搜索工具(WebSearch)或用户提供的信息,收集以下内容:
权威信息源(每家公司必须覆盖):
推荐关注源(可选覆盖):
监管与行业权威信息源:
第三步:生成资源库文件
读取 {SKILL_DIR}/templates/resource.md 模板,按格式填充后用 Write 工具写入当前工作区的 ./industry-intelligence/resource/{行业名称}-resources.md(严禁写入技能安装目录,Write 会自动创建缺失的父目录)。
输出文件后,告知用户文件的实际绝对路径,并提示:"资源库已建立,可随时开始情报采集。"
采集开始前,向用户确认:
报告类型判断规则:
情报条数规则(全局限制): 为了保证报告精华度,防止内容臃肿导致输出限流或中断,最终写入报告的情报总数有着明确的上限。
采集阶段无数量限制:
报告生成时的筛选规则:
时间范围严格控制:
数据源访问策略:
信息采集遵循“全网汇聚 -> 头部深挖”的两步走策略,不再强制暴力穷举所有官网。
第一层面:全网汇聚(优先) 优先使用WebSearch进行全网层面的新闻和行业动态搜索。在限定时间范围内,重点检索 “[行业名称] 行业动态” 及重点公司的直接相关新闻。这能快速覆盖大部分具备影响力的情报(包含监管动态、媒体关注、国际媒体报道等)。
第二层面:头部深挖(补充验证) 在全网汇聚后,为补充第一层级未能采集到的详细官方披露,仅对行业内排名前 10 名的头部企业的核心资产(通常即为各家主官网)进行深入排查。对中小企业与其他次级官网不再强制要求逐一访问。
**注意事项:**通过以上策略,在保障情报覆盖面的前提下有效降低单次大模型调用开销。被明确跳过查询的渠道数据源请在最终日志中一笔记录。对于自媒体与社区的情报收尾工作,严禁模型尝试模拟需要强制登录授权(扫码等)的媒体。
访问方式优先级:
{{item.title}})首页无信息时的处理:
翻页处理:
采集时将信息归入以下七类:
| 类别 | 包含内容 |
|---|---|
| 🏛️ 监管动态/政策动态 | 管制类行业(证券、银行、保险等):政策导向与行业监管机构动向。非管制类行业:中央政府和地方政府对该行业的政策、法规、扶持措施等动态。栏目名称根据行业类型自动调整。 |
| 📌 媒体关注 | 公众媒体报道的并购重组、战略调整公告、年报/季报发布、高管变动等重大事件 |
| 🏢 企业官方发布 | 同业公司官网、官方微信公众号、视频号、抖音等官方渠道发布的公告、新闻、产品上线等 |
| 💼 业务动态 | 同业在业务领域的创新突破或重大成就。信息来源:权威媒体报道与各公司官方渠道发布的信息。重点关注:新产品、新服务发布,某一业务领域厚积薄发的成果,影响力评分权重提高 |
| 🔬 企业数智化动态 | 同业在企业数智化领域的重大投入或成就。重点关注:新系统上线、新技术应用、AI等技术落地成果,影响力评分权重提高 |
| 🌍 国际同行 | 国际主流财经/行业媒体报道、海外同业机构官网、官方Twitter/X、YouTube、LinkedIn等渠道发布的信息 |
| 🌫️ 江湖传闻 | 可信度 ≤ 3.5 的信息,来源为自媒体、微博、知乎、雪球等非权威渠道 |
每条信息记录以下字段:
⚠️ 时间校验要求:发布时间字段为必填项,无法确定发布时间的情报不予收录。发布日期必须在用户设定的统计时间段内。
- 标题:{简短描述}
- 来源:{信息源名称}(类型:权威/非权威)
- 发布时间:{YYYY-MM-DD HH:MM} — ⚠️ 必填,无发布时间视为无效情报
- 关联公司:{公司名称,或"行业通用"}
- 类别:{监管动态/政策动态 / 媒体关注 / 企业官方发布 / 业务动态 / 企业数智化动态 / 国际同行 / 江湖传闻}
- 摘要:{100字以内的内容摘要}
- 原文链接:{URL,如有}
- 可信度:{1.0-5.0} — 评分依据见下方,精确到小数点后1位
- 舆情方向:{正面 / 中性 / 负面}
- 影响力:{1.0-5.0} — 评分依据见下方,精确到小数点后1位
栏目名称判断规则:
注意:"江湖传闻"类别仅收录可信度 ≤ 3.5 的信息,且需在来源中明确标注信息源平台(如"雪球用户XXX"、"知乎答主YYY")。
重要原则:
可信度评分(1.0-5.0):
| 分值 | 标准 |
|---|---|
| 5.0 | 权威来源(监管机构官方、公司官方公告、主流财经媒体) |
| 4.0 | 可信来源(行业协会、知名财经媒体二次报道) |
| 3.0 | 一般可信(大型自媒体、知名分析师,有一定背书) |
| 2.0 | 待核实(小型自媒体、匿名消息源,内容有逻辑但未证实) |
| 1.0 | 存疑(流言、无来源消息、与其他信息明显矛盾) |
影响力评分(1.0-5.0):
| 分值 | 标准 |
|---|---|
| 5.0 | 影响行业格局或引发系统性变化(如重大监管法规、行业并购) |
| 4.0 | 影响多家公司或某类业务方向的重要动态 |
| 3.0 | 对特定公司或特定业务线有明显影响 |
| 2.0 | 影响有限,属常规经营动态 |
| 1.0 | 边缘信息,参考价值低 |
业务动态与科技动态影响力加权规则:
舆情方向:
采集完成后,生成报告。
所有报告输出均写入当前工作区的 ./industry-intelligence/reports/ 目录,严禁写入技能安装目录。
详报(默认):
./industry-intelligence/reports/{行业名称}行业情报-{YYYY-MM-DD}.md(同目录下再生成同名 .pdf){行业名称} 行业情报简报:
./industry-intelligence/reports/{行业名称}简报-{YYYY-MM-DD}.md{行业名称} 简报 {日期}读取 {SKILL_DIR}/templates/brief-report.md 模板(只读),填充后写入当前工作区的简报路径。
读取 {SKILL_DIR}/templates/detail-report.md 模板(只读),填充后写入当前工作区的详报路径。
详报必须生成PDF文件:
./industry-intelligence/reports/){SKILL_DIR}/scripts/md_to_pdf.py 脚本将 MD 转换为 PDF./industry-intelligence/reports/)调用方式:
python {SKILL_DIR}/scripts/md_to_pdf.py ./industry-intelligence/reports/{行业名称}行业情报-{YYYY-MM-DD}.md
脚本不会修改 MD 源文件,默认输出 PDF 到与 MD 文件同路径的 .pdf。
首次在新环境生成 PDF 前的字体自检(推荐):
当你是首次在当前宿主环境(例如新装的 OpenClaw 实例)调用本技能、或上一次生成 PDF 时出现"中文方块字"时,请先运行字体自检:
python {SKILL_DIR}/scripts/md_to_pdf.py --check-fonts
该命令会打印本地 {SKILL_DIR}/fonts/ 目录内容、三级降级策略(本地字体 → 显式系统路径 → 目录扫描)的命中结果,以及最终选定的正文/标题字体。若输出 ✅ 中文字体可用 即可直接开始生成 PDF;若输出 ❌ 未命中任何中文字体,按提示选择:
python {SKILL_DIR}/scripts/download_fonts.py 下载开源思源字体(需外网);{SKILL_DIR}/fonts/ 目录;md_to_pdf.py 内置的字体容错能力(无需你手动处理,了解即可):
fonts/ → 显式系统路径(已覆盖 macOS PingFang/STHeiti/Hiragino/Songti、Windows msyh/simsun/simhei、Linux Noto CJK/文泉驿/AR PL UMing)→ 兜底扫描标准字体目录匹配 CJK 关键字文件名;subfontIndex=0 注册 macOS/Windows 的 .ttc 字体;md_to_pdf.py 失败(例如缺少依赖库抛出错误,或被宿主 exec preflight 拦截),严禁中止整个技能任务。您只需在执行日志和最终回复里说明"由于系统环境依赖缺失或宿主安全策略限制,PDF生成未成功,当前已为您提供完整的 Markdown 格式报告",技能即视为妥善完成。降级红线 / Downgrade Red Line:脚本被拦截或失败时,允许的降级动作仅限于"跳过该数据源并在日志中记录"、"仅输出 Markdown 不输出 PDF"、"减少覆盖的竞争对手数量"等缩小范围类操作;严禁以"脚本无法执行"为由伪造情报标题、摘要、链接、评分或发布时间。宁可交付一份条目较少的真实报告,也不可交付一份条目充足但内容编造的报告。
When scripts are blocked or fail, permitted downgrades are limited to scope reduction actions: skipping the data source (and logging it), emitting Markdown only without PDF, covering fewer competitors, etc. Never fabricate titles, summaries, links, scores, or publish dates under the excuse of "scripts cannot execute". A shorter but truthful report is always preferable to a full-length fabricated one.
日志写入当前工作区的 ./industry-intelligence/log/ 子目录(Write 会自动创建),严禁写入技能安装目录。
文件路径:./industry-intelligence/log/{报告名称}-{YYYYMMDDThhmmss}.md
./industry-intelligence/log/证券行业行业情报-20260408T103000.md日志内容格式:读取 {SKILL_DIR}/templates/log.md 模板(只读),按格式填充后写入上述路径。
保留期限:7天
清理机制:
./industry-intelligence/log/ 目录Bash 直接删除匹配的文件(如 rm <path>),不要使用内联 Python为解决 WebFetch 经常遇到的网页动态渲染、反爬机制与编码乱码问题,本技能已在 {SKILL_DIR}/scripts/ 目录下提供了辅助脚本 web_fetchers.py。请直接使用命令行调用该工具的各项子功能,无需您自行编写或执行复杂的多行 Python 请求代码。
以下示例统一使用 {SKILL_DIR}/scripts/... 路径;若你的宿主会将 cwd 设为技能目录则可省略前缀,但带前缀的写法在工作区 cwd 场景下始终可用。
当WebFetch发现目标页面返回内容包含要求启用JS、为空、为 Vue/React 模板结构,或触发防爬墙时,应当调用 Playwright 的 headless 工具等待渲染。
调用方式:
python {SKILL_DIR}/scripts/web_fetchers.py dynamic <URL>
此命令内部设定了对页面渲染的 networkidle 空闲等待机制,并可确保稳定提取真实文本元素。
当遇到如国内传统券商或金融门户(东方财富等)返回 GB2312/GBK 等乱码并导致解码异常时,调用以下命令进行智能转码,自适应获取 UTF-8 明文内容。
调用方式:
python {SKILL_DIR}/scripts/web_fetchers.py encoding <URL>
作为“江湖传闻”栏目的供给项,自媒体与社区类数据源有着极高潜藏价值,但同样伴随着极高抓取难点。因此在作业时需严格遵循以下要求:
python {SKILL_DIR}/scripts/web_fetchers.py xueqiu
python {SKILL_DIR}/scripts/web_fetchers.py zhihu <URL>
建议:江湖传闻并不局限在社区闭源APP,绝大部分具备参考水准的传言也常会借由全网媒体二创外流。模型最有效的补充方案是在前面第一步(全网网络汇聚)检索新闻时留心此类附带的传闻观点,而不是执着于在封闭APP内翻爬。
{行业名称}-resources.md 文件即可,下次采集自动使用最新资源库。