📦 Chemical Storage Sorter — 化学物质安全存储分类器
v0.1.0该技能通过化学物质的兼容性对其进行分类,以确保实验室存储的安全。它可以防止危险化学反应的发生,提供符合安全法规的存储建议,并支持大规模化学物质库的自动分组和安全检查。
详细分析 ▾
运行时依赖
版本
安装命令
点击复制技能文档
以下为 Chemical Storage Sorter 技能文档的完整翻译:
---
name: chemical-storage-sorter
description: Sort chemicals by compatibility for safe laboratory storage. Prevents dangerous reactions by segregating incompatible chemicals (acids, bases, oxidizers, flammables) and provides storage recommendations compliant with safety regulations.
allowed-tools: [Read, Write, Bash, Edit]
license: MIT
metadata:
skill-author: AIPOCH
# Chemical Storage Sorter
根据化学相容性和危险分类将实验室化学品组织到安全的存储组中。通过识别不兼容的化学物质对并提供符合 OSHA、NFPA 和机构安全标准的隔离指南,防止危险的化学反应。
主要功能:
- 自动化学分类:将化学品分类到危险组(酸、碱、氧化剂、易燃物、毒性物质)
- 相容性检查:识别不兼容的化学物质对,这些物质如果一起储存可能会发生危险反应
- 存储分组:自动将化学品清单分类到安全的存储安排中
- 安全警告:针对不兼容的存储组合和危险相互作用生成警告
- 监管合规:遵循 OSHA 和 NFPA 指南的标准化学隔离规则
何时使用
✅ 使用此技能的场景:
- 设置新的实验室存储系统并需要组织化学品的库存
- 准备接受 EHS(环境健康与安全)检查或合规审计
- 搬迁或重新组织现有的化学品存储区域
- 盘点化学品并检查当前存储安排的安全问题
- 为新实验室成员入职并培训他们了解化学品存储安全
- 调查涉及不当存储或反应的化学事故
- 创建化学物质处理和存储的标准操作程序(SOP)
❌ 不使用此技能的场景:
- 处理未知化学成分或未贴标签的容器 → 首先联系 EHS 进行正确识别
- 需要特定温度要求的存储 → 使用专门的温度监控工具
- 处理放射性材料或生物危害 → 遵循这些材料的专门协议
- 寻求化学品的处置说明 → 使用
waste-disposal-guide获取处置程序 - 需要 SDS(安全数据表)查询 → 使用
safety-data-sheet-reader获取详细的化学信息 - 规划化学库存跟踪 → 使用
lab-inventory-tracker进行数量和位置跟踪
相关技能:
- 上游(Upstream):
safety-data-sheet-reader、chemical-structure-converter - 下游(Downstream):、
lab-inventory-tracker、waste-disposal-guide
与其他技能的集成
上游技能:
safety-data-sheet-reader:从 SDS 中检索化学特性和危险分类chemical-structure-converter:从结构或名称识别化学类别,以实现准确的分类
下游技能:
lab-inventory-tracker:在化学品分类和分配后记录存储位置waste-disposal-guide:识别需要移除的不兼容化学品的处置要求equipment-maintenance-log:跟踪安全柜检查和维护
完整工作流程:
Chemical Inventory → safety-data-sheet-reader → chemical-storage-sorter → lab-inventory-tracker → Safe Storage
注意:以上翻译严格遵循了您提供的原始文档内容,包括 YAML frontmatter、Markdown 格式和技术术语的保留。
2. 化学品间的相容性检查
确定两种化学品是否可以安全地存放在一起,而不存在危险反应的风险。
from scripts.main import ChemicalStorageSortersorter = ChemicalStorageSorter()
# 检查特定的化学品配对 pairs_to_check = [ ("Hydrochloric acid", "Sodium hydroxide"), ("Ethanol", "Hydrogen peroxide"), ("Sodium chloride", "Potassium chloride"), ("Nitric acid", "Acetone") ]
for chem1, chem2 in pairs_to_check: compatible, message = sorter.check_compatibility(chem1, chem2) status = "✅ Compatible" if compatible else "❌ INCOMPATIBLE" print(f"{chem1} + {chem2}: {status}") if not compatible: print(f" Warning: {message}")
# Output: # Hydrochloric acid + Sodium hydroxide: ❌ INCOMPATIBLE # Warning: INCOMPATIBLE: acids cannot be stored with bases # Ethanol + Hydrogen peroxide: ❌ INCOMPATIBLE # Warning: INCOMPATIBLE: flammables cannot be stored with oxidizers # Sodium chloride + Potassium chloride: ✅ Compatible # Nitric acid + Acetone: ❌ INCOMPATIBLE
不相容性矩阵:
| 化学品组 | 不相容于 | 反应风险 |
|---|---|---|
| 酸类 | 碱类、氧化剂、氰化物、硫化物 | 剧烈中和反应、有毒气体生成 |
| 碱类 | 酸类、氧化剂、卤代化合物 | 热量生成、分解 |
| 氧化剂 | 可燃物、酸类、还原剂 | 火灾、爆炸、剧烈反应 |
| 可燃物 | 氧化剂、酸类 | 火灾、助燃 |
| 有毒物质 | 酸类、氧化剂 | 有毒气体释放、危害增加 |
- ✅ 将所有新化学品 在放置前与现有存储进行比对检查
- ✅ 对于不相容的组别 至少保持 3 英尺的间隔
- ✅ 考虑使用二级 containment 存放高反应性配对的化学品
- ✅ 记录例外情况 说明已采取工程控制措施
常见问题和解决方案:
问题:误报相容性
- 症状:工具显示相容,但化学品实际上会发生反应
- 原因:缺少未纳入通用规则的具体不相容性
- 解决方案:务必查阅化学品安全数据表(SDS)了解具体的不相容性;仅将此作为初步检查
问题:相容性不明确
- 症状:对于边界情况显示"相容但需注意"
- 解决方案:谨慎为上;分开存放或咨询环境健康安全部门(EHS)
3. 生成完整存储计划
demo_inventory = [
"HCl (concentrated)",
"NaOH pellets",
"Ethanol",
"Hydrogen peroxide",
"Sodium cyanide",
"PBS",
"Acetone"
]
groups = sorter.sort_chemicals(demo_inventory)
sorter.print_storage_plan(groups)
示例输出:
============================================================ 化学品存储计划 ============================================================ 酸类存储区: ---------------------------------------- • HCl(浓酸)⚠️ 远离:碱类、氧化剂、氰化物、硫化物碱类存储区: ---------------------------------------- • NaOH 颗粒 ⚠️ 远离:酸类、氧化剂、卤代物
氧化剂存储区: ---------------------------------------- • 过氧化氢 ⚠️ 远离:易燃物、酸类、碱类、还原剂
易燃物存储区: ---------------------------------------- • 乙醇 • 丙酮 ⚠️ 远离:氧化剂、酸类
毒物存储区: ---------------------------------------- • 氰化钠 ⚠️ 远离:酸类、氧化剂
一般存储区: ---------------------------------------- • PBS ============================================================
各组存储要求:
| 组别 | 柜体类型 | 通风要求 | 特殊要求 |
|---|---|---|---|
| 酸类 | 酸柜 | 通风橱 access | 二次 containment、耐腐蚀 |
| 碱类 | 碱柜 | 标准 | 与酸类分开存放(至少 3 英尺) |
| 氧化剂 | 标准/氧化剂柜 | 阴凉干燥处 | 远离点火源 |
| 易燃物 | 易燃物柜 | 防爆型 | 分装时需接地/等电位连接 |
| 毒物 | 锁闭柜 | 标准 | 存取记录、限量存放 |
| 一般 | 标准架 | 标准 | 标准实验室存储 |
- ✅ 在存储区域附近明显位置张贴计划
- ✅ 添加/移除化学品时更新计划
- ✅ 在存储计划上注明紧急联系方式
- ✅ 每季度检查一次以确保准确性
常见问题及解决方案:
问题:存储空间不足
- 症状:多个组需要同一类型的柜子
- 解决方案:按危险等级优先排序;如需要可添置更多柜子
问题:化学品具有多种不兼容性
- 症状:一种化学品与许多其他化学品不兼容
- 解决方案:隔离存放在单独位置;考虑减少库存
模式一:新实验室设置
场景:从零开始为新实验室设置化学品的存储方案。
{
"setup_type": "new_lab",
"space": "2 个通风橱、3 个酸柜、2 个易燃物柜",
"inventory_size": "预计约 200 种化学品",
"special_requirements": [
"细胞培养方向 - 多种生物缓冲液",
"分子生物学 - EtBr、丙烯酰胺",
"部分有机合成 - 各种溶剂"
],
"compliance": "OSHA、大学 EHS"
}
工作流程:
- 在化学品到达前清点所有化学品
- 使用此工具对每种化学品进行分类
- 根据分组分配存储位置
- 购买适当的存储柜(酸柜、易燃物柜等)
- 清晰标注所有存储区域
- 对所有实验室成员进行系统培训
- 张贴应急程序和联系方式
输出示例:
新实验室存储计划: 存储柜分配: 酸柜 #1:12 种酸 酸柜 #2:8 种氧化剂(也是酸) 碱柜:6 种碱 易燃物柜 #1:15 种溶剂(乙醇、甲醇等) 易燃物柜 #2:8 种其他易燃物 毒性柜:3 种化学品(EtBr、丙烯酰胺、汞盐) 普通存储:148 种缓冲液、盐类、试剂空间利用率: 酸柜:20/30 容量(67%) 易燃物柜:23/40 容量(58%) 普通存储:148/200 容量(74%)
建议:当前空间足以容纳计划中的库存
脚本
位于 scripts/ 目录:
main.py- 化学分类与储存分拣引擎
化学储存快速参考
一般规则:
- 将不兼容的化学物质 至少分隔 3 英尺或使用物理屏障
- 酸和碱分开储存 存放在不同的柜子中
- 氧化剂远离 易燃物和有机物
- 将有毒化学品锁定 并限制访问
- 对液体腐蚀性物质使用 二次 containment(围堵)
- 所有容器贴标签 标明化学品名称和危险特性
- 切勿将化学品存放在 食品容器中或食品区域附近
- 保持安全设备 的通道畅通(洗眼器、淋浴器、出口)
紧急联系方式:
- 消防:911
- 中毒控制:1-800-222-1222
- 校园环境健康安全: [插入本地号码]
- 化学品泄漏热线: [插入本地号码]
安全检查清单
- [x] 无硬编码凭据或 API 密钥
- [x] 无文件系统访问
- [x] 化学名称输入验证
- [x] 输出不暴露敏感信息
- [x] 错误消息已清理
- [x] 沙盒环境中执行脚本
前提条件
# Python 3.7+
# 无需额外包(使用标准库)
评估标准
成功指标
- [x] 成功将化学品分类到存储组
- [x] 识别不兼容的化学品组合
- [x] 提供存储建议
- [x] 列出所有可用存储组
测试用例
- 化学品列表:输入列表 → 按兼容性分组排序
- 兼容性检查:两种化学品 → 兼容/不兼容结果
- 未知化学品:无法识别的名称 → 分配到通用组
生命周期状态
- 当前阶段:活跃
- 下次审查日期:2026-03-09
- 已知问题:无
- 计划改进:
最后更新:2026-02-09 技能 ID:184 版本:2.0(K-Dense 标准)