Hermes
返回

实验记录提醒 · Jun 11 20:03

2026-06-11 20:00 · 9 条 · deepseek-v4-flash

user · 2026-06-11 20:00
[IMPORTANT: The user has invoked the "research-assistant" skill, indicating they want you to follow its instructions. The full skill content is loaded below.] --- name: research-assistant description: "个人科研助理 — 实验记录捕获、每日复盘、文献阅读、项目状态查询、论文写作辅助" version: 2.2.0 author: Hermes + Claude category: productivity tags: [科研, 实验记录, Obsidian, NAS, 文献, 论文写作] --- # 🧪 个人科研助理 (Research Assistant) 为 YangLab 神经科学方向研究员定制的全栈科研助理 Skill,通过微信交互,自动对接 Obsidian + NAS。 --- ## 📋 命令总览 | 命令 | 功能 | 对应模块 | |------|------|----------| | `/log` | 快速记录实验(文字描述) | 实验记录捕获 | | `/recap` | 生成今日/本周实验总结 | 每日复盘 | | `/read <DOI/标题>` | 生成文献双语摘要笔记 | 文献阅读 | | `/status <项目名>` | 查询某项目进度 | 项目状态 | | `/draft <段落>` | 论文段落审读/润色 | 论文写作 | | `/stock` | 查询试剂库存 | 库存管理 | --- ## 🗂️ 项目目录映射 当用户提到项目名时,自动映射到 Obsidian 对应目录: | 用户说法 | 项目文件夹 | |----------|------------| | PD-GZR18 / GZR18 / PD课题 | `01-PD_GZR18` | | PD外泌体 / 外泌体 | `02-PD_外泌体` | | 地骨皮乙素 / 脑缺血 / KuB | `03-IS_地骨皮乙素` | | 低氧运动 / MS | `04-MS_低氧运动` | | Mitoxyperiosis / MYO19 | `05-IS_Mitoxyperiosis` | | SKL / MNPs / TP-7 | `06-SKL_MNPs` | | 紫檀芪 | `07-PK_PD-紫檀芪` | --- ## 模块 1:实验记录捕获 `/log` ### 核心原则 - **尊重用户的现有模板**:用户已有 `模板/实验记录模板.md`,不要试图替换它。生成实验记录时使用用户自己的模板格式(frontmatter + 三个大章节:实验规划/过程记录/复盘总结),可适当简化但保留核心结构。 - **用户口述 → 我填充**:用户用自然语言说今天做了什么,我解析后填入模板字段,不要重新发明格式。 ### 识别规则 从用户描述中匹配以下关键词: - **项目**:见上方项目目录映射 - **实验类型**: - `WB` / `western` / `免疫印迹` → Western Blot - `细胞` / `CCK8` / `MTT` / `流式` → 细胞实验 - `造模` / `MPTP` / `MCAO` / `小鼠` → 动物造模 - `行为学` / `旷场` / `转棒` / `爬杆` → 行为学 - `测序` / `转录组` → 测序分析 - `PCR` / `qPCR` → 分子实验 ### 输出格式 保存到 NAS 对应项目目录,文件名:`YYYYMMDD-实验简述.md` ```markdown --- date: {{date}} project: {{project}} type: {{experiment_type}} tags: - 实验记录 - {{project_tag}} --- # {{date}} {{summary}} ## 🎯 今日操作 {{operations}} ## 📊 结果 {{results}} ## 💡 备注 {{notes}} ## 📋 明日计划 {{tomorrow}} ``` ### NAS 保存命令 ```bash pushd //192.168.3.9/personal_folder/obsidian/XMU-LYL/D/obsidian/XMU-LYL/ cd "20-项目管理/{{项目文件夹}}/" # 写入文件 popd ``` ### 用户交互示例 **用户说:** > 今天做了 PD-GZR18 的 WB,跑了 GZR18 处理组和对照组的 α-synuclein,GAPDH 内参,条带出来了,明天打算做定量分析 **我回复:** ``` ✅ 已记录 PD-GZR18 → WB 实验 📄 20260609-WB_α-synuclein检测.md 已保存 📂 NAS: 20-项目管理/01-PD_GZR18/ 明日计划:定量分析 ✓ ``` ### 图片处理 如果用户发了实验图片(WB 条带图等),先用 MiniMax 视觉分析,然后将分析结果写入实验记录。 --- ## 模块 2:每日复盘 `/recap` ### 触发 - 手动:用户发 `/recap` - 自动:每晚 cron 任务(已配置 `实验记录提醒`,每日 20:00) ### 输出 汇总今天所有实验记录条目,生成简短总结: ``` 📋 {{date}} 实验总结 ━━━━━━━━━━━━━━━ 📌 PD-GZR18: WB α-synuclein → 条带已出,明天定量 📌 PD外泌体: 未操作 📌 地骨皮乙素: 未操作 ✅ 共 1 条记录 ⏰ 明日计划: WB 定量分析 ``` ### 周末处理 周六/日如果没有实验,不强行要求记录。 --- ## 模块 3:文献阅读 `/read` ### ✨ 核心风格要求(用户偏好 — 必须遵守) 用户明确偏好**公众号式的解读风格**,而不是学术综述风格。每次解读必须: 1. **口语亲切**:用"拿数据扫了一圈""掉得特别狠""老鼠死得也早"这类接地气的表达,不要用"研究结果显示""数据分析表明"这种学术腔 2. **每条 Figure 配「复现建议」**:用户特别看重这个!每张图解读后加一段 `🔬 复现建议:`,写上具体操作(用什么细胞、多少浓度、处理多久、检测什么指标) 3. **简短段落**:每个 Figure 的解读不要超过 5-6 行,用自然口语表达 4. **编号清晰**:用 ① ② ③ ... 或 01 02 03 ... 编号每一节 5. **信号通路图**:用纯 CSS 卡片图展示,不用 AI 画图 6. **关联用户研究**:最后一段必须列出与该用户项目的关联点 ### 触发 用户发 `/read <DOI>` 或 `/read <论文标题>` 或直接发微信文章链接 / PDF 路径 ### 处理流程(三步走) #### Step 1:搜索 & 下载全文 优先按以下顺序尝试: **方案A:已知 DOI** — 通过 NCBI E-utilities API 搜索 PubMed,获取 PMID 和元数据,再从期刊网站(Nature 等 Open Access)下载 PDF **方案B:PubMed 关键词搜索** — 用 esearch.fcgi 接口搜索,限制年份和相关性 **方案C:PDF 已提供** — 用户发了 PDF 文件或桌面已有,直接提取文本 **方案D:微信文章链接** — 用移动端 MicroMessenger User-Agent 请求,从 id="js_content" 提取正文 **方案E:付费墙论文(Cell/Elsevier 系列)** — 由于国内网络限制和 Elsevier 强付费墙,PDF 无法直接下载。替代方案: - 用户可能在 Obsidian 已有文献笔记(带原文存档),从中提取全文文本 - **从 Obsidian vault 获取论文原图**:论文的 Obsidian 笔记中通常嵌有 `![[hash_MD5.jpg]]` 图片引用,这些图片存在 `resources/` 目录下。需要在笔记中找 `**Figure X`** 附近的 `![[hash.jpg]]` 引用来映射图号 ```python import re # 提取 figure→hash 映射 fig_matches = re.findall(r'!\\[\\[([a-f0-9]+_MD5\\.jpg)\\|?\\d*\\]\\]\\s*\\n*\\*\\*(Figure [^\\*]+)\\*\\*', note_text) vault_resources = r"//192.168.3.9/personal_folder/obsidian/XMU-LYL/D/obsidian/XMU-LYL/resources" for img_hash, fig_desc in fig_matches: src = os.path.join(vault_resources, img_hash) shutil.copy2(src, output_dir) ``` #### Step 2:提取全文文本 ```python # 方式一(推荐):pdfminer.six 提取纯文本 from pdfminer.high_level import extract_text text = extract_text("paper.pdf") # 方式二:Nature HTML 页面(PDF 被付费墙时) # 从 HTML 中提取 Introduction / Results / Discussion # 方式三:微信文章正文 # 从 id="js_content" div 中正则提取 ``` #### Step 3:深度解读(按以下结构) 为用户输出一篇完整的文献解读,按以下层次组织: **① 基本信息表**:标题、期刊、IF、作者、DOI、PMID **② 信号通路图**(纯文本框图) **③ Figure-by-Figure 逐图解读**: - 做了什么实验(方法) - 结果是什么(数据) - 为什么这一步关键(逻辑意义) **④ 论文逻辑评估**(用户特别关注): - 逻辑链条是否完整(临床 → 体内 → 细胞 → 分子 → 治疗) - 是否做了正反双向验证(KO + 过表达 + rescue) - 分子机制是否有"开关"或"调控"逻辑 - 方法学亮点(TurboID、BiFC、CellChat 等) **⑤ 与用户研究的关联性**: 列出论文中可借鉴的思路/方法/实验设计,对应到用户的 PD、脑缺血、外泌体等项目 ### 输出格式 保存到 NAS: `10-文献管理/02-已读文献/YYYYMMDD-简短标题.md` ```markdown --- date: {{date}} title: "{{title}}" journal: "{{journal}}" doi: "{{doi}}" pmid: "{{pmid}}" related_project: {{project}} tags: - 文献 - {{project_tag}} --- ## 通路图 ``` {{pathway_diagram}} ``` ## Figure 逐图解读 ### Figure 1: ... **方法**: ... **结果**: ... **关键**: ... ## 逻辑评价 - 完整度: ... - 验证强度: ... ## 与我们的关联 {{relevance}} ``` ### 图嵌入技巧(关键) 用户偏好看到**论文原始图片**,而不是手绘或AI生成的图表。生成 HTML 文章时必须: ```python # Step 1: 从 Nature 网站下载原始 Figures fig_urls = set() for pattern in [ r'https://media\.springernature\.com/[^"\']*fig[^"\']*\.(jpg|png)', r'https://media\.springernature\.com/[^"\']*figure[^"\']*\.(jpg|png)', ]: for m in re.finditer(pattern, html, re.IGNORECASE): fig_urls.add(m.group(0)) # Step 2: 下载前7张大图(Figures 1-7),按尺寸排序取最大的 all_figs = [] for url in sorted(fig_urls): r = requests.get(url, headers=headers, timeout=10) if r.status_code == 200 and len(r.content) > 50000: # >50KB all_figs.append((len(r.content), url, r.content)) all_figs.sort(reverse=True) # Step 3: 保存到桌面,用有意义的文件名 out_dir = r"C:\Users\forgase\Desktop\SEMA3G_figures" os.makedirs(out_dir, exist_ok=True) for i, (size, url, data) in enumerate(all_figs[:7]): fname = f"Figure{i+1}_description.png" with open(os.path.join(out_dir, fname), 'wb') as f: f.write(data) # Step 4: base64 嵌入 HTML(不要用 file:// 协议) import base64 b64 = base64.b64encode(data).decode() data_uri = f"data:image/png;base64,{b64}" # Step 5: 在 HTML 中用 JS 变量存储 + 动态设置 img.src # <img id="img_fig1"><script>document.getElementById('img_fig1').src=fig1;</script> ``` ⚠️ **禁止**:使用 `file:///` 协议路径引用本地图片 → 浏览器安全策略会拦截,渲染为空白。 ✅ **正确做法**:base64 data URI 直接嵌入 HTML,生成自包含的独立文件。 ### 文献解读 HTML 文章结构 生成自包含 HTML 文件,仿公众号文章风格,包含: - 封面区(标题/期刊/DOI)+ 信息卡片 - 信号通路卡片图(纯 CSS 渲染,不用图片) - 每张 Figure 的原始图片 + 解读文字(方法/结果/关键意义) - 逻辑评价高亮框 - 与用户研究关联表 - 所有图片用 base64 data URI 嵌入,文件自包含 ### 可复用脚本 `scripts/generate-article-html.py` — 生成自包含文献解读 HTML 的 Python 模板。在 execute_code 中导入使用,传入论文元数据和图片路径即可。 ### 参考 完整的文献分析范例见 `references/literature-analysis-example.md` 技术细节见 `references/paper-access-workflow.md` --- ## 模块 4:项目状态查询 `/status` ### 触发 用户发 `/status PD-GZR18` 或 `/status 全部` ### 处理流程 1. 扫描对应项目目录下所有实验记录文件 2. 按日期排序 3. 统计记录数量和时间跨度 ### 输出示例 ``` 📊 PD-GZR18 项目状态 ━━━━━━━━━━━━━━━━━━ 📁 Figure1-6: ✅ 已完成 📝 论文初稿: 修改中 (v2: 2026.05.08) 🧪 实验记录: 共 0 条 📅 最近活动: 暂无记录 ``` --- ## 模块 5:论文写作 `/draft` ### 触发 用户发 `/draft <需要审读的内容>` ### 处理 配合 Claude Code 进行深度审读,重点检查: - 逻辑连贯性 - Figure 数据-结论支撑关系 - 参考文献格式 --- ## ⏰ 定时任务 已配置: - **实验记录提醒**(`0 20 * * *`):每晚 8 点微信提醒记录实验 待拓展: - **周日周报**:每周日汇总本周实验进展 - **文献提醒**:提醒处理待读队列 --- ## 🛠️ 依赖 - Hermes Agent(WeChat 通道) - NAS 访问权限(`pushd //192.168.3.9/personal_folder/`) - Obsidian vault 路径 - Claude Code(用于论文审读等深度任务) - MiniMax(用于实验图片视觉分析) The user has provided the following instruction alongside the skill invocation: [IMPORTANT: You are running as a scheduled cron job. DELIVERY: Your final response will be automatically delivered to the user — do NOT use send_message or try to deliver the output yourself. Just produce your report/output as your final response and the system handles the rest. SILENT: If there is genuinely nothing new to report, respond with exactly "[SILENT]" (nothing else) to suppress delivery. Never combine [SILENT] with content — either report your findings normally, or say [SILENT] and nothing more.] 你是Hermes,用户的科研助理。加载 research-assistant skill。 提醒用户记录今天的实验。发微信消息: 🧪 **实验记录时间到!** 今天做了什么实验?跟我说说吧~ 简单说一下: 1. **哪个项目**(PD-GZR18 / PD外泌体 / 地骨皮乙素 / 低氧运动 / 其他) 2. **做了什么操作** 3. **结果怎么样** 4. **明天计划** 你说我写,我来帮你整理成规整的实验记录存到 Obsidian ✍️
assistant · 2026-06-11 20:03
tool · 2026-06-11 20:03
Tool 'load_skill' does not exist. Available tools: browser_back, browser_click, browser_console, browser_get_images, browser_navigate, browser_press, browser_scroll, browser_snapshot, browser_type, delegate_task, execute_code, memory, patch, process, read_file, search_files, session_search, skill_manage, skill_view, skills_list, terminal, text_to_speech, todo, write_file
assistant · 2026-06-11 20:03
tool · 2026-06-11 20:03
{"output": "2026-06-11 星期四", "exit_code": 0, "error": null}
tool · 2026-06-11 20:03
{"output": "01-PD_GZR18\n02-PD_外泌体\n03-IS_地骨皮乙素\n03-IS_地骨皮乙素.zip\n04-MS_低氧运动\n05-IS_Mitoxyperiosis\n06-SKL_MNPs\n07-PK_PD-紫檀芪\n脑缺血_地骨皮乙素.zip", "exit_code": 0, "error": null}
assistant · 2026-06-11 20:03
tool · 2026-06-11 20:03
{"output": "//192.168.3.9/personal_folder/obsidian/XMU-LYL/D/obsidian/XMU-LYL ~\n~", "exit_code": 0, "error": null}
assistant · 2026-06-11 20:03
🧪 **实验记录时间到!** 今天(2026.06.11 星期四)还没记实验呢~ 跟我说说今天做了什么?简单回答这几点就行: 1️⃣ **哪个项目**(PD-GZR18 / PD外泌体 / 地骨皮乙素 / 低氧运动 / SKL / 紫檀芪 / 其他) 2️⃣ **做了什么操作**(WB、细胞、动物造模、行为学、PCR…) 3️⃣ **结果怎么样** 4️⃣ **明天计划** 你说我写,我来帮你整理成规整的实验记录存到 Obsidian ✍️ 📂 已看到 NAS 上现有项目: • PD-GZR18 • PD外泌体 • 地骨皮乙素(脑缺血) • 低氧运动 • Mitoxyperiosis • SKL/MNPs • 紫檀芪