skills: 加 analyze(科学问题拆解 / 引导,PICO + Issue Tree + 5Whys/TRIZ/DoE)
服务"用户拿模糊高层科研问题过来、还没决定要不要立项 / 不知道从哪入手"的早期阶段 —— 之前 10 个 skill 没人接这场景(proposal/research/stats_ml 都要先想清楚)。本 skill 不执行任务,只把模糊命题翻译成可操作子问题 + 实施路线图,最后接力给下游 skill。 四段式工作流: 1. PICO/PECO 规范化(P/I/C/O + FINER 五维自检)— BLOCKING 2. Issue Tree 拆解(MECE,默认机理-现象-工艺三层,叶子标 类型/优先级/能力描述)— BLOCKING 3. 按叶子类型分支深化:根因→Fishbone+5Whys / 创新→First-principles+TRIZ / 优化→DoE 选型 4. 实施路线图(每步标干什么/能力/产物/判停)+ TODO + 接力建议 7 文件 657 行:SKILL.md + 5 references(按需读)+ 1 template(analysis.md 骨架)。 关键决策: - 不硬编码"叶子能力→skill 名"映射(skill discovery 已注入 prompt,改名不破坏) - description 双重防护:触发条件写死探索阶段 + 输出末尾推 X 能力接力 - 不要 Python helper(全引导式对话,跟 review skill 同范式) - TRIZ 摘 10 对建材矛盾(强度↑韧性↑ / 早强↑后期↓ / 致密↑透气↑...)够 80% 场景 - DoE 只规划设计类型 + 因素表,具体点位生成由下游 stats_ml 跑 pyDOE2 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
85415470d2
commit
203e14d15d
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
> 配合 `DESIGN.md`。本文件只记 phase 状态、决策偏差、文件量、下一步。每条 1-2 句:做了啥 + 关键判断;细节查 `git log` / `git diff` / `DESIGN §7.9`。
|
||||
|
||||
最后更新:2026-05-28(Python 3.10→3.12 升级 + Docker backend PYTHONPATH 修 + 3 个科学计算 skill smoke 通过)
|
||||
最后更新:2026-05-28(新增 analyze skill 引导式问题拆解 + Python 3.10→3.12 升级 + Docker backend PYTHONPATH 修 + 3 个科学计算 skill smoke 通过)
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
### 2026-05-28
|
||||
|
||||
- **新增 `analyze` skill(科学问题分析 / 拆解 / 引导),服务建材院 R&D 早期问题翻译场景**:用户拿"模糊的高层科研问题"(典型句式"想搞清楚 X 原因 / 怎么提升 Y / 该不该做 Z")过来时,既不是写本子(proposal)/也不是查文献(research)/也不是建模(stats_ml),而是**问题还在概念阶段需要先想清楚**——之前 10 个 skill 没人接这个场景,模型只能凭直觉糊弄。本 skill 定位为"协调器 / 问题翻译器",**不执行任务**,只把模糊命题拆成可操作子问题 + 实施路线图,最终接力给下游 skill。**四段式工作流**:① PICO/PECO 规范化(P 对象 / I 干预 / C 对照 / O 量化输出 + FINER 五维自检)—— 卡 BLOCKING;② Issue Tree 拆解(MECE 原则,默认"机理-现象-工艺"三层,叶子节点标 `[类型 / 优先级 / 能力描述]`)—— 卡 BLOCKING;③ 按叶子类型分支深化:根因型走 Fishbone(六大支:材料/工艺/设备/检测/环境/人员)+ 5Whys、创新型走 First-principles 拆假设 + TRIZ 矛盾矩阵(摘 10 对建材常见冲突),优化型走 DoE 选型导航(PB/全因子/CCD/Box-Behnken/混料/序贯);④ 实施路线图 + TODO + 接力建议(`analysis.md` §6 每步四件事:干什么 / 能力描述 / 产物 / 判停条件)。**文件结构**:`skills/analyze/SKILL.md`(121 行)+ 5 份 references(78-95 行,按需 always read 或分支 read)+ 1 份 `templates/analysis_report.md`(87 行 = 最终 `analysis.md` 骨架),共 7 文件 657 行。**关键决策**:(a) **不硬编码"叶子能力 → skill 名"映射表** —— runtime 的 skill discovery 已经把所有 skill description 注入 prompt(DESIGN §3.5),硬编码等于重复 + 改名要回来改;改用"能力描述"(动词短语)让 LLM 按当时看到的 skill 清单自匹配;(b) **触发 description 双重防护** —— A 写死"还在想方向 / 不知道从哪入手"触发条件 + 显式列出何时不用(proposal/research/stats_ml/review 走对应 skill),B 在 §输出末尾推荐"下一步用 X 能力推进",前者拦"路由进"后者拦"路由出"卡死;(c) **不需要 Python helper** —— 全引导式对话 + markdown 输出,跟 review skill 同范式,无代码;(d) **TRIZ 不抄全 40 原理矩阵** —— 摘 10 对建材常见矛盾(强度↑韧性↑ / 早强↑后期↓ / 致密↑透气↑ 等),够 80% 场景 + 不污染上下文;(e) **DoE 选型表不生成实验点位** —— analyze 只规划设计类型 + 因素表,具体随机化 / 点位生成由下游 stats_ml 跑 pyDOE2,职责清晰;(f) **产物文件简单命名 `analysis.md`** —— 不学 proposal 的 `<today>-<short_id>-<name>.spec.md` 多版本机制(spec 是"宪法"需要定调一次,analysis 是工作文档迭代覆盖即可);(g) **examples 全打建材域**(P42.5 早强偏低 / 熔铸 AZS 砖热震 / 低碳水泥探索 / 矿粉粉煤灰配方 DoE),触发 description 保持领域无关(框架本身通用),只在 references 里塞建材 case 让 LLM 学场景适配。否决:(a) `proposal` 直接覆盖问题分析功能 —— proposal 已包含"先写要点再写正文"两段式,但那是"已定调要立项"之后的拆解,跟"还没决定要不要立项"的探索阶段语义不同;(b) 合并到 `research` —— research 是查文献执行能力,问题拆解不查文献也能做;(c) 写成 Python framework(自动拆解 + 自动 PICO 填空)—— 强行结构化反而压死开放探索,引导式对话更贴 R&D 实际节奏。`DESIGN.md` 不动(新加 skill 无架构变化);`RUN.md` 不动(无 CLI / env / 文件布局变化);`SCIENTIFIC_SKILLS.md` 不动(该文件是 K-Dense 仓库引进评估笔记,analyze 是自主设计不在其列)。
|
||||
- **Python 3.10→3.12 升级(host + Dockerfile)+ DockerExecutor PYTHONPATH 加 `/sandbox` 修历史 import bug + 3 个科学 skill smoke 通过**:上一条加完 3 个科学 skill 后跑 smoke 发现 step D mp_rester 联网炸 `ImportError: cannot import name 'NotRequired' from 'typing'` —— Materials Project 官方依赖 `emmet-core 0.86.0rc1` 的 `outcar_adapter.py` 直接 `from typing import NotRequired`(3.11+ 才有,没走 `typing_extensions` 兜底),原 host .venv 是 Python 3.10.9 → mp-api 整链路 import 不进。**选 3.12 而非 3.11/3.13**:3.12 是当下 ML/AI 生态默认推荐版本(稳一年半 + 所有主流包预编译 wheel 覆盖完整),3.11 跟容器对齐但少一年优化,3.13 释放才半年冷门 wheel 偶尔退源码编译 Windows 上易踩坑(没新特性需求,激进升只是踩雷概率)。**实施**:① host py -3.12 -m venv 重建 .venv,pip install -r requirements.txt 装齐(pymatgen 2026.5.4 / mp-api 0.46.1 / emmet-core 0.86.4 / sklearn 1.8.0 / statsmodels 0.14.6 / numpy 2.4 / scipy 1.17 / matplotlib 3.10.9 / litellm / fastapi / sqlalchemy / 全套传递依赖);② Dockerfile FROM `python:3.11-slim` → `python:3.12-slim`(host / 容器同步升,部署机 rebuild image 时生效);③ **顺手修 `core/executor_docker.py:172` PYTHONPATH** `/workspace` → `/sandbox:/workspace`:历史 bug —— 多个 skill(`research/paper`、新加 `pymatgen/materials`、`plot_pub/style`)SKILL.md 都教 LLM `from skills.xxx.yyy import zzz`,host backend 因 base_dir=Path.cwd()(zcbot repo 根)注入 PYTHONPATH 能 work;docker backend 下容器只有 `PYTHONPATH=/workspace` + skills/ bind mount 到 `/sandbox/skills:ro`,`import skills.xxx` 找不到。本次加 `/sandbox` 前缀(在 /workspace 前,让 skills 优先级高于用户 task 目录的同名 shadow),`tests/test_executor_docker.py:243-245` regression test 改 `assertIn("PYTHONPATH=/sandbox:/workspace", ...)`,**全套 15/15 PASS**。**smoke 实跑**:step A pymatgen helper + XRDCalculator MgO 11 个峰 ✅ / step B sklearn R²=0.575 + statsmodels R²=0.911 p≪0.05 ✅ / step C plot_pub SimHei + PNG+PDF 出图 ✅ / step D mp_rester 联网 ⚠️ 返 403 "Your IP/ASN blocked"(Materials Project 服务侧 IP 临时封禁,跟代码无关,LBNL 服务对中国大陆 IP 段或同 ASN abusive traffic 触发 → 等几小时自动解 / 邮件 support@materialsproject.org 报公网 IP 申请解封 / VPS 走代理 fallback)。**非阻塞**:pymatgen 本地功能(CIF I/O / XRDCalculator / SpacegroupAnalyzer / PhaseDiagram / VASP 输入)100% 能用,只是 `mp_rester` 在线查询暂不能用。否决:(a) 升 3.11(只跟容器对齐,少一年优化,3.12 同样兼容容器);(b) 升 3.13(释放半年,冷门 wheel 偶尔退源码编译 Windows 踩坑,激进升无收益);(c) pin `emmet-core<0.86` + `mp-api<0.45`(临时,下次 pip install 不 pin 又炸,且丢 emmet 新功能);(d) monkey patch `typing.NotRequired = typing_extensions.NotRequired`(hacky 且挡不住 mp_api 下游其他 3.11+ 假设);(e) executor PYTHONPATH 改 `/workspace:/sandbox`(/workspace 优先 → 用户 task 目录如果手贱建 `skills/` 同名子目录会 shadow 真 skills,/sandbox 在前更稳)。`DESIGN.md` 不动(纯实施层 Python 版本 + 容器 PYTHONPATH 修);`RUN.md` 不动(env 段 MP_API_KEY 已在上一条 skill commit 加入,Python 版本要求记 `requirements.txt` + Dockerfile 自表)。
|
||||
- **新增 3 个科学计算 skill(pymatgen / stats_ml / plot_pub),服务建材院无机非金属材料 R&D**:`SCIENTIFIC_SKILLS.md` 评估完 K-Dense/scientific-agent-skills 仓库后落地选 4 个 ★★★ 中前 3 个动手(materials_db 后置,USPTO 部分留并入 `skills/patent`)。命名取**工具名直接**(`pymatgen` / `plot_pub`)+ **业务前缀**(`stats_ml` 因合三库需要场景导航),贴合现有 skill 命名风格(coding/ppt/research/...)。① **`skills/pymatgen/`**:`SKILL.md`(无机相中文→化学式映射表说明 / XRD 比对 / 对称性 / 相图 / VASP 输入文件,八条反模式)+ `materials.py`(`CEMENT_PHASES` dict 覆盖水泥熟料 / 水化产物 / 石膏 / 碳酸盐 / 陶瓷耐火 / 玻璃晶相 / 常见矿物共 50+ 条目,中英文 / 简写多 key 指同一化学式;`lookup_phase()` 大小写不敏感查找;`mp_rester()` context manager 自动从 env 拿 `MP_API_KEY`,缺则 RuntimeError 带申请链接;mp_api 局部 import 避免装包前 import 即崩)。② **`skills/stats_ml/`**:`SKILL.md` 纯指南(场景导航表选 sklearn / statsmodels / PyMC、5 个工作流示例 A-E 含配方-性能回归 / DoE 二阶响应面 / 显著性分析 / 贝叶斯小样本 / DBSCAN 异常配方、16 条反模式分库列示)+ 无 helper(三库 API 直接用)。③ **`skills/plot_pub/`**:`SKILL.md`(XRD 多相叠图 / TG-DSC 双 Y 轴 / 强度发展曲线 / 多 panel 论文 figure 4 个工作流 + 中文字体说明 + 10 条反模式)+ `style.py`(`apply_pub_style()` 一键设置:中文字体跨平台 fallback SimHei→YaHei→WenQuanYi→DejaVu / dpi 150 屏幕 300 保存 / viridis 默 cmap / 刻度朝内 / legend 无框 / PDF Type 42 字体合规期刊 / `font.size` `linewidth` 等可参数化;`_find_chinese_font()` 在 `font_manager.fontManager.ttflist` 查实装字体而非靠 try-load)。**关键决策**:(a) **不一键装 138 个 skill** —— 上下文噪声 + 误触发(用户"分析一下"模型可能跳 Scanpy),挑 4 个 ★★★ fork 单装;(b) **PyMC 装包延后** —— 带 pytensor 装 5min+ 体积大,真要做贝叶斯再装;requirements.txt 注释掉以 `# pymc>=5.10.0` 形式留接口;(c) **MP_API_KEY 走 .env** —— 跟 DEEPSEEK_API_KEY / ARK_API_KEY 同范式,litellm 不读但 `os.environ.get` 拿到;(d) **化学式映射表对中文 / 简写 / 英文学名同等待遇** —— 用户报相名习惯混杂(C3S / 硅酸三钙 / alite 都常见),多 key 同 value 比强迫归一化体验好;(e) **不写示例数据/单元测试**:开发期 LLM 工作流场景多变,跑了 SKILL.md 工作流验证而非脚本测试 —— skill 是 prompt 不是代码模块。requirements.txt 加 pymatgen / mp-api / scikit-learn / statsmodels(PyMC 注释)。`RUN.md` env 段加 MP_API_KEY 说明(可选 + 申请链接 + 未设抛 RuntimeError)。`DESIGN.md` 不动(纯 skill 加,无架构变化);`SCIENTIFIC_SKILLS.md`(根目录调研笔记)已沉淀整体评估,后续 materials_db 落地参考。装包未执行 —— 等用户跑 `.venv/Scripts/pip install pymatgen mp-api scikit-learn statsmodels` 装上才能验证 import 路径生效。否决:(a) 三个 skill 合并成一个 `science` skill —— 触发语义糊,LLM 难判,各做各的更清;(b) `materials_pymatgen` 这种业务前缀全打 —— pymatgen 本身就是材料库,前缀冗余;(c) helper 过度封装(写 `simulate_xrd(formula)` 全自动)—— 隐藏 pymatgen 真实 API,LLM 学不到本来好用的上游能力,反模式段在 SKILL.md 里讲清更轻;(d) plot_pub 内 `apply_pub_style()` 失败抛错 —— 中文字体没装也应该继续画(图能看就行,只是中文方块),warn 比 raise 友好。
|
||||
- **DESIGN §7.5 增"image 体积 / 多 user 资源 / 后续加包策略"决策段**:dogfood 推进到加 npm + chromium + mermaid-cli 后,sandbox image 1.5G+,后续 domain 包(rdkit / pymatgen / ASE / pandoc-tex 等)还会进一步推大,把"image 大 = 资源占用大 = 多 user 容器爆炸"这条直觉关联的事实链拆开沉淀,免得未来花减肥功夫减错地方。三条认知校准:① **image 大 ≠ 运行时吃更多 RAM**(空载 `tini → sleep infinity` RSS 个位数 MB,layer 共享让磁盘乘数 = 1,真吃 RAM 的是 active exec 行为而非 image 字节);② **多 user 同时在线瓶颈在并发 exec 不在 idle 容器数**(杠杆全在 `docker run --memory --cpus --pids-limit` + 同 user 并发 semaphore + 整机 active user cap + idle 回收,减 image 体积对这条曲线无效);③ **新增依赖采用"base 收敛 + per-user 持久化 venv + 使用频次沉淀"**:base 只放高频共用轻量包(`requirements.txt` 当前形状),长尾 domain 包模型用 `pip install --target=/workspace/.venv/site-packages` 装到 per-user 持久化路径(随 user_root bind mount,idle 回收不丢);加 audit 统计哪些包累计被 >30% user 装过 ≥ 3 次 → 下次 build 合并进 `requirements.txt`,base 跟着真实使用模式收敛而非拍脑袋。否决:(a) 全塞 base —— 重包(torch / texlive)+ 长尾包打死磁盘 + 强迫所有 user 陪绑;(b) 运行时临时装(不持久化)—— 容器 idle 回收即丢冷启重装,高频复用差;(c) 多 image 按场景分 —— per-user 容器模型下 user 不知道选哪个,切 skill 还得换 image 心智不通;(d) per-user venv 用 named volume / 共享 image cache —— 包 install 脚本是任意代码,跨 user 共享 venv 破坏跨 user 隔离边界;(e) 依赖 pip cache 解决问题 —— pip cache 只省网络不省落盘,容器回收照样丢。落地点排进 Stage C Step 6 Executor 实施:cgroup limits / 并发 semaphore / idle 回收 / per-user venv mount 一并进 `DockerExecutor`(audit 沉淀机制延后,需要 dogfood 安装日志积累再开)。`RUN.md` 不动(当前无 CLI / env 变化,真做 venv mount 时再加);`DESIGN.md` §7.5 升级触发信号表后新增该段。
|
||||
|
|
|
|||
|
|
@ -0,0 +1,121 @@
|
|||
---
|
||||
name: analyze
|
||||
description: 科学问题分析 / 拆解 / 引导。用户提出模糊的高层科研问题(如"想搞清楚 X 是什么原因 / 怎么提升 Y / 该不该做 Z")、还没决定要不要立项、还在想方向、不知道从哪入手时使用。本 skill 不执行任务,而是把模糊命题翻译成可操作子问题 + 实施路线图,最后导向其他 skill。已经明确要写本子 / 查文献 / 跑实验时不用,直接走 proposal / research 等。
|
||||
---
|
||||
|
||||
# Analyze - 科学问题分析
|
||||
|
||||
服务建材院无机非金属材料 R&D 场景。用户抛过来一个**模糊的高层科研问题**,本 skill 引导用户把它**翻译成可操作的子问题 + 实施路线图**,然后把每个子问题接力给合适的下游 skill。
|
||||
|
||||
**本 skill 不直接产出最终交付物**(不查文献 / 不写本子 / 不跑模型),只产出 `analysis.md` —— 一个共识性的"问题理解 + 路线图"文件。
|
||||
|
||||
## 何时用
|
||||
|
||||
- 用户说"我想搞清楚 / 想研究 / 不知道从哪入手 / 这个问题怎么拆 / 我们能做什么"
|
||||
- 用户问题宽泛,只到效应层("早强偏低"、"耐久性差"、"性能不稳定"),没到具体变量 / 指标 / 假设
|
||||
- 用户在评估要不要立项,问"这个方向值不值得做"
|
||||
- 用户想在不熟悉的领域结合本院能力做点事,要先理一下问题
|
||||
|
||||
## 何时不用
|
||||
|
||||
- 用户已经写明白要做什么(配方对比 / 标准检测 / 文献综述 / 写本子)→ 直接走对应 skill
|
||||
- 用户问通识知识 / 名词定义 → 直接答
|
||||
- 用户要审稿 / 改文 → 走 review
|
||||
- 用户要做异常排查但已经定位到具体环节(只差查文献验证) → 走 research
|
||||
|
||||
## 资源
|
||||
|
||||
所有路径相对 `<skill_dir>`(`load_skill` 返回头里给的绝对路径):
|
||||
|
||||
- `<skill_dir>/references/pico_template.md` — PICO/PECO 问题规范化模板 + FINER 自检(阶段一前 always read)
|
||||
- `<skill_dir>/references/issue_tree_patterns.md` — MECE 拆分模板(机理-现象-工艺三层)(阶段二前 always read)
|
||||
- `<skill_dir>/references/root_cause.md` — 5Whys + Fishbone(根因型分支用)
|
||||
- `<skill_dir>/references/innovation.md` — First-principles + TRIZ 矛盾矩阵(创新型分支用)
|
||||
- `<skill_dir>/references/doe_planning.md` — DoE 选型(优化型分支用,衔接 stats_ml)
|
||||
- `<skill_dir>/templates/analysis_report.md` — 最终产物 `analysis.md` 的格式模板
|
||||
|
||||
## 工作流(四段式,关键阶段卡)
|
||||
|
||||
### 阶段一: 问题规范化(PICO 化)— BLOCKING
|
||||
|
||||
读 `<skill_dir>/references/pico_template.md`,把用户原话填进 PICO 表。
|
||||
|
||||
1. 复制 `<skill_dir>/templates/analysis_report.md` → `<task_dir>/analysis.md`
|
||||
2. 填 §1 原始问题(用户原话照抄)
|
||||
3. 填 §2 PICO 草稿:
|
||||
- **P** 对象(研究材料 / 体系 / 工艺环节)
|
||||
- **I** 干预(自变量 / 被你改变的量)
|
||||
- **C** 对照(参照基准:基准配方 / 国标 / 国外同类型材料)
|
||||
- **O** 输出(**必须量化**:具体指标 + 单位 + 期望数值)
|
||||
4. 跑 §3 FINER 自检(Feasible / Interesting / Novel / Ethical / Relevant)五维评级 + 一句话说明
|
||||
5. 把表格呈现给用户,问:"PICO 这样填对吗?O 这一栏需要更具体的指标吗?"
|
||||
6. **BLOCKING:用户确认后才进阶段二**
|
||||
|
||||
字段填不出 / 用户说"不知道"是常态 —— 别强逼,在表里写 `<TODO 用户补充>`,但**至少 P 和 O 要落地**,否则没法拆。
|
||||
|
||||
### 阶段二: Issue Tree 拆解(MECE)— BLOCKING
|
||||
|
||||
读 `<skill_dir>/references/issue_tree_patterns.md`,选一个拆分模板搭树。
|
||||
|
||||
1. 选拆分维度:**机理-现象-工艺**(建材最常用,默认选)/ **输入-过程-输出** / **材料-工艺-装备-检测**
|
||||
2. 拆 2-3 层(别过深,叶子节点 5-10 个最舒服)
|
||||
3. 在 `analysis.md` §4 写 issue tree(用缩进列表或 mermaid 块,LLM 自选)
|
||||
4. 每个叶子节点标注三个 tag:
|
||||
- **类型**:根因 / 创新 / 优化(决定阶段三用哪个分支)
|
||||
- **优先级**:高 / 中 / 低(凭"是否瓶颈 + 解决后收益")
|
||||
- **能力描述**:一句话动词短语(查文献 / 算结构 / 实验测样 / 数据建模 / 出图 / 写本子...) —— **不写 skill 名**,让 LLM 后续按当时看到的 skill 清单自匹配
|
||||
5. 预览给用户,问:"叶子节点是否漏了?优先级判断对吗?"
|
||||
6. **BLOCKING:用户确认后才进阶段三**
|
||||
|
||||
### 阶段三: 分支深化(按叶子类型选 framework)
|
||||
|
||||
对**高优先级**叶子节点,按类型走对应分支:
|
||||
|
||||
| 叶子类型 | 读哪份 reference | 做什么 |
|
||||
|---|---|---|
|
||||
| **根因型**(为什么 X 异常 / 不达标) | `root_cause.md` | Fishbone 列广 → 5Whys 深挖优先支 |
|
||||
| **创新型**(怎么突破常规 / 找新路径) | `innovation.md` | First-principles 拆假设 → TRIZ 矛盾矩阵找发明原理 |
|
||||
| **优化型**(多因素调参找最优) | `doe_planning.md` | 选 DoE 类型(正交 / Plackett-Burman / 响应面)→ 输出实验设计表 |
|
||||
|
||||
把分支结果写到 `analysis.md` §5(每个高优先叶子一小节)。这一步**不每个叶子都卡** —— 一次性写完高优先叶子的深化分析,最后整体给用户看。
|
||||
|
||||
### 阶段四: 实施路线图 + 接力
|
||||
|
||||
在 `analysis.md` 写 §6 实施步骤、§7 风险与备选、§8 TODO。
|
||||
|
||||
**§6 每一步要标四件事**:
|
||||
- **干什么**(动词开头)
|
||||
- **用什么能力**(一句话能力描述,**不写 skill 名**,让用户 / LLM 自路由)
|
||||
- **产物**(交付物名 + 格式)
|
||||
- **判停条件**(什么时候算这步做完)
|
||||
|
||||
最后给用户:
|
||||
- `analysis.md` 路径
|
||||
- 建议"下一步用 X 能力推进"(X 是能力描述,LLM 按当下 skill 清单匹配 skill 名,不在 SKILL.md 写死)
|
||||
- TODO 待补项清单
|
||||
|
||||
## 工作目录
|
||||
|
||||
`<task_dir>` = system prompt 给的绝对路径。本 skill 只写 **`<task_dir>/analysis.md`** 一个文件,不需要 `figures/` / `sections/` / `source/` 子目录 —— analyze 是引导式分析,无大型多文件产物。
|
||||
|
||||
需要参考素材时:让用户提供材料路径,不要自己 fetch / search(那是下游 skill 的事)。
|
||||
|
||||
## 反模式
|
||||
|
||||
- 阶段一不让用户确认 PICO 就开拆解(O 没量化的 issue tree 拆出来全是空话)
|
||||
- Issue tree 拆到 4 层以上(LLM 容易堆细节,3 层足够 R&D 决策用)
|
||||
- 叶子节点写"用 research skill"/"用 stats_ml skill"(skill 名硬编码,将来 skill 改名要回来改;用能力描述代替)
|
||||
- 用户已经知道要做什么时强行让填 PICO(走对应 skill 即可,不要浪费时间)
|
||||
- 真去执行子问题(查文献 / 算 XRD / 跑回归) —— analyze 只做"想清楚",执行交棒下游
|
||||
- 编造文献 / 数据支撑某个分支的可行性(不知道就标 `<TODO>` + 建议接 research 验证)
|
||||
- TRIZ / DoE 全套强推 —— 只在叶子节点性质匹配时用对应分支,不为了用框架而用
|
||||
- 报告写成学术综述(分支只是工具,产物是路线图不是 paper)
|
||||
|
||||
## 输出
|
||||
|
||||
完成后给用户:
|
||||
- `<task_dir>/analysis.md` 路径
|
||||
- PICO 表(回顾用)
|
||||
- 高优先级叶子节点清单(3-5 个)
|
||||
- 推荐下一步:"先用 <能力描述> 推进 <某叶子>" —— 由 LLM 按看到的 skill 清单匹配
|
||||
- `<TODO>` 待补项
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
# DoE(实验设计)选型
|
||||
|
||||
何时启动:**叶子节点类型 = 优化型**。典型场景:多个工艺 / 配方变量同时影响输出,要找主效应、二阶交互、或最优组合。
|
||||
|
||||
## 选型导航
|
||||
|
||||
| 你想要 | 因素数 | 推荐设计 | 实验次数 | 后续分析 |
|
||||
|---|---|---|---|---|
|
||||
| 看哪些因素是主效应(筛选) | 6-15 | Plackett-Burman | k+4 ~ 4(k+1)/4 | t 检验主效应,接 statsmodels OLS |
|
||||
| 看主效应 + 二阶交互 | 3-7 | 部分因子 2^(k-p) / 全因子 2^k | 8-32 | ANOVA + 交互项 |
|
||||
| 找最优响应面 | 2-5 | 中心复合(CCD)/ Box-Behnken | 15-30 | 二阶响应面 + 等高线 |
|
||||
| 配方约束(组分和 = 1) | 2-5 | 混料设计(Simplex / Extreme-Vertices) | 视约束而定 | Scheffé 多项式 |
|
||||
| 实验昂贵 / 序贯优化 | 不固定 | 序贯单纯形 / 贝叶斯优化 | 视收敛而定 | scipy.optimize / scikit-optimize / optuna |
|
||||
|
||||
## 各设计速查
|
||||
|
||||
### Plackett-Burman(筛选)
|
||||
|
||||
- 用法:把"可能有影响的"6-15 个因素一起测,8-12 次实验筛出主效应
|
||||
- 假设:**只看主效应,忽略交互**(因素 > 7 时全因子代价爆炸,先筛主效应再深入)
|
||||
- 输出:每个因素的效应大小 + p value,p < 0.05 的进下一轮
|
||||
- 工具:`pyDOE2.pbdesign` / `statsmodels` OLS
|
||||
|
||||
### 全因子 / 部分因子(2^k)
|
||||
|
||||
- 用法:每个因素 2 水平(高 / 低),全组合(全因子)或挑一部分(部分因子,牺牲高阶交互的分辨率)
|
||||
- 适合 k ≤ 5 全因子(32 次),k ≤ 8 部分因子
|
||||
- 输出:主效应 + 所有二阶交互 + ANOVA p value
|
||||
- 工具:`pyDOE2.fullfact` / `pyDOE2.fracfact`
|
||||
|
||||
### 中心复合 / Box-Behnken(响应面)
|
||||
|
||||
- 用法:每因素 3-5 水平(含中心点 + 轴点),拟合二阶多项式响应面
|
||||
- 假设:输出对自变量光滑可微,二阶展开够用(强非线性场景不适用,要看残差图)
|
||||
- 输出:`y = β0 + Σβi·xi + Σβii·xi² + Σβij·xi·xj` 拟合系数 + R² + 等高线最优点
|
||||
- 工具:`pyDOE2.ccdesign` / `pyDOE2.bbdesign` → sklearn / statsmodels 拟合 → matplotlib 等高线
|
||||
|
||||
### 混料设计(Mixture)
|
||||
|
||||
- 用法:配方比例之和 = 1(水泥 + 矿粉 + 粉煤灰 = 100%),自变量受约束
|
||||
- 不适用全因子(违反约束)
|
||||
- 输出:Scheffé 多项式 `y = a·x1 + b·x2 + c·x3 + d·x1·x2 + ...`
|
||||
- 工具:`pyDOE2` 不直接支持混料,用 R `mixexp` 或自己生成单纯形格点 / Extreme-Vertices 算法
|
||||
|
||||
### 序贯优化(贝叶斯 / 单纯形)
|
||||
|
||||
- 用法:实验昂贵 / 不能并行 / 不知道因素范围时,边做边学
|
||||
- 输出:每轮推荐下一个实验点(EI / UCB 等准则)
|
||||
- 工具:`scikit-optimize` / `optuna` / `Ax`(Meta)
|
||||
|
||||
## 工作流(analyze 阶段产出什么)
|
||||
|
||||
在 `analysis.md` §5 对应叶子小节里写:
|
||||
|
||||
```
|
||||
## 叶子 X: 配方因素对 28d 抗压强度的影响 — 优化型
|
||||
|
||||
### 实验设计
|
||||
|
||||
- 设计类型: Plackett-Burman 筛选(候选因素 7 个)
|
||||
- 因素表:
|
||||
| 编号 | 因素 | 低水平 | 高水平 | 单位 |
|
||||
|---|---|---|---|---|
|
||||
| A | 矿粉掺量 | 10 | 30 | % |
|
||||
| B | 粉煤灰掺量 | 5 | 25 | % |
|
||||
| C | 水灰比 | 0.30 | 0.40 | - |
|
||||
| D | 减水剂掺量 | 0.5 | 1.5 | % |
|
||||
| E | 养护温度 | 20 | 35 | °C |
|
||||
| F | 比表面积 | 350 | 420 | m²/kg |
|
||||
| G | 石膏掺量 | 3 | 6 | % |
|
||||
- 实验次数: 12(11 因素 PB,空跑 4 个虚拟列控制 II 类错误)
|
||||
- 中心点: 3 次重复测组内方差
|
||||
- 总计: 15 次实验,GB/T 17671 标准养护测 28d 抗压
|
||||
|
||||
### 后续分析
|
||||
|
||||
- 接续能力: 跑 OLS 回归 + ANOVA + 主效应 Pareto 图(由 LLM 按 skill 清单匹配,stats_ml 合适)
|
||||
- 判停: 找到 2-3 个 p < 0.05 的主效应,进入下一轮响应面 DoE(CCD)
|
||||
```
|
||||
|
||||
**不要直接生成具体随机表 / 实验点位** —— analyze 只规划设计类型 + 因素表,具体生成实验点位由下游(stats_ml 用 pyDOE2)跑。
|
||||
|
||||
## 反模式
|
||||
|
||||
- 因素全选 + 全因子(k=10 → 1024 次实验,做不完) —— 用 PB 筛选先
|
||||
- 不留中心点(无法估实验误差,p value 全不可靠) —— 至少 3 个中心点重复
|
||||
- 设计选错:配方混料用全因子 —— 比例约束破坏全因子假设
|
||||
- 直接在 analyze 跑设计代码 —— analyze 只规划设计类型 + 因素 + 范围,生成实验表交下游
|
||||
- 输出范围超出物理可行(配方比例为负 / 温度超过设备能力)—— 因素范围写在表里时要 sanity check
|
||||
- 没标"判停条件"(跑完不知道接下来干啥) —— 每个 DoE 都要标"如果结果 X 接下一步 Y,如果 Z 回上一步"
|
||||
- 假设二阶响应面就够(强非线性体系如玻璃形成区) —— 响应面失配时要看残差,可能需要分段建模或机理模型
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
# 创新分支(First-principles + TRIZ)
|
||||
|
||||
何时启动:**叶子节点类型 = 创新型**。典型场景:常规路线已经走到尽头 / 想找替代方案 / 跨学科借鉴 / 立项书要写"创新点"但还没想清楚。
|
||||
|
||||
## First-principles(第一性原理拆解)
|
||||
|
||||
剥掉"行业惯例 / 类比 / 经验",拆到**不可再拆的物理化学约束**,在约束之上重新构造方案空间。
|
||||
|
||||
步骤:
|
||||
1. **写下当前方案的所有"假设"**(看似理所当然的事)
|
||||
2. **每条假设问**:这是物理化学定律,还是历史惯例 / 类比?
|
||||
3. 把"惯例 / 类比"那一类全划掉
|
||||
4. 在剩余的"硬约束"上,重新构造方案空间
|
||||
|
||||
例:低碳水泥
|
||||
|
||||
```
|
||||
当前方案: 普通硅酸盐水泥(OPC),煅烧石灰石生成 CaO,CO2 排放 ~800 kg/t
|
||||
|
||||
假设清单:
|
||||
1. 必须用 CaO 提供 Ca 源 ← 类比(也可用富钙的尾矿 / 钢渣 / 工业副产物)
|
||||
2. 必须高温煅烧 ← 类比(常温合成的地聚物已商用)
|
||||
3. 必须有 C-S-H 凝胶提供强度 ← 类比(C-A-S-H / N-A-S-H 也能提供)
|
||||
4. 水化必须放热 ← 硬约束(热力学,无法改)
|
||||
5. 28d 必须达到 42.5 MPa ← 标准要求,不是物理约束(可改国标 / 申请新标)
|
||||
6. 必须用水拌和 ← 类比(亚硫酸钠激发的化学结合水方案)
|
||||
|
||||
划掉惯例后剩硬约束:
|
||||
- 热力学允许的 Ca-Si-Al-O 体系凝胶
|
||||
- 水化放热 + 体积稳定
|
||||
- 凝结时间窗口 ≤ 数小时(工程性需求)
|
||||
|
||||
方案空间(在硬约束上构造):
|
||||
- 碱激发胶凝(粉煤灰 / 矿渣 / 偏高岭土 + NaOH/水玻璃)
|
||||
- 石灰石煅烧粘土(LC3,煅烧温度 800°C,CO2 降 40%)
|
||||
- 贝利特水泥(高 C2S 低 C3S,煅烧温度低 100°C)
|
||||
- 硫铝酸盐水泥(CSA,煅烧温度更低,28d 强度高)
|
||||
```
|
||||
|
||||
## TRIZ 矛盾矩阵(建材子集)
|
||||
|
||||
TRIZ 把工程问题归结为"两个想要的指标矛盾",查矩阵给出**发明原理建议**。完整矩阵 40×40 太大,本文摘录建材常遇到的 10 对冲突 + 对应原理:
|
||||
|
||||
| 矛盾 | 经典建材场景 | 候选发明原理(TRIZ #) |
|
||||
|---|---|---|
|
||||
| 强度 ↑ vs 韧性 ↑ | 陶瓷 / 玻璃 / 高强混凝土脆性 | #1 分割(纤维分散)/ #15 动态化(预应力)/ #40 复合材料 |
|
||||
| 早强 ↑ vs 后期强度 ↓ | 早强水泥后期强度倒挂 | #19 周期性作用(分阶段水化)/ #10 预先作用(预水化晶种)/ #35 物理状态改变 |
|
||||
| 致密 ↑ vs 透气 ↑ | 多孔陶瓷 / 透水砖 / 自防水墙体 | #1 分割(分级孔结构)/ #17 多维度(梯度密度) |
|
||||
| 重量 ↓ vs 强度 ↑ | 轻质高强混凝土 | #40 复合材料(轻骨料 + 高性能浆体)/ #14 球面化(空心微珠) |
|
||||
| 耐高温 ↑ vs 抗热震 ↑ | 耐火材料经典矛盾 | #35 物性改变(玻璃相塑化)/ #17 多维度(梯度)/ #36 相变 |
|
||||
| 防水 ↑ vs 透气 ↑ | 建筑外墙呼吸性 | #31 多孔材料 / #25 自服务(疏水自组装) |
|
||||
| 流动性 ↑ vs 强度 ↑ | 自密实混凝土水灰比矛盾 | #28 替代力学手段(化学减水剂)/ #35 物理改变(粒径优化) |
|
||||
| 反应速率 ↑ vs 工作时间 ↑ | 速凝混凝土施工窗口 | #19 周期性 / #36 相变(温度触发)/ #10 预先作用 |
|
||||
| 耐久性 ↑ vs 成本 ↓ | 沿海建筑混凝土 | #25 自服务(自修复)/ #40 复合材料(掺合料替代) |
|
||||
| 隔热 ↑ vs 承重 ↑ | 保温承重一体化外墙 | #17 多维度(夹芯)/ #31 多孔 / #1 分割 |
|
||||
|
||||
## 工作流(First-principles + TRIZ 串行)
|
||||
|
||||
1. **First-principles 拆假设**:列方案空间(2-5 个候选路径)
|
||||
2. **每条候选路径找冲突**:能不能用 TRIZ 表查到对应矛盾?
|
||||
3. **TRIZ 给原理**:挑 1-2 条最有意思的发明原理,看能不能用到方案上
|
||||
4. **输出 2-3 个具体新方案**:每个标"借鉴的原理 / 与现有方案的关键差异 / 风险点"
|
||||
|
||||
输出格式(放进 `analysis.md` §5 对应叶子):
|
||||
|
||||
```
|
||||
## 叶子 X: <问题描述> — 创新型
|
||||
|
||||
### First-principles 拆假设
|
||||
| 假设 | 类型(硬约束 / 类比) |
|
||||
|---|---|
|
||||
| ... | 类比 |
|
||||
| ... | 硬约束 |
|
||||
|
||||
### 候选方案空间
|
||||
1. **方案 A**: <一句话描述> — 借鉴原理: <TRIZ #X 名称> — 关键差异: <vs 现方案> — 风险: <技术 / 成本 / 经费>
|
||||
2. **方案 B**: ...
|
||||
3. **方案 C**: ...
|
||||
|
||||
### 接续建议
|
||||
<查文献验证可行性 / 做小试 / 算热力学相图 / ...> —— 由 LLM 按 skill 清单匹配
|
||||
```
|
||||
|
||||
## 反模式
|
||||
|
||||
- TRIZ 全套 40 原理硬背 —— 上面 10 对矛盾够 80% 建材场景
|
||||
- First-principles 拆到量子层("根本上电子云重叠决定强度") —— 拆到工程可调维度(组分 / 结构 / 工艺)即停
|
||||
- 创新方案没标"和现有方案的具体差异" —— 等于换了个名字
|
||||
- 自动否定常规方案 —— 创新不是为了否定 OPC / 烧结陶瓷,只是补充方案空间
|
||||
- 创新方案不评可行性 —— 在 analyze 阶段标"风险:验证成本 / 经费需求 / 时间窗口",别给"先做了再说"
|
||||
- 借口 TRIZ 装高级 —— 用户看不懂的术语堆砌反而不专业,用大白话说原理(分阶段 / 复合 / 梯度...)
|
||||
- 把所有创新都归到 TRIZ —— TRIZ 是工具,不是宗教;能直接想清楚的不必硬套
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
# Issue Tree 拆分模板(MECE)
|
||||
|
||||
MECE = Mutually Exclusive, Collectively Exhaustive(各子项互不重叠,合起来覆盖全部)。拆得好的 issue tree 看一眼就知道哪些叶子是关键路径。
|
||||
|
||||
## 三个常用维度(按场景选一个)
|
||||
|
||||
### 模板 A: 机理-现象-工艺(建材最常用,默认选)
|
||||
|
||||
适合:**性能问题 / 缺陷分析 / 新材料探索**
|
||||
|
||||
```
|
||||
根问题
|
||||
├── 机理层(为什么会这样?)
|
||||
│ ├── 化学组成 / 物相
|
||||
│ ├── 微观结构 / 形貌
|
||||
│ └── 界面 / 缺陷
|
||||
├── 现象层(看到了什么?)
|
||||
│ ├── 宏观性能(强度 / 韧性 / 耐久性 / 热学 / 电学)
|
||||
│ ├── 表观特征(外观 / 颜色 / 开裂模式)
|
||||
│ └── 时间演化(早期 / 中期 / 长期)
|
||||
└── 工艺层(怎么造出来的?)
|
||||
├── 原料(组成 / 纯度 / 粒度)
|
||||
├── 配料 / 混合
|
||||
├── 成型 / 烧成 / 养护
|
||||
└── 后处理 / 检测
|
||||
```
|
||||
|
||||
### 模板 B: 输入-过程-输出(适合系统性问题)
|
||||
|
||||
适合:**生产线问题 / 工艺整体优化 / 质量管控**
|
||||
|
||||
```
|
||||
根问题
|
||||
├── 输入(物料 / 能源 / 信息)
|
||||
├── 过程(单元操作 1, 2, 3, ...)
|
||||
└── 输出(主产品 / 副产品 / 排放 / 废物)
|
||||
```
|
||||
|
||||
### 模板 C: 材料-工艺-装备-检测(适合工程问题)
|
||||
|
||||
适合:**装备改造 / 检测方法开发 / 工艺定型**
|
||||
|
||||
```
|
||||
根问题
|
||||
├── 材料(配方 / 原料)
|
||||
├── 工艺(参数 / 流程)
|
||||
├── 装备(设备 / 工装 / 模具)
|
||||
└── 检测(标准 / 仪器 / 取样)
|
||||
```
|
||||
|
||||
## 深度建议
|
||||
|
||||
- **2 层是底限**(1 层等于没拆)
|
||||
- **3 层是甜蜜区**(根问题 → 大类 → 具体子问题,5-10 个叶子)
|
||||
- **4 层只在叶子节点本身复杂时分**(且只分那个叶子,别全树都 4 层)
|
||||
|
||||
过深的 tree 模型容易堆细节、用户也读不下去。**宁可拆完发现树不够,再补一支,也别一上来 4 层全开。**
|
||||
|
||||
## 叶子节点标注规范
|
||||
|
||||
每个叶子节点要带这三个 tag,合写在中括号里:`[<类型> / <优先级> / <能力描述>]`
|
||||
|
||||
| Tag | 取值 | 怎么判 |
|
||||
|---|---|---|
|
||||
| **类型** | 根因 / 创新 / 优化 | 根因 = "为什么 X 异常";创新 = "怎么换条新路";优化 = "在已知路径上调参找最优" |
|
||||
| **优先级** | 高 / 中 / 低 | 高 = 是当前瓶颈 + 解决后收益大;中 = 解决了有改善但不致命;低 = 远期 / 边缘问题 |
|
||||
| **能力** | 一句话动词短语 | "查近 5 年综述"、"XRD + Rietveld 精修算物相含量"、"DoE 拟合响应面"、"SEM 看形貌"... **不写 skill 名** |
|
||||
|
||||
## 示例:早强问题拆解(模板 A)
|
||||
|
||||
```
|
||||
P42.5 早强偏低
|
||||
├── 机理层
|
||||
│ ├── [根因 / 高 / XRD + Rietveld 精修算 C3S/C2S 比例] 熟料 C3S 比例是否偏低
|
||||
│ ├── [根因 / 高 / SEM 看水化早期 CSH 形貌 + EDS 测 Ca/Si] 水化早期产物形貌异常
|
||||
│ └── [根因 / 中 / 查文献综述助磨剂对水化影响] 助磨剂残留是否毒化水化
|
||||
├── 现象层
|
||||
│ ├── [优化 / 中 / DoE 调比表面积测早强响应] 比表面积与早强关系曲线
|
||||
│ └── [优化 / 低 / 跟踪生产记录方差分析] 不同批次早强方差是否显著
|
||||
└── 工艺层
|
||||
├── [优化 / 高 / 跟班记录工艺参数 + 测游离 CaO] 煅烧温度与游离 CaO 关系
|
||||
└── [创新 / 中 / 查文献综述纳米 CaCO3 晶种] 引入纳米晶种早强方案
|
||||
```
|
||||
|
||||
## 反模式
|
||||
|
||||
- 拆出的叶子节点之间有重叠(违反 MECE 的 ME)—— 例:既有"原料 SiO2 含量"又有"配料 SiO2 比例",合并
|
||||
- 漏掉显然该有的分支(违反 MECE 的 CE)—— 例:讨论强度问题但漏了"养护条件"
|
||||
- 叶子标"用 research skill"/"用 stats_ml skill" —— 写能力描述,不写 skill 名(改名要回来改)
|
||||
- 叶子优先级全标"高" —— 假装 MECE,等于没排
|
||||
- 拆到 4 层才发现叶子全是 `<TODO>` —— 说明 PICO 阶段问题没问清,回阶段一
|
||||
- 拆完 tree 自己开始查文献做分析 —— analyze 只拆,执行交棒下游
|
||||
- mermaid 中文节点名带特殊字符不转义(逗号 / 引号 / 括号) —— 节点名用方括号包,内部避免符号或转义
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
# PICO/PECO 问题规范化模板
|
||||
|
||||
PICO 起源于循证医学(P=Patient, I=Intervention, C=Comparison, O=Outcome),工程领域沿用或改造为 PECO(E=Exposure)。本 skill 默认 PICO。目的:把模糊命题翻译成可拆解、可量化的问题陈述。
|
||||
|
||||
## 四要素填空表
|
||||
|
||||
| 要素 | 填什么 | 建材 R&D 提问角度 |
|
||||
|---|---|---|
|
||||
| **P** (Population/Process) | 研究对象 —— 材料体系 / 工艺环节 / 检测方法 | 你研究的是什么材料?什么阶段?(例:P52.5 普通硅酸盐水泥早期水化阶段 / 莫来石熔铸耐火砖烧结过程) |
|
||||
| **I** (Intervention) | 干预 —— 被你主动改变的变量 | 你打算改什么?(例:掺入 5% 纳米 SiO2 / 烧成温度从 1450°C 调到 1500°C) |
|
||||
| **C** (Comparison) | 对照 —— 比较基准 | 跟谁比?基准配方?国标?国外同类型?(例:vs 不掺纳米 SiO2 的同配方 / vs JC/T 1086-2008 规定值) |
|
||||
| **O** (Outcome) | 输出 —— **必须量化** | 用什么指标判断?数值目标?(例:1d 抗压强度提升 ≥ 15% / 28d 干燥收缩 ≤ 0.05%) |
|
||||
|
||||
## 填空注意
|
||||
|
||||
- **P 别太宽**:"水泥" → "P52.5 普通硅酸盐水泥(C3S 含量 55-60%,中铝相)"
|
||||
- **I 必须是可操作变量**:"提升性能" 不是 I,"温度 / 配比 / 时间 / 添加剂种类 / 比表面积" 才是
|
||||
- **C 不可省**:没对照的结果没意义。最低写"vs 当前配方基线"
|
||||
- **O 必须有单位 + 数值**:"显著提升" / "改善" 全部禁用;"≥ 15%" / "≤ 0.05%" / "GB/T 17671 规定值的 1.2 倍" 才合规
|
||||
|
||||
## 建材域示例
|
||||
|
||||
### 示例 1: 早强问题(根因 + 优化混合)
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| 原始问题 | "我们这批水泥早强偏低" |
|
||||
| P | 现有量产 P42.5 普通硅酸盐水泥(熟料 C3S 52%,SO3 2.3%,比表 350 m²/kg) |
|
||||
| I | 待定 —— 候选:① 提高熟料 C3S 至 58%;② 添加 0.5% 纳米 CaCO3 晶种;③ 比表提升到 380 m²/kg |
|
||||
| C | 基线:当前量产配方 1d 抗压 12 MPa,3d 22 MPa |
|
||||
| O | 1d 抗压 ≥ 15 MPa,3d ≥ 26 MPa,28d 不低于 42.5 MPa(国标线) |
|
||||
|
||||
### 示例 2: 耐火砖热震失效(根因型)
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| 原始问题 | "玻璃窑用熔铸 AZS 砖在 1450°C 工况下出现热震断裂" |
|
||||
| P | 熔铸 33# AZS 砖(Al2O3 51%, ZrO2 33%, SiO2 14%) |
|
||||
| I | 待定 —— 候选:① 添加 1-3% TiO2 改性玻璃相;② 优化退火曲线;③ 玻璃相组分调整 |
|
||||
| C | 现有标准退火曲线 + 不加 TiO2 |
|
||||
| O | 1100°C ↔ 室温热震 30 次无明显裂纹(ISO 16282) / 玻璃相弹性模量降低 ≥ 10% |
|
||||
|
||||
### 示例 3: 新型材料探索(创新型)
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| 原始问题 | "想做一种低碳水泥" |
|
||||
| P | 待定 —— 用户要补充:基于什么体系?(贝利特?石灰石煅烧粘土?碱激发?) |
|
||||
| I | 由 P 决定 |
|
||||
| C | OPC(普通硅酸盐水泥,CO2 排放 ~800 kg/t 熟料)基线 |
|
||||
| O | CO2 排放 ≤ 500 kg/t,28d 抗压 ≥ 42.5 MPa,168d 干燥收缩 ≤ 0.06% |
|
||||
|
||||
## FINER 自检(问题质量打分)
|
||||
|
||||
PICO 填完后,5 个维度各给 1-5 分 + 一句话说明:
|
||||
|
||||
| 维度 | 问题 |
|
||||
|---|---|
|
||||
| **F** Feasible | 现有实验条件 / 人 / 时间 / 经费 / 检测能力够吗? |
|
||||
| **I** Interesting | 行业里有人关心吗?能发文章 / 立项 / 转化吗? |
|
||||
| **N** Novel | 已经有人做过 / 做透了吗?(常见 trap:用户以为新但其实 90 年代已成熟) |
|
||||
| **E** Ethical | 涉及人 / 动物 / 环境 / 知识产权风险吗?(建材常见:石棉 / 重金属浸出 / 放射性) |
|
||||
| **R** Relevant | 对你们院 / 课题组 / 项目目标契合吗? |
|
||||
|
||||
**任一维度 ≤ 2 → 显式标注"问题需重新审视"**,不一定要继续做。
|
||||
|
||||
## 何时不强求 PICO
|
||||
|
||||
- 用户问的是**文献调研类**("综述 X 领域") —— 直接 research,PICO 强行套反而别扭
|
||||
- 用户问的是**工程实施类**("怎么把 X 推到生产") —— 走工艺优化路线,PICO 仍可用但 I/C 改成"工艺参数 vs 现行工艺"
|
||||
- 用户的问题本身就是**工具选型**("用什么仪器测 X") —— 不需要 PICO,直接给经验答 / 走 research
|
||||
|
||||
## 拒绝信号(说明问题还没准备好)
|
||||
|
||||
- 整张表都是 `<TODO>` → 问题还在概念阶段,先帮用户调研背景而不是硬拆
|
||||
- O 怎么都量化不出来 → 用户根本没想清楚要解决啥,引导回到目标层
|
||||
- P 与 I 矛盾(P 写"水泥",I 写"加金属粉末改性") → P 范围太窄,扩到"水泥基复合材料"
|
||||
- 用户拒绝填任何字段("你看着填就行") → 强烈信号:用户对问题没真实理解,引导回到"你为什么想做这个"
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
# 根因分析(Fishbone + 5 Whys)
|
||||
|
||||
何时启动:**叶子节点类型 = 根因型**。典型场景:已知现象异常("早强低 / 不合格率高 / 批次方差大 / 局部开裂"),需要找根因。
|
||||
|
||||
## Fishbone(石川图 / 鱼骨图)
|
||||
|
||||
把可能原因按大类列广,先求**穷尽**,后求深度。建材 R&D 改造后六大支:
|
||||
|
||||
| 支 | 包含 |
|
||||
|---|---|
|
||||
| **材料** | 原料组成 / 粒度 / 含水率 / 杂质 / 批次差异 / 储存时间 |
|
||||
| **工艺** | 配料比 / 温度曲线 / 时间 / 搅拌速度 / 养护条件 / 成型压力 |
|
||||
| **设备** | 磨机磨损 / 窑炉密封 / 模具精度 / 控温精度 / 校准状态 / 振动台均匀性 |
|
||||
| **检测** | 取样方法 / 仪器校准 / 标准选用 / 数据处理 / 主观误差 / 试件养护 |
|
||||
| **环境** | 温度 / 湿度 / 季节性 / CO2 浓度 / 原料季节性波动 |
|
||||
| **人员** | 操作差异 / 班次 / 培训水平 / SOP 执行 / 经验 |
|
||||
|
||||
输出格式(放进 `analysis.md` §5 对应叶子的小节):
|
||||
|
||||
```
|
||||
## 叶子 X: <问题描述>
|
||||
|
||||
### Fishbone 列广
|
||||
|
||||
| 大类 | 可能原因 | 优先 |
|
||||
|---|---|---|
|
||||
| 材料 | 原料 A 粒度变化 | 高 |
|
||||
| 材料 | 原料 B 含水率波动 | 中 |
|
||||
| 工艺 | 烧成温度漂移 | 高 |
|
||||
| 工艺 | 配料秤精度 | 低 |
|
||||
| 设备 | 磨机内衬磨损 | 中 |
|
||||
| ... | ... | ... |
|
||||
```
|
||||
|
||||
穷尽 6 大支后,挑 2-3 个高优先项进 5 Whys。
|
||||
|
||||
## 5 Whys
|
||||
|
||||
对 Fishbone 选出的高优先项,**连续问 5 次为什么**,直到拆到**可干预的机理层 / 工艺参数 / 设备状态**,不要拆到哲学层。
|
||||
|
||||
例:
|
||||
|
||||
```
|
||||
现象: 某批 P42.5 1d 抗压只有 9 MPa(应 ≥ 12 MPa)
|
||||
|
||||
Why 1: 为什么 1d 强度低?
|
||||
→ 水化反应早期速率慢
|
||||
|
||||
Why 2: 为什么早期水化慢?
|
||||
→ C3S 水化贡献不足
|
||||
|
||||
Why 3: 为什么 C3S 水化贡献不足?
|
||||
→ 熟料中 C3S 含量偏低(实测 48%, 设计 55%)
|
||||
|
||||
Why 4: 为什么 C3S 含量低?
|
||||
→ 烧成时 C3S 形成不充分,大量游离 CaO 残留(实测 fCaO 2.1%, 正常 < 1.5%)
|
||||
|
||||
Why 5: 为什么 C3S 形成不充分?
|
||||
→ 烧成温度未达 1450°C(实测 1430°C,在线热电偶老化漂移)
|
||||
|
||||
[停] 拆到了可干预参数(温度 + 热电偶状态),不要再问"为什么热电偶老化"
|
||||
```
|
||||
|
||||
输出格式:
|
||||
|
||||
```
|
||||
### 5 Whys: <高优先项>
|
||||
|
||||
Why 1: ... → ...
|
||||
Why 2: ... → ...
|
||||
Why 3: ... → ...
|
||||
Why 4: ... → ...
|
||||
Why 5: ... → ...
|
||||
|
||||
[停在此层的理由]: 已落到可干预参数 <X>
|
||||
|
||||
[建议验证]: <怎么验证这条因果链是否真实存在,接续什么能力>
|
||||
```
|
||||
|
||||
## Fishbone + 5Whys 协同节奏
|
||||
|
||||
1. **先 Fishbone 求广**:6 大支各列 2-5 条,标优先级
|
||||
2. **挑 2-3 条高优先**:既是"高"又物理意义清晰
|
||||
3. **每条走 5 Whys 深挖**:拆到可干预层就停
|
||||
4. **给出验证建议**:每条根因要标"接续什么能力验证"(测物相 / 查工艺记录 / 做对照实验 / 查文献...)
|
||||
|
||||
## 反模式
|
||||
|
||||
- 跳过 Fishbone 直接 5Whys(只问一支,漏掉其他显然该查的支)
|
||||
- 5Whys 问到哲学层("为什么我们院的设备老化快?" → "因为预算少") —— 拆到可干预层就停
|
||||
- Fishbone 列了 30 条 —— 大杂烩,失去优先级意义;每支 2-5 条,总数 < 20
|
||||
- "原因"和"现象"混用(原因是过程:"温度漂移",不是名词标签:"温度") —— 拆错粒度
|
||||
- 标"高优先"但没给优先理由 —— 写一句"为什么这条优先"
|
||||
- 在 analyze skill 内部自己跑 5 Whys 自圆其说(模型自答自证) —— 验证步骤交棒下游(research 查文献 / 实验设计走 DoE)
|
||||
- 假设单根因(只有一条原因) —— 工程问题常多根因叠加,Fishbone 阶段就要并列多个高优先项
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
# 科学问题分析: <课题简称>
|
||||
|
||||
> 由 analyze skill 生成,基于 PICO 化 + Issue Tree + 框架深化的引导式分析结果。
|
||||
> 本文件是"问题理解 + 路线图",**不是最终交付物**。后续执行(查文献 / 跑实验 / 写本子)交棒下游 skill。
|
||||
|
||||
## 1. 原始问题
|
||||
|
||||
<用户原话照抄,不做改写>
|
||||
|
||||
## 2. PICO 规范化
|
||||
|
||||
| 要素 | 内容 |
|
||||
|---|---|
|
||||
| **P** (对象) | <研究材料 / 体系 / 工艺环节,具体到牌号 / 配方 / 阶段> |
|
||||
| **I** (干预) | <自变量 / 被你改变的量;留白时写 `<TODO 由 issue tree 确定>`> |
|
||||
| **C** (对照) | <比较基准:基线配方 / 国标 / 国外同类型> |
|
||||
| **O** (输出) | <量化指标 + 单位 + 数值;不可量化项写 `<TODO 需用户给>`> |
|
||||
|
||||
## 3. FINER 自检
|
||||
|
||||
| 维度 | 评级(1-5) | 一句话说明 |
|
||||
|---|---|---|
|
||||
| **F** Feasible | | |
|
||||
| **I** Interesting | | |
|
||||
| **N** Novel | | |
|
||||
| **E** Ethical | | |
|
||||
| **R** Relevant | | |
|
||||
|
||||
(任一维度 ≤ 2 须显式标注 "问题需重新审视")
|
||||
|
||||
## 4. Issue Tree
|
||||
|
||||
拆分维度:<机理-现象-工艺 / 输入-过程-输出 / 材料-工艺-装备-检测>
|
||||
|
||||
```
|
||||
<根问题>
|
||||
├── <大类 1>
|
||||
│ ├── [<类型> / <优先级> / <能力描述>] <叶子 1.1>
|
||||
│ ├── [<类型> / <优先级> / <能力描述>] <叶子 1.2>
|
||||
│ └── ...
|
||||
├── <大类 2>
|
||||
│ └── ...
|
||||
└── <大类 3>
|
||||
└── ...
|
||||
```
|
||||
|
||||
(也可用 ```mermaid``` 块画 flowchart,叶子节点保持上面的中括号 tag 形式)
|
||||
|
||||
## 5. 关键子问题深化
|
||||
|
||||
按优先级"高"的叶子节点逐个深化:
|
||||
|
||||
### 5.1 <叶子 1.1> — <根因 / 创新 / 优化> 型
|
||||
|
||||
<根因型: Fishbone 表 + 5Whys 链;创新型: First-principles 假设拆 + TRIZ 矛盾矩阵 + 候选方案;优化型: DoE 设计表 + 因素范围>
|
||||
|
||||
接续能力:<一句话动词短语,例:"查近 5 年 cement hydration kinetics 综述">
|
||||
|
||||
### 5.2 ...
|
||||
|
||||
(继续高优先叶子,每叶子一小节)
|
||||
|
||||
## 6. 实施路线图
|
||||
|
||||
按优先级 + 依赖关系排序,每步标四件事:
|
||||
|
||||
| 步骤 | 干什么 | 用什么能力 | 产物 | 判停条件 |
|
||||
|---|---|---|---|---|
|
||||
| 1 | <动词开头> | <能力描述> | <产物名 + 格式> | <什么时候这步算完> |
|
||||
| 2 | | | | |
|
||||
| ... | | | | |
|
||||
|
||||
## 7. 风险与备选
|
||||
|
||||
| 风险 | 影响 | 缓解 / 备选方案 |
|
||||
|---|---|---|
|
||||
| | | |
|
||||
|
||||
## 8. TODO 待补项
|
||||
|
||||
- [ ] <用户需补充 PICO 中的 I 候选范围>
|
||||
- [ ] <用户需提供基线实验数据>
|
||||
- [ ] <需查文献验证的关键假设>
|
||||
|
||||
---
|
||||
|
||||
**下一步建议**:<由 LLM 按当下 skill 清单匹配,例:"先用 research 能力查证假设 X,完成后再回 analyze 更新 §5">
|
||||
Loading…
Reference in New Issue