农药禁限用合规助手
一、这个技能解决什么问题
园林、苗木、植保类文档里经常出现农药名称。麻烦在于:旧教材、老课件、历史方案里的很多药,早已被国家禁用或限用,但文字看不出来。
读者照着执行,就是违规用药。
这个技能把「能不能用」这件事,直接标在每一个药名后面:
> 原文:老资料常用速扑杀兑水喷杀蚧虫。
> 标记后:老资料常用速扑杀[禁用]兑水喷杀蚧虫。
只加标记,不改一个字的原文。 药剂品种、配比、用量、注意事项全部保留——这些技术数据对专业人员有用,删掉反而是损失。
名录依据
农业农村部公布的国家禁限用农药名录(2026 年 8 月 5 日版):禁用药 60 种、限用药 20 种。
在这份官方名单基础上,额外收录别名、俗称、数字代号(3911/1605/1059/甲基1605)
与常见商品名,合计 137 个扫描词条。
> ⚠️ 特别提示——第 736 号公告
> 自 2026 年 6 月 1 日起,氧乐果、克百威、灭多威、涕灭威全面禁止销售和使用。
> 这四种此前处于过渡期,过渡期已结束。
> 老资料里"氧乐果仅限XX使用""克百威可用于甘蔗"这类过渡期表述均已作废。
两个真实踩过的坑
坑一:只扫成分名,漏掉商品名。
老资料几乎清一色写商品名。你不知道「速扑杀」就是杀扑磷、「退菌特」含砷制剂、「米乐尔」是氯唑磷,扫成分名就一个都命中不了。这是历史上真实翻过车的一类错误。
坑二:短名抢先匹配,性质标反。
「氧化乐果」全面禁用,「乐果」限制使用,只差两个字。如果匹配时不分长短,「氧化乐果」会被短名「乐果」抢先命中,标成 [限用]——一字之差,性质完全相反,而且人工检查极难发现。
这两个坑都已在脚本里解决,详见第六节。
二、适用范围
能干什么
- 旧课件、老手册、历史方案入库前的合规筛查
- 资料库的年度定期复核(建议每年 3 月)
- 科普文章、技术内容发布前的药剂安全性核查
- 编写防治方案、作业指导书时核一遍引用的药剂
- 知识库建设中的批量标记
- 日常用药查询:报一个药名(成分名/别名/商品名/数字代号),直接告诉你它是禁用、限用还是名录未收录(v2.1.0 新增)
适合这些使用者:园林/苗木/植保从业者、农业与园艺类内容创作者、编写培训课件的技术人员、建设专业知识库的个人或小团队。
⚠️ 不能干什么(红线,动手前先确认)
以下场景一律不得依赖本技能的输出:
| 不适用 | 原因 |
|---|---|
| 不作为执法或监管依据 | 输出仅供参考,不是主管部门认定 |
| 不替代产品标签与说明书 | 以产品标签登记内容为准 |
| 不作为采购或施药决策依据 | 施药前须核对标签与现行名录 |
| 不适用于其他地区的名录 | 本名录适用于中国大陆地区,其他地区适用当地规定 |
| 不适用于兽药、人用药品 | 名录范围仅限农药 |
| 不判断登记作物范围 | 同一成分在不同作物上规定可能不同 |
| 不构成法律意见 | 涉纠纷处罚请咨询专业人士 |
一句话记住:它是提醒,不是结论。 工具负责把可疑位置全部摆出来,判断权永远在人手里。
完整边界、六步操作规范、名录维护责任见 references/使用范围与操作规范.md。
三、什么时候触发
- 新资料(课件、手册、方案、条目)入库前
- 整理或改写含「防治方法」「药剂」「配比」的章节
- 用户说「给这份资料打合规标记」「核一下农药」「查查有没有禁用药」
- 用户问「XX 药还能用吗」「查查这个药」「XX 是不是禁了」
- 定期复核:建议每年 3 月跑一次全库,国家名录会调整
四、安装
把整个 农药合规标记 文件夹放进技能目录即可,Windows 默认位置:
C:\Users\<你的用户名>\.workbuddy\skills\农药合规标记\
目录结构:
农药合规标记/
├── SKILL.md ← 本文件
├── README.md ← 人类可读的说明,含完整示例
├── references/
│ └── 药剂名录与商品名对照.md ← 名录速查表(人工核对用)
└── scripts/
└── mark_pesticide.py ← 工具脚本,仅用标准库
前置条件:Python 3.7 及以上。脚本只依赖标准库,无需 pip 安装任何东西。
五、使用说明
所有命令都在技能目录下的 scripts 文件夹里执行。下文用 <技能目录> 代指上面那个路径。
第 1 步 · 打标记
python <技能目录>\scripts\mark_pesticide.py mark "你的资料目录"
也可以对单个文件操作:
python <技能目录>\scripts\mark_pesticide.py mark "某篇稿子.md"
建议第一次先用预演模式,看看会改哪些文件,不实际写入:
python <技能目录>\scripts\mark_pesticide.py mark "你的资料目录" --dry
第 2 步 · 审计漏标(必做,不能省)
python <技能目录>\scripts\mark_pesticide.py audit "你的资料目录" --out "审计结果.csv"
这一步找出「命中了药名、但附近没有标记」的位置,方便逐条人工确认。
> 打完标不审计,等于没做完。 这两步是配套的,别只跑第一步。
第 3 步 · 人工确认
打开 CSV,逐条看。脚本只负责找出所有可疑位置,最终判断在人——尤其是那些名录里没有的新药剂、新型复配制剂。
日常用药查询(不打标时用)
想知道某种药还能不能用,不用翻名录,直接问脚本:
python <技能目录>\scripts\mark_pesticide.py query 速扑杀 乐斯本 氧乐果
成分名、别名、商品名、数字代号都能查,一次可以查多个。输出分四级状态,示例:
速扑杀 → 杀扑磷【禁用】
依据:农业农村部国家禁限用农药名录(2026 年 8 月 5 日版)
提醒:以产品标签与国家现行名录为准;本名录共 137 个词条,未收录不等于可以使用。
乐斯本 → 毒死蜱【限用】 限制范围:禁止在蔬菜上使用
甲刻【不在国家禁限用名录】
成分:吡虫啉 25% + 杀虫单 25%
产品:四川国光农化股份有限公司 · 农药登记证号 PD20140683 · 50% 水分散粒剂
注意:该产品登记对象仅「椰树·椰心叶甲」;用于其他植物属超标签范围(《农药管理条例》第 34 条)
提醒:不在禁限用名录 ≠ 可以随意使用,还须核对标签登记的作物/对象、剂量、安全间隔期。
某某新产品【未核实】
⚠️ 本名录未收录这个名字——未收录不等于可以使用。
商品名五花八门收不全,请以产品标签上的「有效成分」为准,用成分名再查一次。
| 级别 | 状态 | 说明 |
|---|---|---|
| A | 【禁用】 | 国家明令禁止使用 |
| B | 【限用】 | 可以在限定范围内使用,务必看清限制范围 |
| C | 【不在国家禁限用名录】 | 成分已核实、确实不在名录;但仍需按标签登记的作物/对象使用 |
| D | 【未核实】 | 本名录没有,成分未知,不等于可以用 |
查询四条注意(写死在输出里,每次都会提醒):
- 查不到 = 名录未收录,绝不等于"可以用"——未收录的药请查国家现行名录与产品标签
- 本工具只做"这药什么状态"的正向查询,不推荐替代药、不给配比——那是开方,超出工具边界
- 限用药一定看限制范围(比如毒死蜱禁在蔬菜上用,但其他作物上按规定仍可用),别只看"限用"两个字
- 商品名收不全,查成分名才是正路——国家名录按"有效成分"制定,本名录只收录 56 个高频商品名/别名。陌生商品名查不到时,请以产品标签上的「有效成分」为准,用成分名再查一次;商品名未收录不代表其成分不在禁用之列
> 第二个维度(别忽略): 一种药"不在禁限用名录"不等于"可以随便用"。
> 农药必须按标签登记的作物/对象、剂量、安全间隔期使用,超范围使用同样违规
> (《农药管理条例》第 34 条)。很多园林用药正踩在这一条上。
完整参数表
| 参数 | 作用 | 默认值 |
|---|---|---|
mark |
打标记并写入文件 | — |
audit |
审计漏标,不改动文件 | — |
query |
查询药名合规状态,不改动文件 | — |
listinfo |
查看名录版本、年龄、词条数与复核清单(不带路径参数) | — |
--dry |
预演,只显示将改动哪些文件 | 关闭 |
--ext |
要处理的后缀,空格分隔 | .md .txt .docx |
--out |
审计 CSV 的输出路径 | 审计结果.csv |
支持的格式
| 格式 | mark 打标(写入) | audit 审计(只读) |
|---|---|---|
.md / .txt |
✅ | ✅ |
.docx(Word) |
❌ 不支持,会跳过并提示 | ✅ 支持,位置报「段 N」 |
.pdf / .doc |
❌ | ❌ |
示例,打标与审计:
python <技能目录>\scripts\mark_pesticide.py mark "资料"
python <技能目录>\scripts\mark_pesticide.py audit "资料" --out 审计.csv
只扫 Word 文档(只读,绝不改动原件):
python <技能目录>\scripts\mark_pesticide.py audit "资料" --ext .docx --out 审计.csv
为什么 Word 只审计、不写回:往 docx 插标记要重写 word/document.xml 再压回 zip,
有损坏文件、弄乱排版的风险;而"找出哪里有禁用药"用审计清单(第几段、命中什么)
已足够定位。另外 Word 会把一句话切成多个片段存储——「氧乐果」可能存成「氧」+「乐果」,
本工具先按段落合并再匹配,实测能正确判为禁用(否则会误判成限用的「乐果」而漏掉禁用药)。
为什么不支持 PDF:PDF 的文字是"画"上去的,中文 PDF 多用 CID 字体,
解出来是字形编号而非文字,没有字体映射表还原不出中文。纯标准库做不到可靠正确,
宁可不做也不给错结果。替代:让 AI 在对话里直接读 PDF,或先用 Word/WPS 转成 .docx。
六、算法要点(改脚本时必须保住)
最长匹配优先 + 不重叠 + 从后往前插入。
三条缺一不可:
- 名录按名称长度降序参与匹配,长名优先——这是「氧化乐果 vs 乐果」问题的根本解法
- 收集全部匹配后去重:按起点排序,同一段只保留不与已选区间重叠的
- 从后往前插入标记——正着插会导致后面的位置全部偏移
另外脚本做了幂等处理:写回前先剥掉已有的 [禁用] [限用],所以重复运行不会叠成 [禁用][禁用],可以放心跑。
改动这三条之后,必须重跑审计验证。
七、三条铁律
- 只加标记,不改原文。 药剂品种、配比、用量、注意事项一律原样保留。
- 商品名必须扫。 老资料写商品名是常态,只扫成分名必然漏。
- 不凭记忆判断某种药能不能用。 一律对照名录;名录里没有的,查现行规定后再定。
八、收尾必做的三重扫描
这是收尾动作,缺一不可:
| # | 扫什么 | 怎么扫 |
|---|---|---|
| 1 | 禁用药有没有漏标 | 跑第 2 步审计,看 CSV |
| 2 | 企业名有没有脱敏 | 搜企业名、单位名,对外发布前按各自要求脱敏 |
| 3 | 有没有乱码 | 扫西里尔、日文假名、韩文字符与替换符。中文资料里混进这些,多半是 OCR 环节的老毛病 |
九、豁免逻辑
内容层面(脚本自动处理)
脚本只在禁用/限用说明与药名相邻时才跳过标记,采用不对称邻近窗口:
- 向前 24 字符——覆盖「以下均已禁用:甲胺磷、六六六、滴滴涕」这类列表,
保证同一句里的药剂要么全标、要么全不标,结果一致 - 向后 8 字符——不覆盖行尾的使用范围说明。
例如「可用乐斯本颗粒剂撒施(注意蔬菜禁用)」:行尾的"禁用"说的是适用作物,
不代表已交代"乐斯本是限用药",跳过就会漏标,所以这种情况照样标记 - 窗口不跨行——上一行出现的"禁用"二字不得影响下一行的药名
触发豁免的关键词:禁用、限用、停止使用、不得使用、已淘汰、禁止使用、
不再登记、撤销登记、取消登记。
文件层面(需自行控制)
脚本不做文件名判断。以下文件如果要跳过,请通过缩小处理目录、或不放进待扫目录来控制:
- 名录文件本身(文件名含"名录""速查"的)——它就是在讲禁限用
- 索引类、README 类文件——文中是「商品名=成分」的对照说明,不是用药条目
- 原始提取件——冗余度高,建议与正式条目分目录存放
> 之所以不自动跳过:宁可多标,不可漏标。
> 文件名判断容易误伤,而多标几个位置的人工复核成本,远低于漏标一个禁用药。
十、免责与维护
这一节请务必读完再用。
- 名录依据农业农村部 2026 年 8 月 5 日公布的国家禁限用农药名录整理,国家名录会修订。
- 建议每年 3 月复核一次,以国家现行名录为准。
- 本技能输出的是提示性标记,不是执法依据。实际用药前请以国家现行名录与产品标签为准。
- 名录中出现的商品名与有效成分对应关系,来自公开资料整理,如有错漏欢迎反馈修正。
- 脚本按 MIT 协议开源,使用者需自行验证适用性,作者不对误用后果承担责任。
配套名录速查表见 references/药剂名录与商品名对照.md。
十一、名录版本与年度更新
名录不会自动联网更新,但会提醒你该更新了。
不联网是刻意的设计——本工具坚持「仅用标准库、不联网、不读敏感信息」,
自动抓取会破坏这条底线。取而代之两道保险:
- 每次运行都算名录年龄,超过 12 个月即在输出最开头提醒,躲不掉:
⚠️ 名录已 400 天未更新(当前为 2026 年 8 月 5 日版)。国家名录会调整,
请核对最新版本后再用于正式场景。
listinfo子命令随时查看版本、年龄、词条数:
python mark_pesticide.py listinfo
更新名录只要五步
| 步 | 做什么 |
|---|---|
| 1 | 到农业农村部官网取最新版《禁限用农药名录》,记下公布日期;同时查有无新公告(如第 736 号公告"某药全面禁售禁用"),公告效力优先于名录 |
| 2 | 新老名单逐条比对,重点看新增禁用/限用与限制范围变动 |
| 3 | 改四处并保持一致:脚本 BANNED_* / RESTRICTED_* 词表、references/药剂名录与商品名对照.md 速查表,以及你自己的其他副本 |
| 4 | 只改脚本顶部 LIST_VERSION_DATE 一行——依据文案、提醒、listinfo 全部自动同步 |
| 5 | 跑启动自检(有错会直接拒绝运行)与回归用例,确认打标结果与上次一致 |
两条入库纪律
- 新增词条必须写出处(公告号或名录原文),写不出的不许入库
- 商品名条目必须有登记证号,拿不到出处的拒收
> 设计取舍:宁可"提醒你该更新",也不做"自动联网更新"。
> 合规工具一旦联网抓取,来源可信度、时效、可审计性全都不受控,
> 出问题时无法追溯——这类东西必须可审计,而不是图省事。