乐于分享
好东西不私藏

OpenClaw 智能助手推出 eLabFTW 试剂用量汇总技能附完整代码+聊天记录附录

OpenClaw 智能助手推出 eLabFTW 试剂用量汇总技能附完整代码+聊天记录附录

OpenClaw 智能助手近日新增「试剂用量汇总」技能,为实验室试剂管理带来全新体验。

一、背景痛点

实验室日常运营中,试剂消耗的统计往往依赖人工记录,不仅耗时,还容易出错。

二、解决方案

通过 OpenClaw 的新技能「reagent-usage-report」,可以轻松实现:
  • 自动读取 eLabFTW 实验记录
  • 智能解析「试剂:名称@用量」格式
  • 支持 g、mg、kg、mL、L、μL 等多种单位自动转换
  • 生成清晰的汇总报告和明细记录

三、核心代码实现

Python

#!/usr/bin/env python3import re, requestsfrom collections import defaultdictAPI_KEY = "your-key"BASE_URL = "https://xxx.xxx.xxx.237:1234/api/v2"def parse_usage(text):    pattern = r'(?:添加试剂[::]?\\s*)?([^::@\\s]+)@\\s*(\\d+\\.?\\d*)\\s*(g|mg|kg|mL|L|μL)?'    return [{'name': m[0].strip(), 'quantity'float(m[1]), 'unit': m[2or 'g'            for m in re.findall(pattern, text)]def to_base(qty, unit):    conversions = {'mg'0.001'kg'1000'mL'1'L'1000'μL'0.001}    return qty * conversions.get(unit, 1)def main():    exps = requests.get(f"{BASE_URL}/experiments?limit=100"                        headers={"Authorization": API_KEY}, verify=False).json()    all_usage = []    for exp in exps:        all_usage.extend(parse_usage(exp.get('body'''or ''))    summary = defaultdict(lambda: {'total'0'records': []})    for u in all_usage:        summary[u['name']]['total'] += to_base(u['quantity'], u['unit'])        summary[u['name']]['records'].append(u)    print("# 试剂用量汇总\n")    for name, info in sorted(summary.items()):        print(f"- {name}{info['total']:.2f}g ({len(info['records'])}条记录)")if __name__ == "__main__":    main()

四、使用方法

实验记录格式:

Python

1
添加试剂氢氧化钠@0.5g
2
添加试剂乙醇@10mL

触发命令:汇总试剂用量 / 生成用量报告 / 统计实验试剂使用情况

五、测试结果

📊 试剂用量汇总报告

统计周期:2023-05-19 ~ 2025-11-28

  • 氯化钠 60g(2条)
  • 二氧化碳 55g(2条)
  • 超纯水 100g(1条)
  • 次氯酸钠 4.4g(1条)
  • 对苯二甲酸二甲酯 5.5g(1条)

明细记录

日期    实验    试剂    用量

2025-11-28    化学实验2    氯化钠    50.0g

2025-11-28    化学实验2    二氧化碳    50.0g

2025-11-28    化学实验1    氯化钠    10.0g

2025-11-28    化学实验1    二氧化碳    5.0g

2025-11-28    化学实验1    超纯水    100.0g

2023-05-19    糖的性质    次氯酸钠    4.4g

2023-05-19    糖的性质    对苯二甲酸二甲酯    5.5g

⚠️ 注意:目前 eLabFTW 中只有 10 个实验,最新是 2025-11-28 的。没有找到 氢氧化钠@0.5g 的记录,可能该实验还未创建或在其他系统中。

Skill 已就绪,随时可以汇总!

六、未来展望

  • 库存自动扣减
  • 阈值预警
  • 定期自动汇总

附录:详细聊天记录(2026-04-18 19:15 ~ 20:00)

【19:15】用户:回忆你elabftw试剂入库skill
【19:15】助手:整理了两个核心Skill:reagent-inventory(拍照/发票入库)和reagent-excel-import(Excel批量入库),包含关键配置和重要红线。  
【19:17】用户:能否根据elabftw试验,自动登记试剂使用量到相应item 
【19:17】助手:询问需求细节:实验如何记录用量、期望的自动流程、消耗量计算方式。  
【19:21】用户:试剂:氢氧化钠@0.5g;希望定期汇总,且生成一个新的skill 
【19:21】助手:确认需求,创建新Skill reagent-usage-report,支持手动触发汇总、解析"试剂:氢氧化钠@0.5g"格式。  
【19:23】用户:先不考虑扣减容器数量,先生成汇总报告。api有读写实验权限,手动触发开始汇总,格式就是这个"试剂:氢氧化钠@0.5g" 
【19:23】助手:明确需求,创建Skill并测试,成功解析出7条用量记录。  
【19:29】用户:测试一下,所有实验 
【19:29】助手:测试成功,发现10个实验、5种试剂,总用量:氯化钠60g、二氧化碳55g、超纯水100g等。  
【19:34】用户:将今天elabftw试剂消耗统计的skill生成完整讨论记录以及细节发布微信公众号 
【19:39】用户:要添加具体的代码,要添加具体的代码。 
【19:39】助手:补充完整代码示例(正则解析、单位转换、API调用、汇总报告等),重新发布文章。  
【19:49】用户:添加从晚上7点到发布这篇文章之前的详细的聊天记录,作为附录,放在那个发表的文章最后。 
【19:49】助手:获取聊天记录,整理成附录格式,更新文章。