异味源头侦探

异味源头侦探会对可能的居家异味成因进行排序,标示紧急危险模式,并引导你安全、低成本地检查和处理。

voronindenis5
2026年10月13日
0 收藏
54 下载

安装与下载

1 ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install smell-source-detective

2 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/
工作区 {'/skills/'}

优先级:工作区 › 全局 › 内置

3 提示词安装

将此提示词复制到 Openclaw 即可自动安装。

请帮我使用 Clawhub 安装 skill-smell-source-detective。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

更倾向于下载?

获取包含原生技能文件的ZIP压缩包。

下载技能 (.zip)

基本信息

名称 异味源头侦探
Slug smell-source-detective
创建者 voronindenis5
创建时间 2026-10-13 05:54:29
更新时间 2026-10-13 05:54:29
收藏数 0
使用量 54
浏览量 11

安装指南

  1. ClawHub CLI 从源直接安装技能的最快方式。
    npx clawhub@latest install smell-source-detective
  2. 手动安装 将技能文件夹复制到以下位置之一
    全局模式
    ~/.openclaw/skills/
    工作区
    /skills/
    优先级:工作区 > 本地 > 内置
  3. 提示词安装 将此提示词复制到 OpenClaw 即可自动安装。
    请帮我使用 Clawhub 安装 smell-source-detective。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
    更倾向于下载?
    获取包含原生技能文件的ZIP压缩包。
    下载技能 (.zip)

什么是

异味源头侦探是一款离线的 Python 诊断工具,仅使用标准库,适用于持续或反复出现的居家异味。它会结合气味类型、房间和出现时间,在 12 种气味类别和 30 多种可能原因中排列可能的来源,并为每种原因提供确认检查和建议的处理方法。
这项技能可帮助你区分令人困扰但可以处理的气味,以及涉及燃气、烟雾或电气问题、污水倒灌,或墙内有动物尸体等紧急情况的气味模式。无需工具的定位步骤和事件日志,让你在付费请人检查或开始拆除之前,更有条理地展开调查。作为 Openclaw Skills 中实用的居家故障排查工具之一,它让异味诊断更有条理,无需网络连接或特殊硬件。

应用场景

当持续或反复出现异味、但来源不明时进行调查。
检查类似污水的浴室异味是否由干涸的 P 型存水弯造成,尤其是在度假或其他用水量较少的时期之后。
对鱼腥味、焦糊味或类似燃气的气味进行初步判断,并确认危险提示是否要求立即采取行动。
缩小雨后出现或似乎在某个房间或墙边最明显的霉味的可能来源范围。
对照家电使用情况、HVAC 运行周期或其他时间触发因素,比较异味出现的规律。
记录每次异味,以找出规律,并为房东或物业管理人员整理记录。
在安排专业异味检查前,先进行费用低廉的检查。
已知存在正在发生的燃气泄漏或火灾时,不要用此工具代替紧急行动;应立即离开并联系相应的紧急服务。怀疑一氧化碳时,请使用 CO 警报器并遵循紧急指引——CO 无法通过气味检测。

工作原理

从 12 种气味类别中选择最接近的一种来分类异味,然后提供位置和任何时间触发因素。
查看排序后的假设,其中包括每种可能的来源、确认检查和建议的处理方法。
每当气味或情况可能符合燃气、烟雾或电气故障、污水倒灌,或墙内有动物尸体等情形时,请查看危险指引。正在发生的紧急情况应按紧急情况处理,不要暂停应对去运行工具。
使用无需工具的操作流程定位最可能的假设,其中可能包括嗅闻定位、干涸存水弯测试、逐一隔离家电,以及检查墙体或空腔。
按照针对来源的处理流程消除异味,例如给干涸的 P 型存水弯补水、使用酵素清洁剂处理有机废弃物,或判断霉菌处理适合自行完成还是需要专业人员处理。
记录每次异味的日期、强度和触发因素。查看累积记录,尤其是五条或更多记录时,以发现与下雨或家电使用相关等规律。

配置指南

此技能使用 Python 3 和 scripts/smell_detective.py 脚本。文档说明它是纯标准库 Python 工具,可离线运行,且不会进行网络调用。所提供的文档未指定包管理器、单独的依赖项或配置文件。
请在技能目录中运行命令,或调整脚本路径以匹配技能文件所在的位置:
python3 --version
python3 scripts/smell_detective.py diagnose --smell sewage --location bathroom --timing mornings
python3 scripts/smell_detective.py danger --smell gas
python3 scripts/smell_detective.py localize --hypothesis "dry p-trap"
python3 scripts/smell_detective.py kill --source "dry p-trap"
python3 scripts/smell_detective.py log --note "3/5 intensity, guest bath, after 10 days away"
python3 scripts/smell_detective.py log --stats
如需查看命令参数,请使用 --help 选项。根据技能文档,运行时不需要网络连接或非标准 Python 套件。

数据架构

此技能使用诊断输入和事件日志:
数据 示例或字段 用途
气味分类 气味类别,例如污水味、鱼腥味、霉味或焦糊味 选择相关的来源假设
位置 浴室、厨房、卧室、地下室或特定装置 帮助排列可能来源的优先级并定位来源
时间或触发因素 早晨、下雨后、离家一段时间后,或家电运行时 区分气味特征相似的成因
事件记录 日期、1–5 的强度,以及触发因素或备注 建立历史记录,以识别反复出现的规律
诊断结果 排序后的假设、确认检查和建议的处理方法 支持先测试再维修的工作流程
文档指出,可通过 CLI 命令添加事件备注并查看统计数据,但未说明日志文件格式、存储位置或生成文件的命名惯例。此技能涵盖 12 种气味类别和 30 多种来源,包括干涸的存水弯、电气过热、潮湿和霉菌、燃气,以及墙体空腔中的动物尸体。

高级特性

按情境排序的诊断:
结合气味类型、位置和出现时间排列可能的解释,而不是返回一份没有区分的列表。
危险筛查:
将四种紧急情况——燃气、烟雾或电气问题、污水倒灌,以及与动物尸体相关的尸胺——与不太紧急的异味问题区分开来。
无需工具的定位:
指导用户进行嗅闻定位、干涸存水弯注水测试、逐一隔离家电,以及检查墙体或空腔,并优先采用低成本测试。
针对来源的处理方法:
针对干涸的 P 型存水弯、有机废弃物、霉菌和墙内动物尸体提供不同指引;还提供霉菌处理的判断标准:面积不超过 1 m² 时可自行处理,超过时寻求专业帮助。
事件追踪:
记录异味备注并提供统计数据,以便通过反复出现的时间和触发因素规律增强或削弱某项假设。
离线且轻量:
根据技能文档所述,仅使用 Python 标准库,不进行网络调用。


name: smell-source-detective description: "Use when your home has a mystery smell you can't locate (sewage in the bathroom morning-only, fish smell with no fish, musty bedroom, gas whiff near the stove, sweet chemical in the hallway) — a diagnosis engine that ranks probable sources from smell type + location + timing triggers, separates the four DANGER smells (gas, smoke, sewage backup, dead animal in walls) that need immediate action from the annoying-but-safe ones, gives a no-tools localization protocol (sniff-mapping, dry-trap tests, fixture-by-fixture elimination), and surface-specific kill protocols (dry P-traps, enzymatic vs bleach, mold remediation decision line)." version: 1.0.0
author: Denis Voronin
license: MIT
tags: [home, smell, odor, diagnosis, mold, plumbing, safety, household]

Smell Source Detective

Every house eventually produces a smell nobody can find. The internet's advice is a list of 30 possible causes; this skill is a triage engine: it ranks causes by YOUR data (what it smells like, where it's strongest, when it appears), tells you which of the four danger patterns you're in (or not), and walks the localization protocol in fixture order — cheapest test first.

Overview

diagnose — smell type + location + timing → ranked hypotheses, each with the confirming check and the fix. 12 smell families, 30+ sources.
danger — the four act-now patterns (gas, smoke/electrical, sewage backup, cadaverine) with the exact first 10 minutes.
localize — the no-tools protocol: sniff-mapping gradient, dry-trap pour test, appliance isolation, wall/void sniffing.
kill — source-specific elimination: dry P-traps, enzymatic cleaner rules, mold decision line (DIY ≤ 1 m² vs professional), dead-animal-in-wall lifecycle and what actually helps.
log — record episodes (date, intensity 1-5, trigger) so patterns emerge: "every time it rains" = trap seal evaporation or roof vent; "mornings only" = dry traps; "when dishwasher runs" = drain air gap.

Pure stdlib Python, offline, no network calls.

When to Use

Any persistent or recurring household smell with no obvious source
Before paying an "odor inspection" service ($150-400) — run the engine first; most causes are dry traps, garbage disposal funk, or a dead rodent with a known 2-week clock
After vacation (dry traps), heavy rain (sewer gas), or when a smell appears in ONE room only
Tenant-landlord situations: the episode log builds the evidence trail for a written complaint

Don't use for: known active gas leak you can hear/see — leave and call the gas line, don't stop to run scripts. Known active fire — same. Carbon-monoxide suspicion (can't smell it anyway) → CO alarm, not this tool.

How It Works — Numbered Steps
Classify the smell (12 families — pick closest):

python3 scripts/smell_detective.py diagnose --smell sewage --location bathroom --timing mornings
python3 scripts/smell_detective.py diagnose --smell fish --location kitchen
python3 scripts/smell_detective.py diagnose --smell musty --location bedroom --timing "after rain"

Output: ranked hypotheses (probability-ordered), the confirming check for each, and the fix.
Check the danger list first if anything matches:

python3 scripts/smell_detective.py danger --smell gas

Run the localization protocol for the top hypothesis:

python3 scripts/smell_detective.py localize --hypothesis "dry p-trap"

Kill it with the source protocol:

python3 scripts/smell_detective.py kill --source "dry p-trap"
python3 scripts/smell_detective.py kill --source "dead animal in wall"
python3 scripts/smell_detective.py kill --source mold

Log every episode; review the pattern after 5+ entries:

python3 scripts/smell_detective.py log --note "3/5 intensity, guest bath, after 10 days away"
python3 scripts/smell_detective.py log --stats

The 12 Smell Families (excerpts)

Smell Top sources Key discriminator

Sewage / rotten eggs Dry P-trap; venting problem; backup Pours away after running water 30 s = trap
Fishy (no fish) Overheating plastic/electrical, CFL ballast Stronger near a fixture/lamp = URGENT electrical
Musty / earthy Mold cavities, damp carpet, dirty AC coil Grows after rain / in one wall = moisture path
Gas (rotten eggs additive) Stove fitting, flex line, pilot Do NOT flip switches/test with flame — leave, call
Sweet / chemical Antifreeze leak, new furniture off-gassing Near HVAC or radiator vs new-product box
Urine / ammonia Pet soak in carpet pad, dirty litter Blacklight at night fluoresces the map
Rotten meat Dead rodent in wall/void, forgotten garbage Sudden onset, peaks day 3-5, gone by ~2 weeks
Burnt / smoke HVAC motor, trapped plastic, duct debris When blower runs = furnace; else hunt appliance
Vinegar / sour Fermenting food drop, dirty disposal, beer spill Disposal: ice + citrus + bake-soda flush
Paint / solvent Fresh paint, stored cans, adjac. unit work Check garage/basement shelves for lid failure
Skunk-ish Actual skunk under deck; gas mercaptan overlap Outside-strong at dusk = skunk, not gas
Wet dog / dusty Dirty HVAC filter, duct dust after renovation Changes with blower cycles; check filter date

Common Pitfalls

Masking before finding. Candles/plug-ins add VOCs and hide the gradient you need for localization. Find first, then deodorize.
Chlorine bleach on sewage smells. Bleach doesn't digest waste films; enzymatic cleaner does. Bleach on mold porous surfaces deadens odor but leaves roots — the smell returns in weeks.
Assuming "sewage = city problem." 80% of bathroom sewage smells are a dry or cracked P-trap or a missing cleanout cap — $0-15 fixes you can verify in one minute (pour a glass of water, wait, sniff).
Ignoring the fish smell. Overheating PVC wiring insulation smells exactly like fish. It precedes failures that start fires. If it strengthens near any fixture, outlet, or lamp — treat as electrical (danger mode), unplug, get it checked.
Cutting open the wall on day 1 of a dead-rodent smell. The animal desiccates in 1-2 weeks and the smell dies with it. Opening walls is the last resort; odor-absorbing gels + vent sealing handles the window.
One data point = diagnosis. Mornings-only, rain-triggered, and appliance-linked smells have completely different causes. Use the log — timing is half the diagnosis.

Example

$ smell_detective.py diagnose --smell sewage --location basement --timing mornings
SMELL: sewage | basement | mornings
DANGER? no immediate pattern — sewage ODOR only (backup = water
appearing; if water: danger mode)

RANKED HYPOTHESES:

  1. DRY FLOOR-DRAIN TRAP (65%) — check: pour 2 L water into the floor drain, wait 10 min, re-sniff. fix: refill + 1 tbsp mineral
    oil to slow evaporation.
  2. FAILED/LOOSE TOILET WAX RING (20%) — check: rock the toilet gently; sniff at base while flushing. fix: reset toilet, new wax
    ring (~$5 + 1 h).
  3. SEWER VENT BLOCKAGE (10%) — check: smell at roof vent; gurgle when other fixtures drain. fix: clear vent (leaves/bird nest).
  4. CLEANOUT CAP MISSING/CRACKED (5%) — check: look for open pipe stub near main. fix: cap it ($3).

$ smell_detective.py log --note "basement 3/5, 9am, after weekend away"
logged episode #4 — pattern so far: ALL episodes follow >3 days of
low water use → dry-trap hypothesis strengthened.

Verification Checklist

Danger screen done for gas/electrical/sewage-backup patterns
Smell family classified + timing trigger identified
Localization protocol run in fixture order (cheapest first)

Top hypothesis CONFIRMED by its check before any demolition

Kill protocol matched to surface (enzymatic for organics)
Episode logged; pattern reviewed at 5+ entries
家庭补货购物清单助手

Muse Party