| name | policy-interpretation |
| description | 面向发改委、工信部、应急管理部三大核心部委及国务院、生态环境部、市场监管总局、能源局、财政部等关联部委,自动检索政策原文(含 PDF 附件全文)并解读,提炼政策层级、核心条款、适用范围、时间节点与处罚责任,评估企业合规影响,输出深度解读 / 要点速览 / 多政策对比三类报告。全流程零 API Key。当用户提到政策解读、法规分析、合规管理、发改委政策、工信部政策、应急管理部政策、政策总结、法规要点、政策影响分析时触发。 |
政策法规解读
检索并解读国家部委发布的政策法规,提炼核心要点、明确合规要求、评估企业影响。全流程零 API Key。检索的网络抓取与失败兜底全部来自 web-fetch 基座技能,本技能只负责部委元数据、检索解析、分析维度与报告格式。
运行约定:
- 路径一律相对本技能根目录:本技能脚本写
scripts/x.py,web-fetch 基座写 ../web-fetch/scripts/x.py(两者恒为兄弟目录)。执行时给命令加上技能根目录前缀,不要 cd 进技能目录——输出文件要落在当前工作目录。前缀取宿主加载技能时告知的 Base directory;拿不到就用 find / -name departments.py -not -path '*__pycache__*' 2>/dev/null | head -1 定位,取其上两级为技能根目录。
- 所有
uv run 命令都不要加 timeout 参数,沙箱后端不支持 per-command timeout override,加了必定报错。
覆盖部委
八个部委的完整元数据(中文名、site_domain、政策文件库过滤键、官网列表页)唯一来源是 scripts/departments.py:ndrc 国家发改委、miit 工信部、mem 应急管理部、gov 国务院、mee 生态环境部、samr 市场监管总局、nea 国家能源局、mof 财政部。
uv run scripts/departments.py --list
uv run scripts/departments.py --show ndrc
全部走国务院政策文件库检索(支持关键词,附带发文机关与文号)。其中 ndrc / miit / mem 额外抓官网最新文件列表——政策文件库只收正式政策文件,征求意见稿、通报、典型案例这类要靠官网列表页或 360 检索补充。
工作流程
Step 1:解析需求
从用户输入中识别:
- 目标部委:未指定时默认
ndrc,miit,mem
- 政策领域:行业、议题(安全生产、节能减排、数字化转型等),转成检索关键词
- 时间范围:映射到
--timelimit(d/w/m/y/all),默认 all。现行有效的政策不因发布年限而失效,用户问「最新规定」通常指现行最新而非近一年内发布,只在明确限定时间范围时才收窄
- 解读深度与关注维度:合规要求 / 企业影响 / 时间节点 / 处罚条款,决定后续选哪种输出格式
Step 2:检索候选
uv run scripts/search.py --dept ndrc,miit,mem --keywords "节能减排" --max-results 5
脚本构造政策文件库检索接口与官网列表页的 URL,交给 web-fetch 一次批量抓原始响应体(并发与两层引擎降级由基座负责),再解析成候选。--raw 拿到的响应体可能来自 browser 层(浏览器渲染后的 HTML,而非原站字节),JSON 接口与列表页的解析不受影响。
输出为 {"results": [...], "errors": [...]} 对象:
results 每条带 source_tier(policy_library / official_site),policy_library 来源还带 puborg(发文机关)与 pcode(文号),可直接填入报告。
errors 每条带 kind。no_match 表示该层检索成功、页面结构正常、但确实没有匹配的政策;network_unreachable / http_error / blocked 表示该层出网受限;invalid_response 表示页面取到了却解析不出东西(接口字段变了,或部委官网改版让 link_pattern 失效)。
只有 no_match 才能理解为"该部委没有这类政策",其余各类都是抓取器/网络的问题,绝不能当作"没有政策"写进解读结论——那会把工具故障伪装成事实判断。
兜底顺序:全部为 no_match 时换更宽泛或更具体的关键词重试一次;出现 network_unreachable / http_error / blocked / invalid_response 时不要空转重试关键词(换词救不了坏掉的抓取器),改用 360 检索,用 errors[].site_domain 限定域名:
uv run ../web-fetch/scripts/search.py --query "节能减排" --site ndrc.gov.cn --max-results 5
360 检索也无结果,再回落宿主内置 WebSearch / WebFetch;仍失败见「特殊处理」。
Step 3:抓取正文与附件
政策的核心条款——量化指标、实施与整改期限、处罚幅度——几乎总在附件 PDF 里,正文通知页往往只有一句「现将《XX》印发给你们,请认真贯彻执行」。所以抓取要分两步:
uv run ../web-fetch/scripts/fetch.py --urls '["https://...通知页"]' --max-chars 8000
uv run ../web-fetch/scripts/fetch.py --urls '["https://...附件.pdf"]' --max-chars 8000
正文页结果的 attachments 字段([{url, ext}],页面确有附件时才出现)已把附件链接绝对化去重。附件 URL 只能来自这里或正文页原文,绝不可按 gov.cn / 部委站的 URL 命名规律去推测——推测出的 URL 命中站点错误页时,基座会如实报 http_error 或 wrong_content_type,但若你不核对 type/title 就拿去解读,很可能把一个内容无关的页面(如中国政府网首页)当成政策原文。.ofd 是政务版式文件,pypdf 抽不了,同名 .pdf 通常并存,优先取 .pdf。
type 区分 html / pdf(按 Content-Type 与 %PDF- 魔数判定,不看后缀)。PDF 结果带 low_confidence=true 表示疑似加密或扫描件,抽取不可靠。用管道把 fetch.py 的 JSON 喂给解析脚本时不要加 2>&1——进度日志走 stderr,混进 stdout 会让 JSON 解析崩溃。抓取普遍受阻时先跑 uv run ../web-fetch/scripts/fetch.py --check-env 确认当前环境的引擎能力上限,如实告知而非猜测原因。
Step 4:分析与输出
对正文依次分析:政策层级(法律 / 行政法规 / 部门规章 / 规范性文件)、核心条款、适用范围、时间节点(实施日期、过渡期、整改期限)、处罚条款、企业影响。
然后读取 references/report-formats.md,按解读深度选择格式 A(深度解读)、格式 B(要点速览)或格式 C(多政策对比)输出。
质量要求
- 准确性:严格基于政策原文解读,不扩大或缩小政策范围
- 专业性:区分「应当」(强制)与「鼓励」(引导)等法律术语
- 客观性:区分政策原文表述与解读意见,在信息来源中注明政策文件库、官网列表页还是 360 检索补充
- 实用性:落到企业合规操作层面,给出可执行建议
- 时效性:优先最新政策,标注发布和实施日期
特殊处理
- 征求意见稿:明确标注,说明正式版可能调整
- 政策已废止:明确告知并指引查看替代政策。检索接口不返回时效性字段,废止状态须从正文判定
- 地方配套政策:提示地方实施细则可能存在差异
- 条款表述模糊:标注「待进一步明确」,建议关注后续细则或官方解读
- PDF 附件低置信度:如实告知抽取不可靠,建议用户直接查阅原文链接,不强行分析空文本
- 附件链接缺失:正文页结果无
attachments、正文里也找不到附件链接时,如实说明「未获取到附件原文」,只就通知正文可见的内容解读
- 检索失败:按 Step 2 的兜底顺序(换关键词 → 360 检索 → 内置 WebSearch)逐级降级;三级都无结果则引导用户提供更具体的关键词或直接上传本地政策文档
使用示例
典型需求到命令链路的映射见 references/examples.md。
免责声明:本技能生成的内容仅为政策法规的要点梳理和分析参考,不构成法律意见或合规认证。